From d7ed87005df03cf3f9d23e5126ee5d1d3538f843 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Thu, 11 Jun 2026 07:48:11 +0300 Subject: [PATCH 01/18] server:nginx:add healthcheck endpoint --- server/nginx/default.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/server/nginx/default.conf b/server/nginx/default.conf index 847058a..deab292 100644 --- a/server/nginx/default.conf +++ b/server/nginx/default.conf @@ -2,6 +2,11 @@ server { listen 80; server_name api.eat-log.ru; + location = /healthz { + access_log off; + return 200 "ok\n"; + } + location / { proxy_pass http://api:5285; } From 5efe8d1e799c8fb35454c8b25175a6d6f27ab91b Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Thu, 11 Jun 2026 07:48:26 +0300 Subject: [PATCH 02/18] server:add bot`s and nginx`s healthecks --- server/docker-compose.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/server/docker-compose.yaml b/server/docker-compose.yaml index b74c8ee..4eb3172 100644 --- a/server/docker-compose.yaml +++ b/server/docker-compose.yaml @@ -15,6 +15,12 @@ services: depends_on: api: condition: service_healthy + healthcheck: + test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://api:5285/health')"] + interval: 5s + timeout: 5s + retries: 5 + start_period: 5s nginx: build: ./nginx/ @@ -24,3 +30,9 @@ services: depends_on: api: condition: service_healthy + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/healthz"] + interval: 5s + timeout: 5s + retries: 5 + start_period: 5s From 07cdba9ec3fb67422c5ae72659c8a479106a0813 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 22:07:25 +0300 Subject: [PATCH 03/18] update README.MD --- README.MD | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.MD b/README.MD index df245fb..e78af22 100644 --- a/README.MD +++ b/README.MD @@ -1,8 +1,5 @@ -Привязка тг бота Настройка уведомлений Обновить логику обновления Meal. Обновлять может только тот, кто его создал если другой хочет обновить, он может написать заявку на обновление она придет к пользователю кто создал это обновление с кнопками Одобрить Отклонить. При Одобрении обновление в БД. finally ответ отправляем тому, кто создал заявку. Поддержка HTTPS - - From 6b7b31dde2fedba2b343f7614214b93f40ba66d2 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 22:10:41 +0300 Subject: [PATCH 04/18] b:api:delete BOT_TOKEN from env --- server/api/.env.example | 2 -- server/api/src/config.py | 2 -- 2 files changed, 4 deletions(-) diff --git a/server/api/.env.example b/server/api/.env.example index c1ac9f8..98030df 100644 --- a/server/api/.env.example +++ b/server/api/.env.example @@ -3,5 +3,3 @@ DB_PORT= DB_NAME= DB_USER= DB_PASSWORD= - -BOT_TOKEN= diff --git a/server/api/src/config.py b/server/api/src/config.py index fb5d930..b5265eb 100644 --- a/server/api/src/config.py +++ b/server/api/src/config.py @@ -9,5 +9,3 @@ DATABASE_URL = ( f"postgresql+asyncpg://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}" ) - -BOT_TOKEN = os.getenv("BOT_TOKEN", "") From b9bc6ecbce7bbe9ff81796b0d14237bd030bf6e6 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:02:17 +0300 Subject: [PATCH 05/18] server:use github secrets --- server/.gitignore | 4 ++++ server/api/.env.example | 5 ----- server/api/.gitignore | 5 ----- server/bot/.env.example | 1 - server/bot/.gitignore | 5 ----- server/docker-compose.yaml | 10 ++++++++-- 6 files changed, 12 insertions(+), 18 deletions(-) delete mode 100644 server/api/.env.example delete mode 100644 server/api/.gitignore delete mode 100644 server/bot/.env.example delete mode 100644 server/bot/.gitignore diff --git a/server/.gitignore b/server/.gitignore index 6ae781e..6a730e5 100644 --- a/server/.gitignore +++ b/server/.gitignore @@ -1 +1,5 @@ docker-compose.dev.yaml +__pycache__/ +.venv/ +.ruff_cache/ +.mypy_cache/ diff --git a/server/api/.env.example b/server/api/.env.example deleted file mode 100644 index 98030df..0000000 --- a/server/api/.env.example +++ /dev/null @@ -1,5 +0,0 @@ -DB_HOST= -DB_PORT= -DB_NAME= -DB_USER= -DB_PASSWORD= diff --git a/server/api/.gitignore b/server/api/.gitignore deleted file mode 100644 index 3bca7e1..0000000 --- a/server/api/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -__pycache__/ -.venv/ -.ruff_cache/ -.mypy_cache/ -.env diff --git a/server/bot/.env.example b/server/bot/.env.example deleted file mode 100644 index bfb6be5..0000000 --- a/server/bot/.env.example +++ /dev/null @@ -1 +0,0 @@ -BOT_TOKEN= diff --git a/server/bot/.gitignore b/server/bot/.gitignore deleted file mode 100644 index 3bca7e1..0000000 --- a/server/bot/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -__pycache__/ -.venv/ -.ruff_cache/ -.mypy_cache/ -.env diff --git a/server/docker-compose.yaml b/server/docker-compose.yaml index 4eb3172..a4312bc 100644 --- a/server/docker-compose.yaml +++ b/server/docker-compose.yaml @@ -1,7 +1,12 @@ services: api: build: ./api/ - env_file: ./api/.env + environment: + DB_HOST: ${{ secrets.DB_HOST }} + DB_PORT: ${{ secrets.DB_PORT }} + DB_NAME: ${{ secrets.DB_NAME }} + DB_USER: ${{ secrets.DB_USER }} + DB_PASSWORD: ${{ secrets.DB_PASSWORD }} healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5285/health')"] interval: 5s @@ -11,7 +16,8 @@ services: bot: build: ./bot/ - env_file: ./bot/.env + environment: + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} depends_on: api: condition: service_healthy From ea1335510a50e95e4fb4b54e8438483149909b7d Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:36:02 +0300 Subject: [PATCH 06/18] .github:workflows:rename file --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 84f3a70..d693f8e 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -1,4 +1,4 @@ -name: ci +name: lint on: pull_request: From 62bc2d7c8ec01949f6399d8693ca92d6bc223a79 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:36:13 +0300 Subject: [PATCH 07/18] .github:workflows:create build workflow --- .github/workflows/build.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..ea25a91 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,16 @@ +name: build + +on: + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Build containers + uses: hoverkraft-tech/compose-action@11beaa1c2dae4e8ed7b1665aa074723b6cecb0e4 + with: + compose-file: ./server/docker-compose.yaml + up-flags: "-d --build --wait" From 07b6898f9420d71c6566d571bb1ed5f55cad7150 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:41:24 +0300 Subject: [PATCH 08/18] server:use env variables, not secret --- server/docker-compose.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/docker-compose.yaml b/server/docker-compose.yaml index a4312bc..4c84e0c 100644 --- a/server/docker-compose.yaml +++ b/server/docker-compose.yaml @@ -2,11 +2,11 @@ services: api: build: ./api/ environment: - DB_HOST: ${{ secrets.DB_HOST }} - DB_PORT: ${{ secrets.DB_PORT }} - DB_NAME: ${{ secrets.DB_NAME }} - DB_USER: ${{ secrets.DB_USER }} - DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + DB_HOST: ${DB_HOST} + DB_PORT: ${DB_PORT} + DB_NAME: ${DB_NAME} + DB_USER: ${DB_USER} + DB_PASSWORD: ${DB_PASSWORD} healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:5285/health')"] interval: 5s @@ -17,7 +17,7 @@ services: bot: build: ./bot/ environment: - BOT_TOKEN: ${{ secrets.BOT_TOKEN }} + BOT_TOKEN: ${BOT_TOKEN} depends_on: api: condition: service_healthy From 2779591d9b585450ee24f33541e23197db1a6d29 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:41:51 +0300 Subject: [PATCH 09/18] .github:workflows:setup env variables from git hub secrets --- .github/workflows/build.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ea25a91..4c5f7f0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -9,6 +9,14 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v6 + - name: Setup env variables + env: + DB_HOST: ${{ secrets.DB_HOST }} + DB_PORT: ${{ secrets.DB_PORT }} + DB_NAME: ${{ secrets.DB_NAME }} + DB_USER: ${{ secrets.DB_USER }} + DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} - name: Build containers uses: hoverkraft-tech/compose-action@11beaa1c2dae4e8ed7b1665aa074723b6cecb0e4 with: From 86878b2a11da3a9361436c840c48481296c8b422 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:47:24 +0300 Subject: [PATCH 10/18] .github:workflows:setup env variables in job, not in step --- .github/workflows/build.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4c5f7f0..df13b9c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -6,17 +6,16 @@ on: jobs: build: runs-on: ubuntu-latest + env: + DB_HOST: ${{ secrets.DB_HOST }} + DB_PORT: ${{ secrets.DB_PORT }} + DB_NAME: ${{ secrets.DB_NAME }} + DB_USER: ${{ secrets.DB_USER }} + DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} steps: - name: Checkout code uses: actions/checkout@v6 - - name: Setup env variables - env: - DB_HOST: ${{ secrets.DB_HOST }} - DB_PORT: ${{ secrets.DB_PORT }} - DB_NAME: ${{ secrets.DB_NAME }} - DB_USER: ${{ secrets.DB_USER }} - DB_PASSWORD: ${{ secrets.DB_PASSWORD }} - BOT_TOKEN: ${{ secrets.BOT_TOKEN }} - name: Build containers uses: hoverkraft-tech/compose-action@11beaa1c2dae4e8ed7b1665aa074723b6cecb0e4 with: From 31012cfa37c8050aa2976ac11204720d1d0c34af Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:54:46 +0300 Subject: [PATCH 11/18] TEMP: Debug nginx --- .github/workflows/build.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index df13b9c..c398ab2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -21,3 +21,8 @@ jobs: with: compose-file: ./server/docker-compose.yaml up-flags: "-d --build --wait" + - name: Debug nginx on failure + if: failure() + run: | + docker inspect --format '{{json .State.Health}}' server-nginx-1 + docker logs server-nginx-1 From 146daecc0a2e669248688847456275529c358f2c Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Fri, 12 Jun 2026 23:57:45 +0300 Subject: [PATCH 12/18] server:nginx now listen ipv6 --- .github/workflows/build.yaml | 5 ----- server/nginx/default.conf | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c398ab2..df13b9c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -21,8 +21,3 @@ jobs: with: compose-file: ./server/docker-compose.yaml up-flags: "-d --build --wait" - - name: Debug nginx on failure - if: failure() - run: | - docker inspect --format '{{json .State.Health}}' server-nginx-1 - docker logs server-nginx-1 diff --git a/server/nginx/default.conf b/server/nginx/default.conf index deab292..71e78c7 100644 --- a/server/nginx/default.conf +++ b/server/nginx/default.conf @@ -1,5 +1,6 @@ server { listen 80; + listen [::]:80; server_name api.eat-log.ru; location = /healthz { From c0542b92f9a9a5435bf7f8a52820456ca14e998c Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Sat, 13 Jun 2026 17:31:42 +0300 Subject: [PATCH 13/18] .github:workflows:create deploy workflow --- .github/workflows/deploy.yaml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/deploy.yaml diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml new file mode 100644 index 0000000..ac43fd5 --- /dev/null +++ b/.github/workflows/deploy.yaml @@ -0,0 +1,30 @@ +name: deploy + +on: + push: + # branches: [main] + +jobs: + to-docker-hub: + runs-on: ubuntu-latest + strategy: + matrix: + instance: [api, nginx, bot] + steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Login to Docker Hub + uses: docker/login-action@v4 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v4 + - name: Build and push + uses: docker/build-push-action@v7 + with: + context: "server/${{ matrix.instance }}" + push: false + tags: "${{ secrets.DOCKERHUB_USERNAME }}/eat_log_${{ matrix.instance }}:latest" From 3b86a4f07fd649e558feb435bffb620643ec1244 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Sat, 13 Jun 2026 22:37:37 +0300 Subject: [PATCH 14/18] .github:workflows:remove useleess QEMU --- .github/workflows/build.yaml | 20 +++++++++----------- .github/workflows/deploy.yaml | 2 -- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index df13b9c..ecaf119 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -6,18 +6,16 @@ on: jobs: build: runs-on: ubuntu-latest - env: - DB_HOST: ${{ secrets.DB_HOST }} - DB_PORT: ${{ secrets.DB_PORT }} - DB_NAME: ${{ secrets.DB_NAME }} - DB_USER: ${{ secrets.DB_USER }} - DB_PASSWORD: ${{ secrets.DB_PASSWORD }} - BOT_TOKEN: ${{ secrets.BOT_TOKEN }} + strategy: + matrix: + service: [api, bot, nginx] steps: - name: Checkout code uses: actions/checkout@v6 - - name: Build containers - uses: hoverkraft-tech/compose-action@11beaa1c2dae4e8ed7b1665aa074723b6cecb0e4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v4 + - name: Build ${{ matrix.service }} image + uses: docker/build-push-action@v6 with: - compose-file: ./server/docker-compose.yaml - up-flags: "-d --build --wait" + context: ./server/${{ matrix.service }} + push: false diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index ac43fd5..6c3aa60 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -18,8 +18,6 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Set up QEMU - uses: docker/setup-qemu-action@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 - name: Build and push From 10b3da0e14974966f182838bac9dcfd09bed2610 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Sat, 13 Jun 2026 22:54:17 +0300 Subject: [PATCH 15/18] server:use images from hub --- server/docker-compose.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/docker-compose.yaml b/server/docker-compose.yaml index 4c84e0c..c31321e 100644 --- a/server/docker-compose.yaml +++ b/server/docker-compose.yaml @@ -1,6 +1,6 @@ services: api: - build: ./api/ + image: grachevnr/eat_log_api:latest environment: DB_HOST: ${DB_HOST} DB_PORT: ${DB_PORT} @@ -15,7 +15,7 @@ services: start_period: 5s bot: - build: ./bot/ + image: grachevnr/eat_log_bot:latest environment: BOT_TOKEN: ${BOT_TOKEN} depends_on: @@ -29,7 +29,7 @@ services: start_period: 5s nginx: - build: ./nginx/ + image: grachevnr/eat_log_nginx:latest ports: - "80:80" - "443:443" From f1ce45cdace669e8197ad8b04a6b5a6a6f478c74 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Sat, 13 Jun 2026 22:55:15 +0300 Subject: [PATCH 16/18] .github:workflows:remove docker hub username from secrets --- .github/workflows/deploy.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 6c3aa60..71984a7 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -16,7 +16,7 @@ jobs: - name: Login to Docker Hub uses: docker/login-action@v4 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} + username: grachevnr password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v4 @@ -25,4 +25,4 @@ jobs: with: context: "server/${{ matrix.instance }}" push: false - tags: "${{ secrets.DOCKERHUB_USERNAME }}/eat_log_${{ matrix.instance }}:latest" + tags: "grachevnr/eat_log_${{ matrix.instance }}:latest" From 58d942427f6f744152abd6942933cf5b2a537954 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Sat, 13 Jun 2026 23:25:24 +0300 Subject: [PATCH 17/18] .github:workflows:create job server --- .github/workflows/deploy.yaml | 40 +++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 71984a7..f79edab 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -2,7 +2,7 @@ name: deploy on: push: - # branches: [main] + branches: [main] jobs: to-docker-hub: @@ -24,5 +24,41 @@ jobs: uses: docker/build-push-action@v7 with: context: "server/${{ matrix.instance }}" - push: false + push: true tags: "grachevnr/eat_log_${{ matrix.instance }}:latest" + + to-server: + needs: to-docker-hub + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + - name: Poweroff services + uses: appleboy/ssh-action@v1 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + password: ${{ secrets.SERVER_PASSWORD }} + script: | + mkdir -p ~/eatlog + cd ~/eatlog + docker compose down || true + - name: Copy docker-compose to server + uses: appleboy/scp-action@v1 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + password: ${{ secrets.SERVER_PASSWORD }} + source: "./server/docker-compose.yaml" + target: "~/eatlog/" + strip_components: 1 + - name: Pull and restart services + uses: appleboy/ssh-action@v1 + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + password: ${{ secrets.SERVER_PASSWORD }} + script: | + cd ~/eatlog + docker compose pull + docker compose up -d From 71d061bc287cf25d54d17934044da9718bf6d202 Mon Sep 17 00:00:00 2001 From: Nickolashaa Date: Sat, 13 Jun 2026 23:37:12 +0300 Subject: [PATCH 18/18] .github:workflows:add step Create .env on server --- .github/workflows/deploy.yaml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index f79edab..0496113 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -33,7 +33,7 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v6 - - name: Poweroff services + - name: Poweroff old services uses: appleboy/ssh-action@v1 with: host: ${{ secrets.SERVER_HOST }} @@ -52,6 +52,29 @@ jobs: source: "./server/docker-compose.yaml" target: "~/eatlog/" strip_components: 1 + - name: Create .env on server + uses: appleboy/ssh-action@v1 + env: + DB_HOST: ${{ secrets.DB_HOST }} + DB_PORT: ${{ secrets.DB_PORT }} + DB_NAME: ${{ secrets.DB_NAME }} + DB_USER: ${{ secrets.DB_USER }} + DB_PASSWORD: ${{ secrets.DB_PASSWORD }} + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} + with: + host: ${{ secrets.SERVER_HOST }} + username: ${{ secrets.SERVER_USERNAME }} + password: ${{ secrets.SERVER_PASSWORD }} + envs: DB_HOST,DB_PORT,DB_NAME,DB_USER,DB_PASSWORD,BOT_TOKEN + script: | + cat > ~/eatlog/.env <