561fbd22e0
Co-authored-by: Cursor <cursoragent@cursor.com>
2.2 KiB
2.2 KiB
Установка без Docker (Ubuntu)
Production: Node.js 20, PostgreSQL 17, systemd, опционально Caddy.
Полное руководство по ошибкам и обновлениям: Server-Operations.
Задайте каталог клона:
export SHOP_ROOT=/opt/shop
1. Требования
- Ubuntu 22.04 или 24.04
- Порты 22, 80, 443 (для Caddy)
- Порт 3000 только localhost
2. Системные пакеты
Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs git curl
PostgreSQL 17
Не используйте apt install postgresql-17 без PGDG:
sudo bash "$SHOP_ROOT/scripts/install-postgresql-ubuntu.sh"
3. Клонирование
export GIT_REPO_URL='<URL-вашего-репозитория>'
git clone "$GIT_REPO_URL" "$SHOP_ROOT"
cd "$SHOP_ROOT"
Или: sudo SHOP_GIT_URL="$GIT_REPO_URL" bash scripts/quick-deploy-ubuntu.sh
4. База данных
cd "$SHOP_ROOT"
bash scripts/setup-postgres-ubuntu.sh
5. .env
cp .env.example .env
nano .env
SESSION_SECRET, DATABASE_URL, SITE_URL (ваш публичный URL без привязки к конкретному домену в коде).
6. Зависимости
npm install --omit=dev
7. systemd
sudo bash scripts/install-shop-service.sh
WorkingDirectory в unit = $SHOP_ROOT. Не делайте chown -R www-data на весь репозиторий.
8. Caddy
После curl http://127.0.0.1:3000/health → OK:
cp "$SHOP_ROOT/caddy/Caddyfile.example" /etc/caddy/Caddyfile
# укажите ваш домен в Caddyfile
systemctl reload caddy
9. Обновление
bash "$SHOP_ROOT/scripts/server-update.sh"
10. Архитектура
Интернет → Caddy :443 → 127.0.0.1:3000 (Node.js)
↓
PostgreSQL 127.0.0.1:5432
11. Резервное копирование
sudo -u postgres pg_dump shop > shop_backup_$(date +%F).sql