Skip to main content

Gigaquads Installer

Keygen-style Ansible deployment installer framework. Build interactive deployment UIs with a retro demoscene aesthetic — starfield backgrounds, neon glow effects, chiptune audio, and live terminal output.

Features

  • Pygame-based visual installer with cracktro/keygen aesthetic
  • Screen wizard: splash → host config → component selection → deploy → results
  • Live Ansible playbook execution with per-component progress tracking
  • Host reachability probing and per-component host targeting
  • Chiptune audio engine (PSQ) with song sequencer
  • Configurable theme, components, and screen flow

Quick Start

pip install gigaquads-installer
from gigaquads_installer import InstallerApp, InstallerConfig

config = InstallerConfig(
    project_name="myproject",
    project_title="My Project Installer",
    splash_logo="M Y P R O J E C T",
    splash_credits=":::   My Project — Deployment System   :::",
    public_deploy_dir="../myproject-deploy",
    host_groups=["myproject_core", "myproject_gpu"],
    components=[
        {
            "id": "api",
            "label": "API Server",
            "description": "FastAPI backend",
            "tag": "api",
            "host_groups": ["myproject_core"],
            "port": 8000,
        },
        {
            "id": "worker",
            "label": "Worker",
            "description": "Background job processor",
            "tag": "worker",
            "host_groups": ["myproject_gpu"],
        },
    ],
)

app = InstallerApp(config)
app.run()

Configuration

InstallerConfig fields:

Field Default Description
project_name "myproject" Used for home dir (~/.myproject), branding
project_title "My Project Installer" Window title
splash_logo "M Y P R O J E C T" Large logo text on splash screen
splash_credits ":::" Scrolling ticker text
version "1.0.0" Shown on splash screen
screens ["splash", "deploy_config", "progress", "complete"] Screen flow
playbooks {"full": "site.yml", "sync": "sync-and-restart.yml"} Ansible playbook names
home_dir "~/.{project_name}" User config directory
public_deploy_dir "" Path to Ansible deploy dir (relative to installer)
host_groups [] Ansible inventory groups
components [] Deployable components (see below)
audio_enabled True Enable chiptune audio

Components

Each component is a dict:

{
    "id": "api",              # Unique identifier and Ansible tag
    "label": "API Server",    # Display name
    "description": "...",     # Short description
    "tag": "api",             # Ansible tag (usually same as id)
    "host_groups": ["core"],  # Which inventory groups can run this
    "port": 8000,             # Optional — shown in UI
}

Custom Screens

Override any built-in screen by passing screen_classes:

from gigaquads_installer.screens.splash import SplashScreen

class MySplash(SplashScreen):
    def draw(self, surface):
        # custom drawing
        super().draw(surface)

app = InstallerApp(config, screen_classes={"splash": MySplash})

PSQ Audio Engine

The PSQ (Programmable Sound sQuencer) is a chiptune audio engine included with the framework. It provides oscillator-based synthesis, ADSR envelopes, and a JSON song format.

Requirements

  • Python 3.11+
  • pygame-ce >= 2.4
  • PyYAML >= 6.0
  • Ansible (must be installed on the system for deployment)
  • PortAudio (system library, for audio — sudo apt install libportaudio2)

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gigaquads_installer-0.1.0.tar.gz (49.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gigaquads_installer-0.1.0-py3-none-any.whl (61.5 kB view details)

Uploaded Python 3

File details

Details for the file gigaquads_installer-0.1.0.tar.gz.

File metadata

  • Download URL: gigaquads_installer-0.1.0.tar.gz
  • Upload date:
  • Size: 49.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for gigaquads_installer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 75af68d6d07a814fe40dc4a07a46a236a7809515091013e1b39997c1a217e058
MD5 054814007aa7136c3433813b17726a76
BLAKE2b-256 8e19c10c2a131b0898f86430d877f299a303577492cabaaf1f8f3a988dc0ee83

See more details on using hashes here.

File details

Details for the file gigaquads_installer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gigaquads_installer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e5952376f1fe5d8521fb03d1f5d8b436d0e76499276aa5d980c1c086c31d7e43
MD5 718a37f615dd01d1e18d4734ba53bc2c
BLAKE2b-256 b92107161c5da90d210483725eaeb4bae57e32ce13eb93318b1bf00c3765d28f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page