[Mirror] A command line driven installer with sane defaults
  • Python 88.3%
  • Scheme 6.5%
  • Shell 5.2%
Find a file
2026-05-10 18:37:33 +01:00
px_install update to use new channels and default to codeberg for connection check 2025-11-30 22:02:08 +07:00
scripts update to use new channels and default to codeberg for connection check 2025-11-30 22:02:08 +07:00
templates adapt to new config; wip: auto retry for substitute failure; stats 2023-06-19 22:43:47 +01:00
tests support for new PantherX OS configuration format 2025-03-06 15:27:58 +00:00
.gitignore added server config templates; fixed wifi setup; fixed installation using encrypted partition 2022-05-25 16:09:37 +01:00
.gitlab-ci.yml fix CI 2025-03-06 15:32:18 +00:00
.pylintrc wip; support for enterprise config; updated readme; check if matching template exists 2021-09-26 22:14:33 +01:00
CHANGELOG.md update to use new channels and default to codeberg for connection check 2025-11-30 22:02:08 +07:00
DEVELOPMENT.md fixed issue in multiprocessing module that caused installation to fail 2025-05-29 15:12:54 +01:00
LICENSE added license 2021-12-24 10:23:32 +00:00
NOTES.md updated scripts; fixed issue related to installation; added initial matrix system config 2021-10-31 14:48:51 +00:00
pyproject.toml wip; support for enterprise config; updated readme; check if matching template exists 2021-09-26 22:14:33 +01:00
README.md chore: announce deprecation 2026-05-10 18:37:33 +01:00
setup.py update to use new channels and default to codeberg for connection check 2025-11-30 22:02:08 +07:00

PantherX Installer

Deprecated. This Python installer has been replaced by guix-install — a single Rust binary you run on a Guix ISO to get a working system. It supports four install modes: guix (default channels, linux-libre), nonguix (regular kernel + microcode), panther (nonguix plus a custom substitute server, the default), and enterprise (fetches config remotely for unattended installs). It also adds a dry-run mode to preview the generated config before touching any disk.

Command line options:

-t, --type: Installation type ['DESTOP', 'SERVER', 'ENTERPRISE'] (Default: Desktop)
-v, --variant: Installation variant ['DEFAULT', 'XFCE', 'MATE', 'GNOME'] (Default: LXQt)
-f, --firmware: Overwrite automatic detection ['BIOS', 'EFI'] (Default: Automatic)
-hn, --hostname: Computer name on the network (Default: pantherx-7xkp1)
-tz, --timezone: Computer time zone (Default: Europe/Berlin)
-l, --locale: Computer locale (Default: en_US.utf8)
-u, --username: First user username (Default: panther)
-pw, --password: First user password (Default: pantherx) - should be changed later `passwd <USERNAME>`
-d, --disk: The disk to install to (Default: /dev/sda)
-de, --disk_encryption: Whether to use full disk encryption (Default: False)
-c, --config: Overwrites all other options; installs from enterprise config settings

Defaults:

  • EFI: 200 MB boot partition / BIOS: 10 MB boot partition
  • Remaining for data
  • 4GB SWAP file

Run

Run with prompts:

# This will prompt you for all options (RECOMMENDED)
px-install run

Run with defaults:

# This will install the system with everything set to default
px-install

Run with command line arguments:

px-install --type DESKTOP \
    --variant XFCE \
	--firmware EFI \
	--hostname panther \
	--timezone Europe/Berlin \
	--locale en_US.utf8 \
	--username panther \
	--password pantherx \
	--key ssh-ed25519 AA ... 4QydPg franz \
	--disk /dev/sda
	--disk_encryption True

If you decide to use full disk encryption (`-de True / --disk_encryption True), you will be prompted for an encryption passphrase a few seconds after the installation has started:

Enter passphrase for /dev/sda2:
Verify passphrase:

Enterprise config overwrite (fully automated):

px-install --config abd1uc3z

Refer to scripts/README.md for more on enterprise configuration.

Helpers

Wifi

To aid Wi-Fi setup:

px-install wifi-setup

This will:

  1. Check if a valid interface is available
  2. Prompt for Wi-Fi config
  3. Print commands to activate Wi-Fi

Online Check

To check if you're online, do:

px-install network-check

Minimal bash-based replicate

There's a minimal, all-in-one installer bash script in scripts/install.sh. It replicates the python application closely. Instead of params it asks for each setting.