Fix DB DNS with vpn_internal compose network

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-25 20:54:03 +03:00
co-authored by Cursor
parent dcdd1f6898
commit 85a2800870
2 changed files with 13 additions and 4 deletions
+3 -3
View File
@@ -45,9 +45,9 @@ POSTGRES_PASSWORD=надежный-пароль-бд
1. В Dokploy Domain укажите сервис **`panel`**, порт **`8000`** (не `postgres`). 1. В Dokploy Domain укажите сервис **`panel`**, порт **`8000`** (не `postgres`).
2. Откройте логи сервиса `panel` — должны быть строки `Database is ready` и `Starting uvicorn`. 2. Откройте логи сервиса `panel` — должны быть строки `Database is ready` и `Starting uvicorn`.
3. Ошибка `Name or service not known` значит `panel` не видит хост БД: 3. Ошибка `Name or service not known` значит `panel` не видит хост БД:
- оба сервиса должны быть в сети `dokploy-network` (уже в compose); - `panel` и `postgres` связаны через внутреннюю сеть `vpn_internal`;
- на сервере один раз: `docker network create dokploy-network` (Dokploy обычно создаёт сам); - `panel` также в `dokploy-network` для домена;
- если сервис БД называется иначе — задайте `POSTGRES_HOST=<имя сервиса>`. - если БД внешняя (Dokploy Postgres) — задайте `POSTGRES_HOST` на её хост.
4. Redeploy после правок. 4. Redeploy после правок.
Админ при каждом старте **синхронизируется из ENV**. Админ при каждом старте **синхронизируется из ENV**.
+10 -1
View File
@@ -22,6 +22,7 @@ services:
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-change-me-strong-password} ADMIN_PASSWORD: ${ADMIN_PASSWORD:-change-me-strong-password}
ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@example.com} ADMIN_EMAIL: ${ADMIN_EMAIL:-admin@example.com}
# hostname of the compose service below
POSTGRES_HOST: ${POSTGRES_HOST:-postgres} POSTGRES_HOST: ${POSTGRES_HOST:-postgres}
POSTGRES_USER: ${POSTGRES_USER:-vpn} POSTGRES_USER: ${POSTGRES_USER:-vpn}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-vpn} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-vpn}
@@ -44,6 +45,7 @@ services:
- wg_data:/data/wireguard - wg_data:/data/wireguard
- awg_data:/data/amneziawg - awg_data:/data/amneziawg
networks: networks:
- vpn_internal
- dokploy-network - dokploy-network
healthcheck: healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"] test: ["CMD", "curl", "-f", "http://127.0.0.1:8000/health"]
@@ -62,7 +64,10 @@ services:
volumes: volumes:
- postgres_data:/var/lib/postgresql/data - postgres_data:/var/lib/postgresql/data
networks: networks:
- dokploy-network vpn_internal:
aliases:
- postgres
- db
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
interval: 5s interval: 5s
@@ -71,6 +76,10 @@ services:
start_period: 10s start_period: 10s
networks: networks:
# Compose DNS (panel -> postgres) works on this project network
vpn_internal:
driver: bridge
# Traefik / Dokploy public routing
dokploy-network: dokploy-network:
external: true external: true