Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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