From 6410efbe033c0c8d6b64f5c11e0a67faaabcbc78 Mon Sep 17 00:00:00 2001 From: h Date: Thu, 27 Aug 2026 23:21:31 +0200 Subject: [PATCH] feat(infra): compose profiles, Makefile, local override example All services sit behind profiles (db, gateway, obsidian) selected via COMPOSE_PROFILES in .env; Makefile with the usual verbs and a `deploy` target that pushes main:stable. --- .env.example | 3 +++ .gitignore | 1 + Makefile | 33 +++++++++++++++++++++++++++++ docker-compose.override.yml.example | 5 +++++ docker-compose.yml | 3 +++ 5 files changed, 45 insertions(+) create mode 100644 Makefile create mode 100644 docker-compose.override.yml.example diff --git a/.env.example b/.env.example index c7daa1c..d8b8373 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,6 @@ +# Which services to run. Everything is behind a profile: db, gateway, obsidian. +COMPOSE_PROFILES=db,gateway,obsidian + GATEWAY_REF=main # Uncomment when developing against a sibling ../beaver-gateway checkout. diff --git a/.gitignore b/.gitignore index e9ccf1b..89b1943 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ config.json .venv/ __pycache__/ .idea +docker-compose.override.yml diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f5f7ea8 --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +.PHONY: up recreate down restart rebuild gateway logs shell deploy + +up: + docker compose up -d + +recreate: + docker compose up -d --force-recreate + +down: + docker compose down + +restart: + $(MAKE) recreate + +rebuild: + docker compose build + docker compose up -d + +gateway: + docker compose build gateway + docker compose up -d gateway + +logs: + docker compose logs -f $(filter-out $@,$(MAKECMDGOALS)) + +shell: + docker exec -it beaver-gateway bash + +deploy: + git push origin main:stable + +%: + @: diff --git a/docker-compose.override.yml.example b/docker-compose.override.yml.example new file mode 100644 index 0000000..ee9605f --- /dev/null +++ b/docker-compose.override.yml.example @@ -0,0 +1,5 @@ +# Local overrides, not committed. Copy to docker-compose.override.yml. +services: + postgres: + ports: + - "127.0.0.1:5432:5432" diff --git a/docker-compose.yml b/docker-compose.yml index f5bf728..6d8a0b1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,7 @@ x-restart: &restart services: postgres: image: postgres:16-alpine + profiles: [db] <<: *restart env_file: .env volumes: @@ -21,6 +22,7 @@ services: build: context: . dockerfile: obsidian.Dockerfile + profiles: [obsidian] <<: *restart volumes: - vault:/vault @@ -31,6 +33,7 @@ services: container_name: beaver-gateway build: context: https://git.kotikot.com/beaver/beaver-gateway.git#${GATEWAY_REF:-main} + profiles: [gateway] <<: *restart depends_on: postgres: