# Прод на VPS: /root/kvarta_site/docker-compose_vps.yml (кладёт deploy/deploy.sh). # На сервере только docker-compose v2.23 (без плагина `docker compose`): # KVARTA_TAG= docker-compose -f docker-compose_vps.yml -p kvarta up -d # Наружу порты не торчат — только 127.0.0.1, снаружи ходит nginx хоста. name: kvarta x-logging: &logging # диск сервера почти полный — логи ротируются: не больше 3 × 10 МБ на контейнер driver: json-file options: max-size: "10m" max-file: "3" services: landing: image: kvarta-landing:${KVARTA_TAG:-latest} container_name: kvarta-landing restart: unless-stopped ports: - "127.0.0.1:13120:3000" logging: *logging api: image: kvarta-api:${KVARTA_TAG:-latest} container_name: kvarta-api restart: unless-stopped ports: - "127.0.0.1:13121:3000" env_file: api.env environment: # nginx хоста приходит в контейнер со шлюза сети, а не с 127.0.0.1 (docker-proxy); # порт привязан к 127.0.0.1, так что со шлюза может прийти только он TRUSTED_PROXIES: 172.31.120.1 volumes: - kvarta-data:/data logging: *logging networks: default: name: kvarta ipam: # фиксированная подсеть, чтобы шлюз в TRUSTED_PROXIES не менялся; на сервере 172.31.0.0/16 свободна config: - subnet: 172.31.120.0/24 gateway: 172.31.120.1 volumes: kvarta-data: # явное имя: не зависит от project name, его ищут бэкапы и восстановление name: kvarta-data