Quadlet Config Share: AxonHub
Contents
This article is part of the “quadlet config snippets” series. It goes straight to the config and does not cover Quadlet basics. For an introduction, see Podman Tutorial.
AxonHub
AxonHub is an open-source AI Gateway. Use any SDK to call 100+ models, with built-in failover, load balancing, cost tracking, and end-to-end tracing.
Configuration
As an API gateway, AxonHub should use PostgreSQL.
# axonhub.pod
[Pod]
PublishPort=8090:8090
UserNS=keep-id
[Install]
WantedBy=default.target# axonhub.container
[Unit]
Requires=axonhub-postgres.service
After=axonhub-postgres.service
[Container]
Image=docker.io/looplj/axonhub:latest
Pod=axonhub.pod
Volume=/path/to/data:/data
Environment=AXONHUB_DB_DIALECT=postgres AXONHUB_DB_DSN=postgres://axonhub:[email protected]:5432/axonhub?sslmode=disable
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target# axonhub-postgres.container
[Container]
Image=docker.io/library/postgres:16-alpine
Pod=axonhub.pod
Volume=/path/to/db:/var/lib/postgresql/data
Environment=POSTGRES_DB=axonhub POSTGRES_USER=axonhub POSTGRES_PASSWORD=axonhub
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target- Replace
/path/to/with your own path. - Replace
8090with the port you want to expose.
Start
- Save the files above to
~/.config/containers/systemd/. - Run
systemctl --user daemon-reload. - Start the containers:
systemctl --user start axonhub-pod - Optional: enable auto-update with
systemctl --user enable --now podman-auto-update.timer