Docker Compose для Node.js / NestJS + PostgreSQL + Nginx Reverse Proxy
Готовый стек Docker Compose для приложений Node.js, Express и NestJS: мультистейдж сборка, PostgreSQL 16, Nginx Reverse Proxy и healthcheck.
Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
docker-compose.yml
# docker-compose.yml
version: '3.8'
services:
api:
build:
context: .
dockerfile: Dockerfile
container_name: node_api
restart: always
environment:
NODE_ENV: production
PORT: 3000
DATABASE_URL: postgresql://{{db_user}}:{{db_password}}@postgres:5432/{{db_name}}
depends_on:
- postgres
networks:
- backend
postgres:
image: postgres:16-alpine
container_name: node_db
restart: always
environment:
POSTGRES_DB: {{db_name}}
POSTGRES_USER: {{db_user}}
POSTGRES_PASSWORD: {{db_password}}
volumes:
- pgdata:/var/lib/postgresql/data
networks:
- backend
nginx:
image: nginx:alpine
container_name: node_gateway
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- api
networks:
- backend
networks:
backend:
driver: bridge
volumes:
pgdata:
Разбор ключевых директив конфигурации
Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).
| Директива / Блок | Рекомендуемое значение | Зачем нужно и системное влияние (CPU / RAM / I-O) |
|---|---|---|
DATABASE_URL: postgresql://... |
Connection String | Формирует стандартную строку подключения для Prisma ORM, TypeORM или Sequelize. |
Рекомендуемые системные требования VDS под этот стек
Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.
Оптимальный сайзинг: 2 vCPU, 4 GB RAM, 40 GB NVMe
Расчетная нагрузка: Node.js REST API до 1 000 RPS
Timeweb Cloud
2 CPU / 4 GB NVMe
Процессор:
2 vCPU
Память RAM:
4 GB RAM
Накопитель:
40 GB NVMe
Selectel
2 vCPU / 4 GB RAM
Процессор:
2 vCPU
Память RAM:
4 GB RAM
Накопитель:
40 GB NVMe
Beget
Turbo 4 GB
Процессор:
2 vCPU
Память RAM:
4 GB RAM
Накопитель:
40 GB NVMe
Онлайн-утилиты SysKit для проверки этого сервера
Протестируйте корректность применения конфигурации прямо сейчас в один клик.
Частые ошибки при настройке и их решение (FAQ)
Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.
Как передать переменные окружения из .env файла?
В секцию сервиса добавьте `env_file: .env`, и Docker Compose автоматически загрузит все ключи.
Рекомендуемые смежные конфигурации
Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.