From 5d383397fa0c79992d12443d4d8af486f7e4a418 Mon Sep 17 00:00:00 2001 From: karimch-50 Date: Sun, 4 Oct 2026 17:52:09 +0000 Subject: [PATCH] fix: update environment variable syntax and permissions in deployment script --- .github/workflows/action.yml | 69 +++++++++++++++++++----------------- docker-compose.yml | 6 ++-- 2 files changed, 40 insertions(+), 35 deletions(-) diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index d1d3eb5..65f9a77 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -178,43 +178,43 @@ jobs: cd /home/ubuntu/backend cat << 'EOF' > .env - SPRING_DATASOURCE_URL= ${{ secrets.SPRING_DATASOURCE_URL }} - SPRING_DATASOURCE_USERNAME= ${{ secrets.SPRING_DATASOURCE_USERNAME }} - SPRING_DATASOURCE_PASSWORD= ${{ secrets.SPRING_DATASOURCE_PASSWORD }} - SECURITY_JWT_SECRET_KEY= ${{ secrets.SECURITY_JWT_SECRET_KEY }} - SECURITY_JWT_EXPIRATION_TIME= ${{ secrets.SECURITY_JWT_EXPIRATION_TIME }} - SECURITY_JWT_REFRESH_EXPIRATION_TIME= ${{ secrets.SECURITY_JWT_REFRESH_EXPIRATION_TIME }} - OAUTH_42_CLIENT_ID= ${{ secrets.OAUTH_42_CLIENT_ID }} - OAUTH_42_CLIENT_SECRET= ${{ secrets.OAUTH_42_CLIENT_SECRET }} - OAUTH_42_REDIRECT_URI= ${{ secrets.OAUTH_42_REDIRECT_URI }} - OAUTH_42_AUTHORIZE_URL= ${{ secrets.OAUTH_42_AUTHORIZE_URL }} - OAUTH_42_TOKEN_URL= ${{ secrets.OAUTH_42_TOKEN_URL }} - OAUTH_42_ME_URL= ${{ secrets.OAUTH_42_ME_URL }} - OAUTH_GOOGLE_CLIENT_ID= ${{ secrets.OAUTH_GOOGLE_CLIENT_ID }} - OAUTH_GOOGLE_CLIENT_SECRET= ${{ secrets.OAUTH_GOOGLE_CLIENT_SECRET }} - OAUTH_GOOGLE_REDIRECT_URI= ${{ secrets.OAUTH_GOOGLE_REDIRECT_URI }} - OAUTH_GOOGLE_AUTHORIZE_URL= ${{ secrets.OAUTH_GOOGLE_AUTHORIZE_URL }} - OAUTH_GOOGLE_TOKEN_URL= ${{ secrets.OAUTH_GOOGLE_TOKEN_URL }} - OAUTH_GOOGLE_USERINFO_URL= ${{ secrets.OAUTH_GOOGLE_USERINFO_URL }} + SPRING_DATASOURCE_URL=${{ secrets.SPRING_DATASOURCE_URL }} + SPRING_DATASOURCE_USERNAME=${{ secrets.SPRING_DATASOURCE_USERNAME }} + SPRING_DATASOURCE_PASSWORD=${{ secrets.SPRING_DATASOURCE_PASSWORD }} + SECURITY_JWT_SECRET_KEY=${{ secrets.SECURITY_JWT_SECRET_KEY }} + SECURITY_JWT_EXPIRATION_TIME=${{ secrets.SECURITY_JWT_EXPIRATION_TIME }} + SECURITY_JWT_REFRESH_EXPIRATION_TIME=${{ secrets.SECURITY_JWT_REFRESH_EXPIRATION_TIME }} + OAUTH_42_CLIENT_ID=${{ secrets.OAUTH_42_CLIENT_ID }} + OAUTH_42_CLIENT_SECRET=${{ secrets.OAUTH_42_CLIENT_SECRET }} + OAUTH_42_REDIRECT_URI=${{ secrets.OAUTH_42_REDIRECT_URI }} + OAUTH_42_AUTHORIZE_URL=${{ secrets.OAUTH_42_AUTHORIZE_URL }} + OAUTH_42_TOKEN_URL=${{ secrets.OAUTH_42_TOKEN_URL }} + OAUTH_42_ME_URL=${{ secrets.OAUTH_42_ME_URL }} + OAUTH_GOOGLE_CLIENT_ID=${{ secrets.OAUTH_GOOGLE_CLIENT_ID }} + OAUTH_GOOGLE_CLIENT_SECRET=${{ secrets.OAUTH_GOOGLE_CLIENT_SECRET }} + OAUTH_GOOGLE_REDIRECT_URI=${{ secrets.OAUTH_GOOGLE_REDIRECT_URI }} + OAUTH_GOOGLE_AUTHORIZE_URL=${{ secrets.OAUTH_GOOGLE_AUTHORIZE_URL }} + OAUTH_GOOGLE_TOKEN_URL=${{ secrets.OAUTH_GOOGLE_TOKEN_URL }} + OAUTH_GOOGLE_USERINFO_URL=${{ secrets.OAUTH_GOOGLE_USERINFO_URL }} OAUTH_FACEBOOK_CLIENT_ID=${{ secrets.OAUTH_FACEBOOK_CLIENT_ID }} OAUTH_FACEBOOK_CLIENT_SECRET=${{ secrets.OAUTH_FACEBOOK_CLIENT_SECRET }} OAUTH_FACEBOOK_AUTHORIZE_URL=${{ secrets.OAUTH_FACEBOOK_AUTHORIZE_URL }} OAUTH_FACEBOOK_TOKEN_URL=${{ secrets.OAUTH_FACEBOOK_TOKEN_URL }} OAUTH_FACEBOOK_USERINFO_URL=${{ secrets.OAUTH_FACEBOOK_USERINFO_URL }} OAUTH_FACEBOOK_REDIRECT_URI=${{ secrets.OAUTH_FACEBOOK_REDIRECT_URI }} - MAIL_HOST= ${{ secrets.MAIL_HOST }} - MAIL_PORT= ${{ secrets.MAIL_PORT }} - MAIL_USERNAME= ${{ secrets.MAIL_USERNAME }} - MAIL_PASSWORD= ${{ secrets.MAIL_PASSWORD }} - CORS_ALLOWED_ORIGINS= ${{ secrets.CORS_ALLOWED_ORIGINS }} - IMG_STORAGE_PATH= ${{ secrets.IMG_STORAGE_PATH }} - VIDEO_STORAGE_PATH= ${{ secrets.VIDEO_STORAGE_PATH }} - SUBTITLE_STORAGE_PATH= ${{ secrets.SUBTITLE_STORAGE_PATH }} - POSTGRES_DB= ${{ secrets.POSTGRES_DB }} - POSTGRES_USER= ${{ secrets.POSTGRES_USER }} - POSTGRES_PASSWORD= ${{ secrets.POSTGRES_PASSWORD }} - APP_COOKIE_SECURE= ${{ secrets.APP_COOKIE_SECURE }} - APP_COOKIE_NAME= ${{ secrets.APP_COOKIE_NAME }} + MAIL_HOST=${{ secrets.MAIL_HOST }} + MAIL_PORT=${{ secrets.MAIL_PORT }} + MAIL_USERNAME=${{ secrets.MAIL_USERNAME }} + MAIL_PASSWORD=${{ secrets.MAIL_PASSWORD }} + CORS_ALLOWED_ORIGINS=${{ secrets.CORS_ALLOWED_ORIGINS }} + IMG_STORAGE_PATH=${{ secrets.IMG_STORAGE_PATH }} + VIDEO_STORAGE_PATH=${{ secrets.VIDEO_STORAGE_PATH }} + SUBTITLE_STORAGE_PATH=${{ secrets.SUBTITLE_STORAGE_PATH }} + POSTGRES_DB=${{ secrets.POSTGRES_DB }} + POSTGRES_USER=${{ secrets.POSTGRES_USER }} + POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }} + APP_COOKIE_SECURE=true + APP_COOKIE_NAME=${{ secrets.APP_COOKIE_NAME }} TMDB_ACCESS_TOKEN=${{ secrets.TMDB_ACCESS_TOKEN }} TMDB_BASE_URL=${{ secrets.TMDB_BASE_URL }} TMDB_IMAGE_BASE_URL=${{ secrets.TMDB_IMAGE_BASE_URL }} @@ -245,7 +245,10 @@ jobs: BT_PEER_LOG_LEVEL=${{ secrets.BT_PEER_LOG_LEVEL }} BT_NET_LOG_LEVEL=${{ secrets.BT_NET_LOG_LEVEL }} EOF - + + chmod 600 .env + + docker network inspect filmexa-net >/dev/null 2>&1 || docker network create filmexa-net docker compose pull docker compose up -d --remove-orphans - docker image prune -f \ No newline at end of file + docker image prune -f diff --git a/docker-compose.yml b/docker-compose.yml index 48fc004..1cd6da2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,9 +21,11 @@ services: env_file: - ./.env volumes: - # Downloaded movies + the transcoded HLS cache must survive container - # restarts, otherwise every redeploy re-downloads and re-encodes. + # Application storage must survive container recreation and redeployment. - movie_data:/data/movies + ports: + - "6891-6896:6891-6896/tcp" + - "49001-49006:49001-49006/udp" depends_on: - postgres networks: