diff --git a/.env.dev-remote.example b/.env.dev-remote.example index d5b8e1f..6357da9 100644 --- a/.env.dev-remote.example +++ b/.env.dev-remote.example @@ -1,6 +1,9 @@ # ===================================================================== -# DEV VPS (docker-compose.dev-remote.yml). Скопируй в .env прямо на -# сервере (в DEPLOY_DIR) — файл гитигнорится, в репозиторий не попадает. +# УСТАРЕЛО КАК ИНСТРУКЦИЯ: .env на dev VPS теперь собирает сам deploy.yml +# (job deploy-dev) из repo Variables/Secrets — руками копировать больше не +# нужно. Файл остаётся только как справочник по составу переменных. +# +# DEV VPS (docker-compose.dev-remote.yml). # # ВАЖНО: Telegram Login Widget не работает на голом IP — /setdomain в # BotFather принимает только доменное имя. На этот dev VPS (45.76.161.137) diff --git a/.env.example b/.env.example index 904ca2c..7a1c078 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,13 @@ +# ===================================================================== +# ЭТОТ ФАЙЛ БОЛЬШЕ НЕ КОПИРУЕТСЯ РУКАМИ НА СЕРВЕР. .env на проде (и на +# dev-стенде) теперь целиком собирается .gitea/workflows/deploy.yml (job +# deploy-prod/deploy-dev) из repo Variables/Secrets этого репозитория при +# каждом деплое — см. комментарии в самом deploy.yml, там точная карта +# "какая переменная .env ← какой vars.*/secrets.*". Файл ниже остаётся +# только как справочник по тому, какие ключи вообще существуют, и для +# локальной разработки (docker-compose.yml, см. .env.dev.example). +# ===================================================================== + # ===================================================================== # === DATABASE CONFIGURATION === # ===================================================================== diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index d3974cc..1e53702 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -9,6 +9,11 @@ name: Deploy # Один пайплайн, две джобы: # - deploy-dev: авто, срабатывает после успешного "Build & Push Image" на main. # - deploy-prod: вручную из вкладки Actions ("Run workflow"), как и раньше. +# +# .env на обоих VPS теперь полностью собирается этим workflow из repo +# Variables/Secrets (тот же принцип, что и в netrunner-data) — руками на +# сервере ничего не создаётся и не редактируется, весь конфиг живёт в +# Settings → Actions этого репозитория. on: workflow_run: workflows: ["Build & Push Image"] @@ -45,16 +50,43 @@ jobs: target: "/root/netrunner-core" strip_components: 0 - - name: Remote deploy via SSH + - name: Write .env and deploy via SSH uses: appleboy/ssh-action@v1 with: host: ${{ vars.DEV_VPS_IP }} username: root key: ${{ secrets.DEV_SSH_PRIVATE_KEY }} + envs: "DB_PASSWORD,CF_API_TOKEN,JWT_SECRET,ARGON_SALT,TON_MASTER_WALLET,PROXY_INTERNAL_SECRET,CRYPTOBOT_API_TOKEN,TELOXIDE_TOKEN,BOT_USERNAME" script: | set -e cd /root/netrunner-core + # .env — статические значения (никогда не меняются между деплоями) + # зашиты здесь же литералом, секреты/domain-специфичное — из vars/secrets. + cat > .env < .env < .env < .env <