feat: Docker Compose — app, PostgreSQL 17, опциональный Caddy
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,21 +11,64 @@
|
||||
|
||||
## Требования
|
||||
|
||||
- Node.js 18+
|
||||
- PostgreSQL 17
|
||||
- npm
|
||||
- Node.js 18+ и PostgreSQL 17 — **или** Docker / Docker Compose
|
||||
|
||||
---
|
||||
|
||||
## PostgreSQL 17
|
||||
## Docker Compose (рекомендуется для теста)
|
||||
|
||||
### Docker (разработка / тест)
|
||||
Полный стек: **PostgreSQL 17** + **приложение Node.js**.
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
# БД: postgresql://shop:shop@127.0.0.1:5432/shop
|
||||
cp .env.docker.example .env
|
||||
# Отредактируйте SESSION_SECRET в .env
|
||||
|
||||
docker compose up -d --build
|
||||
docker compose ps
|
||||
curl -s http://127.0.0.1:3000/health
|
||||
```
|
||||
|
||||
Сайт: **http://localhost:3000**
|
||||
|
||||
| Команда | Описание |
|
||||
|---------|----------|
|
||||
| `docker compose up -d --build` | Сборка и запуск |
|
||||
| `docker compose logs -f app` | Логи приложения |
|
||||
| `docker compose down` | Остановка |
|
||||
| `docker compose down -v` | Остановка + удаление БД |
|
||||
|
||||
### Caddy в Docker (HTTPS, опционально)
|
||||
|
||||
```bash
|
||||
# В .env: TRUST_PROXY=1
|
||||
# Отредактируйте caddy/Caddyfile.docker.example (домен)
|
||||
docker compose --profile proxy up -d --build
|
||||
```
|
||||
|
||||
Порты: **80**, **443** (Caddy) → `app:3000`.
|
||||
|
||||
### Только PostgreSQL (разработка на хосте)
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.dev.yml up -d
|
||||
cp .env.example .env
|
||||
# DATABASE_URL=postgresql://shop:shop@127.0.0.1:5432/shop
|
||||
npm install && npm run dev
|
||||
```
|
||||
|
||||
### Файлы
|
||||
|
||||
| Файл | Назначение |
|
||||
|------|------------|
|
||||
| `Dockerfile` | Образ приложения |
|
||||
| `docker-compose.yml` | app + postgres (+ caddy с профилем `proxy`) |
|
||||
| `docker-compose.dev.yml` | только postgres для `npm run dev` |
|
||||
| `.env.docker.example` | переменные для compose |
|
||||
|
||||
---
|
||||
|
||||
## PostgreSQL 17 (без Docker)
|
||||
|
||||
### Ubuntu (сервер)
|
||||
|
||||
```bash
|
||||
@@ -301,7 +344,7 @@ journalctl -u shop -n 50 --no-pager
|
||||
## Локальная разработка
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
docker compose -f docker-compose.dev.yml up -d
|
||||
cp .env.example .env
|
||||
npm install
|
||||
npm run dev
|
||||
@@ -318,9 +361,12 @@ npm run dev
|
||||
## Структура
|
||||
|
||||
```
|
||||
Dockerfile
|
||||
docker-compose.yml
|
||||
docker-compose.dev.yml
|
||||
postgres/init/01_schema.sql
|
||||
docker-compose.yml — PostgreSQL 17 локально
|
||||
caddy/Caddyfile.example
|
||||
caddy/Caddyfile.docker.example
|
||||
deploy/shop.service
|
||||
scripts/
|
||||
setup-postgres-ubuntu.sh
|
||||
|
||||
Reference in New Issue
Block a user