Copper is a robust backend pipeline that integrates a PostgreSQL database, Redis caching, OpenTelemetry tracing, and monitoring with Prometheus and Grafana. The system is containerized using Docker and orchestrated with Docker Compose.
The pipeline follows a microservices-based approach, with each component running in a dedicated container. The Nginx service acts as an entry point, directing traffic to the app service, which interacts with PostgreSQL, Redis, and monitoring tools.
| Service | Description |
|---|---|
| app | Main backend application (Go Gin server) |
| nginx | Reverse proxy and load balancer |
| db | PostgreSQL database |
| redis | Redis for caching |
| prometheus | Metrics collection and monitoring |
| alertmanager | Alerts for Prometheus |
| grafana | Visualization dashboard for metrics |
| jaeger | Distributed tracing |
Ensure you have the following installed:
git clone https://github.com/AMS003010/Copper.git
cd CopperRun the following command to build and start all services:
docker-compose up --buildTo stop the running containers:
docker-compose downThe PostgreSQL database and Grafana data are stored in Docker volumes:
- copper_data → PostgreSQL
- grafana_data → Grafana dashboards
| Service | Port |
|---|---|
| App (Go Backend) | 8080 |
| Nginx Proxy | 80 |
| PostgreSQL | 5432 |
| Redis | 6379 |
| Prometheus | 9090 |
| Alertmanager | 9093 |
| Grafana | 3000 |
| Jaeger UI | 16686 |
- Jaeger UI (Tracing) →
http://localhost:16686 - Prometheus Metrics →
http://localhost:9090 - Grafana Dashboard →
http://localhost:3000(Default login:admin/admin)
If the app cannot connect to the database, ensure PostgreSQL is ready:
docker-compose logs dbTo restart a specific service, run:
docker-compose restart <service_name>Example:
docker-compose restart db- @AMS003010 (Project Maintainer)
This project is licensed under the MIT License.
⚡ Copper Backend Pipeline - Scalable & Monitored ⚡