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