Reference

The PyPI Reference

Every ign8* package on PyPI, its CLI entry point, and its public functions. Generated from the source of truth — the repositories under pypi/.

18 packages/100 documented functions
Package

ign8v5.0.0

Bootstrap the IGN8 infrastructure environment — configure cloud, DNS, and Git credentials in one interactive command. Entry point for all other ign8* packages.

CLI
ign8
Install
pipx install ign8
Functions
  • initcli.py
    init() -> None

    Interactively configure the IGN8 environment and save credentials to ~/.ign8.

Package

ign8mailv2.4.0

Spin up a fully configured mail server in minutes — Hetzner Cloud infra, Cloudflare DNS, Postfix, Dovecot, rspamd — all from one CLI command.

CLI
ign8mail
Install
pipx install ign8mail
Functions
  • upcli.py
    up(...) -> None

    Provision the mail server end-to-end: SSH keypair, Hetzner VM, Cloudflare DNS, mail stack install with TLS.

  • destroycli.py
    destroy(...) -> None

    Tear down the mail server and remove its Cloudflare DNS records.

  • addusercli.py
    adduser(...) -> None

    Create a new mailbox user on the remote server.

  • statuscli.py
    status(...) -> None

    Show mail server status, connectivity checks, and current configuration.

  • synccli.py
    sync(...) -> None

    Sync a local mail client (aerc or Thunderbird) with the server.

  • sync_aerccli.py
    sync_aerc(...) -> None

    Configure the aerc mail client with server accounts.

  • sync_thunderbirdcli.py
    sync_thunderbird(...) -> None

    Configure Thunderbird with server accounts.

  • list_inboxescli.py
    list_inboxes(...) -> None

    List all mailboxes present on the server.

  • create_mailboxcli.py
    create_mailbox(...) -> None

    Create a new mailbox on the server.

  • delete_mailboxcli.py
    delete_mailbox(...) -> None

    Delete a mailbox from the server.

  • seedcli.py
    seed(...) -> None

    Populate the server with default mailboxes and users.

  • enable_autocreatecli.py
    enable_autocreate(...) -> None

    Enable automatic mailbox creation for new users.

  • backupcli.py
    backup(...) -> None

    Back up mail server data to a Hetzner StorageBox.

  • sshcli.py
    ssh(...) -> None

    Open an interactive SSH session to the mail server.

  • save_keypairkeys.py
    save_keypair(directory: Path, name: str = 'ign8mail') -> tuple[Path, Path]

    Generate and save an RSA keypair for SSH access.

  • generate_rsa_keypairkeys.py
    generate_rsa_keypair(bits: int = 4096) -> tuple[str, str]

    Generate an RSA keypair as PEM-formatted strings.

  • configure_accountthunderbird.py
    configure_account(profile_dir: Path, email: str, display_name: str, mail_host: str) -> None

    Configure a Thunderbird mail account inside a profile directory.

  • find_profilethunderbird.py
    find_profile() -> Path | None

    Locate the local Thunderbird profile directory.

Package

ign8inventoryv1.0.0

Spin up a NetBox inventory environment in minutes — Hetzner Cloud, Cloudflare DNS, PostgreSQL, opinionated regions/sites/locations.

CLI
ign8inventory
Install
pipx install ign8inventory
Functions
  • upcli.py
    up(...) -> None

    Provision NetBox: Hetzner VM, Cloudflare DNS, PostgreSQL, NetBox install with TLS.

  • bootstrapcli.py
    bootstrap(...) -> None

    Populate NetBox with default regions, sites, and locations.

  • show_userscli.py
    show_users(...) -> None

    List all NetBox users.

  • add_usercli.py
    add_user(...) -> None

    Create a new NetBox user.

  • seedcli.py
    seed(...) -> None

    Query live Hetzner servers and seed them into NetBox.

  • vault_putcli.py
    vault_put(...) -> None

    Read infrastructure.yml and store its secrets in Vault.

  • backupcli.py
    backup(...) -> None

    Export the NetBox PostgreSQL database and commit it to git.

  • destroycli.py
    destroy(...) -> None

    Tear down the NetBox server and DNS records.

  • setenvcli.py
    setenv(...) -> None

    Interactively collect credentials and write them to .env.

  • quickstartcli.py
    quickstart() -> None

    Print a step-by-step quickstart guide to the terminal.

  • resolvevault.py
    resolve(value: Any) -> Any

    Resolve vault: references inside infrastructure.yml.

  • get_secretvault.py
    get_secret(path: str, field: str | None = None) -> Any

    Retrieve a secret value from Vault.

  • put_secretvault.py
    put_secret(path: str, fields: dict[str, str]) -> None

    Store secret fields in Vault at the given path.

Package

ign8vaultv2.0.10

Spin up a production HashiCorp Vault + Consul stack in minutes — Hetzner Cloud, Cloudflare DNS, automated restic backups to Hetzner StorageBox.

CLI
ign8vault
Install
pipx install ign8vault
Functions
  • upcli.py
    up(...) -> None

    Provision Vault + Consul: Hetzner VM, Cloudflare DNS, TLS, daily backups to StorageBox.

  • destroycli.py
    destroy(...) -> None

    Tear down the Vault + Consul server and DNS records.

  • signcli.py
    sign(...) -> None

    Create and sign an SSH keypair via Vault SSH CA.

  • testcli.py
    test(...) -> None

    Test SSH login using a Vault-signed certificate.

  • sshcli.py
    ssh(...) -> None

    Open an interactive SSH session with a Vault-signed certificate.

  • addusercli.py
    adduser(...) -> None

    Create a Vault user together with an SSH-signing token.

  • show_tokencli.py
    show_token(...) -> None

    Show details about the current Vault token.

  • list_tokenscli.py
    list_tokens(...) -> None

    List all active tokens in Vault.

  • refresh_tokencli.py
    refresh_token(...) -> None

    Renew the current Vault token.

  • onboardcli.py
    onboard(...) -> None

    Onboard a server: trust the Vault CA, create the ign8admin user, update the SSH role.

  • setupsshdcli.py
    setupsshd(...) -> None

    Configure a host to trust the Vault SSH CA.

  • setenvcli.py
    setenv(...) -> None

    Interactively collect credentials and write them to .env.

  • quickstartcli.py
    quickstart() -> None

    Print a step-by-step quickstart guide.

Package

ign8cloudv1.0.0

Publish and retrieve MAAS on-prem cloud config via Cloudflare DNS TXT records — GPG-encrypted, SHA-256 verified, zero infrastructure required.

CLI
ign8cloud
Install
pipx install ign8cloud
Functions
  • savecli.py
    save(...) -> None

    Archive, GPG-encrypt, and publish repo config to Cloudflare DNS TXT records.

  • loadcli.py
    load(...) -> None

    Retrieve MAAS config from DNS TXT blocks, GPG-decrypt, verify, and extract.

  • setup_keyscli.py
    setup_keys() -> None

    Generate a GPG keypair for MAAS config encryption.

Package

ign8netboxv1.0.0

NetBox CMDB integration — query devices, VMs, and IPAM from the CLI.

CLI
ign8netbox
Install
pipx install ign8netbox
Functions
  • statuscli.py
    status() -> None

    Show NetBox instance status and version.

  • devicescli.py
    devices(...) -> None

    List devices registered in NetBox with filtering and pagination.

  • vmscli.py
    vms(...) -> None

    List virtual machines registered in NetBox.

Package

ign8ingressv1.0.0

Traefik ingress gateway for the ign8 ecosystem — routes inventory, vault, and ingress subdomains with automatic TLS.

CLI
ign8ingress
Install
pipx install ign8ingress
Functions
  • upcli.py
    up(...) -> None

    Install and configure Traefik on an existing server with Cloudflare DNS.

  • destroycli.py
    destroy(...) -> None

    Tear down Traefik and remove its DNS records.

  • setenvcli.py
    setenv(...) -> None

    Interactively collect credentials and write them to .env.

  • quickstartcli.py
    quickstart() -> None

    Print a step-by-step quickstart guide.

Package

ign8gitv1.0.0

Git provider integration — configure credentials and SSH access for GitHub, Bitbucket, or Gitea.

CLI
ign8git
Install
pipx install ign8git
Functions
  • statuscli.py
    status() -> None

    Show current Git provider configuration.

  • clonecli.py
    clone(...) -> None

    Clone a repository using configured Git provider credentials.

Package

ign8vpnv0.1.0

Spin up a WireGuard VPN server in minutes — Hetzner, Cloudflare, add/delete WireGuard clients on demand.

CLI
ign8vpn
Install
pipx install ign8vpn
Functions
  • upcli.py
    up(...) -> None

    Provision the Hetzner server, Cloudflare DNS, and configure the WireGuard VPN.

  • add_clientcli.py
    add_client(...) -> None

    Generate and register a new WireGuard client.

  • del_clientcli.py
    del_client(...) -> None

    Remove a WireGuard client.

  • list_clientscli.py
    list_clients() -> None

    List all registered WireGuard clients.

  • destroycli.py
    destroy(...) -> None

    Tear down the WireGuard VPN server.

  • generate_wg_keypairkeys.py
    generate_wg_keypair() -> tuple[str, str]

    Generate a WireGuard keypair.

Package

ign8serverv0.1.0

Ignite the server, anywhere — hypervisor or baremetal. Central server-and-secrets manager for the ign8 ecosystem.

CLI
ign8server
Install
pipx install ign8server
Functions
  • bootstrapcli.py
    bootstrap(...) -> None

    Initialize the central server with credentials.

  • project_listcli.py
    project_list(...) -> None

    List infrastructure projects.

  • project_importcli.py
    project_import(...) -> None

    Import a project configuration.

  • server_upcli.py
    server_up(...) -> None

    Provision a new server.

  • server_listcli.py
    server_list() -> None

    List provisioned servers.

  • server_destroycli.py
    server_destroy(...) -> None

    Destroy a server.

  • server_typescli.py
    server_types() -> None

    Show available server types.

  • secret_setcli.py
    secret_set(...) -> None

    Store a secret in Vault.

  • secret_getcli.py
    secret_get(...) -> None

    Retrieve a secret from Vault.

  • secret_listcli.py
    secret_list(...) -> None

    List secrets in Vault.

  • secret_deletecli.py
    secret_delete(...) -> None

    Delete a secret from Vault.

  • statuscli.py
    status(...) -> None

    Show server status and configuration.

Package

ign8googlev0.2.0

Google Cloud integration for the ign8 ecosystem — manage API keys, projects, and GCP resources.

CLI
ign8google
Install
pipx install ign8google
Functions
  • keys_createcli.py
    keys_create(...) -> None

    Create a Google Cloud API key with optional restrictions.

  • keys_listcli.py
    keys_list(...) -> None

    List API keys in the current project.

  • keys_showcli.py
    keys_show(...) -> None

    Show API key metadata and optionally reveal the key string.

  • keys_updatecli.py
    keys_update(...) -> None

    Update the restrictions on an API key.

  • keys_deletecli.py
    keys_delete(...) -> None

    Delete an API key.

  • projects_listcli.py
    projects_list() -> None

    List Google Cloud projects.

  • projects_createcli.py
    projects_create(...) -> None

    Create a new Google Cloud project.

  • projects_deletecli.py
    projects_delete(...) -> None

    Soft-delete a Google Cloud project.

  • projects_usecli.py
    projects_use(...) -> None

    Set the active project.

  • tuicli.py
    tui() -> None

    Launch an interactive TUI for managing projects and API keys.

  • get_active_projectstate.py
    get_active_project() -> str

    Return the currently active project ID.

  • set_active_projectstate.py
    set_active_project(project_id: str) -> None

    Persist the active project ID.

Package

ign8awxv0.1.0

Ansible automation with AWX — provision an AWX controller in minutes on Hetzner Cloud with Cloudflare DNS and Let’s Encrypt TLS.

CLI
ign8awx
Install
pipx install ign8awx
Functions
  • upcli.py
    up(...) -> None

    Provision AWX: Hetzner VM, Cloudflare DNS, AWX install with TLS.

  • destroycli.py
    destroy(...) -> None

    Tear down the AWX server and DNS records.

  • setenvcli.py
    setenv(...) -> None

    Interactively collect credentials and write them to .env.

  • quickstartcli.py
    quickstart() -> None

    Print a step-by-step quickstart guide.

Package

ign8ansiblev0.1.0

Spin up an AWX service on Hetzner Cloud — Ansible automation, ready to run.

CLI
ign8ansible
Install
pipx install ign8ansible
Functions
  • upcli.py
    up(...) -> None

    Provision a Hetzner VM and install Ansible AWX.

  • downcli.py
    down(...) -> None

    Bring down the AWX deployment.

  • destroycli.py
    destroy(...) -> None

    Completely tear down the AWX infrastructure.

  • setenvcli.py
    setenv(...) -> None

    Interactively collect credentials and write them to .env.

Package

ign8securityv0.1.0

Automated OpenVAS vulnerability-scanner deployment on Hetzner Cloud.

CLI
ign8security
Install
pipx install ign8security
Functions
  • upcli.py
    up(...) -> None

    Deploy an OpenVAS server and agent on Hetzner Cloud.

  • downcli.py
    down() -> None

    Tear down the OpenVAS deployment.

  • deploydeploy.py
    deploy(...) -> dict

    Deploy the OpenVAS infrastructure and return connection details.

  • agent_cloud_init_cloud_init.py
    agent_cloud_init() -> str

    Generate the cloud-init script for the OpenVAS agent.

  • server_cloud_init_cloud_init.py
    server_cloud_init(password: str) -> str

    Generate the cloud-init script for the OpenVAS server.

Package

ign8instagram

Instagram feed/publishing helpers. TypeScript layer alongside a small Django backend — not a Python API.

Implemented in TypeScript (src/index.ts, src/session.ts, src/commands/) with a Django management shell. No exported Python functions.

Package

ign8aws

Planned: AWS integration for the ign8 ecosystem.

Directory scaffolded — no source yet.

Package

ign8windows

Planned: Windows host provisioning for the ign8 ecosystem.

Directory scaffolded — no source yet.