Files
aibrashandClaude Sonnet 5.5 6ddece7017
deploy / deploy (push) Successful in 4s
Кнопка «Помахать» с общим счётчиком, домен, шапка
- Главная: тихая кнопка «Помахать» (web/js/wave.js), общий счётчик для всех посетителей
- server/server.mjs: мини-API (/api/waves, /api/wave), счётчик хранится вне репозитория
  (/var/lib/vizitka-site/waves.json), лимит раз в секунду с IP, проверка Origin
- deploy: systemd-сервис vizitka-api, проксирование /api в nginx, setup-server.sh ставит nodejs
- CI: после git pull перезапускает API
- Домен https://me.ibrash.duckdns.org вместо заглушки, исправлен пробел в шапке
- README и заметки обновлены

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 16:55:30 +05:00

28 lines
1.6 KiB
YAML

# CI: при пуше в main заходим на сервер по ssh, делаем git pull и перезапускаем API счётчика
# (счётчик лежит в /var/lib/vizitka-site вне репозитория и при этом не сбрасывается).
# Всё остальное уже настроено на сервере (nginx раздаёт /opt/vizitka-site/web, см. deploy/setup-server.sh).
# Нужен один секрет: DEPLOY_SSH_KEY (приватный ключ с доступом к серверу).
name: deploy
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Подключение к серверу и git pull
env:
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
run: |
command -v ssh >/dev/null || { apt-get update -qq && apt-get install -y -qq openssh-client; }
umask 077
install -d "$HOME/.ssh"
printf '%s\n' "$DEPLOY_SSH_KEY" > "$HOME/.ssh/id_deploy"
# отпечаток ключа сервера закреплён: подмена сервера не пройдёт
echo "192.168.10.112 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFLwAGOvgF5ZSBiZ9YRe78gT9HN1MeESQIaM6Aou/Ud" > "$HOME/.ssh/known_hosts"
ssh -i "$HOME/.ssh/id_deploy" -o IdentitiesOnly=yes -o BatchMode=yes -o StrictHostKeyChecking=yes \
root@192.168.10.112 'cd /opt/vizitka-site && git pull --ff-only && { systemctl restart vizitka-api || echo "сервис vizitka-api пока не настроен (deploy/setup-server.sh)"; } && git log -1 --oneline'