Spin up a NetBox inventory environment in minutes — Hetzner Cloud, Cloudflare DNS, opinionated regions/sites/locations.
Project description
ign8inventory
Provision a production-ready NetBox DCIM/IPAM instance in minutes — Hetzner Cloud VM, Cloudflare DNS, Let's Encrypt TLS, PostgreSQL, and an opinionated default layout, all from a single CLI command.
pip install ign8inventory
ign8inventory setenv # configure credentials
ign8inventory up # provision everything
ign8inventory bootstrap # populate regions, sites, locations
Features
- Single command provisioning — one
ign8inventory upcreates the Hetzner VM, DNS record, TLS certificate, and a fully configured NetBox instance - Idempotent — re-running any command is safe; existing resources are detected and reused
- No Terraform, no Ansible — pure Python using the official Hetzner and Cloudflare SDKs
- Database backup —
ign8inventory backupexports the PostgreSQL database via SSH and commits it to your repository - Live server seeding —
ign8inventory seedqueries your Hetzner projects and upserts running servers into NetBox - Vault integration — secrets in
infrastructure.ymlcan be stored in and resolved from HashiCorp Vault
Requirements
- Python 3.9+
- A Hetzner Cloud account and API token
- A Cloudflare account managing your domain, with a Zone DNS Edit token
Installation
pipx install ign8inventory # recommended
# or
pip install ign8inventory
Quickstart
# 1. Configure — writes a .env file with all credentials
ign8inventory setenv
# 2. Provision — Hetzner VM + Cloudflare DNS + TLS + NetBox
ign8inventory up
# 3. Bootstrap — create regions, sites, and availability zones
ign8inventory bootstrap
# 4. Backup — export the database and commit it
ign8inventory backup
Run ign8inventory quickstart for the full step-by-step guide.
Commands
| Command | Description |
|---|---|
up |
Provision Hetzner VM, Cloudflare DNS, TLS, and install NetBox |
bootstrap |
Populate NetBox with regions, sites, and locations |
seed |
Query live Hetzner projects and upsert servers into NetBox |
backup |
Export the PostgreSQL database via SSH, save to backup/netbox.sql, and commit |
show-users |
List all NetBox users |
add-user |
Create a new NetBox user |
vault-put |
Push infrastructure.yml secrets to HashiCorp Vault |
setenv |
Interactive credential setup — writes .env |
destroy |
Tear down the server and DNS records |
Default layout
ign8inventory bootstrap creates:
- Regions: Europe, North America, Asia Pacific
- Sites: nbg1, fsn1, hel1 (EU) · ash1, hil1 (US) · sin1 (APAC)
- Locations: zone-a, zone-b per site
Environment variables
| Variable | Description |
|---|---|
IGN8_DOMAIN |
Base domain — inventory.DOMAIN will be created |
IGN8_ADMIN_EMAIL |
Contact email for Let's Encrypt |
IGN8_HETZNER_TOKEN |
Hetzner Cloud API token |
IGN8_CLOUDFLARE_TOKEN |
Cloudflare API token (Zone DNS Edit) |
IGN8_CLOUDFLARE_ZONE_ID |
Cloudflare Zone ID |
IGN8_NETBOX_SUPERUSER |
NetBox admin username (default: admin) |
IGN8_NETBOX_PASSWORD |
NetBox admin password |
IGN8_NETBOX_TOKEN |
API token — filled in after up, used by bootstrap and seed |
All variables can also be set via a .env file or passed as CLI flags.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ign8inventory-1.0.0.tar.gz.
File metadata
- Download URL: ign8inventory-1.0.0.tar.gz
- Upload date:
- Size: 20.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64fc19d9a88f397e25ef82a8a2988955bcd60d5d733fe955daf144cd737acdcf
|
|
| MD5 |
76f3775f9b804e422ce96d835f8226dd
|
|
| BLAKE2b-256 |
3bb7ddcf9e2082ae0c66f856f17a2a24ee30c7105059ea0d9c347f575df0f5dc
|
File details
Details for the file ign8inventory-1.0.0-py3-none-any.whl.
File metadata
- Download URL: ign8inventory-1.0.0-py3-none-any.whl
- Upload date:
- Size: 23.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6102ee04f6a1417f353b973cdb95bf069b5668cc93bc62590a9864fd004e7ed
|
|
| MD5 |
09c6be55ba67629c14d9ad8c347936f2
|
|
| BLAKE2b-256 |
5c5fb1c14298818a3acd72bd1ada3052a77d10e657171ba908240b95e5adcbcc
|