A pure and incorruptible web server config https://tokinanpa.dev/
Find a file
Kiana Sheibani 475017cf87
fix: use specialArgs to prevent infinite loop
The `_module.args` option can't be used to pass modules to import, since
it can only be used during the config phase, not the import phase.
2024-11-20 01:15:44 -05:00
aether fix: use specialArgs to prevent infinite loop 2024-11-20 01:15:44 -05:00
deploy/rpi5 fix: add catchall to module args 2024-11-20 01:15:09 -05:00
modules fix: correct option name 2024-11-20 01:15:30 -05:00
flake.lock chore: bump inputs 2024-10-23 17:43:08 -04:00
flake.nix fix: use specialArgs to prevent infinite loop 2024-11-20 01:15:44 -05:00
LICENSE feat: add MIT license 2024-11-19 22:47:40 -05:00
README.md docs: document modules 2024-11-19 22:36:15 -05:00

Aἰθήρ

[Aither] as a whole neither came into being nor admits of destruction, but is one and eternal, with no end or beginning of its total duration, containing and embracing in itself the infinity of time ...

— Aristotle, On the Heavens 1

Aether is a fully automated web server configured via pure and declarative package management, powered by NixOS. This allows for all aspects of the server's operation, including config files, software dependencies, and site content to be deployed and provisioned automatically.

In short, it's my personal web server.

Deployment

Aether is designed to separate deployment from the logical specification of the system, and thus to support any machine that can run NixOS.

Currently, I deploy it physically to a Raspberry Pi 5 running a modified UEFI bootloader to provide Linux support.

Modules

As with all NixOS configurations, Aether is split into several independent modules that provide different functionality. These are stored in the modules/ directory.

Module Checklist

  • forgejo - Code forge
  • acme - TLS certificates
  • fail2ban - IP moderation
  • site - Personal website
  • mail - Mail server
  • backup - Automated backup system
  • cachix - Nix build caching

  1. Adapted from Book II.1. ↩︎