-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose-github.yml
More file actions
111 lines (98 loc) · 3.24 KB
/
docker-compose-github.yml
File metadata and controls
111 lines (98 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
version: '3.8'
# This docker-compose file is for deployments that pull from GitHub
# Usage: docker-compose -f docker-compose-github.yml up -d
services:
db:
image: postgres:15-alpine
container_name: traveltracker-db
restart: unless-stopped
environment:
POSTGRES_USER: traveluser
POSTGRES_PASSWORD: travelpass
POSTGRES_DB: traveltracker
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- traveltracker-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U traveluser"]
interval: 10s
timeout: 5s
retries: 5
web:
image: traveltracker-web:latest
build:
context: https://github.com/YOUR_USERNAME/travel-tracker.git#main
dockerfile: Dockerfile
container_name: traveltracker-web
restart: unless-stopped
ports:
- "5000:5000"
environment:
- FLASK_ENV=production
- DATABASE_URL=postgresql://traveluser:travelpass@db:5432/traveltracker
- SECRET_KEY=${SECRET_KEY:-change-this-secret-key-in-production}
# Google OAuth
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- GOOGLE_REDIRECT_URI=${GOOGLE_REDIRECT_URI:-http://localhost:5000/auth/google/callback}
# Microsoft OAuth
- MICROSOFT_CLIENT_ID=${MICROSOFT_CLIENT_ID}
- MICROSOFT_CLIENT_SECRET=${MICROSOFT_CLIENT_SECRET}
- MICROSOFT_REDIRECT_URI=${MICROSOFT_REDIRECT_URI:-http://localhost:5000/auth/microsoft/callback}
# Airline APIs
- UNITED_API_KEY=${UNITED_API_KEY}
- AMERICAN_API_KEY=${AMERICAN_API_KEY}
- DELTA_API_KEY=${DELTA_API_KEY}
- SOUTHWEST_API_KEY=${SOUTHWEST_API_KEY}
# Immich Integration
- IMMICH_API_URL=${IMMICH_API_URL}
- IMMICH_API_KEY=${IMMICH_API_KEY}
# Google Maps API
- GOOGLE_MAPS_API_KEY=${GOOGLE_MAPS_API_KEY}
# Email scanning
- EMAIL_SCAN_INTERVAL=300
# Timezone
- TIMEZONE=${TIMEZONE:-America/New_York}
volumes:
- ./uploads:/app/uploads
- ./logs:/app/logs
depends_on:
db:
condition: service_healthy
networks:
- traveltracker-network
command: >
sh -c "
echo 'Waiting for database...' &&
sleep 5 &&
flask db upgrade &&
gunicorn --bind 0.0.0.0:5000 --workers 4 --timeout 120 app:app
"
scheduler:
image: traveltracker-scheduler:latest
build:
context: https://github.com/YOUR_USERNAME/travel-tracker.git#main
dockerfile: Dockerfile
container_name: traveltracker-scheduler
restart: unless-stopped
environment:
- FLASK_ENV=production
- DATABASE_URL=postgresql://traveluser:travelpass@db:5432/traveltracker
- SECRET_KEY=${SECRET_KEY:-change-this-secret-key-in-production}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
- MICROSOFT_CLIENT_ID=${MICROSOFT_CLIENT_ID}
- MICROSOFT_CLIENT_SECRET=${MICROSOFT_CLIENT_SECRET}
- EMAIL_SCAN_INTERVAL=300
depends_on:
db:
condition: service_healthy
networks:
- traveltracker-network
command: python scheduler.py
volumes:
postgres_data:
networks:
traveltracker-network:
driver: bridge