Files
NewTube/docker-compose/init.sh
T
bruno 97e5de74f5
CI / build-and-test (push) Successful in 13m34s
feat(channel): page details chaine multi-providers avec onglets et infinite scroll
- Strategy Pattern front: ChannelProviderInterface + 6 providers (yt/dm/tw/pt/od/ru) + factory (ids longs/courts)
- ChannelContentService: cache par onglet/tri/recherche (TTL 5min), pagination nextPage
- ChannelPage: header (banniere/avatar/subs/description ...plus), tabs dynamiques par capabilities, grilles videos/shorts 9:16/playlists/live, recherche debounced, tri recent/populaire, infinite scroll IntersectionObserver, skeletons/empty/error
- Backend: GET /api/channels/:provider/:id/content (videos/shorts/playlists/live) natif par provider
2026-09-25 10:15:12 -04:00

56 lines
2.0 KiB
Bash

#!/bin/bash
HOSTNAME=$(hostname)
GEMINI_API_KEY="AIzaSyALfJiYQb6QYUXyUM2AKd7sV1nWV0JALJw"
YOUTUBE_API_KEY="AIzaSyBXL5y8bRMO5WJwIhPK-fhrEPu2aROuKag"
YOUTUBE_API_KEYS='["AIzaSyBXL5y8bRMO5WJwIhPK-fhrEPu2aROuKag", "AIzaSyC1rV2Er1n1FHZQoGgQhOxFc3nSlQWhgks", "AIzaSyBZxgB2s1kp9qZhfGRrp69Mdf_9krwppVI"]'
VIMEO_ACCESS_TOKEN="40e09bf643b2ecddf68ed0f5d1574c72"
TWITCH_CLIENT_ID="ikxrqgjivwn4rurhjy2mcfkcq62y3m"
TWITCH_CLIENT_SECRET="kezgpj5vqrk96tu2x3ghmhwipg980p"
YT_CACHE_TTL_MS="1800000"
JWT_SECRET="Ceci-est-mon-programme-newtube-je-sais-que-c-est-moche"
ACCESS_TTL_MIN="15"
REFRESH_TTL_DAYS="2"
REMEMBER_TTL_DAYS="30"
PORT="4000"
NODE_ENV="production"
TZ="America/Montreal"
DEFAULT_INTERFACE=$(ip route show default | awk '{print $5}'|head -n 1)
# Cross-platform IP detection for Debian and Alpine
if [ -f /etc/alpine-release ]; then
# Alpine Linux
SERVER_IP=$(ip -o -4 addr show $DEFAULT_INTERFACE | awk '{print $4}' | cut -d/ -f1)
else
# Debian-based systems
SERVER_IP=$(hostname -I | tr ' ' '\n' | grep -E "^$(ip -o -4 addr show $DEFAULT_INTERFACE | awk '{print $4}' | cut -d/ -f1)")
fi
DIR_NEWTUBE=/DOCKER_CONFIG/newtube-angular
echo "NGINX_HOSTNAME=$HOSTNAME" > .env
echo "NGINX_SERVER_IP=$SERVER_IP" >> .env
echo "DIR_NEWTUBE=$DIR_NEWTUBE" >> .env
echo "GEMINI_API_KEY=$GEMINI_API_KEY" >> .env
echo "YOUTUBE_API_KEY=$YOUTUBE_API_KEY" >> .env
echo "YOUTUBE_API_KEYS=$YOUTUBE_API_KEYS" >> .env
echo "VIMEO_ACCESS_TOKEN=$VIMEO_ACCESS_TOKEN" >> .env
echo "TWITCH_CLIENT_ID=$TWITCH_CLIENT_ID" >> .env
echo "TWITCH_CLIENT_SECRET=$TWITCH_CLIENT_SECRET" >> .env
echo "YT_CACHE_TTL_MS=$YT_CACHE_TTL_MS" >> .env
echo "JWT_SECRET=$JWT_SECRET" >> .env
echo "ACCESS_TTL_MIN=$ACCESS_TTL_MIN" >> .env
echo "REFRESH_TTL_DAYS=$REFRESH_TTL_DAYS" >> .env
echo "REMEMBER_TTL_DAYS=$REMEMBER_TTL_DAYS" >> .env
echo "PORT=$PORT" >> .env
echo "NODE_ENV=$NODE_ENV" >> .env
echo "TZ=$TZ" >> .env
sudo mkdir -p $DIR_NEWTUBE
sudo mkdir -p $DIR_NEWTUBE/db
sudo mkdir -p $DIR_NEWTUBE/tmp/downloads
sudo mkdir -p $DIR_NEWTUBE/assets
sudo mkdir -p $DIR_NEWTUBE/public