Skip to content

Commit 096bc71

Browse files
committed
Update docker-compose for PostgreSQL and improved env config
1 parent 6984243 commit 096bc71

File tree

2 files changed

+57
-42
lines changed

2 files changed

+57
-42
lines changed

.github/workflows/deploy.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@ jobs:
1414
- name: Checkout repository
1515
uses: actions/checkout@v4
1616

17-
- name: Create .env file
18-
run: echo "${{ secrets.ENV_FILE }}" > ./docker/.env
19-
2017
- name: Set up SSH
2118
uses: webfactory/ssh-agent@v0.8.0
2219
with:

docker/docker-compose.prod.yml

Lines changed: 57 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,38 @@
11
services:
2-
timescaledb:
3-
image: timescale/timescaledb:latest-pg17
4-
container_name: sr24_timescaledb
2+
postgres:
3+
image: postgres:18.1
4+
container_name: sr24_postgres
55
restart: unless-stopped
66
environment:
77
POSTGRES_USER: ${POSTGRES_USER}
88
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
99
POSTGRES_DB: ${POSTGRES_DB}
10+
POSTGRES_PORT: ${POSTGRES_PORT}
1011
volumes:
11-
- timescaledb_data:/var/lib/postgresql/data
12+
- postgres_data:/var/lib/postgresql/data
1213
networks:
1314
- sr24_backend
1415
healthcheck:
15-
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
16+
test: [ "CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}" ]
1617
interval: 10s
1718
timeout: 5s
1819
retries: 5
1920

2021
redis:
21-
image: redis:latest
22+
image: redis:8.4.0
2223
container_name: sr24_redis
2324
restart: unless-stopped
25+
environment:
26+
REDIS_PORT: ${REDIS_PORT}
27+
REDIS_PASSWORD: ${REDIS_PASSWORD}
28+
REDIS_DB: ${REDIS_DB}
2429
command: [ "redis-server", "--appendonly", "yes" ]
2530
volumes:
2631
- redis_data:/data
2732
networks:
2833
- sr24_backend
2934
healthcheck:
30-
test: ["CMD", "redis-cli", "ping"]
35+
test: [ "CMD", "redis-cli", "ping" ]
3136
interval: 5s
3237
timeout: 3s
3338
retries: 5
@@ -40,32 +45,36 @@ services:
4045
environment:
4146
POSTGRES_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}?schema=public
4247
depends_on:
43-
timescaledb:
48+
postgres:
4449
condition: service_healthy
4550
networks:
4651
- sr24_backend
52+
labels:
53+
- "traefik.enable=false"
4754
restart: "no"
55+
4856
web:
4957
build:
5058
context: ..
5159
dockerfile: apps/web/Dockerfile
5260
args:
53-
NEXT_PUBLIC_API_URL: "https://radar.skruellex.com/api"
54-
NEXT_PUBLIC_WEBSOCKET_URL: "wss://radar.skruellex.com/ws"
61+
NEXT_PUBLIC_API_URL: "https://${DOMAIN}/api"
62+
NEXT_PUBLIC_WEBSOCKET_URL: "wss://${DOMAIN}/ws"
5563
container_name: sr24_web
5664
restart: always
5765
environment:
5866
NODE_ENV: production
59-
HOST: 0.0.0.0
67+
HOST: ${HOST}
68+
PORT: ${WEB_PORT}
6069
networks:
6170
- traefik_proxy
6271
labels:
6372
- "traefik.enable=true"
64-
- "traefik.http.routers.nextjs.rule=Host(`radar.skruellex.com`)"
73+
- "traefik.http.routers.nextjs.rule=Host(`${DOMAIN}`)"
6574
- "traefik.http.routers.nextjs.entrypoints=websecure"
6675
- "traefik.http.routers.nextjs.tls=true"
6776
- "traefik.http.routers.nextjs.tls.certresolver=letsencrypt"
68-
- "traefik.http.services.nextjs.loadbalancer.server.port=3000"
77+
- "traefik.http.services.nextjs.loadbalancer.server.port=${WEB_PORT}"
6978
- "traefik.docker.network=traefik_proxy"
7079

7180
api:
@@ -76,17 +85,20 @@ services:
7685
restart: always
7786
environment:
7887
NODE_ENV: production
79-
API_PORT: 3001
8088
POSTGRES_USER: ${POSTGRES_USER}
8189
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
8290
POSTGRES_DB: ${POSTGRES_DB}
83-
POSTGRES_HOST: timescaledb
84-
POSTGRES_PORT: 5432
85-
REDIS_HOST: redis
86-
REDIS_PORT: 6379
91+
POSTGRES_HOST: ${POSTGRES_HOST}
92+
POSTGRES_PORT: ${POSTGRES_PORT}
93+
REDIS_HOST: ${REDIS_HOST}
94+
REDIS_PORT: ${REDIS_PORT}
95+
REDIS_PASSWORD: ${REDIS_PASSWORD}
96+
REDIS_DB: ${REDIS_DB}
97+
API_HOST: ${HOST}
98+
API_PORT: ${API_PORT}
8799
TRUST_PROXY: "true"
88100
depends_on:
89-
timescaledb:
101+
postgres:
90102
condition: service_healthy
91103
redis:
92104
condition: service_healthy
@@ -95,11 +107,11 @@ services:
95107
- sr24_backend
96108
labels:
97109
- "traefik.enable=true"
98-
- "traefik.http.routers.api.rule=Host(`radar.skruellex.com`) && PathPrefix(`/api`)"
110+
- "traefik.http.routers.api.rule=Host(`${DOMAIN}`) && PathPrefix(`/api`)"
99111
- "traefik.http.routers.api.entrypoints=websecure"
100112
- "traefik.http.routers.api.tls=true"
101113
- "traefik.http.routers.api.tls.certresolver=letsencrypt"
102-
- "traefik.http.services.api.loadbalancer.server.port=3001"
114+
- "traefik.http.services.api.loadbalancer.server.port=${API_PORT}"
103115
- "traefik.http.middlewares.api-stripprefix.stripprefix.prefixes=/api"
104116
- "traefik.http.routers.api.middlewares=api-stripprefix"
105117
- "traefik.docker.network=traefik_proxy"
@@ -112,13 +124,15 @@ services:
112124
restart: always
113125
environment:
114126
NODE_ENV: production
115-
WEBSOCKET_PORT: 3002
116-
WEBSOCKET_HOST: 0.0.0.0
117-
REDIS_HOST: redis
118-
REDIS_PORT: 6379
127+
WS_HOST: ${HOST}
128+
WS_PORT: ${WS_PORT}
129+
REDIS_HOST: ${REDIS_HOST}
130+
REDIS_PORT: ${REDIS_PORT}
131+
REDIS_PASSWORD: ${REDIS_PASSWORD}
132+
REDIS_DB: ${REDIS_DB}
119133
TRUST_PROXY: "true"
120134
depends_on:
121-
timescaledb:
135+
postgres:
122136
condition: service_healthy
123137
redis:
124138
condition: service_healthy
@@ -127,11 +141,11 @@ services:
127141
- sr24_backend
128142
labels:
129143
- "traefik.enable=true"
130-
- "traefik.http.routers.ws.rule=Host(`radar.skruellex.com`) && PathPrefix(`/ws`)"
144+
- "traefik.http.routers.ws.rule=Host(`${DOMAIN}`) && PathPrefix(`/ws`)"
131145
- "traefik.http.routers.ws.entrypoints=websecure"
132146
- "traefik.http.routers.ws.tls=true"
133147
- "traefik.http.routers.ws.tls.certresolver=letsencrypt"
134-
- "traefik.http.services.ws.loadbalancer.server.port=3002"
148+
- "traefik.http.services.ws.loadbalancer.server.port=${WS_PORT}"
135149
- "traefik.http.middlewares.ws-stripprefix.stripprefix.prefixes=/ws"
136150
- "traefik.http.routers.ws.middlewares=ws-stripprefix"
137151
- "traefik.docker.network=traefik_proxy"
@@ -147,12 +161,14 @@ services:
147161
POSTGRES_USER: ${POSTGRES_USER}
148162
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
149163
POSTGRES_DB: ${POSTGRES_DB}
150-
POSTGRES_HOST: timescaledb
151-
POSTGRES_PORT: 5432
152-
REDIS_HOST: redis
153-
REDIS_PORT: 6379
164+
POSTGRES_HOST: ${POSTGRES_HOST}
165+
POSTGRES_PORT: ${POSTGRES_PORT}
166+
REDIS_HOST: ${REDIS_HOST}
167+
REDIS_PORT: ${REDIS_PORT}
168+
REDIS_PASSWORD: ${REDIS_PASSWORD}
169+
REDIS_DB: ${REDIS_DB}
154170
depends_on:
155-
timescaledb:
171+
postgres:
156172
condition: service_healthy
157173
redis:
158174
condition: service_healthy
@@ -172,12 +188,14 @@ services:
172188
POSTGRES_USER: ${POSTGRES_USER}
173189
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
174190
POSTGRES_DB: ${POSTGRES_DB}
175-
POSTGRES_HOST: timescaledb
176-
POSTGRES_PORT: 5432
177-
REDIS_HOST: redis
178-
REDIS_PORT: 6379
191+
POSTGRES_HOST: ${POSTGRES_HOST}
192+
POSTGRES_PORT: ${POSTGRES_PORT}
193+
REDIS_HOST: ${REDIS_HOST}
194+
REDIS_PORT: ${REDIS_PORT}
195+
REDIS_PASSWORD: ${REDIS_PASSWORD}
196+
REDIS_DB: ${REDIS_DB}
179197
depends_on:
180-
timescaledb:
198+
postgres:
181199
condition: service_healthy
182200
redis:
183201
condition: service_healthy
@@ -193,5 +211,5 @@ networks:
193211
driver: bridge
194212

195213
volumes:
196-
timescaledb_data:
214+
postgres_data:
197215
redis_data:

0 commit comments

Comments
 (0)