From 833e248518d92bfc523b4d047e50b4bf7f137ada Mon Sep 17 00:00:00 2001 From: tomasz-syn-grzegorza Date: Fri, 26 Jun 2026 15:36:38 +0200 Subject: [PATCH] Add post-video redirect to YouTube URL from env config. After the intro finishes, users are redirected to POST_VIDEO_REDIRECT_URL loaded via generated config.js for dev, Docker, and Dokploy deployments. Co-authored-by: Cursor --- .env.example | 4 ++++ .gitignore | 3 +++ Dockerfile | 6 ++++-- dev.sh | 17 ++++++++++++++++- docker-compose-example/.env.example | 4 ++++ docker-compose-example/docker-compose.yml | 5 +++++ docker-compose.dev.yml | 5 +++++ docker-compose.yml | 4 ++++ generate-config.sh | 19 +++++++++++++++++++ index.html | 6 ++++++ 10 files changed, 70 insertions(+), 3 deletions(-) create mode 100755 generate-config.sh diff --git a/.env.example b/.env.example index 7e3d2df..75350f6 100644 --- a/.env.example +++ b/.env.example @@ -6,3 +6,7 @@ # Port na hoście (localhost). W kontenerze nginx zawsze nasłuchuje na 80. # Mapowanie w docker-compose.yml: ${FRONTEND_PORT}:80 FRONTEND_PORT=8082 + +# --- Po zakończeniu intro wideo --- +# Adres docelowy przekierowania po zakończeniu odtwarzania filmu. +POST_VIDEO_REDIRECT_URL=https://www.youtube.com/watch?v=kujXXtoHUbc diff --git a/.gitignore b/.gitignore index 958ef40..4c161e8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,9 @@ .env *.env.local +# Generated from .env at dev/build time +config.js + # Python __pycache__/ .venv/ diff --git a/Dockerfile b/Dockerfile index 442925d..5c33413 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,11 @@ COPY index.html /usr/share/nginx/html/index.html COPY site.webmanifest /usr/share/nginx/html/site.webmanifest COPY assets/ /usr/share/nginx/html/assets/ +# Generate config.js from env vars at container start +COPY generate-config.sh /docker-entrypoint.d/99-generate-config.sh +RUN chmod +x /docker-entrypoint.d/99-generate-config.sh + EXPOSE 80 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget -qO- http://localhost:80/ || exit 1 - -CMD ["nginx", "-g", "daemon off;"] diff --git a/dev.sh b/dev.sh index eac5e4d..398ae95 100755 --- a/dev.sh +++ b/dev.sh @@ -10,8 +10,18 @@ if [[ ! -f .env ]]; then echo "Utworzono .env z .env.example" fi +generate_config() { + set -a + # shellcheck disable=SC1091 + source .env + set +a + ./generate-config.sh config.js +} + case "${1:-up}" in up) + chmod +x generate-config.sh + generate_config $COMPOSE up -d echo "" echo "Dev server: http://localhost:${FRONTEND_PORT:-8082}" @@ -24,14 +34,19 @@ case "${1:-up}" in $COMPOSE logs -f ;; restart) + generate_config $COMPOSE restart ;; + config) + generate_config + echo "Wygenerowano config.js (POST_VIDEO_REDIRECT_URL z .env)." + ;; reload-nginx) docker exec slavic-pulse-com-frontend nginx -s reload echo "Nginx przeładowany (po zmianie default.conf)." ;; *) - echo "Użycie: $0 [up|down|logs|restart|reload-nginx]" + echo "Użycie: $0 [up|down|logs|restart|reload-nginx|config]" exit 1 ;; esac diff --git a/docker-compose-example/.env.example b/docker-compose-example/.env.example index 5f4be81..5adfb60 100644 --- a/docker-compose-example/.env.example +++ b/docker-compose-example/.env.example @@ -7,3 +7,7 @@ # Mapowanie w docker-compose.yml: ${FRONTEND_PORT}:80 # Dokploy/Traefik dodatkowo routuje po FQDN do wewnętrznego portu 80 kontenera. FRONTEND_PORT=8082 + +# --- Po zakończeniu intro wideo --- +# Adres docelowy przekierowania po zakończeniu odtwarzania filmu. +POST_VIDEO_REDIRECT_URL=https://www.youtube.com/watch?v=kujXXtoHUbc diff --git a/docker-compose-example/docker-compose.yml b/docker-compose-example/docker-compose.yml index 548b794..2ab6137 100644 --- a/docker-compose-example/docker-compose.yml +++ b/docker-compose-example/docker-compose.yml @@ -18,6 +18,9 @@ services: ports: - "${FRONTEND_PORT:-8080}:80" + environment: + POST_VIDEO_REDIRECT_URL: ${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc} + command: > sh -c " apk add --no-cache git && @@ -28,6 +31,8 @@ services: cp -r /app/assets /usr/share/nginx/html/assets && rm /etc/nginx/conf.d/default.conf && cp /app/default.conf /etc/nginx/conf.d/default.conf && + chmod +x /app/generate-config.sh && + POST_VIDEO_REDIRECT_URL=\"$${POST_VIDEO_REDIRECT_URL}\" /app/generate-config.sh /usr/share/nginx/html/config.js && nginx -g 'daemon off;' " diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 5ce27e1..3095e50 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -5,8 +5,13 @@ services: frontend: image: nginx:1.27-alpine build: !reset null + env_file: + - .env + environment: + POST_VIDEO_REDIRECT_URL: ${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc} volumes: - ./index.html:/usr/share/nginx/html/index.html:ro + - ./config.js:/usr/share/nginx/html/config.js:ro - ./site.webmanifest:/usr/share/nginx/html/site.webmanifest:ro - ./assets:/usr/share/nginx/html/assets:ro - ./default.conf:/etc/nginx/conf.d/default.conf:ro diff --git a/docker-compose.yml b/docker-compose.yml index f2c957d..ae1b96b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,5 +8,9 @@ services: dockerfile: Dockerfile container_name: slavic-pulse-com-frontend restart: unless-stopped + env_file: + - .env + environment: + POST_VIDEO_REDIRECT_URL: ${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc} ports: - "${FRONTEND_PORT:-8080}:80" diff --git a/generate-config.sh b/generate-config.sh new file mode 100755 index 0000000..e09130b --- /dev/null +++ b/generate-config.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# Generuje config.js z zmiennych środowiskowych (np. z pliku .env). +set -eu + +if [ -n "${1:-}" ]; then + OUTPUT="$1" +elif [ -d /usr/share/nginx/html ]; then + OUTPUT="/usr/share/nginx/html/config.js" +else + OUTPUT="config.js" +fi + +POST_VIDEO_REDIRECT_URL="${POST_VIDEO_REDIRECT_URL:-https://www.youtube.com/watch?v=kujXXtoHUbc}" + +cat > "$OUTPUT" < +