From 2e59cdfe1f375b837ef2789922be16fd31074e48 Mon Sep 17 00:00:00 2001 From: Acentech Dev Date: Tue, 14 Jul 2026 19:31:07 +0300 Subject: [PATCH] chore: AdamuSw deploy composes (local test + Coolify/Traefik prod) using self-built image - deploy-adamu/docker-compose.local.yml: local postgres + adamu-openmu:dev, direct 8080 - deploy-adamu/docker-compose.prod.yml: Coolify/Traefik prod adapted from AdaMu, image swapped to our build - additive folder (deploy-adamu) to avoid upstream deploy/ merge conflicts - plan Step5 fixed (-p:ci=true), paths -> deploy-adamu Co-Authored-By: Claude Opus 4.8 (1M context) --- deploy-adamu/docker-compose.local.yml | 37 +++++++++++++ deploy-adamu/docker-compose.prod.yml | 53 +++++++++++++++++++ ...7-14-phase0a-bootstrap-self-built-image.md | 12 ++--- 3 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 deploy-adamu/docker-compose.local.yml create mode 100644 deploy-adamu/docker-compose.prod.yml diff --git a/deploy-adamu/docker-compose.local.yml b/deploy-adamu/docker-compose.local.yml new file mode 100644 index 0000000..98880f7 --- /dev/null +++ b/deploy-adamu/docker-compose.local.yml @@ -0,0 +1,37 @@ +# AdamuSw local test deploy (Traefik/Coolify YOK — doğrudan 8080). +# Amaç: kendi-derlenen image'i lokalde postgres ile ayağa kaldırıp doğrulamak. +services: + openmu-startup: + image: adamu-openmu:dev + container_name: adamu-openmu-startup + ports: + - "8080:8080" + - "55901:55901" + - "55902:55902" + - "55903:55903" + - "55904:55904" + - "55905:55905" + - "55906:55906" + - "44405:44405" + - "55980:55980" + environment: + DB_HOST: database + ASPNETCORE_URLS: http://+:8080 + working_dir: /app/ + depends_on: + - database + + database: + image: postgres + container_name: adamu-database + environment: + POSTGRES_PASSWORD: admin + POSTGRES_DB: openmu + POSTGRES_USER: postgres + ports: + - "5432" + volumes: + - adamu-dbdata:/var/lib/postgresql + +volumes: + adamu-dbdata: diff --git a/deploy-adamu/docker-compose.prod.yml b/deploy-adamu/docker-compose.prod.yml new file mode 100644 index 0000000..9f9cd8f --- /dev/null +++ b/deploy-adamu/docker-compose.prod.yml @@ -0,0 +1,53 @@ +# AdamuSw production deploy (Coolify + Traefik) +# Mevcut AdaMu prod kurulumundan uyarlandı; TEK fark: image artık kendi build'imiz. +# Image, Faz 0a Task 3'te DockerHub'a push edilecek. Coolify'da OPENMU_IMAGE env'i +# set edilirse onu, edilmezse aşağıdaki default'u kullanır. +services: + openmu-startup: + image: ${OPENMU_IMAGE:-atfatmc/adamu-openmu:latest} # <-- kendi DockerHub image'imiz (Task 3) + container_name: openmu-startup + networks: + - coolify + ports: + - "55901:55901" + - "55902:55902" + - "55903:55903" + - "55904:55904" + - "55905:55905" + - "55906:55906" + - "44405:44405" + - "55980:55980" + environment: + DB_HOST: database + working_dir: /app/ + depends_on: + - database + labels: + - "traefik.enable=true" + - "traefik.docker.network=coolify" + - "traefik.http.routers.openmu.entrypoints=https" + - "traefik.http.routers.openmu.middlewares=auth" + - 'traefik.http.middlewares.auth.basicauth.users=adios:$2b$12$wUA5rxsUOhT2JbFfA3NJ6u52zaVVpWuzdl2DPomSE7n..0FqYrk02' + - "traefik.http.routers.openmu.rule=Host(`${SERVICE_FQDN_OPENMU_STARTUP}`)" + - "traefik.http.services.openmu.loadbalancer.server.port=8080" + + database: + image: postgres + container_name: database + environment: + POSTGRES_PASSWORD: admin + POSTGRES_DB: openmu + POSTGRES_USER: postgres + networks: + - coolify + ports: + - "5432" + volumes: + - dbdata:/var/lib/postgresql #store data on volume + +networks: + coolify: + external: true + +volumes: + dbdata: diff --git a/docs/superpowers/plans/2026-07-14-phase0a-bootstrap-self-built-image.md b/docs/superpowers/plans/2026-07-14-phase0a-bootstrap-self-built-image.md index 2c78ee2..d4a1041 100644 --- a/docs/superpowers/plans/2026-07-14-phase0a-bootstrap-self-built-image.md +++ b/docs/superpowers/plans/2026-07-14-phase0a-bootstrap-self-built-image.md @@ -93,7 +93,7 @@ Expected: push başarılı; Gitea'da `main` branch commit'leri görünür. ### Task 2: Kendi image'ini derle ve lokalde çalıştığını doğrula **Files:** -- Create: `deploy-local/docker-compose.local.yml` (postgres + bizim image) +- Create: `deploy-adamu/docker-compose.local.yml` (postgres + bizim image) - Test: lokal `docker compose up` + boot/log doğrulaması **Interfaces:** @@ -112,7 +112,7 @@ Expected: multi-stage build tamamlanır, son satır `naming to docker.io/library Stock `all-in-one`'ın birebir kopyası; tek fark `image: munique/openmu` → `image: adamu-openmu:dev` ve nginx katmanı sadeleştirildi (doğrudan 8080 expose). -Create `deploy-local/docker-compose.local.yml`: +Create `deploy-adamu/docker-compose.local.yml`: ```yaml services: openmu-startup: @@ -155,7 +155,7 @@ volumes: - [ ] **Step 3: Stack'i ayağa kaldır** ```bash -cd "/d/OpenMU/MU Client_Mobile 1.04d - Season 6E3/AdamuSw/deploy-local" && \ +cd "/d/OpenMU/MU Client_Mobile 1.04d - Season 6E3/AdamuSw/deploy-adamu" && \ docker compose -f docker-compose.local.yml up -d && \ docker compose -f docker-compose.local.yml ps ``` @@ -166,7 +166,7 @@ Expected: `adamu-database` ve `adamu-openmu-startup` `Up` durumda. `-autostart` ilk açılışta DB'yi initialize eder (birkaç dakika sürebilir). ```bash -cd "/d/OpenMU/MU Client_Mobile 1.04d - Season 6E3/AdamuSw/deploy-local" && \ +cd "/d/OpenMU/MU Client_Mobile 1.04d - Season 6E3/AdamuSw/deploy-adamu" && \ docker compose -f docker-compose.local.yml logs --tail=40 openmu-startup ``` Expected: init sonrası dinleme mesajları (ör. GameServer/ConnectServer listening) ve exception/fatal yok. Hâlâ initialize ediyorsa ~60 sn sonra tekrar bak. @@ -181,10 +181,10 @@ Expected: `200` veya `302` (auth yönlendirmesi). Bağlantı reddi DEĞİL. - [ ] **Step 6: Stack'i durdur ve compose dosyasını commit et** ```bash -cd "/d/OpenMU/MU Client_Mobile 1.04d - Season 6E3/AdamuSw/deploy-local" && \ +cd "/d/OpenMU/MU Client_Mobile 1.04d - Season 6E3/AdamuSw/deploy-adamu" && \ docker compose -f docker-compose.local.yml down && \ cd "/d/OpenMU/MU Client_Mobile 1.04d - Season 6E3/AdamuSw" && \ -git add deploy-local/docker-compose.local.yml && \ +git add deploy-adamu/docker-compose.local.yml && \ git -c user.name="Acentech Dev" -c user.email="acentech_dev@affinitybox.com" \ commit -m "chore: local all-in-one compose for self-built image test" && \ git push origin main