| 1 |
# Mountaineer Server MVP — declarative package set |
| 2 |
# |
| 3 |
# One package per line. Comments document the STACK source for each group. |
| 4 |
# Verify-on-Alpine items (marked TODO-verify) are picks I expect to be in the |
| 5 |
# stated repository but have not confirmed against a live Alpine mirror. |
| 6 |
# When the first build runs on Alpine, any missing package surfaces here as |
| 7 |
# a hard error — which is the right failure mode. |
| 8 |
|
| 9 |
# Kernel and base |
| 10 |
linux-lts |
| 11 |
linux-firmware-none |
| 12 |
alpine-baselayout |
| 13 |
busybox |
| 14 |
busybox-suid |
| 15 |
busybox-openrc |
| 16 |
musl |
| 17 |
musl-utils |
| 18 |
ca-certificates |
| 19 |
ca-certificates-bundle |
| 20 |
tzdata |
| 21 |
|
| 22 |
# Package management |
| 23 |
apk-tools |
| 24 |
|
| 25 |
# Init: s6 + s6-rc (STACK spicy pick — replaces OpenRC) |
| 26 |
s6 |
| 27 |
s6-rc |
| 28 |
s6-linux-init |
| 29 |
execline |
| 30 |
|
| 31 |
# Filesystem: ZFS on root |
| 32 |
# `zfs` provides userland (zpool, zfs commands); `zfs-lts` is the kernel |
| 33 |
# module for linux-lts. `zfs-libs` is auto-pulled. There is no separate |
| 34 |
# `zfs-utils` package in Alpine — the userland lives in `zfs`. |
| 35 |
zfs |
| 36 |
zfs-lts |
| 37 |
# zfsbootmenu is NOT packaged in Alpine 3.23 (main, community, or |
| 38 |
# edge/testing). The installer fetches the signed EFI binary from |
| 39 |
# zbm-dev.github.io/zfsbootmenu/releases and installs it to the ESP at |
| 40 |
# install time. Not present in the installed-system package set. |
| 41 |
efibootmgr |
| 42 |
e2fsprogs |
| 43 |
dosfstools |
| 44 |
mkinitfs |
| 45 |
sgdisk |
| 46 |
|
| 47 |
# Network configuration |
| 48 |
ifupdown-ng |
| 49 |
ifupdown-ng-wifi # harmless on Server; iwd is laptop-only |
| 50 |
dhcpcd |
| 51 |
|
| 52 |
# Time and DNS |
| 53 |
chrony |
| 54 |
unbound |
| 55 |
unbound-libs |
| 56 |
|
| 57 |
# SSH |
| 58 |
openssh-server |
| 59 |
openssh-client |
| 60 |
openssh-keygen |
| 61 |
|
| 62 |
# Firewall |
| 63 |
nftables |
| 64 |
|
| 65 |
# Web ingress |
| 66 |
caddy |
| 67 |
|
| 68 |
# Secrets and backup |
| 69 |
age |
| 70 |
sops |
| 71 |
restic |
| 72 |
|
| 73 |
# Outbound mail |
| 74 |
msmtp |
| 75 |
mailx |
| 76 |
|
| 77 |
# Logs |
| 78 |
# vector is NOT packaged in Alpine 3.23 (main, community, or edge/testing). |
| 79 |
# MVP ships without it — logs stay on disk via Alpine's default logger |
| 80 |
# (busybox syslogd) and Caddy/podman per-service log files. When the |
| 81 |
# Mountaineer overlay repo lands, vector ships as a vendored static |
| 82 |
# binary from vector.dev/releases. STACK pick stands; packaging path |
| 83 |
# changes from "apk add" to "ship in our overlay" for the time being. |
| 84 |
|
| 85 |
# Containers |
| 86 |
podman |
| 87 |
crun |
| 88 |
fuse-overlayfs |
| 89 |
slirp4netns |
| 90 |
|
| 91 |
# Overlay mesh |
| 92 |
nebula |
| 93 |
|
| 94 |
# Interactive userland (STACK) |
| 95 |
ripgrep |
| 96 |
fd |
| 97 |
sd |
| 98 |
bat |
| 99 |
eza |
| 100 |
dust |
| 101 |
procs |
| 102 |
bottom |
| 103 |
zoxide |
| 104 |
lnav |
| 105 |
starship |
| 106 |
|
| 107 |
# Spicy picks: editor, multiplexer, shell |
| 108 |
helix |
| 109 |
zellij |
| 110 |
nushell |
| 111 |
|
| 112 |
# Build/install conveniences kept on the system |
| 113 |
git |
| 114 |
curl |
| 115 |
wget |
| 116 |
jq |
| 117 |
yq |
| 118 |
|
| 119 |
# Installer UI (dialog-based prompts in mountaineer-install) |
| 120 |
dialog |
| 121 |
|