From 43abf922f4f0b8a0ba0548d9c2ea5500389372a3 Mon Sep 17 00:00:00 2001 From: jessikitty Date: Thu, 13 Aug 2026 22:39:25 +1000 Subject: [PATCH] =?UTF-8?q?v3:=20compose=20=E2=80=94=20pin=20project=20ide?= =?UTF-8?q?ntity=20to=20v2=20deployment=20(in-place=20swap,=20shared=20liv?= =?UTF-8?q?e=20volume)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..edd1c96 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,24 @@ +# Project name pinned to the v2 deployment identity: same container name, same +# host port, and — critically — the same `newbury-exhibit_exhibit-live` volume, +# so live scene/playlist/character state carries straight over and rolling back +# to v2 is just `cd ~/newbury-exhibit && docker compose up -d --build`. +name: newbury-exhibit +services: + exhibit: + build: . + container_name: newbury-exhibit + restart: unless-stopped + ports: + # HOST_PORT lets an existing nginx proxy keep its port (set in .env); container stays on 33044 + - "${HOST_PORT:-33044}:33044" + environment: + # dev = admin open + on-screen error overlay; final = password-protected admin + EXHIBIT_MODE: ${EXHIBIT_MODE:-dev} + ADMIN_PASSWORD: ${ADMIN_PASSWORD:-} + volumes: + # live scene/playlist edits survive rebuilds and redeploys + - exhibit-live:/app/data/live + # drop OBJ ghost models here without rebuilding the image + - ./public/models:/app/public/models +volumes: + exhibit-live: