Files
shop10/wiki/Install-Native.md
T

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