Docker Compose для Node.js / NestJS + PostgreSQL + Nginx Reverse Proxy

Обновлено: Август 2026 Стек: Node.js 20/22 LTS, NestJS, PostgreSQL 16, Nginx Проверено: Production-Ready

Готовый стек 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 автоматически загрузит все ключи.