## setup

1. log into the vps, make sure it's fedora (or else 🔪)
2. create a new admin user
    - `sudo useradd -m -G wheel admin`
    - `sudo passwd admin`
    - `sudo su - admin`
3. use the system setup script, and log out
    - `sudo dnf install git -y`
    - `git clone https://git.atom.town/atom/town`
    - `./atom.town/scripts/system-setup.sh`
    - `exit`
4. log in again, populate the `.env` and start everything up
    - `cd atom.town`
    - `micro .env`
    - `docker compose up`
5. continue with service-specific setups .....

## services

specifics for everything

**currently serving**

- via docker
  - **caddy** – http server & reverse proxy
  - **stalwart** – mailserver
  - **bulwark** – webmail
  - **gitea** – git server
- via caddy
  - `atom.town` - homepage
  - `post.atom.town` – mailserver, mail admin, and oidc
  - `mail.atom.town` – webmail
  - `git.atom.town` – git

**dns setup**

| type  | host      | value                       | notes                      |
|-------|-----------|---------------------------- |----------------------------|
| `A`   | `@`       | `<ip>`                      | apex domain                |
| `A`   | `post`    | `<ip>`                      | mailserver                 |
| `A`   | `mail`    | `<ip>`                      | webmail                    |
| `A`   | `git`     | `<ip>`                      | gitea                      |
| `CAA` | `@`       | `0 issue "letsencrypt.org"` | allow caddy to issue certs |
| `MX`  | `@`       | `post.atom.town.` / `10`    | mail record                |
