OnyxMunk/AudioForge
0
1# ============================================
2# AudioForge - Production Deployment
3# ============================================
4# Enhanced production configuration with:
5# - Nginx reverse proxy
6# - SSL/TLS support
7# - Monitoring stack (Prometheus + Grafana)
8# - Log aggregation
9
10version: '3.8'
11
12services:
13 # ============================================
14 # Reverse Proxy & Load Balancer
15 # ============================================
16 nginx:
17 image: nginx:alpine
18 container_name: audioforge-nginx
19 restart: unless-stopped
20 ports:
21 - "8081:80"
22 - "443:443"
23 volumes:
24 - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
25 - ./nginx/ssl:/etc/nginx/ssl:ro
26 depends_on:
27 - backend
28 - frontend
29 networks:
30 - audioforge-network
31 labels:
32 com.audioforge.service: "proxy"
33
34 # ============================================
35 # Monitoring - Prometheus
36 # ============================================
37 prometheus:
38 image: prom/prometheus:latest
39 container_name: audioforge-prometheus
40 restart: unless-stopped
41 ports:
42 - "9090:9090"
43 volumes:
44 - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
45 - prometheus_data:/prometheus
46 command:
47 - '--config.file=/etc/prometheus/prometheus.yml'
48 - '--storage.tsdb.path=/prometheus'
49 - '--web.console.libraries=/usr/share/prometheus/console_libraries'
50 - '--web.console.templates=/usr/share/prometheus/consoles'
51 networks:
52 - audioforge-network
53 labels:
54 com.audioforge.service: "monitoring"
55
56 # ============================================
57 # Monitoring - Grafana
58 # ============================================
59 grafana:
60 image: grafana/grafana:latest
61 container_name: audioforge-grafana
62 restart: unless-stopped
63 ports:
64 - "3001:3000"
65 environment:
66 GF_SECURITY_ADMIN_PASSWORD: admin
67 GF_USERS_ALLOW_SIGN_UP: "false"
68 volumes:
69 - grafana_data:/var/lib/grafana
70 - ./monitoring/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro
71 - ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources:ro
72 depends_on:
73 - prometheus
74 networks:
75 - audioforge-network
76 labels:
77 com.audioforge.service: "monitoring"
78
79volumes:
80 prometheus_data:
81 driver: local
82 name: audioforge-prometheus-data
83
84 grafana_data:
85 driver: local
86 name: audioforge-grafana-data
87
88networks:
89 audioforge-network:
90 external: true
91 