From 74b8769195d97bbd83a12622e71c5ac67f983408 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 16 Jun 2026 05:48:14 +0300 Subject: [PATCH 01/54] fix deploy workflow --- .gitea/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 73fa8fc..dab8cc2 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -12,7 +12,7 @@ jobs: with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} - key: ${{ secrets.SSH_PASSWORD }} + password: ${{ secrets.SSH_PASSWORD }} port: 22 script: | cd /home/vbevdev/test -- 2.52.0 From 9572e20a2c5a994cab0ba55d3b245fa3227a845f Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 00:14:19 +0300 Subject: [PATCH 02/54] deploy workflow: create secrets --- .gitea/workflows/deploy.yaml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index dab8cc2..e858598 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -7,6 +7,7 @@ jobs: deploy: runs-on: ubuntu-latest steps: + - run: echo "🏗️ Creating secrets..." - name: Execute Remote SSH Commands uses: appleboy/ssh-action@v1.0.3 with: @@ -15,5 +16,11 @@ jobs: password: ${{ secrets.SSH_PASSWORD }} port: 22 script: | - cd /home/vbevdev/test - touch hello-there.txt + cd ${{ secrets.DEPLOY_DIRECTORY }} + mkdir secrets + cd secrets + echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt + echo "${{ secrets.BESZEL_AGENT_TOKEN }}" > beszel_agent_token.txt + echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt + echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt + - run: echo "✅ Secrets created" -- 2.52.0 From 40b621448ce9a23aa327c6625d1b22102b076a52 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 00:27:05 +0300 Subject: [PATCH 03/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index e858598..7cf0aa5 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -17,6 +17,7 @@ jobs: port: 22 script: | cd ${{ secrets.DEPLOY_DIRECTORY }} + touch docker-compose-${{ gitea.ref }}.yml mkdir secrets cd secrets echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt -- 2.52.0 From 0b1260614e213bfc8254ba0c2e466a8bc611befe Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 00:30:32 +0300 Subject: [PATCH 04/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 7cf0aa5..bd3ee24 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -17,7 +17,7 @@ jobs: port: 22 script: | cd ${{ secrets.DEPLOY_DIRECTORY }} - touch docker-compose-${{ gitea.ref }}.yml + touch docker-compose-${{ gitea.ref_name }}.yml mkdir secrets cd secrets echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt -- 2.52.0 From ccdac3847f9ac52951c5af36bc05633366643b4b Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 00:47:49 +0300 Subject: [PATCH 05/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index bd3ee24..0ca8a1e 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -8,6 +8,10 @@ jobs: runs-on: ubuntu-latest steps: - run: echo "🏗️ Creating secrets..." + - name: 🧼 Cleaning ref name + run: | + CLEAN_REF_NAME=${GITEA_REF_NAME//\//-} + echo "Clean ref name: $CLEAN_REF_NAME" - name: Execute Remote SSH Commands uses: appleboy/ssh-action@v1.0.3 with: @@ -17,11 +21,21 @@ jobs: port: 22 script: | cd ${{ secrets.DEPLOY_DIRECTORY }} - touch docker-compose-${{ gitea.ref_name }}.yml - mkdir secrets - cd secrets - echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt - echo "${{ secrets.BESZEL_AGENT_TOKEN }}" > beszel_agent_token.txt - echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt - echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt + touch "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" + # mkdir secrets + # cd secrets + # echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt + # echo "${{ secrets.BESZEL_AGENT_TOKEN }}" > beszel_agent_token.txt + # echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt + # echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt - run: echo "✅ Secrets created" + - name: Create docker-compose file + # - run: | + # # Безопасно заменяем все слэши "/" на дефисы "-" + # CLEAN_REF=${GITEA_REF_NAME//\//-} + + # # Создаем файл с очищенным именем + # touch "docker-compose-${CLEAN_REF}.yml" + + # # Проверяем результат в логах + # ls -la docker-compose-*.yml -- 2.52.0 From 2bdfa276244ef4e0f2e7aa4848593279db18f7a5 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 00:49:27 +0300 Subject: [PATCH 06/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 0ca8a1e..6c3d77c 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -29,7 +29,7 @@ jobs: # echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt # echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt - run: echo "✅ Secrets created" - - name: Create docker-compose file + # - name: Create docker-compose file # - run: | # # Безопасно заменяем все слэши "/" на дефисы "-" # CLEAN_REF=${GITEA_REF_NAME//\//-} -- 2.52.0 From 6f55ebb99c8e920c322af7226359fe4b08175485 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 00:54:51 +0300 Subject: [PATCH 07/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 6c3d77c..459e2ca 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -10,7 +10,8 @@ jobs: - run: echo "🏗️ Creating secrets..." - name: 🧼 Cleaning ref name run: | - CLEAN_REF_NAME=${GITEA_REF_NAME//\//-} + ORIGINAL_REF_NAME="${{ gitea.ref_name }}" + CLEAN_REF_NAME=${ORIGINAL_REF_NAME//\//-} echo "Clean ref name: $CLEAN_REF_NAME" - name: Execute Remote SSH Commands uses: appleboy/ssh-action@v1.0.3 -- 2.52.0 From 2a47f284659f5aa40a9cd5385d7320592473d51e Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 00:57:28 +0300 Subject: [PATCH 08/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 459e2ca..5b4bcf3 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -13,6 +13,7 @@ jobs: ORIGINAL_REF_NAME="${{ gitea.ref_name }}" CLEAN_REF_NAME=${ORIGINAL_REF_NAME//\//-} echo "Clean ref name: $CLEAN_REF_NAME" + echo "CLEAN_REF_NAME=$CLEAN_REF_NAME" >> $GITEA_ENV - name: Execute Remote SSH Commands uses: appleboy/ssh-action@v1.0.3 with: -- 2.52.0 From 03e987e73f080b885b77df8c1d39f5b76aa2f40b Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 01:00:27 +0300 Subject: [PATCH 09/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 5b4bcf3..8a80167 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -31,13 +31,3 @@ jobs: # echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt # echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt - run: echo "✅ Secrets created" - # - name: Create docker-compose file - # - run: | - # # Безопасно заменяем все слэши "/" на дефисы "-" - # CLEAN_REF=${GITEA_REF_NAME//\//-} - - # # Создаем файл с очищенным именем - # touch "docker-compose-${CLEAN_REF}.yml" - - # # Проверяем результат в логах - # ls -la docker-compose-*.yml -- 2.52.0 From b9a1d5bf7d03f7a680c1596da2d65e0c3fdeebbb Mon Sep 17 00:00:00 2001 From: vbevdev Date: Tue, 23 Jun 2026 01:01:19 +0300 Subject: [PATCH 10/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 8a80167..46314a6 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -24,10 +24,10 @@ jobs: script: | cd ${{ secrets.DEPLOY_DIRECTORY }} touch "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" - # mkdir secrets - # cd secrets - # echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt - # echo "${{ secrets.BESZEL_AGENT_TOKEN }}" > beszel_agent_token.txt - # echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt - # echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt + mkdir secrets + cd secrets + echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt + echo "${{ secrets.BESZEL_AGENT_TOKEN }}" > beszel_agent_token.txt + echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt + echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt - run: echo "✅ Secrets created" -- 2.52.0 From f331f754e116e033327bb96e5cbacb9763f2f2ef Mon Sep 17 00:00:00 2001 From: vbevdev Date: Thu, 25 Jun 2026 00:23:14 +0300 Subject: [PATCH 11/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 46314a6..facbc2d 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -22,6 +22,7 @@ jobs: password: ${{ secrets.SSH_PASSWORD }} port: 22 script: | + set -e # Остановить выполнение при любой ошибке cd ${{ secrets.DEPLOY_DIRECTORY }} touch "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" mkdir secrets -- 2.52.0 From fbae09ebe19a8f5e0b99ec5e898c779faf2ecbda Mon Sep 17 00:00:00 2001 From: vbevdev Date: Thu, 25 Jun 2026 00:47:15 +0300 Subject: [PATCH 12/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index facbc2d..4f36e56 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -7,28 +7,37 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - run: echo "🏗️ Creating secrets..." - name: 🧼 Cleaning ref name run: | ORIGINAL_REF_NAME="${{ gitea.ref_name }}" CLEAN_REF_NAME=${ORIGINAL_REF_NAME//\//-} echo "Clean ref name: $CLEAN_REF_NAME" echo "CLEAN_REF_NAME=$CLEAN_REF_NAME" >> $GITEA_ENV - - name: Execute Remote SSH Commands + + - name: 🛜 Execute Remote SSH Commands uses: appleboy/ssh-action@v1.0.3 + env: + DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} + REF_NAME: ${{ env.CLEAN_REF_NAME }} + BESZEL_AGENT_KEY: ${{ secrets.BESZEL_AGENT_KEY }} + BESZEL_AGENT_TOKEN: ${{ secrets.BESZEL_AGENT_TOKEN }} + GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }} + VAULTWARDEN_ADMIN_TOKEN: ${{ secrets.VAULTWARDEN_ADMIN_TOKEN }} with: host: ${{ secrets.SSH_HOST }} username: ${{ secrets.SSH_USERNAME }} password: ${{ secrets.SSH_PASSWORD }} port: 22 + envs: DEPLOY_DIRECTORY,REF_NAME,BESZEL_AGENT_KEY,BESZEL_AGENT_TOKEN,GITEA_RUNNER_REGISTRATION_TOKEN,VAULTWARDEN_ADMIN_TOKEN script: | - set -e # Остановить выполнение при любой ошибке - cd ${{ secrets.DEPLOY_DIRECTORY }} - touch "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" - mkdir secrets - cd secrets - echo "${{ secrets.BESZEL_AGENT_KEY }}" > beszel_agent_key.txt - echo "${{ secrets.BESZEL_AGENT_TOKEN }}" > beszel_agent_token.txt - echo "${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }}" > gitea_runner_registration_token.txt - echo "${{ secrets.VAULTWARDEN_ADMIN_TOKEN }}" > vaultwarden_admin_token.txt - - run: echo "✅ Secrets created" + set -e # Stop on error + + cd "$DEPLOY_DIRECTORY" + + touch "docker-compose-${REF_NAME}.yml" + + mkdir -p secrets + echo "$BESZEL_AGENT_KEY" > secrets/beszel_agent_key.txt + echo "$BESZEL_AGENT_TOKEN" > secrets/beszel_agent_token.txt + echo "$GITEA_RUNNER_REGISTRATION_TOKEN" > secrets/gitea_runner_registration_token.txt + echo "$VAULTWARDEN_ADMIN_TOKEN" > secrets/vaultwarden_admin_token.txt -- 2.52.0 From 6d859cf79e2ddd1626c638cb2022f8d6e5376939 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Thu, 25 Jun 2026 01:08:53 +0300 Subject: [PATCH 13/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 4f36e56..90f3c10 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -7,18 +7,36 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - name: 🧼 Cleaning ref name + - name: 📂 Checkout repository + uses: actions/checkout@v4 + + - name: 🧼 Clean ref name run: | ORIGINAL_REF_NAME="${{ gitea.ref_name }}" CLEAN_REF_NAME=${ORIGINAL_REF_NAME//\//-} echo "Clean ref name: $CLEAN_REF_NAME" echo "CLEAN_REF_NAME=$CLEAN_REF_NAME" >> $GITEA_ENV - - name: 🛜 Execute Remote SSH Commands + - name: ✏️ Rename local docker-compose file + run: | + mv docker-compose.yml "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" + + - name: 🚚 Copy docker-compose file to remote server + uses: appleboy/scp-action@v0.1.7 + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USERNAME }} + password: ${{ secrets.SSH_PASSWORD }} + port: 22 + source: "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" + target: ${{ secrets.DEPLOY_DIRECTORY }} + strip_components: 0 + tar_tmp_path: /tmp + + - name: 🔐 Create secrets uses: appleboy/ssh-action@v1.0.3 env: DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} - REF_NAME: ${{ env.CLEAN_REF_NAME }} BESZEL_AGENT_KEY: ${{ secrets.BESZEL_AGENT_KEY }} BESZEL_AGENT_TOKEN: ${{ secrets.BESZEL_AGENT_TOKEN }} GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }} @@ -28,14 +46,12 @@ jobs: username: ${{ secrets.SSH_USERNAME }} password: ${{ secrets.SSH_PASSWORD }} port: 22 - envs: DEPLOY_DIRECTORY,REF_NAME,BESZEL_AGENT_KEY,BESZEL_AGENT_TOKEN,GITEA_RUNNER_REGISTRATION_TOKEN,VAULTWARDEN_ADMIN_TOKEN + envs: DEPLOY_DIRECTORY,BESZEL_AGENT_KEY,BESZEL_AGENT_TOKEN,GITEA_RUNNER_REGISTRATION_TOKEN,VAULTWARDEN_ADMIN_TOKEN script: | set -e # Stop on error cd "$DEPLOY_DIRECTORY" - touch "docker-compose-${REF_NAME}.yml" - mkdir -p secrets echo "$BESZEL_AGENT_KEY" > secrets/beszel_agent_key.txt echo "$BESZEL_AGENT_TOKEN" > secrets/beszel_agent_token.txt -- 2.52.0 From ca2df02029bb65251534ab9d1b24022484fb0494 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Thu, 25 Jun 2026 02:00:08 +0300 Subject: [PATCH 14/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 54 ++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 90f3c10..e23ac99 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -17,43 +17,49 @@ jobs: echo "Clean ref name: $CLEAN_REF_NAME" echo "CLEAN_REF_NAME=$CLEAN_REF_NAME" >> $GITEA_ENV - - name: ✏️ Rename local docker-compose file + - name: ⚙️ Configure SSH Client run: | - mv docker-compose.yml "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" + sudo apt-get update && sudo apt-get install -y sshpass + mkdir -p ~/.ssh + ssh-keyscan -p 22 "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts - - name: 🚚 Copy docker-compose file to remote server - uses: appleboy/scp-action@v0.1.7 - with: - host: ${{ secrets.SSH_HOST }} - username: ${{ secrets.SSH_USERNAME }} - password: ${{ secrets.SSH_PASSWORD }} - port: 22 - source: "docker-compose-${{ env.CLEAN_REF_NAME }}.yml" - target: ${{ secrets.DEPLOY_DIRECTORY }} - strip_components: 0 - tar_tmp_path: /tmp + - name: 🏗️ Create docker-compose file + env: + SSHPASS: ${{ secrets.SSH_PASSWORD }} + SSH_USERNAME: ${{ secrets.SSH_USERNAME }} + SSH_HOST: ${{ secrets.SSH_HOST }} + DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} + REF_NAME: ${{ env.CLEAN_REF_NAME }} + run: | + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" \ + "mkdir -p \"$DEPLOY_DIRECTORY\" && \ + cat > \"$DEPLOY_DIRECTORY/docker-compose-$REF_NAME.yml\"" \ + < docker-compose.yml - name: 🔐 Create secrets - uses: appleboy/ssh-action@v1.0.3 env: + SSHPASS: ${{ secrets.SSH_PASSWORD }} + SSH_USERNAME: ${{ secrets.SSH_USERNAME }} + SSH_HOST: ${{ secrets.SSH_HOST }} DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} BESZEL_AGENT_KEY: ${{ secrets.BESZEL_AGENT_KEY }} BESZEL_AGENT_TOKEN: ${{ secrets.BESZEL_AGENT_TOKEN }} GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }} VAULTWARDEN_ADMIN_TOKEN: ${{ secrets.VAULTWARDEN_ADMIN_TOKEN }} - with: - host: ${{ secrets.SSH_HOST }} - username: ${{ secrets.SSH_USERNAME }} - password: ${{ secrets.SSH_PASSWORD }} - port: 22 - envs: DEPLOY_DIRECTORY,BESZEL_AGENT_KEY,BESZEL_AGENT_TOKEN,GITEA_RUNNER_REGISTRATION_TOKEN,VAULTWARDEN_ADMIN_TOKEN - script: | - set -e # Stop on error - + run: | + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" env \ + DEPLOY_DIRECTORY="$DEPLOY_DIRECTORY" \ + BESZEL_AGENT_KEY="$BESZEL_AGENT_KEY" \ + BESZEL_AGENT_TOKEN="$BESZEL_AGENT_TOKEN" \ + GITEA_RUNNER_REGISTRATION_TOKEN="$GITEA_RUNNER_REGISTRATION_TOKEN" \ + VAULTWARDEN_ADMIN_TOKEN="$VAULTWARDEN_ADMIN_TOKEN" \ + bash -s << 'EOT' + set -e cd "$DEPLOY_DIRECTORY" - + mkdir -p secrets echo "$BESZEL_AGENT_KEY" > secrets/beszel_agent_key.txt echo "$BESZEL_AGENT_TOKEN" > secrets/beszel_agent_token.txt echo "$GITEA_RUNNER_REGISTRATION_TOKEN" > secrets/gitea_runner_registration_token.txt echo "$VAULTWARDEN_ADMIN_TOKEN" > secrets/vaultwarden_admin_token.txt + EOT -- 2.52.0 From 3f9db6cdc1921ed9ed2f027c80cc359d41401e6e Mon Sep 17 00:00:00 2001 From: vbevdev Date: Thu, 25 Jun 2026 02:06:14 +0300 Subject: [PATCH 15/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index e23ac99..934a5df 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -47,19 +47,25 @@ jobs: GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }} VAULTWARDEN_ADMIN_TOKEN: ${{ secrets.VAULTWARDEN_ADMIN_TOKEN }} run: | - sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" env \ - DEPLOY_DIRECTORY="$DEPLOY_DIRECTORY" \ - BESZEL_AGENT_KEY="$BESZEL_AGENT_KEY" \ - BESZEL_AGENT_TOKEN="$BESZEL_AGENT_TOKEN" \ - GITEA_RUNNER_REGISTRATION_TOKEN="$GITEA_RUNNER_REGISTRATION_TOKEN" \ - VAULTWARDEN_ADMIN_TOKEN="$VAULTWARDEN_ADMIN_TOKEN" \ - bash -s << 'EOT' + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e cd "$DEPLOY_DIRECTORY" - mkdir -p secrets - echo "$BESZEL_AGENT_KEY" > secrets/beszel_agent_key.txt - echo "$BESZEL_AGENT_TOKEN" > secrets/beszel_agent_token.txt - echo "$GITEA_RUNNER_REGISTRATION_TOKEN" > secrets/gitea_runner_registration_token.txt - echo "$VAULTWARDEN_ADMIN_TOKEN" > secrets/vaultwarden_admin_token.txt + + cat << 'EOF_SECRET' > secrets/beszel_agent_key.txt + $BESZEL_AGENT_KEY + EOF_SECRET + + cat << 'EOF_SECRET' > secrets/beszel_agent_token.txt + $BESZEL_AGENT_TOKEN + EOF_SECRET + + cat << 'EOF_SECRET' > secrets/gitea_runner_registration_token.txt + $GITEA_RUNNER_REGISTRATION_TOKEN + EOF_SECRET + + cat << 'EOF_SECRET' > secrets/vaultwarden_admin_token.txt + $VAULTWARDEN_ADMIN_TOKEN + EOF_SECRET EOT + -- 2.52.0 From 10d7773a13e516a390fa3b95f01c4ad4eb8bc0db Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 00:13:40 +0300 Subject: [PATCH 16/54] deploy-workflow: create docker compose file --- .../actions/configure-ssh-client/action.yaml | 16 ++++++ .../telegram-message-escape/action.yaml | 26 +++++++++ .gitea/workflows/deploy.yaml | 56 ++++++++++++++++++- .../workflows/test_telegram_deploy_bot.yaml | 40 +++++++++++++ IDEAS.md | 6 ++ 5 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 .gitea/actions/configure-ssh-client/action.yaml create mode 100644 .gitea/actions/telegram-message-escape/action.yaml create mode 100644 .gitea/workflows/test_telegram_deploy_bot.yaml create mode 100644 IDEAS.md diff --git a/.gitea/actions/configure-ssh-client/action.yaml b/.gitea/actions/configure-ssh-client/action.yaml new file mode 100644 index 0000000..b9a19f6 --- /dev/null +++ b/.gitea/actions/configure-ssh-client/action.yaml @@ -0,0 +1,16 @@ +name: '⚙️ Configure SSH Client' +description: 'Installs sshpass and configures known_hosts' + +inputs: + ssh_host: + description: 'Remote server IP' + required: true + +runs: + using: 'composite' + steps: + - shell: bash + run: | + sudo apt-get update && sudo apt-get install -y sshpass + mkdir -p ~/.ssh + ssh-keyscan -p 22 "${{ inputs.ssh_host }}" >> ~/.ssh/known_hosts diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml new file mode 100644 index 0000000..6981d62 --- /dev/null +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -0,0 +1,26 @@ +name: '🧼 Telegram message escape' +description: 'Automatically escapes dots, dashes, and exclamation marks for Telegram MarkdownV2' + +inputs: + message: + description: 'The raw text string to escape' + required: true + +outputs: + escaped_message: + description: 'The safely escaped string ready for Telegram' + value: ${{ steps.escape.outputs.result }} + +runs: + using: 'composite' + steps: + - id: escape + shell: bash + run: | + RAW_MESSAGE="${{ inputs.message }}" + + ESCAPED_MESSAGE=$(echo "$RAW_MESSAGE" | sed "s/-/\\\\-/g" | sed "s/\./\\\\./g" | sed "s/!/\\\\!/g") + + echo "result<> $GITHUB_OUTPUT + echo "$ESCAPED_MESSAGE" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 934a5df..7af81d5 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -33,7 +33,9 @@ jobs: run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" \ "mkdir -p \"$DEPLOY_DIRECTORY\" && \ - cat > \"$DEPLOY_DIRECTORY/docker-compose-$REF_NAME.yml\"" \ + cd \"$DEPLOY_DIRECTORY\" && \ + rm -f docker-compose-*.yml && \ + cat > \"docker-compose-$REF_NAME.yml\"" \ < docker-compose.yml - name: 🔐 Create secrets @@ -67,5 +69,57 @@ jobs: cat << 'EOF_SECRET' > secrets/vaultwarden_admin_token.txt $VAULTWARDEN_ADMIN_TOKEN EOF_SECRET + + chmod 700 secrets + chmod 600 secrets/*.txt EOT + - name: 🚀 Run new containers + env: + SSHPASS: ${{ secrets.SSH_PASSWORD }} + SSH_USERNAME: ${{ secrets.SSH_USERNAME }} + SSH_HOST: ${{ secrets.SSH_HOST }} + DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} + REF_NAME: ${{ env.CLEAN_REF_NAME }} + TELEGRAM_TOKEN: ${{ secrets.DEPLOY_TELEGRAM_BOT_TOKEN }} + TELEGRAM_CHAT: ${{ secrets.DEPLOY_TELEGRAM_CHAT_ID }} + PROXY_HOST: ${{ secrets.PROXY_HOST }} + PROXY_PORT: ${{ secrets.PROXY_PORT }} + PROXY_USER: ${{ secrets.PROXY_USER }} + PROXY_PASSWORD: ${{ secrets.PROXY_PASSWORD }} + run: | + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT + set -e + cd "$DEPLOY_DIRECTORY" + + nohup bash -c ' + sleep 5 + + if docker compose -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > /tmp/docker_deploy.log 2>&1; then + ESCAPED_REF=\$(echo "${REF_NAME}" | sed "s/-/\\\\-/g" | sed "s/\./\\\\./g") + TEXT="🚀 *Деплой успешен\!* %0AСервер применил релиз: \`\$ESCAPED_REF\`" + + # ИСПРАВЛЕНО: Восстановлен верный URL api.telegram.org/bot\$TELEGRAM_TOKEN/ + curl -s -X POST "https://telegram.org\${TELEGRAM_TOKEN}/sendMessage" \ + --proxy "http://${PROXY_USER}:${PROXY_PASSWORD}@${PROXY_HOST}:${PROXY_PORT}" \ + -d "chat_id=${TELEGRAM_CHAT}" \ + -d "parse_mode=MarkdownV2" \ + -d "text=\$TEXT" > /dev/null + else + ERROR_LOG=\$(tail -n 10 /tmp/docker_deploy.log) + ESCAPED_LOG=\$(echo "\$ERROR_LOG" | sed "s/-/\\\\-/g" | sed "s/\./\\\\./g" | sed "s/!/\\\\!/g") + TEXT="❌ *Ошибка деплоя релиза ${REF_NAME}\!* %0A%0A\`\`\`%0A\$ESCAPED_LOG%0A\`\`\`" + + # ИСПРАВЛЕНО: Здесь URL тоже приведен к стандарту Telegram API + curl -s -X POST "https://telegram.org\${TELEGRAM_TOKEN}/sendMessage" \ + --proxy "http://${PROXY_USER}:${PROXY_PASSWORD}@${PROXY_HOST}:${PROXY_PORT}" \ + -d "chat_id=${TELEGRAM_CHAT}" \ + -d "parse_mode=MarkdownV2" \ + -d "text=\$TEXT" > /dev/null + fi + + rm -f /tmp/docker_deploy.log + ' > /dev/null 2>&1 & + EOT + + echo "New containers will be started after 5 seconds" \ No newline at end of file diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml new file mode 100644 index 0000000..bb4bfb3 --- /dev/null +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -0,0 +1,40 @@ +name: 🤖 Test telegram deploy bot +run-name: '🤖 Test telegram deploy bot: ${{ gitea.ref_name }} by @${{ gitea.actor }}' +on: + workflow_dispatch: + +jobs: + send_test_message: + runs-on: ubuntu-latest + steps: + - name: Checout repository + uses: actions/checkout@v4 + + - name: Configure ssh client + uses: ./.gitea/actions/configure-ssh-client + with: + ssh_host: ${{ secrets.SSH_HOST }} + + - name: Prepare message + id: prepare_message + uses: ./.gitea/actions/telegram-message-escape + with: + message: 💬 Test message + + - name: Send message + env: + SSHPASS: ${{ secrets.SSH_PASSWORD }} + SSH_USERNAME: ${{ secrets.SSH_USERNAME }} + SSH_HOST: ${{ secrets.SSH_HOST }} + TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_DEPLOY_BOT_TOKEN }} + TELEGRAM_CHAT: ${{ secrets.TELEGRAM_DEPLOY_CHAT_ID }} + PROXY_URL: ${{ secrets.PROXY_URL }} + MESSAGE: ${{ steps.prepare_message.outputs.escaped_message }} + run: | + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ + --proxy "${PROXY_URL}" \ + -d "chat_id=${TELEGRAM_CHAT}" \ + -d "parse_mode=MarkdownV2" \ + -d "text=$MESSAGE" > /dev/null + EOT \ No newline at end of file diff --git a/IDEAS.md b/IDEAS.md new file mode 100644 index 0000000..7c81d8d --- /dev/null +++ b/IDEAS.md @@ -0,0 +1,6 @@ +1. Backup data/ before rerun containers +2. Auto run on new realese +3. Разделение докер сетей +4. Notifications +5. Bot for server operations +6. multi device copy-paste \ No newline at end of file -- 2.52.0 From 29d66974cb7297df33c77deb686af02e53f45626 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 01:01:53 +0300 Subject: [PATCH 17/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 71 ++++++++++--------- .../workflows/test_telegram_deploy_bot.yaml | 8 +-- 2 files changed, 43 insertions(+), 36 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 7af81d5..1424879 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -1,5 +1,5 @@ -name: Deploy -run-name: Deploy +name: 🚀 Deploy +run-name: '🚀 Deploy: ${{ gitea.ref_name }} by @${{ gitea.actor }}' on: workflow_dispatch: @@ -17,11 +17,10 @@ jobs: echo "Clean ref name: $CLEAN_REF_NAME" echo "CLEAN_REF_NAME=$CLEAN_REF_NAME" >> $GITEA_ENV - - name: ⚙️ Configure SSH Client - run: | - sudo apt-get update && sudo apt-get install -y sshpass - mkdir -p ~/.ssh - ssh-keyscan -p 22 "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts + - name: ⚙️ Configure ssh client + uses: ./.gitea/actions/configure-ssh-client + with: + ssh_host: ${{ secrets.SSH_HOST }} - name: 🏗️ Create docker-compose file env: @@ -46,7 +45,7 @@ jobs: DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} BESZEL_AGENT_KEY: ${{ secrets.BESZEL_AGENT_KEY }} BESZEL_AGENT_TOKEN: ${{ secrets.BESZEL_AGENT_TOKEN }} - GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets._GITEA_RUNNER_REGISTRATION_TOKEN }} + GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets.RUNNER_REGISTRATION_TOKEN }} VAULTWARDEN_ADMIN_TOKEN: ${{ secrets.VAULTWARDEN_ADMIN_TOKEN }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT @@ -74,6 +73,18 @@ jobs: chmod 600 secrets/*.txt EOT + - name: ✍️ Prepare success deploy message + id: prepare_success_deploy_message + uses: ./.gitea/actions/telegram-message-escape + with: + message: '✅ *Деплой успешен!* %0AСервер применил релиз: `${{ gitea.ref_name }}`' + + - name: ✍️ Prepare failure deploy message + id: prepare_failure_deploy_message + uses: ./.gitea/actions/telegram-message-escape + with: + message: '❌ *Ошибка деплоя!* %0AСервер *не* применил релиз: `${{ gitea.ref_name }}`' + - name: 🚀 Run new containers env: SSHPASS: ${{ secrets.SSH_PASSWORD }} @@ -81,45 +92,41 @@ jobs: SSH_HOST: ${{ secrets.SSH_HOST }} DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} REF_NAME: ${{ env.CLEAN_REF_NAME }} - TELEGRAM_TOKEN: ${{ secrets.DEPLOY_TELEGRAM_BOT_TOKEN }} - TELEGRAM_CHAT: ${{ secrets.DEPLOY_TELEGRAM_CHAT_ID }} - PROXY_HOST: ${{ secrets.PROXY_HOST }} - PROXY_PORT: ${{ secrets.PROXY_PORT }} - PROXY_USER: ${{ secrets.PROXY_USER }} - PROXY_PASSWORD: ${{ secrets.PROXY_PASSWORD }} + TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_DEPLOY_BOT_TOKEN }} + TELEGRAM_CHAT: ${{ secrets.TELEGRAM_DEPLOY_CHAT_ID }} + PROXY_URL: ${{ secrets.PROXY_URL }} + SUCCESS_DEPLOY_MESSAGE: ${{ steps.prepare_success_deploy_message.outputs.escaped_message }} + FAILURE_DEPLOY_MESSAGE: ${{ steps.prepare_failure_deploy_message.outputs.escaped_message }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e cd "$DEPLOY_DIRECTORY" nohup bash -c ' - sleep 5 + sleep 10 - if docker compose -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > /tmp/docker_deploy.log 2>&1; then - ESCAPED_REF=\$(echo "${REF_NAME}" | sed "s/-/\\\\-/g" | sed "s/\./\\\\./g") - TEXT="🚀 *Деплой успешен\!* %0AСервер применил релиз: \`\$ESCAPED_REF\`" - - # ИСПРАВЛЕНО: Восстановлен верный URL api.telegram.org/bot\$TELEGRAM_TOKEN/ - curl -s -X POST "https://telegram.org\${TELEGRAM_TOKEN}/sendMessage" \ - --proxy "http://${PROXY_USER}:${PROXY_PASSWORD}@${PROXY_HOST}:${PROXY_PORT}" \ + if docker compose --dry-run -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > /tmp/docker_deploy.log 2>&1; then + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ + --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ - -d "text=\$TEXT" > /dev/null + -d "text=$SUCCESS_DEPLOY_MESSAGE" > /dev/null else - ERROR_LOG=\$(tail -n 10 /tmp/docker_deploy.log) - ESCAPED_LOG=\$(echo "\$ERROR_LOG" | sed "s/-/\\\\-/g" | sed "s/\./\\\\./g" | sed "s/!/\\\\!/g") - TEXT="❌ *Ошибка деплоя релиза ${REF_NAME}\!* %0A%0A\`\`\`%0A\$ESCAPED_LOG%0A\`\`\`" - - # ИСПРАВЛЕНО: Здесь URL тоже приведен к стандарту Telegram API - curl -s -X POST "https://telegram.org\${TELEGRAM_TOKEN}/sendMessage" \ - --proxy "http://${PROXY_USER}:${PROXY_PASSWORD}@${PROXY_HOST}:${PROXY_PORT}" \ + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ + --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ - -d "text=\$TEXT" > /dev/null + -d "text=$FAILURE_DEPLOY_MESSAGE" > /dev/null + + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ + --proxy "${PROXY_URL}" \ + -F "chat_id=${TELEGRAM_CHAT}" \ + -F "document=@/tmp/docker_deploy.log" \ + -F "caption=logs" > /dev/null fi rm -f /tmp/docker_deploy.log ' > /dev/null 2>&1 & EOT - echo "New containers will be started after 5 seconds" \ No newline at end of file + echo "New containers will be started after 10 seconds" \ No newline at end of file diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index bb4bfb3..e1fea00 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -7,21 +7,21 @@ jobs: send_test_message: runs-on: ubuntu-latest steps: - - name: Checout repository + - name: 📂 Checkout repository uses: actions/checkout@v4 - - name: Configure ssh client + - name: ⚙️ Configure ssh client uses: ./.gitea/actions/configure-ssh-client with: ssh_host: ${{ secrets.SSH_HOST }} - - name: Prepare message + - name: ✍️ Prepare message id: prepare_message uses: ./.gitea/actions/telegram-message-escape with: message: 💬 Test message - - name: Send message + - name: 💬 Send message env: SSHPASS: ${{ secrets.SSH_PASSWORD }} SSH_USERNAME: ${{ secrets.SSH_USERNAME }} -- 2.52.0 From 95ac23906d16472ad6fabe0857ba4c43f2efab20 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 01:07:01 +0300 Subject: [PATCH 18/54] deploy-workflow: create docker compose file --- .gitea/actions/telegram-message-escape/action.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index 6981d62..a77799f 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -16,9 +16,9 @@ runs: steps: - id: escape shell: bash + env: + RAW_MESSAGE: ${{ inputs.message }} run: | - RAW_MESSAGE="${{ inputs.message }}" - ESCAPED_MESSAGE=$(echo "$RAW_MESSAGE" | sed "s/-/\\\\-/g" | sed "s/\./\\\\./g" | sed "s/!/\\\\!/g") echo "result<> $GITHUB_OUTPUT -- 2.52.0 From 98efc877af5b51ed0aa07b373b5100c9d63b6697 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 01:20:06 +0300 Subject: [PATCH 19/54] deploy-workflow: create docker compose file --- .gitea/actions/telegram-message-escape/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index a77799f..510cf8d 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -19,7 +19,7 @@ runs: env: RAW_MESSAGE: ${{ inputs.message }} run: | - ESCAPED_MESSAGE=$(echo "$RAW_MESSAGE" | sed "s/-/\\\\-/g" | sed "s/\./\\\\./g" | sed "s/!/\\\\!/g") + ESCAPED_MESSAGE=$(echo "$RAW_MESSAGE" | sed "s|-|-\\\\-|g" | sed "s|\.|\\\\.|g" | sed "s|!|\\\\!/g") echo "result<> $GITHUB_OUTPUT echo "$ESCAPED_MESSAGE" >> $GITHUB_OUTPUT -- 2.52.0 From d0a499078078770c3661345ed881bbdc7976ba91 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 01:22:01 +0300 Subject: [PATCH 20/54] deploy-workflow: create docker compose file --- .gitea/actions/telegram-message-escape/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index 510cf8d..89d80a8 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -19,7 +19,7 @@ runs: env: RAW_MESSAGE: ${{ inputs.message }} run: | - ESCAPED_MESSAGE=$(echo "$RAW_MESSAGE" | sed "s|-|-\\\\-|g" | sed "s|\.|\\\\.|g" | sed "s|!|\\\\!/g") + ESCAPED_MESSAGE=$(echo "$RAW_MESSAGE" | sed "s|-|-\\\\-|g" | sed "s|\.|\ \ \ \ .|g" | sed "s|!|\\\\!|g") echo "result<> $GITHUB_OUTPUT echo "$ESCAPED_MESSAGE" >> $GITHUB_OUTPUT -- 2.52.0 From c159c0177f65ef55031b7265ad7a243623349fb4 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 01:27:59 +0300 Subject: [PATCH 21/54] deploy-workflow: create docker compose file --- .../telegram-message-escape/action.yaml | 21 ++++++++++++++----- .gitea/workflows/deploy.yaml | 4 ++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index 89d80a8..9fe0d01 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -15,12 +15,23 @@ runs: using: 'composite' steps: - id: escape - shell: bash + shell: python env: RAW_MESSAGE: ${{ inputs.message }} + ESCAPED_MESSAGE: ${{ github.output }} run: | - ESCAPED_MESSAGE=$(echo "$RAW_MESSAGE" | sed "s|-|-\\\\-|g" | sed "s|\.|\ \ \ \ .|g" | sed "s|!|\\\\!|g") + import os + + raw_text = os.environ.get("RAW_MESSAGE", "") + output_file = os.environ.get("ESCAPED_MESSAGE") + + escape_chars = ["-", ".", "!"] - echo "result<> $GITHUB_OUTPUT - echo "$ESCAPED_MESSAGE" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + escaped_text = raw_text + for char in escape_chars: + escaped_text = escaped_text.replace(char, f"\\{char}") + + with open(output_file, "a", encoding="utf-8") as f: + f.write("result< Date: Sat, 4 Jul 2026 01:31:31 +0300 Subject: [PATCH 22/54] deploy-workflow: create docker compose file --- .gitea/actions/telegram-message-escape/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index 9fe0d01..93dad1b 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -18,7 +18,7 @@ runs: shell: python env: RAW_MESSAGE: ${{ inputs.message }} - ESCAPED_MESSAGE: ${{ github.output }} + ESCAPED_MESSAGE: $GITHUB_OUTPUT run: | import os -- 2.52.0 From 457bf8e58629222b726fde9a3c6a561929dddc52 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 01:41:14 +0300 Subject: [PATCH 23/54] deploy-workflow: create docker compose file --- .gitea/actions/telegram-message-escape/action.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index 93dad1b..facd085 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -26,11 +26,12 @@ runs: output_file = os.environ.get("ESCAPED_MESSAGE") escape_chars = ["-", ".", "!"] - escaped_text = raw_text for char in escape_chars: escaped_text = escaped_text.replace(char, f"\\{char}") + escaped_text = escaped_text.replace("`", "\\`") + with open(output_file, "a", encoding="utf-8") as f: f.write("result< Date: Sat, 4 Jul 2026 01:44:33 +0300 Subject: [PATCH 24/54] deploy-workflow: create docker compose file --- .../telegram-message-escape/action.yaml | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index facd085..8eda048 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -25,12 +25,22 @@ runs: raw_text = os.environ.get("RAW_MESSAGE", "") output_file = os.environ.get("ESCAPED_MESSAGE") - escape_chars = ["-", ".", "!"] - escaped_text = raw_text - for char in escape_chars: - escaped_text = escaped_text.replace(char, f"\\{char}") + def escape_text(text): + escape_chars = ["-", ".", "!"] + for char in escape_chars: + text = text.replace(char, f"\\{char}") + return text - escaped_text = escaped_text.replace("`", "\\`") + parts = raw_text.split("`") + processed_parts = [] + + for i, part in enumerate(parts): + if i % 2 == 0: + processed_parts.append(escape_text(part)) + else: + processed_parts.append(f"\\`{part}\\`") + + escaped_text = "".join(processed_parts) with open(output_file, "a", encoding="utf-8") as f: f.write("result< Date: Sat, 4 Jul 2026 01:56:26 +0300 Subject: [PATCH 25/54] deploy-workflow: create docker compose file --- .../telegram-message-escape/action.yaml | 36 +++++-------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index 8eda048..a5bc84e 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -15,34 +15,16 @@ runs: using: 'composite' steps: - id: escape - shell: python + shell: bash env: RAW_MESSAGE: ${{ inputs.message }} - ESCAPED_MESSAGE: $GITHUB_OUTPUT run: | - import os + MSG="$RAW_MESSAGE" + MSG="${MSG//-/\\-}" + MSG="${MSG//./\\.}" + MSG="${MSG//!/\\!}" + MSG="${MSG//\`/\\\\\\\`}" - raw_text = os.environ.get("RAW_MESSAGE", "") - output_file = os.environ.get("ESCAPED_MESSAGE") - - def escape_text(text): - escape_chars = ["-", ".", "!"] - for char in escape_chars: - text = text.replace(char, f"\\{char}") - return text - - parts = raw_text.split("`") - processed_parts = [] - - for i, part in enumerate(parts): - if i % 2 == 0: - processed_parts.append(escape_text(part)) - else: - processed_parts.append(f"\\`{part}\\`") - - escaped_text = "".join(processed_parts) - - with open(output_file, "a", encoding="utf-8") as f: - f.write("result<> $GITHUB_OUTPUT + echo "$MSG" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT -- 2.52.0 From 8f48806208b1b338c4050cb058cd79dfe43d6bd8 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 02:08:19 +0300 Subject: [PATCH 26/54] deploy-workflow: create docker compose file --- .gitea/actions/telegram-message-escape/action.yaml | 1 - .gitea/workflows/deploy.yaml | 4 ++-- .gitea/workflows/test_telegram_deploy_bot.yaml | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml index a5bc84e..0318365 100644 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ b/.gitea/actions/telegram-message-escape/action.yaml @@ -23,7 +23,6 @@ runs: MSG="${MSG//-/\\-}" MSG="${MSG//./\\.}" MSG="${MSG//!/\\!}" - MSG="${MSG//\`/\\\\\\\`}" echo "result<> $GITHUB_OUTPUT echo "$MSG" >> $GITHUB_OUTPUT diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index ce41a65..727894e 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -110,13 +110,13 @@ jobs: --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ - -d "text=$SUCCESS_DEPLOY_MESSAGE" > /dev/null + -d "text='"'\$SUCCESS_DEPLOY_MESSAGE'"'" > /dev/null else curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ - -d "text=$FAILURE_DEPLOY_MESSAGE" > /dev/null + -d "text='"'\$FAILURE_DEPLOY_MESSAGE'"'" > /dev/null curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index e1fea00..c7cad06 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -36,5 +36,5 @@ jobs: --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ - -d "text=$MESSAGE" > /dev/null + -d "text='"'\$MESSAGE'"'" > /dev/null EOT \ No newline at end of file -- 2.52.0 From af20fc9662656ffc0ccc0ec87b91ea88fcc41376 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 02:13:34 +0300 Subject: [PATCH 27/54] deploy-workflow: create docker compose file --- .gitea/workflows/test_telegram_deploy_bot.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index c7cad06..821e747 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -31,10 +31,12 @@ jobs: PROXY_URL: ${{ secrets.PROXY_URL }} MESSAGE: ${{ steps.prepare_message.outputs.escaped_message }} run: | - sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << 'EOT' + set -e + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ - -d "text='"'\$MESSAGE'"'" > /dev/null + -d "text=${MESSAGE}" EOT \ No newline at end of file -- 2.52.0 From 23846918e60a0090c075527a4a139a70cacf8ffc Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 02:16:55 +0300 Subject: [PATCH 28/54] deploy-workflow: create docker compose file --- .gitea/workflows/test_telegram_deploy_bot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index 821e747..d03455e 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -34,7 +34,7 @@ jobs: sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << 'EOT' set -e - curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ + curl -s --connect-timeout 10 -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ -- 2.52.0 From 6db07787faefb06bbd1f4e21077751b0330fc6c9 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 02:39:03 +0300 Subject: [PATCH 29/54] deploy-workflow: create docker compose file --- .gitea/workflows/test_telegram_deploy_bot.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index d03455e..6d5ee80 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -31,12 +31,12 @@ jobs: PROXY_URL: ${{ secrets.PROXY_URL }} MESSAGE: ${{ steps.prepare_message.outputs.escaped_message }} run: | - sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << 'EOT' + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e curl -s --connect-timeout 10 -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=MarkdownV2" \ - -d "text=${MESSAGE}" + -d "text=\$MESSAGE" EOT \ No newline at end of file -- 2.52.0 From 52cd7840ef55c44051236d9e0965ae43cfa5ae9d Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 02:43:27 +0300 Subject: [PATCH 30/54] deploy-workflow: create docker compose file --- .gitea/workflows/test_telegram_deploy_bot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index 6d5ee80..6efc574 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -37,6 +37,6 @@ jobs: curl -s --connect-timeout 10 -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ - -d "parse_mode=MarkdownV2" \ + -d "parse_mode=HTML" \ -d "text=\$MESSAGE" EOT \ No newline at end of file -- 2.52.0 From 7115cd5d3606e1181d857bcbf88200df951d4623 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 02:46:21 +0300 Subject: [PATCH 31/54] deploy-workflow: create docker compose file --- .gitea/workflows/test_telegram_deploy_bot.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index 6efc574..7d1c5d3 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -38,5 +38,5 @@ jobs: --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - -d "text=\$MESSAGE" + --data-urlencode "text=💬 Test message! Релиз: ${{ gitea.ref_name }}" EOT \ No newline at end of file -- 2.52.0 From 18687a2f01e9848e7f168fa795c9730fb99d072f Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 02:59:01 +0300 Subject: [PATCH 32/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 22 ++++--------------- .../workflows/test_telegram_deploy_bot.yaml | 8 +------ 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 727894e..2dacc35 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -73,18 +73,6 @@ jobs: chmod 600 secrets/*.txt EOT - - name: ✍️ Prepare success deploy message - id: prepare_success_deploy_message - uses: ./.gitea/actions/telegram-message-escape - with: - message: '✅ *Деплой успешен!* %0A%0AСервер применил релиз: `${{ gitea.ref_name }}`' - - - name: ✍️ Prepare failure deploy message - id: prepare_failure_deploy_message - uses: ./.gitea/actions/telegram-message-escape - with: - message: '❌ *Ошибка деплоя!* %0A%0AСервер *не* применил релиз: `${{ gitea.ref_name }}`' - - name: 🚀 Run new containers env: SSHPASS: ${{ secrets.SSH_PASSWORD }} @@ -95,8 +83,6 @@ jobs: TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_DEPLOY_BOT_TOKEN }} TELEGRAM_CHAT: ${{ secrets.TELEGRAM_DEPLOY_CHAT_ID }} PROXY_URL: ${{ secrets.PROXY_URL }} - SUCCESS_DEPLOY_MESSAGE: ${{ steps.prepare_success_deploy_message.outputs.escaped_message }} - FAILURE_DEPLOY_MESSAGE: ${{ steps.prepare_failure_deploy_message.outputs.escaped_message }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e @@ -109,14 +95,14 @@ jobs: curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ - -d "parse_mode=MarkdownV2" \ - -d "text='"'\$SUCCESS_DEPLOY_MESSAGE'"'" > /dev/null + -d "parse_mode=HTML" \ + --data-urlencode "text=✅ Деплой успешен!%0A%0AСервер применил релиз: ${REF_NAME}" > /dev/null else curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ - -d "parse_mode=MarkdownV2" \ - -d "text='"'\$FAILURE_DEPLOY_MESSAGE'"'" > /dev/null + -d "parse_mode=HTML" \ + --data-urlencode "text=❌ Ошибка деплоя!%0A%0AСервер не применил релиз: ${REF_NAME}" > /dev/null curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ diff --git a/.gitea/workflows/test_telegram_deploy_bot.yaml b/.gitea/workflows/test_telegram_deploy_bot.yaml index 7d1c5d3..a4e49ca 100644 --- a/.gitea/workflows/test_telegram_deploy_bot.yaml +++ b/.gitea/workflows/test_telegram_deploy_bot.yaml @@ -15,12 +15,6 @@ jobs: with: ssh_host: ${{ secrets.SSH_HOST }} - - name: ✍️ Prepare message - id: prepare_message - uses: ./.gitea/actions/telegram-message-escape - with: - message: 💬 Test message - - name: 💬 Send message env: SSHPASS: ${{ secrets.SSH_PASSWORD }} @@ -38,5 +32,5 @@ jobs: --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - --data-urlencode "text=💬 Test message! Релиз: ${{ gitea.ref_name }}" + --data-urlencode "text=💬 Test message" EOT \ No newline at end of file -- 2.52.0 From 8b7568c61baddc225762bf389d92bc4a53e8a07b Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 03:04:48 +0300 Subject: [PATCH 33/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 2dacc35..19f345b 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -96,13 +96,17 @@ jobs: --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - --data-urlencode "text=✅ Деплой успешен!%0A%0AСервер применил релиз: ${REF_NAME}" > /dev/null + --data-urlencode "text=✅ Деплой успешен! + + Сервер применил релиз: ${REF_NAME}" > /dev/null else curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - --data-urlencode "text=❌ Ошибка деплоя!%0A%0AСервер не применил релиз: ${REF_NAME}" > /dev/null + --data-urlencode "text=❌ Ошибка деплоя! + + Сервер не применил релиз: ${REF_NAME}" > /dev/null curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ -- 2.52.0 From 557194a01fbe7083d8431df9d59d0774f9e7fc85 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 03:06:17 +0300 Subject: [PATCH 34/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 19f345b..0b9d4bd 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -98,7 +98,7 @@ jobs: -d "parse_mode=HTML" \ --data-urlencode "text=✅ Деплой успешен! - Сервер применил релиз: ${REF_NAME}" > /dev/null + Сервер применил релиз: ${REF_NAME}" > /dev/null else curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ @@ -106,7 +106,7 @@ jobs: -d "parse_mode=HTML" \ --data-urlencode "text=❌ Ошибка деплоя! - Сервер не применил релиз: ${REF_NAME}" > /dev/null + Сервер не применил релиз: ${REF_NAME}" > /dev/null curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ -- 2.52.0 From df4d6e064ea70689835f7375f5a95bc69d1d9125 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 03:10:41 +0300 Subject: [PATCH 35/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 0b9d4bd..2457294 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -83,6 +83,14 @@ jobs: TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_DEPLOY_BOT_TOKEN }} TELEGRAM_CHAT: ${{ secrets.TELEGRAM_DEPLOY_CHAT_ID }} PROXY_URL: ${{ secrets.PROXY_URL }} + SUCCESS_MSG: |- + ✅ Деплой успешен! + + Сервер применил релиз: ${{ env.CLEAN_REF_NAME }} + FAILURE_MSG: |- + ❌ Ошибка деплоя! + + Сервер не применил релиз: ${{ env.CLEAN_REF_NAME }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e @@ -96,17 +104,13 @@ jobs: --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - --data-urlencode "text=✅ Деплой успешен! - - Сервер применил релиз: ${REF_NAME}" > /dev/null + --data-urlencode "text=${SUCCESS_MSG}" > /dev/null else curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - --data-urlencode "text=❌ Ошибка деплоя! - - Сервер не применил релиз: ${REF_NAME}" > /dev/null + --data-urlencode "text=${FAILURE_MSG}" > /dev/null curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ -- 2.52.0 From fdcd3eac2e9aa1b239a940241180f6dd742f5add Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 03:12:01 +0300 Subject: [PATCH 36/54] deploy-workflow: create docker compose file --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0682072..b46844e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -112,5 +112,5 @@ secrets: beszel_agent_token: file: secrets/beszel_agent_token.txt gitea_runner_registration_token: - file: secrets/gitea_runner_registration_token.txt + file: secrets/gitea_runner_registration_token_error.txt \ No newline at end of file -- 2.52.0 From 8700d316fac7190b682108ba97fdc5b8a75ab155 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 03:14:25 +0300 Subject: [PATCH 37/54] deploy-workflow: create docker compose file --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b46844e..88805ba 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: ports: - '80:80' - '443:443' - volumes: + volumes: - ./data/nginx-proxy-manager/data:/data - ./data/nginx-proxy-manager/letsencrypt:/etc/letsencrypt healthcheck: @@ -112,5 +112,5 @@ secrets: beszel_agent_token: file: secrets/beszel_agent_token.txt gitea_runner_registration_token: - file: secrets/gitea_runner_registration_token_error.txt + file: secrets/gitea_runner_registration_token.txt \ No newline at end of file -- 2.52.0 From feaf427969384609a6e46bed400e9e77452ffebe Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:08:41 +0300 Subject: [PATCH 38/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 29 ++++++++++++++--------------- docker-compose.yml | 2 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 2457294..b436918 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -83,44 +83,43 @@ jobs: TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_DEPLOY_BOT_TOKEN }} TELEGRAM_CHAT: ${{ secrets.TELEGRAM_DEPLOY_CHAT_ID }} PROXY_URL: ${{ secrets.PROXY_URL }} - SUCCESS_MSG: |- - ✅ Деплой успешен! - - Сервер применил релиз: ${{ env.CLEAN_REF_NAME }} - FAILURE_MSG: |- + SUCCESS_MESSAGE: |- + ✅ Успешный делой! + Релиз: ${{ gitea.ref_name }} + FAILURE_MESSAGE: |- ❌ Ошибка деплоя! - - Сервер не применил релиз: ${{ env.CLEAN_REF_NAME }} + Релиз: ${{ gitea.ref_name }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e cd "$DEPLOY_DIRECTORY" + DEPLOY_LOG_FILE="/tmp/deploy-${REF_NAME}.log" + nohup bash -c ' - sleep 10 + sleep 5 - if docker compose --dry-run -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > /tmp/docker_deploy.log 2>&1; then + if docker compose --dry-run -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > \${DEPLOY_LOG_FILE} 2>&1; then curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - --data-urlencode "text=${SUCCESS_MSG}" > /dev/null + --data-urlencode "text=${SUCCESS_MESSAGE}" > /dev/null else curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ - --data-urlencode "text=${FAILURE_MSG}" > /dev/null + --data-urlencode "text=${FAILURE_MESSAGE}" > /dev/null curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ -F "chat_id=${TELEGRAM_CHAT}" \ - -F "document=@/tmp/docker_deploy.log" \ - -F "caption=logs" > /dev/null + -F "document=@\${DEPLOY_LOG_FILE}" > /dev/null fi - rm -f /tmp/docker_deploy.log + rm -f \${DEPLOY_LOG_FILE} ' > /dev/null 2>&1 & EOT - echo "New containers will be started after 10 seconds" \ No newline at end of file + echo "New containers will be started after 5 seconds" \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 88805ba..0682072 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: ports: - '80:80' - '443:443' - volumes: + volumes: - ./data/nginx-proxy-manager/data:/data - ./data/nginx-proxy-manager/letsencrypt:/etc/letsencrypt healthcheck: -- 2.52.0 From c8fc8776fd56723c8a7465d2fe7f08ef3ca2fdca Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:14:40 +0300 Subject: [PATCH 39/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index b436918..72d08df 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -96,10 +96,10 @@ jobs: DEPLOY_LOG_FILE="/tmp/deploy-${REF_NAME}.log" - nohup bash -c ' + nohup bash -c " sleep 5 - if docker compose --dry-run -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > \${DEPLOY_LOG_FILE} 2>&1; then + if docker compose --dry-run -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > \$DEPLOY_LOG_FILE 2>&1; then curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ @@ -115,11 +115,11 @@ jobs: curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ -F "chat_id=${TELEGRAM_CHAT}" \ - -F "document=@\${DEPLOY_LOG_FILE}" > /dev/null + -F "document=@\$DEPLOY_LOG_FILE" > /dev/null fi - rm -f \${DEPLOY_LOG_FILE} - ' > /dev/null 2>&1 & + rm -f \$DEPLOY_LOG_FILE + " > /dev/null 2>&1 & EOT echo "New containers will be started after 5 seconds" \ No newline at end of file -- 2.52.0 From 7088ab43ad23e4c10f6383385437e0b822b96db1 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:18:58 +0300 Subject: [PATCH 40/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 72d08df..7d8eb40 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -89,17 +89,16 @@ jobs: FAILURE_MESSAGE: |- ❌ Ошибка деплоя! Релиз: ${{ gitea.ref_name }} + DEPLOY_LOG_FILE: /tmp/deploy-${{ env.CLEAN_REF_NAME }}.log run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e cd "$DEPLOY_DIRECTORY" - DEPLOY_LOG_FILE="/tmp/deploy-${REF_NAME}.log" - - nohup bash -c " + nohup bash -c ' sleep 5 - if docker compose --dry-run -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > \$DEPLOY_LOG_FILE 2>&1; then + if docker compose --dry-run -f "docker-compose-${REF_NAME}.yml" up -d --remove-orphans > ${DEPLOY_LOG_FILE} 2>&1; then curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage" \ --proxy "${PROXY_URL}" \ -d "chat_id=${TELEGRAM_CHAT}" \ @@ -115,11 +114,11 @@ jobs: curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ -F "chat_id=${TELEGRAM_CHAT}" \ - -F "document=@\$DEPLOY_LOG_FILE" > /dev/null + -F "document=@${DEPLOY_LOG_FILE}" > /dev/null fi - rm -f \$DEPLOY_LOG_FILE - " > /dev/null 2>&1 & + rm -f ${DEPLOY_LOG_FILE} + ' > /dev/null 2>&1 & EOT echo "New containers will be started after 5 seconds" \ No newline at end of file -- 2.52.0 From 9c0cff6a1b23ac3c8dac5da0c5dc78e08a970cbb Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:20:07 +0300 Subject: [PATCH 41/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 7d8eb40..7b916ad 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -84,7 +84,7 @@ jobs: TELEGRAM_CHAT: ${{ secrets.TELEGRAM_DEPLOY_CHAT_ID }} PROXY_URL: ${{ secrets.PROXY_URL }} SUCCESS_MESSAGE: |- - ✅ Успешный делой! + ✅ Успешный деплой! Релиз: ${{ gitea.ref_name }} FAILURE_MESSAGE: |- ❌ Ошибка деплоя! -- 2.52.0 From b840b6bbbc71189498a3fab42296850f4c14f4ca Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:21:07 +0300 Subject: [PATCH 42/54] deploy-workflow: create docker compose file --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index 0682072..032ad2b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,6 +18,8 @@ services: pwd: image: 'vaultwarden/server:latest' restart: unless-stopped + ports: + - '80:80' volumes: - ./data/vaultwarden:/data secrets: -- 2.52.0 From b5ebd32a0d02d916966f56ed9b642dc5007d4a3d Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:25:02 +0300 Subject: [PATCH 43/54] deploy-workflow: create docker compose file --- docker-compose.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 032ad2b..84d409f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,8 +18,6 @@ services: pwd: image: 'vaultwarden/server:latest' restart: unless-stopped - ports: - - '80:80' volumes: - ./data/vaultwarden:/data secrets: @@ -113,6 +111,6 @@ secrets: file: secrets/beszel_agent_key.txt beszel_agent_token: file: secrets/beszel_agent_token.txt - gitea_runner_registration_token: - file: secrets/gitea_runner_registration_token.txt + # gitea_runner_registration_token: + # file: secrets/gitea_runner_registration_token.txt \ No newline at end of file -- 2.52.0 From 327f4368c63c78eb57e76408e41c1f3a7bc65db7 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:28:51 +0300 Subject: [PATCH 44/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 7b916ad..337b118 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -110,12 +110,12 @@ jobs: -d "chat_id=${TELEGRAM_CHAT}" \ -d "parse_mode=HTML" \ --data-urlencode "text=${FAILURE_MESSAGE}" > /dev/null - - curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ - --proxy "${PROXY_URL}" \ - -F "chat_id=${TELEGRAM_CHAT}" \ - -F "document=@${DEPLOY_LOG_FILE}" > /dev/null fi + + curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ + --proxy "${PROXY_URL}" \ + -F "chat_id=${TELEGRAM_CHAT}" \ + -F "document=@${DEPLOY_LOG_FILE}" > /dev/null rm -f ${DEPLOY_LOG_FILE} ' > /dev/null 2>&1 & -- 2.52.0 From 6bb16b3b1f04194ef8808061d755681ad7391d25 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:29:48 +0300 Subject: [PATCH 45/54] deploy-workflow: create docker compose file --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 84d409f..0682072 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -111,6 +111,6 @@ secrets: file: secrets/beszel_agent_key.txt beszel_agent_token: file: secrets/beszel_agent_token.txt - # gitea_runner_registration_token: - # file: secrets/gitea_runner_registration_token.txt + gitea_runner_registration_token: + file: secrets/gitea_runner_registration_token.txt \ No newline at end of file -- 2.52.0 From cebc67e9a496d6d07c3d3cc02fe31eb7d246a709 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:36:00 +0300 Subject: [PATCH 46/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 337b118..f7517e6 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -115,9 +115,7 @@ jobs: curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendDocument" \ --proxy "${PROXY_URL}" \ -F "chat_id=${TELEGRAM_CHAT}" \ - -F "document=@${DEPLOY_LOG_FILE}" > /dev/null - - rm -f ${DEPLOY_LOG_FILE} + -F "document=@${DEPLOY_LOG_FILE}" > /dev/null && rm -f ${DEPLOY_LOG_FILE} ' > /dev/null 2>&1 & EOT -- 2.52.0 From 264225bb8b2aa4a51fddb55847f3b8b0b91d4fc9 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:37:03 +0300 Subject: [PATCH 47/54] deploy-workflow: create docker compose file --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 0682072..84d409f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -111,6 +111,6 @@ secrets: file: secrets/beszel_agent_key.txt beszel_agent_token: file: secrets/beszel_agent_token.txt - gitea_runner_registration_token: - file: secrets/gitea_runner_registration_token.txt + # gitea_runner_registration_token: + # file: secrets/gitea_runner_registration_token.txt \ No newline at end of file -- 2.52.0 From da67941519ce7662a78bff087e7c24127b32b998 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:51:09 +0300 Subject: [PATCH 48/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index f7517e6..0991e4b 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -37,7 +37,7 @@ jobs: cat > \"docker-compose-$REF_NAME.yml\"" \ < docker-compose.yml - - name: 🔐 Create secrets + - name: 🔐 Create secrets and envs env: SSHPASS: ${{ secrets.SSH_PASSWORD }} SSH_USERNAME: ${{ secrets.SSH_USERNAME }} @@ -45,12 +45,22 @@ jobs: DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} BESZEL_AGENT_KEY: ${{ secrets.BESZEL_AGENT_KEY }} BESZEL_AGENT_TOKEN: ${{ secrets.BESZEL_AGENT_TOKEN }} + BESZEL_HUB_URL: ${{ vars.BESZEL_HUB_URL }} GITEA_RUNNER_REGISTRATION_TOKEN: ${{ secrets.RUNNER_REGISTRATION_TOKEN }} + GITEA_URL: ${{ vars.GIT_URL }} VAULTWARDEN_ADMIN_TOKEN: ${{ secrets.VAULTWARDEN_ADMIN_TOKEN }} + NEXTCLOUD_DOMAIN: ${{ vars.NEXTCLOUD_DOMAIN }} run: | sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT set -e cd "$DEPLOY_DIRECTORY" + + cat << 'EOF_ENV' > .env + BESZEL_HUB_URL=$BESZEL_HUB_URL + NEXTCLOUD_DOMAIN=$NEXTCLOUD_DOMAIN + GITEA_URL=$GITEA_URL + EOF_ENV + mkdir -p secrets cat << 'EOF_SECRET' > secrets/beszel_agent_key.txt -- 2.52.0 From 730077376a533aa7ef85fae0a6ac5e66c1c9bc11 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 17:52:50 +0300 Subject: [PATCH 49/54] deploy-workflow: create docker compose file --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 84d409f..0682072 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -111,6 +111,6 @@ secrets: file: secrets/beszel_agent_key.txt beszel_agent_token: file: secrets/beszel_agent_token.txt - # gitea_runner_registration_token: - # file: secrets/gitea_runner_registration_token.txt + gitea_runner_registration_token: + file: secrets/gitea_runner_registration_token.txt \ No newline at end of file -- 2.52.0 From 158277f0ffb23bd58223e908bb064600564bfefa Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 18:26:24 +0300 Subject: [PATCH 50/54] deploy-workflow: create docker compose file --- .gitea/workflows/deploy.yaml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 0991e4b..bdabbe0 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -22,6 +22,35 @@ jobs: with: ssh_host: ${{ secrets.SSH_HOST }} + - name: 📦 Create backup of data/ folder + env: + SSHPASS: ${{ secrets.SSH_PASSWORD }} + SSH_USERNAME: ${{ secrets.SSH_USERNAME }} + SSH_HOST: ${{ secrets.SSH_HOST }} + DEPLOY_DIRECTORY: ${{ secrets.DEPLOY_DIRECTORY }} + REF_NAME: ${{ env.CLEAN_REF_NAME }} + run: | + sshpass -e ssh -p 22 "$SSH_USERNAME@$SSH_HOST" bash -s << EOT + set -e + cd "$DEPLOY_DIRECTORY" + + mkdir -p backups + + BACKUP_DATE=\$(date +%Y-%m-%d_%H-%M-%S) + BACKUP_FILE="backups/backup-${REF_NAME}-\${BACKUP_DATE}.tar.gz" + + echo "Creating backup of data/ into \${BACKUP_FILE}..." + + if [ -d "data" ]; then + tar -czf "\${BACKUP_FILE}" data + echo "✅ Backup created successfully!" + else + echo "⚡️ No data/ folder, backup creation skipped." + fi + + find backups/ -type f -name "backup-*.tar.gz" -mtime +7 -delete + EOT + - name: 🏗️ Create docker-compose file env: SSHPASS: ${{ secrets.SSH_PASSWORD }} -- 2.52.0 From 1aa8bae40935f8c99b5fc6512dff3bcc9610b20d Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 19:10:12 +0300 Subject: [PATCH 51/54] ideas moved to repo wiki --- IDEAS.md | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 IDEAS.md diff --git a/IDEAS.md b/IDEAS.md deleted file mode 100644 index 7c81d8d..0000000 --- a/IDEAS.md +++ /dev/null @@ -1,6 +0,0 @@ -1. Backup data/ before rerun containers -2. Auto run on new realese -3. Разделение докер сетей -4. Notifications -5. Bot for server operations -6. multi device copy-paste \ No newline at end of file -- 2.52.0 From ee413eda26eae5c82404f244ac0ed6a524ec1260 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 19:10:25 +0300 Subject: [PATCH 52/54] .env.example --- .env.example | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..69293b9 --- /dev/null +++ b/.env.example @@ -0,0 +1,3 @@ +BESZEL_HUB_URL=http://mon.localhost +NEXTCLOUD_DOMAIN=cld.localhost +GITEA_URL=http://git:3000 -- 2.52.0 From 953d677f169701a6de416b11919c2d76bb35a9f6 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 19:10:51 +0300 Subject: [PATCH 53/54] demo workflow deleted --- .gitea/workflows/demo.yaml | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .gitea/workflows/demo.yaml diff --git a/.gitea/workflows/demo.yaml b/.gitea/workflows/demo.yaml deleted file mode 100644 index 394c807..0000000 --- a/.gitea/workflows/demo.yaml +++ /dev/null @@ -1,19 +0,0 @@ -name: Gitea Actions Demo -run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀 -on: [push] - -jobs: - Explore-Gitea-Actions: - runs-on: ubuntu-latest - steps: - - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event." - - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!" - - run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}." - - name: Check out repository code - uses: actions/checkout@v4 - - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner." - - run: echo "🖥️ The workflow is now ready to test your code on the runner." - - name: List files in the repository - run: | - ls ${{ gitea.workspace }} - - run: echo "🍏 This job's status is ${{ job.status }}." \ No newline at end of file -- 2.52.0 From d7e91190cb663b6023e3a38b4f398fb7d2914522 Mon Sep 17 00:00:00 2001 From: vbevdev Date: Sat, 4 Jul 2026 19:11:53 +0300 Subject: [PATCH 54/54] deleted unused telegram message action --- .../telegram-message-escape/action.yaml | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 .gitea/actions/telegram-message-escape/action.yaml diff --git a/.gitea/actions/telegram-message-escape/action.yaml b/.gitea/actions/telegram-message-escape/action.yaml deleted file mode 100644 index 0318365..0000000 --- a/.gitea/actions/telegram-message-escape/action.yaml +++ /dev/null @@ -1,29 +0,0 @@ -name: '🧼 Telegram message escape' -description: 'Automatically escapes dots, dashes, and exclamation marks for Telegram MarkdownV2' - -inputs: - message: - description: 'The raw text string to escape' - required: true - -outputs: - escaped_message: - description: 'The safely escaped string ready for Telegram' - value: ${{ steps.escape.outputs.result }} - -runs: - using: 'composite' - steps: - - id: escape - shell: bash - env: - RAW_MESSAGE: ${{ inputs.message }} - run: | - MSG="$RAW_MESSAGE" - MSG="${MSG//-/\\-}" - MSG="${MSG//./\\.}" - MSG="${MSG//!/\\!}" - - echo "result<> $GITHUB_OUTPUT - echo "$MSG" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT -- 2.52.0