CI: деплой через ssh и git pull, README со стилистикой и заметками
deploy / deploy (push) Successful in 9s

- .gitea/workflows/deploy.yml: при пуше в main заходит на сервер по ssh и делает git pull
- deploy/: конфиг nginx (root /opt/vizitka-site/web) и скрипт разовой настройки сервера
- tools/: генераторы страниц архитектуры и проектов (раньше лежали вне репозитория)
- README: стилистика сайта, устройство, деплой, заметки для следующих сессий

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-04 16:48:04 +05:00
co-authored by Claude Sonnet 5.5
parent 152f1d60b5
commit 8de0a05848
6 changed files with 689 additions and 53 deletions
+34
View File
@@ -0,0 +1,34 @@
#!/usr/bin/env bash
# Разовая подготовка сервера: nginx, git, клон репозитория в /opt/vizitka-site. Безопасно запускать повторно.
# Использование: ./deploy/setup-server.sh root@192.168.10.112
# Обновления потом приходят через `git pull` (его делает CI, см. .gitea/workflows/deploy.yml).
set -euo pipefail
TARGET="${1:?укажите сервер: ./deploy/setup-server.sh root@192.168.10.112}"
REPO_URL="${REPO_URL:-https://git.ibrash.duckdns.org/aibrash/vizitka-site.git}" # репозиторий публичный: ключи не нужны
HERE="$(cd "$(dirname "$0")" && pwd)"
scp -q "$HERE/nginx-site.conf" "$TARGET:/tmp/vizitka-nginx.conf"
ssh "$TARGET" "REPO_URL='$REPO_URL' bash -s" <<'REMOTE'
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
if ! command -v nginx >/dev/null || ! command -v git >/dev/null; then
apt-get update -qq
apt-get install -y -qq nginx git >/dev/null
fi
DIR=/opt/vizitka-site
if [ -d "$DIR/.git" ]; then
git -C "$DIR" pull --ff-only
else
[ -e "$DIR" ] && mv "$DIR" "$DIR.old-$(date +%s)" # старое содержимое (не репозиторий) откладываем, не удаляем
git clone "$REPO_URL" "$DIR"
fi
install -m 644 /tmp/vizitka-nginx.conf /etc/nginx/sites-available/vizitka-site
ln -sf /etc/nginx/sites-available/vizitka-site /etc/nginx/sites-enabled/vizitka-site
rm -f /etc/nginx/sites-enabled/default
nginx -t
systemctl enable --now nginx >/dev/null 2>&1
systemctl reload nginx
echo "готово: nginx $(nginx -v 2>&1 | cut -d/ -f2), сайт: $DIR/web (коммит $(git -C "$DIR" rev-parse --short HEAD))"
REMOTE