Skip to main content

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 up creates 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 backup exports the PostgreSQL database via SSH and commits it to your repository
  • Live server seeding — ign8inventory seed queries your Hetzner projects and upserts running servers into NetBox
  • Vault integration — secrets in infrastructure.yml can 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

Metadata

Release files for ign8inventory 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ign8inventory 1.0.0
File Size Uploaded Provenance Actions
ign8inventory-1.0.0.tar.gz 20.5 kB Without provenance Details for ign8inventory-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ign8inventory 1.0.0
File Interpreter ABI Platform Actions
ign8inventory-1.0.0-py3-none-any.whl Python 3 none any Details for ign8inventory-1.0.0-py3-none-any.whl

Total release size: 43.7 kB

Release files / ign8inventory-1.0.0.tar.gz

Download URL ign8inventory-1.0.0.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
64fc19d9a88f397e25ef82a8a2988955bcd60d5d733fe955daf144cd737acdcf
BLAKE2b-256 checksum
How to use checksums
3bb7ddcf9e2082ae0c66f856f17a2a24ee30c7105059ea0d9c347f575df0f5dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Release files / ign8inventory-1.0.0-py3-none-any.whl

Download URL ign8inventory-1.0.0-py3-none-any.whl
Size 23.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d6102ee04f6a1417f353b973cdb95bf069b5668cc93bc62590a9864fd004e7ed
BLAKE2b-256 checksum
How to use checksums
5c5fb1c14298818a3acd72bd1ada3052a77d10e657171ba908240b95e5adcbcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.4

Security for ign8inventory 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page