@@ -31,7 +31,7 @@ In the examples below, the `docker-compose.yml` and `.env` files live in `/opt/p
3131- All workers must share ` /var/lib/pasarguard ` (templates, certs, runtime files).
3232
3333<Callout type = " warn" >
34- Multi-worker mode requires ` NATS_ENABLED=1 ` . If NATS is disabled, node/scheduler workers cannot coordinate with the backend.
34+ Multi-worker mode requires ` NATS_ENABLED=True ` . If NATS is disabled, node/scheduler workers cannot coordinate with the backend.
3535</Callout >
3636
3737## Step 1: Prepare ` .env `
@@ -40,8 +40,8 @@ Below is a minimal set. Add the database block from your selected tab.
4040
4141``` bash
4242# NATS
43- NATS_ENABLED = 1
44- NATS_URL = " nats://nats :4222"
43+ NATS_ENABLED = True
44+ NATS_URL = " nats://127.0.0.1 :4222"
4545
4646# Web server
4747UVICORN_PORT = 8000
@@ -70,7 +70,7 @@ SQLALCHEMY_MAX_OVERFLOW = 30
7070 DB_NAME = "pasarguard"
7171 DB_USER = "pasarguard"
7272 DB_PASSWORD = "CHANGE_ME"
73- SQLALCHEMY_DATABASE_URL = "postgresql+asyncpg://pasarguard:CHANGE_ME@pgbouncer :6432/pasarguard"
73+ SQLALCHEMY_DATABASE_URL = "postgresql+asyncpg://pasarguard:CHANGE_ME@127.0.0.1 :6432/pasarguard"
7474 ```
7575
7676 ** docker-compose.yml**
@@ -96,17 +96,14 @@ SQLALCHEMY_MAX_OVERFLOW = 30
9696 image: pasarguard/panel:latest
9797 restart: unless-stopped
9898 env_file: .env
99+ network_mode: host
99100 environment:
100101 ROLE: backend
101- SQLALCHEMY_DATABASE_URL: "postgresql+asyncpg://${ DB_USER } :${ DB_PASSWORD } @pgbouncer :6432/${ DB_NAME } "
102- NATS_URL: "nats://nats:4222"
103102 depends_on:
104103 nats:
105104 condition: service_healthy
106105 pgbouncer:
107106 condition: service_healthy
108- ports:
109- - "${ UVICORN_PORT } :${ UVICORN_PORT } "
110107 volumes:
111108 - /var/lib/pasarguard:/var/lib/pasarguard
112109 healthcheck:
@@ -123,8 +120,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
123120 env_file: .env
124121 environment:
125122 ROLE: node
126- SQLALCHEMY_DATABASE_URL: "postgresql+asyncpg://${ DB_USER } :${ DB_PASSWORD } @pgbouncer :6432/${ DB_NAME } "
127- NATS_URL: "nats://nats:4222"
128123 depends_on:
129124 panel:
130125 condition: service_healthy
@@ -138,8 +133,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
138133 env_file: .env
139134 environment:
140135 ROLE: scheduler
141- SQLALCHEMY_DATABASE_URL: "postgresql+asyncpg://${ DB_USER } :${ DB_PASSWORD } @pgbouncer :6432/${ DB_NAME } "
142- NATS_URL: "nats://nats:4222"
143136 depends_on:
144137 panel:
145138 condition: service_healthy
@@ -208,7 +201,7 @@ SQLALCHEMY_MAX_OVERFLOW = 30
208201 DB_NAME = "pasarguard"
209202 DB_USER = "pasarguard"
210203 DB_PASSWORD = "CHANGE_ME"
211- SQLALCHEMY_DATABASE_URL = "postgresql+asyncpg://pasarguard:CHANGE_ME@pgbouncer :6432/pasarguard"
204+ SQLALCHEMY_DATABASE_URL = "postgresql+asyncpg://pasarguard:CHANGE_ME@127.0.0.1 :6432/pasarguard"
212205 ```
213206
214207 ** docker-compose.yml**
@@ -234,17 +227,14 @@ SQLALCHEMY_MAX_OVERFLOW = 30
234227 image: pasarguard/panel:latest
235228 restart: unless-stopped
236229 env_file: .env
230+ network_mode: host
237231 environment:
238232 ROLE: backend
239- SQLALCHEMY_DATABASE_URL: "postgresql+asyncpg://${ DB_USER } :${ DB_PASSWORD } @pgbouncer :6432/${ DB_NAME } "
240- NATS_URL: "nats://nats:4222"
241233 depends_on:
242234 nats:
243235 condition: service_healthy
244236 pgbouncer:
245237 condition: service_healthy
246- ports:
247- - "${ UVICORN_PORT } :${ UVICORN_PORT } "
248238 volumes:
249239 - /var/lib/pasarguard:/var/lib/pasarguard
250240 healthcheck:
@@ -261,8 +251,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
261251 env_file: .env
262252 environment:
263253 ROLE: node
264- SQLALCHEMY_DATABASE_URL: "postgresql+asyncpg://${ DB_USER } :${ DB_PASSWORD } @pgbouncer :6432/${ DB_NAME } "
265- NATS_URL: "nats://nats:4222"
266254 depends_on:
267255 panel:
268256 condition: service_healthy
@@ -276,8 +264,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
276264 env_file: .env
277265 environment:
278266 ROLE: scheduler
279- SQLALCHEMY_DATABASE_URL: "postgresql+asyncpg://${ DB_USER } :${ DB_PASSWORD } @pgbouncer :6432/${ DB_NAME } "
280- NATS_URL: "nats://nats:4222"
281267 depends_on:
282268 panel:
283269 condition: service_healthy
@@ -347,7 +333,7 @@ SQLALCHEMY_MAX_OVERFLOW = 30
347333 DB_USER = "pasarguard"
348334 DB_PASSWORD = "CHANGE_ME"
349335 MYSQL_ROOT_PASSWORD = "CHANGE_ME"
350- SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://pasarguard:CHANGE_ME@mysql :3306/pasarguard"
336+ SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://pasarguard:CHANGE_ME@127.0.0.1 :3306/pasarguard"
351337 ```
352338
353339 ** docker-compose.yml**
@@ -373,17 +359,14 @@ SQLALCHEMY_MAX_OVERFLOW = 30
373359 image: pasarguard/panel:latest
374360 restart: unless-stopped
375361 env_file: .env
362+ network_mode: host
376363 environment:
377364 ROLE: backend
378- SQLALCHEMY_DATABASE_URL: "mysql+asyncmy://${ DB_USER } :${ DB_PASSWORD } @mysql :3306/${ DB_NAME } "
379- NATS_URL: "nats://nats:4222"
380365 depends_on:
381366 nats:
382367 condition: service_healthy
383368 mysql:
384369 condition: service_healthy
385- ports:
386- - "${ UVICORN_PORT } :${ UVICORN_PORT } "
387370 volumes:
388371 - /var/lib/pasarguard:/var/lib/pasarguard
389372 healthcheck:
@@ -400,8 +383,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
400383 env_file: .env
401384 environment:
402385 ROLE: node
403- SQLALCHEMY_DATABASE_URL: "mysql+asyncmy://${ DB_USER } :${ DB_PASSWORD } @mysql :3306/${ DB_NAME } "
404- NATS_URL: "nats://nats:4222"
405386 depends_on:
406387 panel:
407388 condition: service_healthy
@@ -415,8 +396,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
415396 env_file: .env
416397 environment:
417398 ROLE: scheduler
418- SQLALCHEMY_DATABASE_URL: "mysql+asyncmy://${ DB_USER } :${ DB_PASSWORD } @mysql :3306/${ DB_NAME } "
419- NATS_URL: "nats://nats:4222"
420399 depends_on:
421400 panel:
422401 condition: service_healthy
@@ -480,7 +459,7 @@ SQLALCHEMY_MAX_OVERFLOW = 30
480459 DB_USER = "pasarguard"
481460 DB_PASSWORD = "CHANGE_ME"
482461 MYSQL_ROOT_PASSWORD = "CHANGE_ME"
483- SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://pasarguard:CHANGE_ME@mariadb :3306/pasarguard"
462+ SQLALCHEMY_DATABASE_URL = "mysql+asyncmy://pasarguard:CHANGE_ME@127.0.0.1 :3306/pasarguard"
484463 ```
485464
486465 ** docker-compose.yml**
@@ -506,17 +485,14 @@ SQLALCHEMY_MAX_OVERFLOW = 30
506485 image: pasarguard/panel:latest
507486 restart: unless-stopped
508487 env_file: .env
488+ network_mode: host
509489 environment:
510490 ROLE: backend
511- SQLALCHEMY_DATABASE_URL: "mysql+asyncmy://${ DB_USER } :${ DB_PASSWORD } @mariadb :3306/${ DB_NAME } "
512- NATS_URL: "nats://nats:4222"
513491 depends_on:
514492 nats:
515493 condition: service_healthy
516494 mariadb:
517495 condition: service_healthy
518- ports:
519- - "${ UVICORN_PORT } :${ UVICORN_PORT } "
520496 volumes:
521497 - /var/lib/pasarguard:/var/lib/pasarguard
522498 healthcheck:
@@ -533,8 +509,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
533509 env_file: .env
534510 environment:
535511 ROLE: node
536- SQLALCHEMY_DATABASE_URL: "mysql+asyncmy://${ DB_USER } :${ DB_PASSWORD } @mariadb :3306/${ DB_NAME } "
537- NATS_URL: "nats://nats:4222"
538512 depends_on:
539513 panel:
540514 condition: service_healthy
@@ -548,8 +522,6 @@ SQLALCHEMY_MAX_OVERFLOW = 30
548522 env_file: .env
549523 environment:
550524 ROLE: scheduler
551- SQLALCHEMY_DATABASE_URL: "mysql+asyncmy://${ DB_USER } :${ DB_PASSWORD } @mariadb :3306/${ DB_NAME } "
552- NATS_URL: "nats://nats:4222"
553525 depends_on:
554526 panel:
555527 condition: service_healthy
0 commit comments