Installs the bare necessities to turn a newly minted Arch Linux server into something useful. ``` wget -qO- https://gitea.young.computer/david/MiniServer/raw/branch/main/install.sh | bash ``` ## Keep your server up to date ``` update ``` This pulls the latest MiniServer into `~/.local/share/MiniServer`, then runs each step in `updates.d/` in order: the Arch keyring and system packages (plus any packages newly added to `packages.conf`), AUR packages, pm2, Cockpit, sibling projects, the firewall, cache cleanup, and a reboot check. If a step fails, the others still run and the failed ones are listed at the end. ## Refresh ``` refresh ``` Re-runs `install.sh` to pick up anything new in the installer (services, config). Run `update` afterwards. ## Sibling projects A sibling project is another git repository that builds on MiniServer. To install one: ``` sibling ``` It asks for the repository's git URL, clones it into `~/.local/share/siblings/`, and runs the project's `install.sh` (if it has one). After that, every `update` pulls each sibling and runs its `update.sh` (if it has one). Use `sibling list` to see what's installed and `sibling remove {name}` to uninstall one. To make your own repository work as a sibling project, see [skills/sibling-project-format.md](skills/sibling-project-format.md). ## Firewall firewalld blocks incoming connections except for the services and ports listed in [firewall.conf](firewall.conf) and in each sibling project's own `firewall.conf`. Each `update` opens anything newly listed, and closes ports MiniServer opened that nothing lists any more, for example after `sibling remove`. Rules you add yourself with `firewall-cmd` are left alone.