feat: add server, workstation, and cloud edition manifests

Define the three flagship editions as plain-text manifests:

- server (bastion): production server - observability stack, containers.
- workstation (forge): curated KDE Plasma + dev toolchains.
- cloud (nimbus): cloud kernel, cloud-init, guest agents.

Each manifest carries metadata (services to enable/mask), a package
list, a hardened kernel cmdline, and a btrfs fstab template.
This commit is contained in:
Blake Ridgway
2026-08-21 13:15:43 -05:00
parent 14e5ea9e1e
commit 729f191950
12 changed files with 463 additions and 0 deletions

9
editions/cloud/fstab Normal file
View File

@@ -0,0 +1,9 @@
# Arcline Cloud — /etc/fstab template
# Same layout as the other editions; btrfs-init.sh resolves the root UUID.
UUID=__ROOT_UUID__ / btrfs rw,noatime,compress=zstd:3,subvol=@ 0 0
UUID=__ROOT_UUID__ /home btrfs rw,noatime,compress=zstd:3,subvol=@home 0 0
UUID=__ROOT_UUID__ /var/log btrfs rw,noatime,compress=zstd:3,subvol=@log 0 0
UUID=__ROOT_UUID__ /.snapshots btrfs rw,noatime,compress=zstd:3,subvol=@snapshots 0 0
/swap/swapfile none swap sw 0 0

View File

@@ -0,0 +1,28 @@
# Arcline Cloud — kernel command line
# Same hardening baseline, serial console for cloud serial ports, no graphics.
console=tty0
console=ttyS0,115200n8
quiet
loglevel=3
systemd.show_status=auto
# hardening
init_on_alloc=1
init_on_free=1
slab_nomerge
page_poison=1
pti=on
spectre_v2=on
spec_store_bypass=on
tsx=off
lockdown=integrity
oops=panic
panic=-1
# cloud / disk
net.ifnames=0
biosdevname=0
# btrfs / storage
rootflags=subvol=@

View File

@@ -0,0 +1,36 @@
# Edition manifest: Arcline Cloud
# Codename: nimbus
edition: cloud
codename: nimbus
summary: Minimal base images optimized for cloud infrastructures.
description: >
Designed for AWS, GCP, Azure, or your own private cloud. Uses the cloud
kernel, cloud-init for first-boot provisioning, and a networkd-first
network stack. Same hardening baseline as server.
image:
type: iso
boot: bios+efi
filesystem: btrfs
compression: zstd:3
packages:
extra_repos: []
users:
- arcline
services:
enabled:
- systemd-networkd
- systemd-resolved
- cloud-init
- cloud-init-local
- ssh
- nftables
- apparmor
- qemu-guest-agent
- arcline-snapshot.timer
masked:
- apt-daily.timer
- apt-daily-upgrade.timer

View File

@@ -0,0 +1,60 @@
# Arcline Cloud — package set
# Minimal footprint: cloud kernel, cloud-init, guest agents, storage tooling.
# ── base system ─────────────────────────────────────────────────────────────
systemd
systemd-sysv
dbus
libpam-systemd
ca-certificates
locales
tzdata
# ── boot ────────────────────────────────────────────────────────────────────
grub-pc
grub-efi-amd64
shim-signed
# ── kernel (cloud variant) ──────────────────────────────────────────────────
linux-image-cloud-amd64
# ── filesystem ──────────────────────────────────────────────────────────────
btrfs-progs
zstd
xz-utils
# ── cloud provisioning ──────────────────────────────────────────────────────
cloud-init
cloud-guest-utils
cloud-image-utils
open-vm-tools
qemu-guest-agent
# ── storage / block devices ─────────────────────────────────────────────────
nvme-cli
open-iscsi
multipath-tools
lvm2
mdadm
# ── security / hardening ────────────────────────────────────────────────────
openssh-server
nftables
apparmor
apparmor-utils
# ── observability (Debian-main components) ─────────────────────────────────
prometheus-node-exporter
# ── minimal admin tooling ───────────────────────────────────────────────────
curl
jq
git
rsync
htop
vim-tiny
# ── Arcline toolchain (built from toolchain/) ───────────────────────────────
# arcline-uptime arcline-check arcline-audit arcline-dns
# arcline-vault arcline-email arcline-migrate arcline-billing
# arcline-portal arcline-website arcline-status