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 <cursoragent@cursor.com>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
.env
|
||||
*.env.local
|
||||
|
||||
# Generated from .env at dev/build time
|
||||
config.js
|
||||
|
||||
# Python
|
||||
__pycache__/
|
||||
.venv/
|
||||
|
||||
+4
-2
@@ -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;"]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;'
|
||||
"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Executable
+19
@@ -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" <<EOF
|
||||
window.SLAVIC_PULSE_CONFIG = {
|
||||
postVideoRedirectUrl: '${POST_VIDEO_REDIRECT_URL}'
|
||||
};
|
||||
EOF
|
||||
@@ -154,8 +154,11 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="/config.js"></script>
|
||||
<script>
|
||||
const config = window.SLAVIC_PULSE_CONFIG || {};
|
||||
const VIDEO_ID = 'kujXXtoHUbc';
|
||||
const POST_VIDEO_REDIRECT_URL = config.postVideoRedirectUrl || '';
|
||||
const BG_IMAGE = '/assets/imgs/www-bg-slavic-pulse-com-001.jpg';
|
||||
let player;
|
||||
|
||||
@@ -239,6 +242,9 @@
|
||||
function onPlayerStateChange(event) {
|
||||
if (event.data === YT.PlayerState.ENDED) {
|
||||
stageVideo.classList.remove('active');
|
||||
if (POST_VIDEO_REDIRECT_URL) {
|
||||
window.location.href = POST_VIDEO_REDIRECT_URL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user