Skip to content

Commit db57e79

Browse files
committed
fix: update staging setting to follow prod pattern
1 parent 1e2f17a commit db57e79

1 file changed

Lines changed: 56 additions & 40 deletions

File tree

docker-compose.staging.yml

Lines changed: 56 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -25,72 +25,88 @@ services:
2525
restart: unless-stopped
2626
networks:
2727
- coolify
28-
environment:
29-
RAILS_ENV: production
30-
DATABASE_URL: ${DATABASE_URL}
31-
REDIS_URL: redis://default:${REDIS_PASSWORD}@redis:6379/0
32-
ELASTICSEARCH_URL: ${ELASTICSEARCH_URL:-http://elastic:9200}
33-
RAILS_LOG_TO_STDOUT: "true"
34-
PORT: 3000
35-
RAILS_MASTER_KEY: ${RAILS_MASTER_KEY}
36-
RIOT_API_KEY: ${RIOT_API_KEY}
37-
CORS_ORIGINS: ${CORS_ORIGINS:-https://prostaff.gg,https://www.prostaff.gg,https://api.prostaff.gg}
38-
JWT_SECRET_KEY: ${JWT_SECRET_KEY}
39-
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
40-
healthcheck:
41-
test: ["CMD-SHELL", "curl -f http://localhost:3000/up || exit 1"]
42-
interval: 10s
43-
timeout: 3s
44-
retries: 3
45-
start_period: 40s
46-
depends_on:
47-
redis:
48-
condition: service_healthy
28+
expose:
29+
- "3000"
4930
labels:
31+
# Coolify Meta
5032
- coolify.managed=true
5133
- coolify.applicationId=1
5234
- coolify.type=application
53-
# Traefik routing
35+
36+
# Traefik Configuration - Main Router (HTTPS)
5437
- traefik.enable=true
5538
- traefik.http.routers.prostaff-api.rule=Host(`api.prostaff.gg`)
56-
- traefik.http.routers.prostaff-api.entrypoints=websecure
39+
- traefik.http.routers.prostaff-api.entrypoints=https
5740
- traefik.http.routers.prostaff-api.tls=true
5841
- traefik.http.routers.prostaff-api.tls.certresolver=letsencrypt
59-
# Service configuration
42+
# Apply CORS middleware to the main router
43+
- traefik.http.routers.prostaff-api.middlewares=prostaff-cors
44+
45+
# Service Configuration (Port 3000)
6046
- traefik.http.services.prostaff-api.loadbalancer.server.port=3000
61-
- traefik.http.services.prostaff-api.loadbalancer.healthcheck.path=/up
62-
- traefik.http.services.prostaff-api.loadbalancer.healthcheck.interval=10s
63-
- traefik.http.services.prostaff-api.loadbalancer.healthcheck.timeout=3s
64-
# HTTP to HTTPS redirect
47+
48+
# HTTP to HTTPS Redirect
6549
- traefik.http.routers.prostaff-api-http.rule=Host(`api.prostaff.gg`)
66-
- traefik.http.routers.prostaff-api-http.entrypoints=web
50+
- traefik.http.routers.prostaff-api-http.entrypoints=http
6751
- traefik.http.routers.prostaff-api-http.middlewares=redirect-to-https
6852
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
69-
# CORS middleware
53+
54+
# CORS Middleware Definition
7055
- traefik.http.middlewares.prostaff-cors.headers.accesscontrolallowmethods=GET,POST,PUT,PATCH,DELETE,OPTIONS,HEAD
7156
- traefik.http.middlewares.prostaff-cors.headers.accesscontrolalloworiginlist=https://prostaff.gg,https://www.prostaff.gg
7257
- traefik.http.middlewares.prostaff-cors.headers.accesscontrolallowcredentials=true
73-
- traefik.http.middlewares.prostaff-cors.headers.accesscontrolallowheaders=*
58+
- traefik.http.middlewares.prostaff-cors.headers.accesscontrolallowheaders=Authorization,Content-Type,Accept,Origin,X-Requested-With
7459
- traefik.http.middlewares.prostaff-cors.headers.accesscontrolmaxage=86400
75-
# Apply middleware
76-
- traefik.http.routers.prostaff-api.middlewares=prostaff-cors
60+
61+
# Network configuration for Traefik
62+
- traefik.docker.network=coolify
63+
64+
# Explicitly set service name for Traefik
65+
- traefik.http.services.prostaff-api.loadbalancer.server.scheme=http
66+
67+
environment:
68+
RAILS_ENV: production
69+
DATABASE_URL: '${DATABASE_URL}'
70+
# Connect to Redis via Docker network hostname
71+
REDIS_URL: 'redis://default:${REDIS_PASSWORD}@redis:6379/0'
72+
ELASTICSEARCH_URL: '${ELASTICSEARCH_URL:-http://elastic:9200}'
73+
RAILS_LOG_TO_STDOUT: 'true'
74+
PORT: 3000
75+
RAILS_MASTER_KEY: '${RAILS_MASTER_KEY}'
76+
RIOT_API_KEY: '${RIOT_API_KEY}'
77+
CORS_ORIGINS: '${CORS_ORIGINS:-https://prostaff.gg,https://www.prostaff.gg,https://api.prostaff.gg}'
78+
JWT_SECRET_KEY: '${JWT_SECRET_KEY}'
79+
SECRET_KEY_BASE: '${SECRET_KEY_BASE}'
80+
81+
healthcheck:
82+
test:
83+
- CMD-SHELL
84+
- 'curl -f http://localhost:3000/up || exit 1'
85+
interval: 10s
86+
timeout: 10s
87+
retries: 3
88+
start_period: 60s
89+
90+
depends_on:
91+
redis:
92+
condition: service_healthy
7793

7894
sidekiq:
7995
build:
8096
context: .
8197
dockerfile: Dockerfile.production
82-
command: bundle exec sidekiq -C config/sidekiq.yml
98+
command: 'bundle exec sidekiq -C config/sidekiq.yml'
8399
restart: unless-stopped
84100
networks:
85101
- coolify
86102
environment:
87103
RAILS_ENV: production
88-
DATABASE_URL: ${DATABASE_URL}
89-
REDIS_URL: redis://default:${REDIS_PASSWORD}@redis:6379/0
90-
ELASTICSEARCH_URL: ${ELASTICSEARCH_URL:-http://elastic:9200}
91-
RAILS_MASTER_KEY: ${RAILS_MASTER_KEY}
92-
RIOT_API_KEY: ${RIOT_API_KEY}
93-
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
104+
DATABASE_URL: '${DATABASE_URL}'
105+
REDIS_URL: 'redis://default:${REDIS_PASSWORD}@redis:6379/0'
106+
ELASTICSEARCH_URL: '${ELASTICSEARCH_URL:-http://elastic:9200}'
107+
RAILS_MASTER_KEY: '${RAILS_MASTER_KEY}'
108+
RIOT_API_KEY: '${RIOT_API_KEY}'
109+
SECRET_KEY_BASE: '${SECRET_KEY_BASE}'
94110
depends_on:
95111
redis:
96112
condition: service_healthy

0 commit comments

Comments
 (0)