You got it! Here's a professional and developer-friendly README.md for your data ingestion stack. It includes setup instructions, key commands, and helpful tips to get your whole stack running locally with Docker, Jenkins, Mage, Kafka, Flink, Beam, and more.
This monorepo contains a modular data ingestion stack powered by:
- 🧠 Mage – data pipeline orchestration
- 🌀 Apache Kafka & Zookeeper – real-time messaging
- ⚡ Apache Flink – real-time stream processing
- 🛠 Apache Beam (with Flink runner) – unified batch & stream pipelines
- 📓 Jupyter – data exploration
- 🧾 Kafka Schema Registry
- 🔌 Kafka Connect – external source/sink connectors
- 🏦 PostgreSQL – example storage layer
- 📊 Grafana + Prometheus – monitoring and observability
- 🧪 Jenkins – CI/CD pipeline
-
Airflow - Pipeline Orchestration
git clone https://github.com/your-org/data-ingestion-stack.git
cd data-ingestion-stackCreate a .env file:
cp .env.example .envCustomize as needed (Postgres credentials, ports, etc.)
make upThis command builds and starts all core services defined in the docker-compose.yml:
- Mage
- Kafka
- Flink (JobManager and TaskManager)
- Beam
- Jenkins
- Airflow (Webserver, Scheduler)
- Postgres
- Zookeeper
make airflow-initThis sets up the Airflow database and creates an admin user. Run this only the first time after the stack starts.
A beautiful status dashboard for your data stack:
make bridgemake logs| Task | Command |
|---|---|
| 🆙 Start all containers | make up |
| 🛑 Stop all containers | make down |
| 🧼 Rebuild everything | make rebuild |
| 🔍 Show logs | make logs |
| 🐚 Shell into Mage container | make shell |
| 🌐 Open Mage UI | http://localhost:6789 |
| 🌐 Open Flink UI | http://localhost:8081 |
| 🌐 Open Grafana | http://localhost:3000 |
| 📓 Open Jupyter | http://localhost:8888 |
This project includes a Jenkins pipeline defined in Jenkinsfile.
To test locally:
docker-compose up jenkinsThen visit: http://localhost:8080
.
├── docker-compose.yml # Stack definition
├── Makefile # Easy CLI commands
├── Jenkinsfile # CI/CD pipeline
├── mage/ # Mage project
├── flink/ # Flink job manager/task manager
├── beam/ # Beam SDK + pipeline
├── jupyter/ # Jupyter environment
├── grafana/ # Dashboards and config
├── postgres/ # Init scripts
├── kafka/, zookeeper/ # Custom Kafka/Zoo setup (optional)
├── .env # Environment config
└── README.md # You're here- 🧪 Add your Mage pipelines in
/mage - 🔁 Add Beam jobs to
/beam/pipeline - 🔌 Connect Kafka Connect to external sources (PostgreSQL, S3, etc.)
- 🚢 Extend Jenkins to push images or deploy to a cluster
- Stock Price Streaming – Collects live market data, publishes to Kafka, processes with Beam, writes to Iceberg
Feel free to fork this stack or submit pull requests! All feedback is welcome.
MIT License – do what you want, just give credit where it's due. ❤️
Would you like me to create the actual .env.example, a sample pipeline, or add instructions for pushing to Docker Hub?