fulfillr-dev: staging back-office container + Turso store prep

Add a second go-fulfillr container (fulfillr-dev) wired to the staging
Turso store + EasyPost/Stripe test keys via dev.json, served at
fulfillr-dev.debyltech.com (Caddy -> :9055), LAN-restricted like prod.

- fulfillr-dev.yml + dev.json.j2: the staging container, volumes, config
- defaults: fulfillr_dev_* vars; prod store URL stubbed off until cutover
- Caddyfile + caddy.yml: fulfillr-dev site block and static mount
- awsddns.yml: Route53 DDNS for the fulfillr-dev hostname
- production.json.j2: add store_database_url/store_auth, rename stripe key
  var to fulfillr_stripe_api_key
- vault.yml: dev + store/stripe secrets

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Bastian de Byl
2026-06-06 00:23:07 -04:00
parent 2640d09cb5
commit e82ace6de3
8 changed files with 207 additions and 1 deletions
@@ -80,6 +80,35 @@
vars:
container_name: awsddns-fulfillr
- import_tasks: podman/podman-check.yml
vars:
container_name: awsddns-fulfillr-dev
container_image: "{{ image }}"
# Staging back-office DNS — same Route53 zone + creds as prod fulfillr, just a
# different hostname (-> same host IP; Caddy routes both by Host header).
- name: create fulfillr-dev.debyltech.com awsddns server container
become: true
become_user: "{{ podman_user }}"
diff: false
containers.podman.podman_container:
name: awsddns-fulfillr-dev
image: "{{ image }}"
restart_policy: on-failure:3
log_driver: journald
env:
AWS_ZONE_TTL: 60
AWS_ZONE_ID: "{{ fulfillr_zone_id }}"
AWS_ZONE_HOSTNAME: "{{ fulfillr_dev_server_name }}"
AWS_ACCESS_KEY_ID: "{{ fulfillr_dns_access_key }}"
AWS_SECRET_ACCESS_KEY: "{{ fulfillr_dns_secret_key }}"
AWS_DEFAULT_REGION: "{{ fulfillr_region }}"
- name: create systemd startup job for awsddns-fulfillr-dev
include_tasks: podman/systemd-generate.yml
vars:
container_name: awsddns-fulfillr-dev
- import_tasks: podman/podman-check.yml
vars:
container_name: awsddns-debyl