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

Metadata

Release files for gigaquads-installer 0.1.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 gigaquads-installer 0.1.0
File Size Uploaded
gigaquads_installer-0.1.0.tar.gz 49.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gigaquads-installer 0.1.0
File Interpreter ABI Platform
gigaquads_installer-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 110.5 kB

Release files / gigaquads_installer-0.1.0.tar.gz

Download URL gigaquads_installer-0.1.0.tar.gz
Size 49.0 kB
Tags Source
SHA-256 checksum
How to use checksums
75af68d6d07a814fe40dc4a07a46a236a7809515091013e1b39997c1a217e058
BLAKE2b-256 checksum
How to use checksums
8e19c10c2a131b0898f86430d877f299a303577492cabaaf1f8f3a988dc0ee83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / gigaquads_installer-0.1.0-py3-none-any.whl

Download URL gigaquads_installer-0.1.0-py3-none-any.whl
Size 61.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5952376f1fe5d8521fb03d1f5d8b436d0e76499276aa5d980c1c086c31d7e43
BLAKE2b-256 checksum
How to use checksums
b92107161c5da90d210483725eaeb4bae57e32ce13eb93318b1bf00c3765d28f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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