Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sergeyt/pandora
Small box of pandora to prototype your app with ready for use backend. This is just my compilation of different solutions occasionally applied in hackathons and challenges
https://github.com/sergeyt/pandora
baas caddy celery dgraph docker-compose elasticsearch golang kibana minio nats python quick-start rabbitmq redis template-project tika
Last synced: 3 months ago
JSON representation
Small box of pandora to prototype your app with ready for use backend. This is just my compilation of different solutions occasionally applied in hackathons and challenges
- Host: GitHub
- URL: https://github.com/sergeyt/pandora
- Owner: sergeyt
- License: apache-2.0
- Created: 2018-09-24T15:44:49.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-06T10:18:44.000Z (5 months ago)
- Last Synced: 2024-09-22T14:02:16.669Z (3 months ago)
- Topics: baas, caddy, celery, dgraph, docker-compose, elasticsearch, golang, kibana, minio, nats, python, quick-start, rabbitmq, redis, template-project, tika
- Language: Go
- Homepage: https://tsvbits.com/pandora/
- Size: 1.82 MB
- Stars: 26
- Watchers: 3
- Forks: 8
- Open Issues: 48
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PANDORA
This small box of pandora (aka small app basis) composed from the following technologies:
* [Dgraph](https://dgraph.io/) as data store with GraphQL support, write operations using REST
* [Minio](https://www.minio.io/) as Amazon S3 compatible storage
* [Stow](https://github.com/graymeta/stow) allows using cloud storage provides like Amazon, Google, Azure
* [ElasticSearch](https://www.elastic.co/products/elasticsearch) as search engine. Dgraph data can be automatically replicated in ElasticSeach index
* [Kibana](https://www.elastic.co/products/kibana) to explore ElasticSearch data
* [NATS](https://nats.io/) as messaging system with streaming of push notifications (events) via [SSE](https://en.wikipedia.org/wiki/Server-sent_events) channel
* [Celery](http://www.celeryproject.org/) - distributed task queue
* [RabbitMQ](https://www.rabbitmq.com/) - fast message broker for celery tasks
* [Redis](https://redis.io/) - result backend for celery tasks and cache service
* [Apache Tika](https://tika.apache.org/) - powerful content analysis toolkit
* try [FluentD](https://www.fluentd.org/) - for centralized logging, not implemented yet :)Programming languages currently used in the project:
* [Go](https://golang.org/)
* [Python](https://www.python.org/)
* [Kotlin](https://kotlinlang.org/)## Basic Idea
I'd like to have simple, flexible, dynamic, declarative, reactive, realtime information system :)
## How to run
`docker-compose up` runs the following services:
1. `zero` - Dgraph cluster manager
1. `dgraph` - Dgraph data manager hosts predicates & indexes
1. `ratel` - serves the UI to run queries, mutations & altering schema
1. `nats` - plays as message bus
1. `pubsub` - event streaming service based on [SSE](https://en.wikipedia.org/wiki/Server-sent_events) protocol
1. `minio` - Amazon S3 compatible file store
1. `imageproxy` - [service](https://willnorris.com/go/imageproxy) with image manipulation ops like resizing
1. `elasticsearch` - search and analitycs engine
1. `kibana` - Elasticsearch dashboard
1. `app` - application API service
1. `caddy` - web server as service gateway