Skip to main content

Keygen-style Ansible deployment installer framework

Project description

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

Project details


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.

Supported by

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