ign8saas
Ignite a multi-tenant SaaS control plane on Hetzner Cloud. One VPS runs Caddy (TLS termination + wildcard certs via Cloudflare DNS-01), Vaultwarden (Bitwarden-compatible password vault) and wg-portal (WireGuard admin UI) — reachable at three subdomains of your parent zone.
Quickstart
cp .env.example .env # fill in Hetzner + Cloudflare credentials
ign8saas up # provision server + DNS + docker stack
What gets provisioned
For IGN8_DOMAIN=traeck.it you get:
| Subdomain | Purpose |
|---|---|
saas.traeck.it |
landing page ("SaaS control plane — coming soon") |
*.vaultwarden.traeck.it |
Vaultwarden (vanity slug redirect on subdomain) |
*.vpn.traeck.it |
wg-portal (WireGuard admin UI) |
Underneath, on a single Hetzner cax11 VPS in fsn1:
- Docker + Compose plugin (installed via
get.docker.com) caddy(ghcr.io/caddybuilds/caddy-cloudflare:latest) — ports 80/443, wildcard certs via DNS-01vaultwarden(vaultwarden/server:latest) — signups disabled, invitations enabledwg-portal(ghcr.io/h44z/wg-portal:latest) — port 51820/udp exposed for WireGuard- Hetzner firewall: 22 / 80 / 443 / 51820-udp only
State
Local state lives under .ign8saas/ (gitignored):
.ign8saas/keys/ign8saas— SSH private key for server access.ign8saas/state.json— Hetzner IDs, IPv4.ign8saas/vaultwarden-init.json— Vaultwarden admin token + wg-portal admin creds (chmod 600, keep safe)
Status
This scaffold delivers the shared infra only. Per-customer onboarding
(add-customer, del-customer) is stubbed — see CLAUDE.md for the design
notes and the roadmap.
See CLAUDE.md for architecture details.
Metadata
Release files for ign8saas 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ign8saas-0.1.4.tar.gz | 13.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ign8saas-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.6 kB
Release files / ign8saas-0.1.4.tar.gz
| Download URL | ign8saas-0.1.4.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
33975a3492c71b79800c164b6d79a792e72ad614decd6306a91d03f7f07fc656
|
|
BLAKE2b-256 checksum How to use checksums |
937cec1fc00b64ca17f8cdc6570d544424c4db4883cae14d3890a8c977453ee3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / ign8saas-0.1.4-py3-none-any.whl
| Download URL | ign8saas-0.1.4-py3-none-any.whl |
|---|---|
| Size | 16.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d8886107019b3d4f9972af9c427458bcd219ec5e6c015b0875ce9b94edb1c13
|
|
BLAKE2b-256 checksum How to use checksums |
d0d52a71c290d62b482eab2252ad10ab2179be8ed9ccff72c8fc0bfe7014d56c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|