initial commit

This commit is contained in:
tumillanino
2025-11-12 18:34:08 +11:00
commit 2fed8f268e
585 changed files with 161655 additions and 0 deletions

92
README.md Normal file
View File

@@ -0,0 +1,92 @@
# Miasma OS Installer
Opinionated Arch Linux installer built with Go that leverages the alis (Arch Linux Install Script) framework.
This installer creates a security-hardened, immutable Miasma OS with Cosmic Desktop.
## Features
- **Filesystem**: btrfs with optimized subvolume layout and snapshots
- **Desktop**: Cosmic Desktop (Rust-based, memory-safe)
- **Kernel**: linux-hardened for security
- **Encryption**: LUKS2 by default (optional)
- **Boot**: UEFI only (systemd-boot) with Secure Boot support
- **Configuration**: Generates alis-compatible configuration files
- **Security**:
- OpenDoas instead of sudo
- Firejail and AppArmor for application containerization
- nftables firewall with restrictive defaults
- XWayland-Satellite for better X11 app isolation
- **Additional Features**:
- Chromium with Wayland support
- Neovim
- Kanagawa Dragon theme everywhere
- Alacritty terminal emulator
- Zsh shell
## Quick Install
Boot into Arch Linux installation media and run:
```bash
# Build and run installer
./build.sh
sudo ./miasma-installer
```
## How It Works
This installer uses the alis (Arch Linux Install Script) framework to perform the base system installation.
The process is:
1. The Go installer prompts for user input (disk, username, password)
2. Creates alis configuration files (`alis.conf` and `alis-packages.conf`)
3. Runs the alis installation script to install the base system
4. Applies Miasma-specific post-installation configurations via `miasma-post-install.sh`
## Configuration Files
The installer generates alis-compatible configuration files:
- `alis.conf` - System configuration (disk layout, packages, services, etc.)
- `alis-packages.conf` - Package installation configuration
## Development
### Prerequisites
- Go 1.19 or later
- Arch Linux (for testing)
### Building
```bash
# Build binary
./build.sh
# Run directly
sudo ./miasma-installer
```
## Project Structure
```
.
├── alis/ # alis framework (submodule)
├── alis.conf # alis system configuration (generated)
├── alis-packages.conf # alis packages configuration (generated)
├── miasma-post-install.sh # Post-installation script
├── build.sh # Build script
└── main.go # Entry point
```
## Post-Install Script
The `miasma-post-install.sh` script runs after the alis installation completes:
- Enables AppArmor, Firejail, and nftables services
- Configures opendoas
- Sets zsh as the default shell
- Enables systemd-timesyncd for time synchronization
## License
MIT