Align Dokploy compose with Traefik: expose port 80 only, no host mapping.

Remove FRONTEND_PORT from deployment compose; document Container Port 80 in Dokploy UI and clarify Gitea OAuth vs runtime git clone auth.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-27 15:31:07 +02:00
parent 02d7f09824
commit 930e18d761
3 changed files with 24 additions and 26 deletions
+2 -5
View File
@@ -2,13 +2,10 @@
# Copy to .env before deploy if needed. # Copy to .env before deploy if needed.
# Never commit .env with real credentials to version control. # Never commit .env with real credentials to version control.
# --- Frontend Server ---
# Uwaga: 8080 może być zajęty (np. agencja-ai). Użyj wolnego portu, np. 8082.
FRONTEND_PORT=8082
# --- Gitea (opcjonalnie — tylko gdy repo jest prywatne) --- # --- Gitea (opcjonalnie — tylko gdy repo jest prywatne) ---
# Domyślnie clone używa publicznego URL bez auth. # Domyślnie clone używa publicznego URL bez auth.
# Dla prywatnego repo ustaw URL z tokenem (Deploy Token lub PAT w Gitea): # Dokploy Gitea Provider (OAuth) NIE autoryzuje git clone wewnątrz kontenera —
# nadal potrzebujesz publicznego repo LUB tokena poniżej.
# GITEA_REPO_URL=https://oauth2:TWÓJ_TOKEN@gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/site-slavic-pulse-com.git # GITEA_REPO_URL=https://oauth2:TWÓJ_TOKEN@gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/site-slavic-pulse-com.git
# --- Strona (meta, SEO, PWA) --- # --- Strona (meta, SEO, PWA) ---
+14 -11
View File
@@ -22,12 +22,18 @@ site-slavic-pulse-com/
## Dokploy deployment ## Dokploy deployment
**Kroki w Dokploy UI:** **Kroki w Dokploy UI:**
1. Nowa aplikacja → wklej `docker-compose-example/docker-compose.yml` 1. Nowa aplikacja (Compose) → wklej `docker-compose-example/docker-compose.yml`
2. Wklej `.env` (na podstawie `.env.example`) — ustaw `VIDEO_ID_*`, opisy SEO, port 2. Wklej `.env` (na podstawie `.env.example`) — ustaw `VIDEO_ID_*`, opisy SEO
3. Ustaw FQDN (np. `slavic-pulse.com`) 3. **Domains** → dodaj FQDN (np. `slavic-pulse.com`), **Container Port = `80`**
4. Deploy 4. Traefik routuje ruch HTTPS → port 80 kontenera (bez mapowania portu na hosta)
5. Deploy
**Porty:** `${FRONTEND_PORT}:80` (domyślnie `8082:80`). Traefik routuje po FQDN do portu 80 kontenera. **Porty:** nie używaj `ports:` w compose — Traefik/Dokploy łączy się z wewnętrznym `:80`.
W `docker ps` kolumna PORTS może być pusta — to normalne przy routingu przez Traefik.
**Gitea Provider w Dokploy** (OAuth) — autoryzuje Dokploy do listowania repo i deployu z UI,
ale **nie** zastępuje credentials dla `git clone` wewnątrz kontenera przy starcie.
Dla prywatnego repo: ustaw repo jako Public **lub** dodaj `GITEA_REPO_URL` z Deploy Token w `.env`.
## Jak to działa ## Jak to działa
@@ -41,7 +47,6 @@ site-slavic-pulse-com/
| Zmienna | Opis | | Zmienna | Opis |
|---------|------| |---------|------|
| `FRONTEND_PORT` | Port hosta (np. `8082`; unikaj konfliktu z `8080`) |
| `GITEA_REPO_URL` | Opcjonalnie — URL clone z tokenem dla prywatnego repo | | `GITEA_REPO_URL` | Opcjonalnie — URL clone z tokenem dla prywatnego repo |
| `VIDEO_ID_FHD` / `VIDEO_ID_VERTICAL` | ID shortów YouTube | | `VIDEO_ID_FHD` / `VIDEO_ID_VERTICAL` | ID shortów YouTube |
| `POST_VIDEO_REDIRECT_URL_*` | URL po zakończeniu filmu | | `POST_VIDEO_REDIRECT_URL_*` | URL po zakończeniu filmu |
@@ -70,12 +75,10 @@ fatal: could not read Username for 'https://gitea.expert-it.agency-ai.dev': No s
GITEA_REPO_URL=https://oauth2:TWÓJ_TOKEN@gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/site-slavic-pulse-com.git GITEA_REPO_URL=https://oauth2:TWÓJ_TOKEN@gitea.expert-it.agency-ai.dev/tomasz-syn-grzegorza/site-slavic-pulse-com.git
``` ```
### Konflikt portu 8080 ### Brak portów w `docker ps` (kolumna PORTS pusta)
Na serwerze `8080` może być zajęty (np. `agencja-ai-frontend`). Ustaw w `.env`: Przy Traefik/Dokploy bez `ports:` w compose — **to oczekiwane**.
```env Sprawdź w Dokploy UI: domena → Container Port = **80**, kontener `Up (healthy)`.
FRONTEND_PORT=8082
```
### Zmiana konfiguracji po deployu ### Zmiana konfiguracji po deployu
+8 -10
View File
@@ -1,15 +1,12 @@
# ============================================================ # ============================================================
# Slavic Pulse - Docker Compose (Dokploy / manual) # Slavic Pulse - Docker Compose (Dokploy / manual)
# ============================================================ # ============================================================
# Dokploy-compatible pattern: uses pre-built image + runtime git clone. # Dokploy + Traefik: NIE mapuj portu na hosta (ports:).
# Dokploy only copies docker-compose.yml + .env to the server, so local # W UI Dokploy ustaw domenę i Container Port = 80 — Traefik routuje po FQDN.
# build context with a Dockerfile does not work. # Wewnętrznie nginx nasłuchuje na :80 (expose poniżej).
# #
# Port hosta: FRONTEND_PORT z .env (domyślnie 8082) → nginx w kontenerze na porcie 80. # Runtime git clone — repozytorium musi być publiczne LUB ustaw GITEA_REPO_URL w .env
# Dokploy/Traefik routuje po FQDN do wewnętrznego portu 80 kontenera. # (patrz README — prywatne repo bez tokenu = exit 128, restart loop).
#
# WAŻNE: repozytorium Gitea musi być publiczne LUB ustaw GITEA_REPO_URL z tokenem w .env
# (patrz README — bez tego git clone kończy się exit 128 i kontener restartuje w pętli).
# ============================================================ # ============================================================
services: services:
@@ -17,8 +14,9 @@ services:
image: nginx:1.27-alpine image: nginx:1.27-alpine
container_name: slavic-pulse-com-frontend container_name: slavic-pulse-com-frontend
restart: unless-stopped restart: unless-stopped
ports:
- "${FRONTEND_PORT:-8082}:80" expose:
- "80"
env_file: env_file:
- .env - .env