Profile-based bootstrap and maintenance system for Arch Linux workstations focused on ML/AI development and security hardening.
For a more entertaining introduction, see FUNREADME.md β where security meets humor.
- Arch Linux (primary target)
- Internet access for downloads
- sudo privileges for system operations
- yq or jq for YAML/JSON processing (auto-installed if missing)
The security-dev profile includes security hardening and scans. Review Safety & Requirements before choosing profiles.
# Clone the repository
git clone <repository-url>
cd arch-machine
# Make scripts executable
chmod +x install.sh migrate.sh
# 1. Thin install (default β recommended first step)
# Only the tinfoil guardian CLI + TUI. Fast, minimal footprint.
./install.sh
# (or ./install.sh --thin)
# 2. Use the sentinel immediately
tinfoil tui # interactive menus (audit, profiles, remediation, evidence)
tinfoil # quick global audit
# 3. Later β full hardened workstation (via same installer or from the TUI)
./install.sh --profile ml-dev
# or
./install.sh --profile security-dev
# Post-installation (after full profile)
maintenance/systemd-setup.sh setupBasic development tools (git, python, node, rust) and essential system packages.
Everything in minimal plus ROCm GPU acceleration, ML/AI environments, and data science packages.
Pre-configured Conda environments:
- ai_amd: AI/ML environment with PyTorch, ROCm GPU support, JupyterLab, and essential data science packages (numpy, pandas, scikit-learn, xgboost, etc.)
- xai_exp: Experimental AI environment with similar packages optimized for latest Python versions
Everything in minimal plus Kubernetes security hardening, runtime monitoring, and encrypted storage.
See Installation Guide for detailed profile information and customization options.
# Replace pacman with apt
sed -i 's/pacman -S/apt install/g' modules/system/install.sh
# Update package names
# arch-package β debian-package equivalents
# Example: reflector β apt update# Replace pacman with dnf/yum
sed -i 's/pacman -S/dnf install/g' modules/system/install.sh
# Update service management
# systemctl β systemctl (same, but check init system)- Update Package Manager: Replace
pacmancalls with your distro's package manager - Service Management: Verify systemd compatibility (most modern distros use it)
- Package Names: Update package names to match your distribution
- Paths: Check
/usr/local/bin,/etc/systemd/systemavailability - Dependencies: Ensure
yq,jq,curl,gitare available
# Test package manager detection
./install.sh --validate
# Dry run installation
./install.sh --profile minimal --dry-run
# Check for missing packages
grep "pacman -S" modules/system/install.shThe system includes automated weekly maintenance for system updates, security scans, and health monitoring.
- Automated: Runs weekly via systemd timers
- Manual: Individual maintenance scripts in
maintenance/ - Evidence Extraction: Generates AI-optimized evidence bundles from logs
See Maintenance Guide for complete maintenance documentation.
Launch the beautiful gum-powered vigilant control center:
tinfoil tui # after system install (or go run bin/tinfoil.go tui in dev)
./install.sh --tui # during setupFlows include:
- π Full security audit (live vulns, SBOM, Lynis...)
- π§Ή Policy-guided remediation (ruthless audit β kill, with multiple confirms)
- π¦ Profile installer with live yq-powered module toggles + dry-run
- π Evidence extraction, maintenance, log browser (fzf)
- Humorous self-aware tone: "The Sentinel sees your choices, citizen"
Zero extra deps beyond what's already in the fortress. Pure shell + gum.
- Modular Installation: Choose from different profiles
- Automated Maintenance: Weekly system updates and security scans
- Backup & Recovery: Configuration backups with rollback
- Log Evidence Extraction: Token-efficient AI agent integration
- Migration Support: Seamless transition from existing setups
arch-machine/
βββ config/ # Tool definitions and profiles
βββ modules/ # Installation modules
βββ maintenance/ # Maintenance and automation
βββ lib/ # Shared libraries
βββ systemd/ # Systemd units
βββ logs/ # Log files and reports
βββ docs/ # Detailed documentation
- Safety & Requirements - Important safety information and system requirements
- Installation Guide - Detailed setup and profiles
- Maintenance Guide - System maintenance and automation
- Evidence Extraction - AI-optimized log processing (legacy content in EVIDENCE-EXTRACTION.md during transition)
- Backup Guide - Backup and recovery procedures
- Troubleshooting - Common issues and solutions
- Development - Contributing and development guide
- Author's Motto - Project philosophy ("Solve your own machine first, then empower others to adapt") β prominently linked from docs/INDEX.md too. Full sentinel lore lives only in FUNREADME.md.
After installation, verify your setup:
# Run comprehensive validation
./install.sh --validate
# Check maintenance status
maintenance/systemd-setup.sh status
# View recent logs
tail logs/installer.logSee LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Please ensure all changes include appropriate logging and error handling.
