Переименовать GITEA_REGISTRY_TOKEN → GT_REGISTRY_TOKEN (правила именования Gitea не пускают префикс GITEA_)
This commit is contained in:
+1
-1
@@ -123,7 +123,7 @@ COOKIE_SECURE=true
|
|||||||
# Токен Gitea (право write:package) — нужен самому бэкенду в рантайме для
|
# Токен Gitea (право write:package) — нужен самому бэкенду в рантайме для
|
||||||
# провижининга новых нод (см. NodeService::provision_node_via_ssh, шлёт этот
|
# провижининга новых нод (см. NodeService::provision_node_via_ssh, шлёт этот
|
||||||
# же токен на ноду, чтобы она тоже могла тянуть образ с Gitea Registry).
|
# же токен на ноду, чтобы она тоже могла тянуть образ с Gitea Registry).
|
||||||
GITEA_REGISTRY_TOKEN=CHANGE_ME_GITEA_REGISTRY_TOKEN
|
GT_REGISTRY_TOKEN=CHANGE_ME_GT_REGISTRY_TOKEN
|
||||||
VPS_IP=CHANGE_ME_VPS_IP
|
VPS_IP=CHANGE_ME_VPS_IP
|
||||||
DEPLOY_DIR=/root/netrunner-core
|
DEPLOY_DIR=/root/netrunner-core
|
||||||
BINARY_NAME=netrunner-control-plane
|
BINARY_NAME=netrunner-control-plane
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# реестр — встроенный Container Registry самой Gitea (gitea.netrunner-vpn.com),
|
# реестр — встроенный Container Registry самой Gitea (gitea.netrunner-vpn.com),
|
||||||
# не ghcr.io — секрет secrets.GITHUB_TOKEN там валиден только на самом
|
# не ghcr.io — секрет secrets.GITHUB_TOKEN там валиден только на самом
|
||||||
# GitHub. Логин — токеном Gitea с правом write:package
|
# GitHub. Логин — токеном Gitea с правом write:package
|
||||||
# (secrets.GITEA_REGISTRY_TOKEN), один и тот же токен используется во всех
|
# (secrets.GT_REGISTRY_TOKEN), один и тот же токен используется во всех
|
||||||
# репозиториях, где собираются образы (netrunner-backend/netrunner-landing/
|
# репозиториях, где собираются образы (netrunner-backend/netrunner-landing/
|
||||||
# netrunner-proxy) — пакеты в Gitea принадлежат аккаунту, не конкретному
|
# netrunner-proxy) — пакеты в Gitea принадлежат аккаунту, не конкретному
|
||||||
# репозиторию, заводить по секрету на каждый репозиторий не нужно, но
|
# репозиторию, заводить по секрету на каждый репозиторий не нужно, но
|
||||||
@@ -39,7 +39,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
registry: ${{ env.REGISTRY }}
|
registry: ${{ env.REGISTRY }}
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GITEA_REGISTRY_TOKEN }}
|
password: ${{ secrets.GT_REGISTRY_TOKEN }}
|
||||||
|
|
||||||
- name: Extract metadata (tags, labels)
|
- name: Extract metadata (tags, labels)
|
||||||
id: meta
|
id: meta
|
||||||
@@ -85,7 +85,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
registry: ${{ env.REGISTRY }}
|
registry: ${{ env.REGISTRY }}
|
||||||
username: ${{ github.actor }}
|
username: ${{ github.actor }}
|
||||||
password: ${{ secrets.GITEA_REGISTRY_TOKEN }}
|
password: ${{ secrets.GT_REGISTRY_TOKEN }}
|
||||||
|
|
||||||
- name: Build and push
|
- name: Build and push
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Копия .github/workflows/deploy.yml для Gitea Actions. Образы тянутся из
|
# Копия .github/workflows/deploy.yml для Gitea Actions. Образы тянутся из
|
||||||
# встроенного Container Registry самой Gitea (gitea.netrunner-vpn.com), не
|
# встроенного Container Registry самой Gitea (gitea.netrunner-vpn.com), не
|
||||||
# ghcr.io — secrets.GITEA_REGISTRY_TOKEN, не GHCR_TOKEN/GITHUB_TOKEN.
|
# ghcr.io — secrets.GT_REGISTRY_TOKEN, не GHCR_TOKEN/GITHUB_TOKEN.
|
||||||
# Триггер workflow_run (авто-деплой после успешной сборки) поддерживается не
|
# Триггер workflow_run (авто-деплой после успешной сборки) поддерживается не
|
||||||
# во всех версиях Gitea Actions — если deploy-dev не срабатывает автоматически
|
# во всех версиях Gitea Actions — если deploy-dev не срабатывает автоматически
|
||||||
# после build, проверить версию Gitea или временно дергать деплой вручную
|
# после build, проверить версию Gitea или временно дергать деплой вручную
|
||||||
@@ -57,7 +57,7 @@ jobs:
|
|||||||
host: ${{ vars.DEV_VPS_IP }}
|
host: ${{ vars.DEV_VPS_IP }}
|
||||||
username: root
|
username: root
|
||||||
key: ${{ secrets.DEV_SSH_PRIVATE_KEY }}
|
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,GITEA_REGISTRY_TOKEN"
|
envs: "DB_PASSWORD,CF_API_TOKEN,JWT_SECRET,ARGON_SALT,TON_MASTER_WALLET,PROXY_INTERNAL_SECRET,CRYPTOBOT_API_TOKEN,TELOXIDE_TOKEN,BOT_USERNAME,GT_REGISTRY_TOKEN"
|
||||||
script: |
|
script: |
|
||||||
set -e
|
set -e
|
||||||
cd /root/netrunner-core
|
cd /root/netrunner-core
|
||||||
@@ -76,7 +76,7 @@ jobs:
|
|||||||
# Нужен самому бэкенду в рантайме, не только CI — см.
|
# Нужен самому бэкенду в рантайме, не только CI — см.
|
||||||
# NodeService::provision_node_via_ssh (шлёт этот же токен на новую
|
# NodeService::provision_node_via_ssh (шлёт этот же токен на новую
|
||||||
# ноду, чтобы она тоже могла тянуть образ с gitea.netrunner-vpn.com).
|
# ноду, чтобы она тоже могла тянуть образ с gitea.netrunner-vpn.com).
|
||||||
GITEA_REGISTRY_TOKEN=${GITEA_REGISTRY_TOKEN}
|
GT_REGISTRY_TOKEN=${GT_REGISTRY_TOKEN}
|
||||||
CRYPTOBOT_API_TOKEN=${CRYPTOBOT_API_TOKEN}
|
CRYPTOBOT_API_TOKEN=${CRYPTOBOT_API_TOKEN}
|
||||||
CRYPTOBOT_TESTNET=true
|
CRYPTOBOT_TESTNET=true
|
||||||
BOT_ENABLED=true
|
BOT_ENABLED=true
|
||||||
@@ -96,7 +96,7 @@ jobs:
|
|||||||
export CADDY_IMAGE="gitea.netrunner-vpn.com/nineap/netrunner-caddy-cloudflare:latest"
|
export CADDY_IMAGE="gitea.netrunner-vpn.com/nineap/netrunner-caddy-cloudflare:latest"
|
||||||
echo "🚀 Deploying ${IMAGE} to DEV"
|
echo "🚀 Deploying ${IMAGE} to DEV"
|
||||||
|
|
||||||
echo "${{ secrets.GITEA_REGISTRY_TOKEN }}" | docker login gitea.netrunner-vpn.com -u ${{ github.actor }} --password-stdin
|
echo "${{ secrets.GT_REGISTRY_TOKEN }}" | docker login gitea.netrunner-vpn.com -u ${{ github.actor }} --password-stdin
|
||||||
|
|
||||||
docker compose -f docker-compose.dev-remote.yml pull
|
docker compose -f docker-compose.dev-remote.yml pull
|
||||||
docker compose -f docker-compose.dev-remote.yml up -d --remove-orphans
|
docker compose -f docker-compose.dev-remote.yml up -d --remove-orphans
|
||||||
@@ -114,7 +114,7 @@ jobs:
|
|||||||
CRYPTOBOT_API_TOKEN: ${{ secrets.DEV_CRYPTOBOT_API_TOKEN }}
|
CRYPTOBOT_API_TOKEN: ${{ secrets.DEV_CRYPTOBOT_API_TOKEN }}
|
||||||
TELOXIDE_TOKEN: ${{ secrets.DEV_TELOXIDE_TOKEN }}
|
TELOXIDE_TOKEN: ${{ secrets.DEV_TELOXIDE_TOKEN }}
|
||||||
BOT_USERNAME: ${{ vars.DEV_BOT_USERNAME }}
|
BOT_USERNAME: ${{ vars.DEV_BOT_USERNAME }}
|
||||||
GITEA_REGISTRY_TOKEN: ${{ secrets.GITEA_REGISTRY_TOKEN }}
|
GT_REGISTRY_TOKEN: ${{ secrets.GT_REGISTRY_TOKEN }}
|
||||||
|
|
||||||
deploy-prod:
|
deploy-prod:
|
||||||
name: Pull & restart on Prod VPS
|
name: Pull & restart on Prod VPS
|
||||||
@@ -139,7 +139,7 @@ jobs:
|
|||||||
host: ${{ vars.VPS_IP }}
|
host: ${{ vars.VPS_IP }}
|
||||||
username: root
|
username: root
|
||||||
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||||
envs: "DB_PASSWORD,DATA_VPS_IP,JWT_SECRET,ARGON_SALT,TON_MASTER_WALLET,GRAFANA_PUBLIC_URL,PROXY_INTERNAL_SECRET,CRYPTOBOT_API_TOKEN,TELOXIDE_TOKEN,BOT_USERNAME,WEB_APP_BASE_URL,GITEA_REGISTRY_TOKEN"
|
envs: "DB_PASSWORD,DATA_VPS_IP,JWT_SECRET,ARGON_SALT,TON_MASTER_WALLET,GRAFANA_PUBLIC_URL,PROXY_INTERNAL_SECRET,CRYPTOBOT_API_TOKEN,TELOXIDE_TOKEN,BOT_USERNAME,WEB_APP_BASE_URL,GT_REGISTRY_TOKEN"
|
||||||
script: |
|
script: |
|
||||||
set -e
|
set -e
|
||||||
cd /root/netrunner-core
|
cd /root/netrunner-core
|
||||||
@@ -164,7 +164,7 @@ jobs:
|
|||||||
PROXY_INTERNAL_SECRET=${PROXY_INTERNAL_SECRET}
|
PROXY_INTERNAL_SECRET=${PROXY_INTERNAL_SECRET}
|
||||||
# Нужен самому бэкенду в рантайме, не только CI — см.
|
# Нужен самому бэкенду в рантайме, не только CI — см.
|
||||||
# NodeService::provision_node_via_ssh.
|
# NodeService::provision_node_via_ssh.
|
||||||
GITEA_REGISTRY_TOKEN=${GITEA_REGISTRY_TOKEN}
|
GT_REGISTRY_TOKEN=${GT_REGISTRY_TOKEN}
|
||||||
PORT=8080
|
PORT=8080
|
||||||
SUBSCRIPTION_CHECK_INTERVAL=1800
|
SUBSCRIPTION_CHECK_INTERVAL=1800
|
||||||
NODE_HEALTH_CHECK_INTERVAL=60
|
NODE_HEALTH_CHECK_INTERVAL=60
|
||||||
@@ -180,7 +180,7 @@ jobs:
|
|||||||
export IMAGE="gitea.netrunner-vpn.com/nineap/netrunner-control-plane:${{ github.event.inputs.image_tag }}"
|
export IMAGE="gitea.netrunner-vpn.com/nineap/netrunner-control-plane:${{ github.event.inputs.image_tag }}"
|
||||||
echo "🚀 Deploying ${IMAGE}"
|
echo "🚀 Deploying ${IMAGE}"
|
||||||
|
|
||||||
echo "${{ secrets.GITEA_REGISTRY_TOKEN }}" | docker login gitea.netrunner-vpn.com -u ${{ github.actor }} --password-stdin
|
echo "${{ secrets.GT_REGISTRY_TOKEN }}" | docker login gitea.netrunner-vpn.com -u ${{ github.actor }} --password-stdin
|
||||||
|
|
||||||
# Тянем свежий образ, прогоняем миграции (one-shot) и поднимаем сервисы.
|
# Тянем свежий образ, прогоняем миграции (one-shot) и поднимаем сервисы.
|
||||||
docker compose -f docker-compose.prod.yml pull
|
docker compose -f docker-compose.prod.yml pull
|
||||||
@@ -202,4 +202,4 @@ jobs:
|
|||||||
TELOXIDE_TOKEN: ${{ secrets.TELOXIDE_TOKEN }}
|
TELOXIDE_TOKEN: ${{ secrets.TELOXIDE_TOKEN }}
|
||||||
BOT_USERNAME: ${{ vars.BOT_USERNAME }}
|
BOT_USERNAME: ${{ vars.BOT_USERNAME }}
|
||||||
WEB_APP_BASE_URL: ${{ vars.WEB_APP_BASE_URL }}
|
WEB_APP_BASE_URL: ${{ vars.WEB_APP_BASE_URL }}
|
||||||
GITEA_REGISTRY_TOKEN: ${{ secrets.GITEA_REGISTRY_TOKEN }}
|
GT_REGISTRY_TOKEN: ${{ secrets.GT_REGISTRY_TOKEN }}
|
||||||
|
|||||||
@@ -153,8 +153,8 @@ impl NodeService {
|
|||||||
let sess = Self::connect_ssh(ip, "root", password)?;
|
let sess = Self::connect_ssh(ip, "root", password)?;
|
||||||
|
|
||||||
// 3. Подготавливаем команды автоматизации
|
// 3. Подготавливаем команды автоматизации
|
||||||
let gh_token = std::env::var("GITEA_REGISTRY_TOKEN").map_err(|_| {
|
let gh_token = std::env::var("GT_REGISTRY_TOKEN").map_err(|_| {
|
||||||
AppError::Internal("GITEA_REGISTRY_TOKEN не задан — провижининг ноды невозможен".into())
|
AppError::Internal("GT_REGISTRY_TOKEN не задан — провижининг ноды невозможен".into())
|
||||||
})?;
|
})?;
|
||||||
// Секрет и публичный URL этого же бэкенда — нода должна ходить именно
|
// Секрет и публичный URL этого же бэкенда — нода должна ходить именно
|
||||||
// сюда для проверки токенов/лимитов (--require-auth), а не работать
|
// сюда для проверки токенов/лимитов (--require-auth), а не работать
|
||||||
|
|||||||
Reference in New Issue
Block a user