Files
site-slavic-pulse-com/docker-compose-example
tomasz-syn-grzegorza 02d7f09824 Fix Dokploy deploy: support private Gitea repo and document exit 128.
Add GITEA_REPO_URL for authenticated clone, improve startup logging, default FRONTEND_PORT to 8082, and update deployment README.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 15:07:36 +02:00
..

Slavic Pulse - Frontend (Dokploy Deployment)

Statyczna strona z intro YouTube (short FHD 16:9 lub vertical 9:16 — wybór po formacie viewportu). Tło przed filmem to miniaturka z YouTube. Konfiguracja w .env, HTML generowany przy starcie kontenera.

Struktura projektu

site-slavic-pulse-com/
├── docker-compose.yml              # Lokalny dev (build z Dockerfile)
├── Dockerfile
├── default.conf
├── index.html.template             # Szablon strony
├── generate-from-env.sh            # Generator HTML z .env
├── assets/imgs/favico/             # Favicony
├── site.webmanifest.template
└── docker-compose-example/         # Pliki deploymentowe Dokploy
    ├── docker-compose.yml
    ├── .env.example
    └── README.md

Dokploy deployment

Kroki w Dokploy UI:

  1. Nowa aplikacja → wklej docker-compose-example/docker-compose.yml
  2. Wklej .env (na podstawie .env.example) — ustaw VIDEO_ID_*, opisy SEO, port
  3. Ustaw FQDN (np. slavic-pulse.com)
  4. Deploy

Porty: ${FRONTEND_PORT}:80 (domyślnie 8082:80). Traefik routuje po FQDN do portu 80 kontenera.

Jak to działa

  1. Start konteneragit clone repozytorium z Gitea
  2. generate-from-env.sh — buduje index.html i site.webmanifest ze zmiennych .env
  3. Tło — miniaturka YouTube (img.youtube.com) dopasowana do FHD/vertical
  4. Intro wideo — YouTube IFrame API, autoplay
  5. Po filmie — przekierowanie (jeśli POST_VIDEO_REDIRECT_ENABLED=true) lub tło z miniaturki

Konfiguracja (.env)

Zmienna Opis
FRONTEND_PORT Port hosta (np. 8082; unikaj konfliktu z 8080)
GITEA_REPO_URL Opcjonalnie — URL clone z tokenem dla prywatnego repo
VIDEO_ID_FHD / VIDEO_ID_VERTICAL ID shortów YouTube
POST_VIDEO_REDIRECT_URL_* URL po zakończeniu filmu
POST_VIDEO_REDIRECT_ENABLED true = redirect, false = zostaje tło

Rozwiązywanie problemów

Kontener Restarting (128), brak portów w docker ps

Przyczyna: git clone nie może pobrać repozytorium (najczęściej prywatne repo bez credentials).

Diagnostyka na serwerze:

docker logs slavic-pulse-com-frontend --tail 50

Typowy błąd:

fatal: could not read Username for 'https://gitea.expert-it.agency-ai.dev': No such device or address

Rozwiązanie A (najprostsze): ustaw repozytorium jako Public w Gitea → Settings → Repository → Make Repository Public → redeploy.

Rozwiązanie B (repo prywatne): w Gitea utwórz Deploy Token / PAT i dodaj do .env w Dokploy:

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

Na serwerze 8080 może być zajęty (np. agencja-ai-frontend). Ustaw w .env:

FRONTEND_PORT=8082

Zmiana konfiguracji po deployu

  1. Edytuj .env w Dokploy
  2. Redeploy / restart kontenera (przy starcie ponownie klonuje repo i generuje HTML)