Move all services from srazka.com to reudy.net
Renames every domain in the config: Caddy virtual hosts (auth, hello, nextcloud, git, panel), the ACME contact email, Authelia's session cookie domain / portal URL / default redirect and TOTP issuer, Nextcloud's hostName and overwritehost, and Forgejo's DOMAIN (ROOT_URL and ssh clone URLs follow from it; the panel picks them up via panel.nix). Panel docs and examples updated too, and a README paragraph that had run together is split again. Requires DNS for auth/hello/nextcloud/git/panel.reudy.net (or a *.reudy.net wildcard) pointing at the server before deploying. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UbWSNkXxZhYf7eqHTyx3Bf
This commit is contained in:
parent
db46c5e793
commit
b27bbc19cb
3 changed files with 23 additions and 21 deletions
26
API.md
26
API.md
|
|
@ -67,10 +67,10 @@ same app returns `409` with `{"ok": false, "error": "...", "busy": "deploy"}`.
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"name": "blog",
|
"name": "blog",
|
||||||
"routes": [{"domain": "blog.srazka.com", "upstream": "127.0.0.1:18090"}],
|
"routes": [{"domain": "blog.reudy.net", "upstream": "127.0.0.1:18090"}],
|
||||||
"auth": true,
|
"auth": true,
|
||||||
"source_type": "git",
|
"source_type": "git",
|
||||||
"repo_url": "https://git.srazka.com/reudy-net/blog.git",
|
"repo_url": "https://git.reudy.net/reudy-net/blog.git",
|
||||||
"repo_branch": "",
|
"repo_branch": "",
|
||||||
"use_forgejo_token": true,
|
"use_forgejo_token": true,
|
||||||
"env": [{"key": "DATABASE_URL", "value": "postgres://..."}],
|
"env": [{"key": "DATABASE_URL", "value": "postgres://..."}],
|
||||||
|
|
@ -108,7 +108,7 @@ same app returns `409` with `{"ok": false, "error": "...", "busy": "deploy"}`.
|
||||||
"apps": [
|
"apps": [
|
||||||
{
|
{
|
||||||
"name": "whoami",
|
"name": "whoami",
|
||||||
"routes": [{"domain": "whoami.srazka.com", "upstream": "127.0.0.1:18080"}],
|
"routes": [{"domain": "whoami.reudy.net", "upstream": "127.0.0.1:18080"}],
|
||||||
"auth": true,
|
"auth": true,
|
||||||
"compose_file": "/var/lib/containers/stacks/whoami/compose.yaml",
|
"compose_file": "/var/lib/containers/stacks/whoami/compose.yaml",
|
||||||
"repo_url": "",
|
"repo_url": "",
|
||||||
|
|
@ -136,7 +136,7 @@ same app returns `409` with `{"ok": false, "error": "...", "busy": "deploy"}`.
|
||||||
{
|
{
|
||||||
"name": "whoami",
|
"name": "whoami",
|
||||||
"routes": [
|
"routes": [
|
||||||
{"domain": "whoami.srazka.com", "upstream": "127.0.0.1:18080"}
|
{"domain": "whoami.reudy.net", "upstream": "127.0.0.1:18080"}
|
||||||
],
|
],
|
||||||
"auth": true
|
"auth": true
|
||||||
}
|
}
|
||||||
|
|
@ -148,8 +148,8 @@ same app returns `409` with `{"ok": false, "error": "...", "busy": "deploy"}`.
|
||||||
{
|
{
|
||||||
"name": "myapp",
|
"name": "myapp",
|
||||||
"routes": [
|
"routes": [
|
||||||
{"domain": "app.srazka.com", "upstream": "127.0.0.1:18080"},
|
{"domain": "app.reudy.net", "upstream": "127.0.0.1:18080"},
|
||||||
{"domain": "api.app.srazka.com", "upstream": "127.0.0.1:18081"}
|
{"domain": "api.app.reudy.net", "upstream": "127.0.0.1:18081"}
|
||||||
],
|
],
|
||||||
"auth": true
|
"auth": true
|
||||||
}
|
}
|
||||||
|
|
@ -161,7 +161,7 @@ same app returns `409` with `{"ok": false, "error": "...", "busy": "deploy"}`.
|
||||||
{
|
{
|
||||||
"name": "pocketbase",
|
"name": "pocketbase",
|
||||||
"routes": [
|
"routes": [
|
||||||
{"domain": "pb.srazka.com", "upstream": "127.0.0.1:8090", "path": "/_/*"}
|
{"domain": "pb.reudy.net", "upstream": "127.0.0.1:8090", "path": "/_/*"}
|
||||||
],
|
],
|
||||||
"auth": true
|
"auth": true
|
||||||
}
|
}
|
||||||
|
|
@ -175,7 +175,7 @@ The `path` field is optional. When present, it generates a Caddy `reverse_proxy
|
||||||
{
|
{
|
||||||
"name": "wildcard",
|
"name": "wildcard",
|
||||||
"routes": [
|
"routes": [
|
||||||
{"domain": "*.srazka.com", "upstream": "127.0.0.1:18082"}
|
{"domain": "*.reudy.net", "upstream": "127.0.0.1:18082"}
|
||||||
],
|
],
|
||||||
"auth": false
|
"auth": false
|
||||||
}
|
}
|
||||||
|
|
@ -188,9 +188,9 @@ Note: Wildcard domains require DNS challenge configuration in Caddy.
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"routes": [
|
"routes": [
|
||||||
{"domain": "app.srazka.com", "upstream": "127.0.0.1:18080"},
|
{"domain": "app.reudy.net", "upstream": "127.0.0.1:18080"},
|
||||||
{"domain": "api.srazka.com", "upstream": "127.0.0.1:18081"},
|
{"domain": "api.reudy.net", "upstream": "127.0.0.1:18081"},
|
||||||
{"domain": "pb.srazka.com", "upstream": "127.0.0.1:8090", "path": "/_/*"}
|
{"domain": "pb.reudy.net", "upstream": "127.0.0.1:8090", "path": "/_/*"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
@ -230,8 +230,8 @@ Caddy reloads automatically via the systemd path watcher. Containers stay runnin
|
||||||
"ok": true,
|
"ok": true,
|
||||||
"name": "myapp",
|
"name": "myapp",
|
||||||
"routes": [
|
"routes": [
|
||||||
{"domain": "app.srazka.com", "upstream": "127.0.0.1:18080"},
|
{"domain": "app.reudy.net", "upstream": "127.0.0.1:18080"},
|
||||||
{"domain": "api.srazka.com", "upstream": "127.0.0.1:18081", "path": "/api/*"}
|
{"domain": "api.reudy.net", "upstream": "127.0.0.1:18081", "path": "/api/*"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
|
||||||
16
README.md
16
README.md
|
|
@ -25,16 +25,16 @@ All app routes are written to a single `routes/routes.caddy` file that Caddy imp
|
||||||
# Routes are "domain|upstream[|path]" entries, comma-separated.
|
# Routes are "domain|upstream[|path]" entries, comma-separated.
|
||||||
|
|
||||||
# Create a new app (single route, protected by Authelia)
|
# Create a new app (single route, protected by Authelia)
|
||||||
panelctl init whoami "whoami.srazka.com|127.0.0.1:18080" true
|
panelctl init whoami "whoami.reudy.net|127.0.0.1:18080" true
|
||||||
|
|
||||||
# Create with multiple routes (different ports, optional path)
|
# Create with multiple routes (different ports, optional path)
|
||||||
panelctl init myapp "app.srazka.com|127.0.0.1:18081,api.srazka.com|127.0.0.1:18082|/api/*" true
|
panelctl init myapp "app.reudy.net|127.0.0.1:18081,api.reudy.net|127.0.0.1:18082|/api/*" true
|
||||||
|
|
||||||
# Create with wildcard domain (requires DNS challenge in Caddy)
|
# Create with wildcard domain (requires DNS challenge in Caddy)
|
||||||
panelctl init wild "*.srazka.com|127.0.0.1:18083" false
|
panelctl init wild "*.reudy.net|127.0.0.1:18083" false
|
||||||
|
|
||||||
# Change routes later (Caddy reloads automatically)
|
# Change routes later (Caddy reloads automatically)
|
||||||
panelctl set-routes whoami "whoami.srazka.com|127.0.0.1:18080,who.srazka.com|127.0.0.1:18080"
|
panelctl set-routes whoami "whoami.reudy.net|127.0.0.1:18080,who.reudy.net|127.0.0.1:18080"
|
||||||
|
|
||||||
# Deploy (compose up + caddy reload)
|
# Deploy (compose up + caddy reload)
|
||||||
panelctl deploy whoami
|
panelctl deploy whoami
|
||||||
|
|
@ -90,8 +90,8 @@ panelctl remove whoami
|
||||||
## Web UI & API
|
## Web UI & API
|
||||||
|
|
||||||
- Nix runs `panel-api` as a systemd service on `127.0.0.1:9911`.
|
- Nix runs `panel-api` as a systemd service on `127.0.0.1:9911`.
|
||||||
- Caddy proxies `https://panel.srazka.com` → panel-api with Authelia forward_auth.
|
- Caddy proxies `https://panel.reudy.net` → panel-api with Authelia forward_auth.
|
||||||
- Open `https://panel.srazka.com` for the web UI.
|
- Open `https://panel.reudy.net` for the web UI.
|
||||||
- API docs: [API.md](API.md)
|
- API docs: [API.md](API.md)
|
||||||
|
|
||||||
### Web UI features
|
### Web UI features
|
||||||
|
|
@ -130,7 +130,9 @@ Forgejo. The token is stored in `state/panel/forgejo-token` (mode 0600).
|
||||||
`state/panel/ssh/` the first time it is needed. Its public half is shown in
|
`state/panel/ssh/` the first time it is needed. Its public half is shown in
|
||||||
Settings (and next to ssh URLs); add it as a read-only deploy key to a
|
Settings (and next to ssh URLs); add it as a read-only deploy key to a
|
||||||
repository — or to your Forgejo account for access to all repositories — to
|
repository — or to your Forgejo account for access to all repositories — to
|
||||||
clone `ssh://git@git.srazka.com:14922/owner/repo.git` style URLs. **Sync** fetches the configured branch and
|
clone `ssh://git@git.reudy.net:14922/owner/repo.git` style URLs.
|
||||||
|
|
||||||
|
**Sync** fetches the configured branch and
|
||||||
hard-resets the checkout to it before redeploying, so the repository is the
|
hard-resets the checkout to it before redeploying, so the repository is the
|
||||||
source of truth: compose edits made in the panel are discarded on the next sync
|
source of truth: compose edits made in the panel are discarded on the next sync
|
||||||
(the UI warns about this). An access token for a private repository is stored in
|
(the UI warns about this). An access token for a private repository is stored in
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ Wildcard domains are supported (requires DNS challenge in Caddy):
|
||||||
panelctl init myapp "*.example.com|127.0.0.1:18080" true
|
panelctl init myapp "*.example.com|127.0.0.1:18080" true
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
panelctl init whoami "whoami.srazka.com|127.0.0.1:18080" true
|
panelctl init whoami "whoami.reudy.net|127.0.0.1:18080" true
|
||||||
panelctl deploy whoami
|
panelctl deploy whoami
|
||||||
panelctl restart whoami
|
panelctl restart whoami
|
||||||
panelctl status whoami
|
panelctl status whoami
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue