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.2
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.2.tar.gz | 10.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ign8saas-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.0 kB
Release files / ign8saas-0.1.2.tar.gz
| Download URL | ign8saas-0.1.2.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
664409cfbff46da8490740985a00c68ad9a36f3fb5de29e5bc5bcee12fa8aaa2
|
|
BLAKE2b-256 checksum How to use checksums |
2d49503493d174b3b6c6cb9eb43fb6ea2489bc09d51e5ac2d703137c256df6d9
|
| 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.2-py3-none-any.whl
| Download URL | ign8saas-0.1.2-py3-none-any.whl |
|---|---|
| Size | 12.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f7c577cedbee596e706878c3f73ffebe24b36cb782eb1d11484e460ab5452877
|
|
BLAKE2b-256 checksum How to use checksums |
e9d6be90351784210dff6df88424819675d645ea972ef6bbe6ccd2482670ac06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|