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.1
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.1.tar.gz | 9.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ign8saas-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.8 kB
Release files / ign8saas-0.1.1.tar.gz
| Download URL | ign8saas-0.1.1.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2212e25a791d8818c1094c052d0c6eef557a9428de49f5c91d1dd4c04e85ef3d
|
|
BLAKE2b-256 checksum How to use checksums |
3a629b814980c35c5910ac0201d72f2867e737629ca759a3f1f4f3a6a2fc66b5
|
| 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.1-py3-none-any.whl
| Download URL | ign8saas-0.1.1-py3-none-any.whl |
|---|---|
| Size | 12.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d3fec98f89f5a14b681f3b53728ff09a52c3379e84665c33d21a01758b096a06
|
|
BLAKE2b-256 checksum How to use checksums |
139f10ec2344899694944574a09d5d5ad1ab990661be41bcd17716ff7ddd898b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|