A flexible Docker Compose orchestration tool for managing multiple technology stacks
Ever spent 3 hours setting up a database just to test a 5-minute feature?
Yeah, me too. That’s why I built Stack Orchestra.
Picture this: It’s 2 AM. You’re learning to code. You need PostgreSQL for your project. You Google “how to install PostgreSQL,” follow 15 different tutorials, mess up your system, spend hours fixing it, and finally—FINALLY—get it working.
Then you realize you also need Redis. And Elasticsearch. And maybe Neo4j.
Sound familiar?
I just started learning to code, and I was drowning in setup hell. Every time I wanted to try a new technology, I’d spend more time configuring it than actually learning it. That’s when I had my “enough is enough” moment.
What if there was a way to spin up any tech stack with one command?
That question led me to build Stack Orchestra—and it changed everything.
Let me paint you a picture of my life before Stack Orchestra:
Monday: "I need PostgreSQL"
→ 2 hours installing PostgreSQL
→ 1 hour configuring it
→ 30 minutes troubleshooting
→ Finally working! ✅
Tuesday: "Now I need Redis"
→ 1 hour installing Redis
→ 30 minutes configuring
→ Conflict with PostgreSQL port
→ Fix conflict, restart everything
→ Finally working! ✅
Wednesday: "Let me try Elasticsearch"
→ 3 hours of Docker Compose hell
→ Memory issues
→ Port conflicts
→ Give up, use cloud version 😢
Total time wasted: 8+ hours
Actual coding time: Maybe 2 hours
# Need PostgreSQL?
make postgres-up
# Done in 30 seconds ✅
# Need Redis too?
make redis-up
# Done in 30 seconds ✅
# Want Elasticsearch + Kibana?
make kibana-up
# Automatically starts Elasticsearch too!
# Done in 1 minute ✅
Total time: 2 minutes
Actual coding time: The rest of your day!
I was sitting there, frustrated, thinking: “Why does this have to be so hard?”
Then it hit me: What if each technology was a separate, independent service? What if I could start just what I need, when I need it?
That’s when Stack Orchestra was born.
Think of Stack Orchestra as your personal tech stack butler. You tell it what you need, and it handles the rest.
Open your terminal and run:
git clone https://github.com/tjandrayana/stack-orchestra
cd stack-orchestra
make help
Boom! You just saw all 14 available services. That took 10 seconds.
Now try this:
make postgres-up
Wait 30 seconds…
make ps
Look at that! PostgreSQL is running. No configuration. No headaches. Just… working.
That feeling? That’s what I wanted to give to every developer.
Before Stack Orchestra:
# Start entire docker-compose with 14 services
docker-compose up -d
# Your laptop: 💻🔥🔥🔥 (overheating)
# Your RAM: 📈📈📈 (maxed out)
# Your sanity: 😵 (gone)
With Stack Orchestra:
# Just need PostgreSQL?
make postgres-up
# Only PostgreSQL runs. Your laptop: 😌 (happy)
Real talk: How many times have you started a full docker-compose just to use one service? Stack Orchestra fixes that.
Here’s where it gets cool. Watch this:
make kibana-up
What just happened?
Try it yourself:
make kibana-up
make ps
# See both Elasticsearch AND Kibana running?
# That's the magic! ✨
The best part? You don’t need to remember dependencies. Stack Orchestra does.
Feeling patient? Start services one by one:
make up
# Services start sequentially, nice and calm
Feeling impatient? Start them all at once:
make up-parallel
# Everything starts simultaneously
# Your laptop: "Challenge accepted!" 💪
Want to control the chaos?
PARALLELISM=3 make up-parallel
# Start 3 services at a time
# Perfect balance of speed and sanity
Stack Orchestra comes with 14 battle-tested technology stacks:
| 🎯 Technology | 💡 What It’s For | 🚀 Try It |
|---|---|---|
| Elasticsearch + Kibana | Search & Analytics | make kibana-up |
| Neo4j | Graph Databases | make neo4j-up |
| PostgreSQL | Relational DB | make postgres-up |
| MySQL | Relational DB | make mysql-up |
| ArangoDB | Multi-model DB | make arangodb-up |
| Redis | Caching & Queues | make redis-up |
| MongoDB | Document DB | make mongodb-up |
| Nginx | Web Server | make nginx-up |
| OpenResty | Nginx + Lua | make openresty-up |
| Prometheus | Metrics & Monitoring | make prometheus-up |
| Grafana | Visualization & Dashboards | make grafana-up |
| ScyllaDB | High-Performance NoSQL | make scylla-up |
| Qdrant | Vector Database (AI/ML) | make qdrant-up |
| Milvus | Vector Database (Large Scale) | make milvus-up |
Each one:
Let me show you how I actually use this:
make neo4j-up
# Opens Neo4j Browser at http://localhost:7474
# Learning Cypher queries
# Building my first graph
Time spent: 30 seconds to start
Time learning: The rest of the morning! 🎓
make elasticsearch-up
make postgres-up
make nginx-up
# Full stack running in 2 minutes
# Now I'm coding, not configuring!
Time spent: 2 minutes
Time coding: The rest of the afternoon! 💻
make openresty-up
# Testing Lua scripts at http://localhost:8081
# Building custom endpoints
# Having fun! 🎉
Time spent: 30 seconds
Time experimenting: All evening! 🚀
make grafana-up
# Automatically starts Prometheus too!
# Access Grafana at http://localhost:3000 (admin/admin)
# Prometheus pre-configured as data source
# Creating beautiful dashboards! 📊
Time spent: 1 minute
Time monitoring: All night! 📈
# Need vector search for RAG or semantic search?
make qdrant-up
# Access REST API at http://localhost:6333
# Perfect for Go apps with official client library
# Building AI-powered features! 🤖
# Or for large-scale vector operations?
make milvus-up
# Automatically starts etcd and MinIO too!
# Access gRPC at localhost:19530
# Enterprise-grade vector database ready! 🚀
Time spent: 1 minute
Time building AI features: All night! 🧠
make down
# Everything stops cleanly
# No orphaned processes
# Good night! 😴
Time spent: 5 seconds
Peace of mind: Priceless ✨
Building Stack Orchestra wasn’t just about solving my problem—it was a crash course in:
I learned how to structure multi-file compose projects. Each service is independent, but they share a network. It’s like having separate apartments in the same building.
Makefiles aren’t just for compiling C code! I learned to create reusable, parameterized build systems. It’s like having a personal assistant that remembers all your commands.
Managing dependencies and startup order taught me how real orchestration tools work. It’s the same concepts used in Kubernetes, just simpler.
The best tool is the one you actually use. I focused on making Stack Orchestra so simple that using it is faster than not using it.
Right now, in the next 2 minutes:
git clone https://github.com/tjandrayana/stack-orchestra
cd stack-orchestra
make help
make redis-up
make ps
redis-cli ping
# Should return: PONG
Congratulations! You just started a service in under 2 minutes. No configuration. No headaches. Just… working.
That’s the power of Stack Orchestra.
The math is simple: More time coding = More learning = Better developer
Old way:
Stack Orchestra way:
make <service>-up # 30 seconds
# Test your thing
make <service>-down # 5 seconds
Total: 35 seconds
You just saved 64 minutes. That’s a whole episode of your favorite show!
Old way:
Stack Orchestra way:
make grafana-up
# Wait 1 minute...
# Prometheus is running at http://localhost:9090
# Grafana is running at http://localhost:3000
# Prometheus is already configured as a data source!
# Start creating dashboards immediately!
Total: 1 minute
You just saved 2 hours and 59 minutes. That’s enough time to build a complete feature!
Old way:
Stack Orchestra way:
SERVICES="postgres redis elasticsearch nginx" make up-parallel
# Wait 2 minutes...
# Start coding!
Total: 2 minutes
You just saved 3 hours and 58 minutes. That’s enough time to build a feature!
Old way:
Stack Orchestra way:
# For Go apps, Qdrant is perfect
make qdrant-up
# Wait 30 seconds...
# Access at http://localhost:6333
# Official Go client: github.com/qdrant/go-client
# Start building RAG features immediately!
# Or for large-scale needs
make milvus-up
# Automatically starts etcd and MinIO
# Wait 1 minute...
# Access at localhost:19530
# Enterprise vector database ready!
Total: 1 minute
You just saved 5 hours and 59 minutes. That’s enough time to build your entire AI feature!
I’m not done yet! Here’s what’s coming:
Want to help? Contributions are welcome! Check out the README for how to add new services.
Here’s the truth: I’m still learning to code.
This project isn’t perfect. There are probably better ways to do things. But you know what? It works. It solves a real problem. And it’s mine.
That’s the point.
You don’t need to be a senior engineer to build useful tools. You just need to:
Stack Orchestra proves that even beginners can create something valuable.
Now that you know about Stack Orchestra, here’s my challenge to you:
The best way to learn is by doing. Stack Orchestra gives you the infrastructure. Now go build something amazing!
Stack Orchestra started as a personal learning tool. Now it’s something I’m proud to share.
But here’s the real story: This isn’t about Stack Orchestra. It’s about you.
You’re learning to code. You’re facing the same problems I faced. You’re spending hours on setup instead of coding.
You don’t have to.
Stack Orchestra is here. It’s free. It’s open source. It’s yours.
Use it. Improve it. Make it better. Share it.
Because the best tools aren’t built by experts. They’re built by people who have problems and decide to solve them.
Tried Stack Orchestra? Loved it? Hated it? Found a bug? Want to contribute?
I’d love to hear from you!
Remember: We’re all learning. Let’s learn together.
Built with ❤️ by someone who’s still learning, for others who are learning too.
Now go build something amazing! 🚀
Save this for later:
# See all services
make help
# Start one service
make <service>-up
# Start multiple services
SERVICES="postgres redis" make up
# Start in parallel
SERVICES="postgres redis mongodb" make up-parallel
# Start monitoring stack (Prometheus + Grafana)
make grafana-up
# Start vector database for AI/ML
make qdrant-up
# or
make milvus-up
# Check status
make ps
# View logs
SERVICES="postgres" make logs
# Stop a service
make <service>-down
# Stop everything
make down
# Nuclear option (removes everything including data)
make clean
That’s it. That’s all you need to know.
Now go code! 💻✨