From 0a3511a44b75d37ac8265a2abc3bb3f23a1f07f7 Mon Sep 17 00:00:00 2001 From: h Date: Thu, 8 Oct 2026 04:37:26 +0000 Subject: [PATCH 1/2] fix(image): image named with dashes like the stack, the slug stays snake_case --- template/{{ part_dir }}/Makefile.jinja | 2 +- template/{{ part_dir }}/docker-compose.yml.jinja | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/template/{{ part_dir }}/Makefile.jinja b/template/{{ part_dir }}/Makefile.jinja index 4e4c4d4..ed79bea 100644 --- a/template/{{ part_dir }}/Makefile.jinja +++ b/template/{{ part_dir }}/Makefile.jinja @@ -1,5 +1,5 @@ COMPOSE := {% if layout == 'part' %}cd .. && {% endif %}docker compose -IMAGE := {{ project_slug }}/{{ part }} +IMAGE := {{ project_slug | replace('_', '-') }}/{{ part }} changed = ! git diff --quiet $(1) -- $(2) 2>/dev/null stamp = { git update-ref $(1) HEAD 2>/dev/null || true; } diff --git a/template/{{ part_dir }}/docker-compose.yml.jinja b/template/{{ part_dir }}/docker-compose.yml.jinja index 44b6e0c..aea81d9 100644 --- a/template/{{ part_dir }}/docker-compose.yml.jinja +++ b/template/{{ part_dir }}/docker-compose.yml.jinja @@ -1,7 +1,7 @@ services: {{ service }}: build: {{ part_dir }} - image: {{ project_slug }}/{{ part }} + image: {{ project_slug | replace('_', '-') }}/{{ part }} profiles: [{{ service }}, services] restart: unless-stopped env_file: -- 2.54.0 From ea78a12a83f62e6bd5b809abb7b6b39cb4d2d228 Mon Sep 17 00:00:00 2001 From: h Date: Thu, 8 Oct 2026 04:40:25 +0000 Subject: [PATCH 2/2] docs(readme): production in the fleet deploys from infra/komodo, make deploy stays for a checkout deployed by hand --- .../{% if layout == 'root' %}README.md{% endif %}.jinja | 2 ++ 1 file changed, 2 insertions(+) diff --git a/template/{{ part_dir }}/{% if layout == 'root' %}README.md{% endif %}.jinja b/template/{{ part_dir }}/{% if layout == 'root' %}README.md{% endif %}.jinja index 7873cb3..207217f 100644 --- a/template/{{ part_dir }}/{% if layout == 'root' %}README.md{% endif %}.jinja +++ b/template/{{ part_dir }}/{% if layout == 'root' %}README.md{% endif %}.jinja @@ -10,3 +10,5 @@ make recreate `make env` creates `.env` and `docker-compose.override.yml` from their examples. `make recreate` starts the selected profiles, `make rebuild` builds the image first, `make logs`, `make restart` and `make down` do what they say. To deploy, `git pull && make deploy`. It runs `make pre-deploy`, which rebuilds the image only when something in the repository changed, then `docker compose up -d`. A deploy system with its own `up` step calls `make pre-deploy` before it and `make post-deploy` after. What was built is remembered as `refs/deploy/*` in the clone. + +In the fleet, production is deployed from `infra/komodo` instead (git mode of Komodo, see `docs/architecture.md` there): Komodo clones this repo, and a layer plus `deploy.sh` in the stack's directory tag images by the hash of what they bake in and write `.env` from sops. The repo only has to stay a plain recipe: images built from `build:` in compose, `caddy/site.caddy`. `make deploy` and `refs/deploy/*` are for a checkout deployed by hand. -- 2.54.0