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)
| File | Size | Uploaded | |
|---|---|---|---|
| gigaquads_installer-0.1.0.tar.gz | 49.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|