A comprehensive Arch Linux configuration management tool that helps you manage system configurations, backups, GPG keys, Git setup, and common fixes.
You can also view my dotfiles here.
ArchConfig is a modular bash-based tool designed to streamline the management of your Arch Linux system. It provides an interactive menu-driven interface for various system administration tasks including:
- System Configuration Management: Centralized configuration through
~/.archconfig/config.sh - Automated Backups: Git-based backup system for important files and directories
- GPG Key Management: Complete GPG key lifecycle management (creation, backup, restore)
- Git Configuration: Automated Git setup with GPG signing and SSH support
- System Fixes: Common terminal and application fixes (e.g., Alacritty input issues)
- Fixes Module: Resolve common system issues (Alacritty input fixes, etc.)
- Backup Module: Automated backup system with Git integration and encryption support
- Daily automated backups via cron jobs
- Separate handling for encrypted and non-encrypted files
- GPG and SSH key backup support
- GPG Management: Complete GPG key management suite
- Create new GPG keys and subkeys
- Manage GPG identities (UIDs)
- Export and import keys
- Backup and restore functionality
- Git Management: Streamlined Git configuration
- User setup with name and email
- GPG signing key configuration
- SSH key integration
The installer will automatically install required dependencies, but ensure you have:
- Arch Linux system
- Internet connection
sudoprivileges
- Clone the repository:
git clone https://github.com/MartianInGreen/ArchConfig.git
cd ArchConfig- Run the installer:
chmod +x install.sh
./install.sh- Add ArchConfig to your PATH:
echo 'export PATH=$PATH:~/.local/bin' >> ~/.bashrc
source ~/.bashrc-
Creates necessary directories:
~/.archconfig/- Main configuration directory~/.archconfig/backups/- Backup storage~/.archconfig/user/- User-specific configurations~/.secrets/- Encrypted secrets storage~/.local/bin/- Local binaries
-
Installs dependencies:
rsync- File synchronizationgit- Version controlvim- Text editordialog- Interactive dialogs
-
Sets up the application:
- Clones the repository to
~/.archconfig/source/ - Copies configuration files
- Creates executable symlink at
~/.local/bin/archconfig
- Clones the repository to
After installation, you can use ArchConfig via the command line:
# Launch interactive menu
archconfig
# Update ArchConfig
archconfig update
# Launch GPG management directly
archconfig gpg
# Show help
archconfig --helpThe main interface provides organized access to all modules:
ArchConfig
Select an option:
1. Management
11) Fixes
12) Backup
2. Tools
21) GPG Management
22) Git Management
3. Exit
9) Exit
The main configuration file is located at ~/.archconfig/config.sh. Key settings include:
- Backup Paths: Configure which files and directories to backup
- Encryption: Specify files requiring GPG encryption
- Git Settings: Repository and installation paths
- Secrets: Path to encrypted secrets file
For developers working on ArchConfig:
# Update local installation with current working directory changes
./devUpdate.shThis script:
- Preserves your existing configuration
- Updates modules and main script
- Maintains executable permissions
ArchConfig/
├── main.sh # Main application entry point
├── config.sh # Configuration template
├── install.sh # Installation script
├── devUpdate.sh # Development update script
└── modules/
├── backup.sh # Backup management
├── fixes.sh # System fixes
├── git.sh # Git configuration
├── gpg.sh # GPG key management
└── update.sh # Update functionality
ArchConfig includes a sophisticated backup system:
- Git-based versioning: All backups are version controlled
- Encryption support: Sensitive files are GPG encrypted
- Automated scheduling: Optional daily cron jobs
- Selective backup: Configure specific files and directories
- Regular files: Configuration files, dotfiles
- Encrypted files: SSH keys, sensitive configurations
- Directories: Complete directory structures
- GPG/SSH Keys: Cryptographic key materials
- Sensitive files are automatically encrypted using GPG
- SSH keys and secrets are handled separately from regular configurations
- Backup encryption uses your configured GPG keys
- All secrets are stored in
~/.secrets/with restricted permissions
- Fork the repository
- Create a feature branch
- Make your changes
- Test with
./devUpdate.sh - Submit a pull request
This project is licensed under the terms specified in the LICENSE file.
Current version: 0.1-alpha
Note: This tool is designed specifically for Arch Linux systems. While some modules may work on other Linux distributions, full functionality is only guaranteed on Arch Linux.