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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75af68d6d07a814fe40dc4a07a46a236a7809515091013e1b39997c1a217e058
|
|
| MD5 |
054814007aa7136c3433813b17726a76
|
|
| BLAKE2b-256 |
8e19c10c2a131b0898f86430d877f299a303577492cabaaf1f8f3a988dc0ee83
|
File details
Details for the file gigaquads_installer-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gigaquads_installer-0.1.0-py3-none-any.whl
- Upload date:
- Size: 61.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5952376f1fe5d8521fb03d1f5d8b436d0e76499276aa5d980c1c086c31d7e43
|
|
| MD5 |
718a37f615dd01d1e18d4734ba53bc2c
|
|
| BLAKE2b-256 |
b92107161c5da90d210483725eaeb4bae57e32ce13eb93318b1bf00c3765d28f
|