Files
site-slavic-pulse-com/docker-compose-example
tomasz-syn-grzegorza d87ad674ee Add FACEBOOK_DESCRIPTION for short Open Graph preview text.
Use a dedicated og:description variable separate from SITE_DESCRIPTION, with fallback when unset.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 16:02:29 +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 (Compose) → wklej docker-compose-example/docker-compose.yml
  2. Wklej .env (na podstawie .env.example) — ustaw VIDEO_ID_*, opisy SEO
  3. Domains → dodaj FQDN (np. slavic-pulse.com), Container Port = 80
  4. Traefik routuje ruch HTTPS → port 80 kontenera (bez mapowania portu na hosta)
  5. Deploy

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

  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
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

Brak portów w docker ps (kolumna PORTS pusta)

Przy Traefik/Dokploy bez ports: w compose — to oczekiwane. Sprawdź w Dokploy UI: domena → Container Port = 80, kontener Up (healthy).

Zmiana konfiguracji po deployu

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