Skip to content

Homepage

Homepage is the dashboard with links to all my services. One page instead of remembering subdomains and ports.

URLs

Access URL
Public dash.saxobroko.com
LAN TrueNAS Docker app — check TrueNAS Apps for the local port (often 3000 or similar)

Traffic flow: browser → Cloudflare → cloudflared → Homepage container → (optional) Authentik in front.

Authentik gate

Homepage sits behind Authentik SSO for public access. If you hit a login wall instead of the dashboard, sign in through Authentik first.

Step Action
1 Visit dash.saxobroko.com
2 Redirect to auth.saxobroko.com
3 Sign in (credentials in Vaultwarden — do not store them in this doc)
4 Return to Homepage with dashboard visible

Authentik config: Authentik. If login loops, check OIDC callback URLs are not blocked by Cloudflare Access.

LAN access may bypass Authentik depending on tunnel vs direct port — behaviour can differ; test both if debugging.

What it shows

Tiles for Jellyfin, TrueNAS, Photos, Navidrome, *arr apps, SaxDocs, monitoring links, and whatever else is running. Status indicators (widget/API ping) show what is up without opening each service.

Useful overlap with status.saxobroko.com — Homepage is interactive; status page is historical uptime — Monitoring.

Config file location (TrueNAS)

Homepage is configured via YAML. On TrueNAS Docker apps, the config usually lives in a mounted dataset or host path.

Item Typical pattern
App TrueNAS → Apps → Homepage (or gethomepage/homepage)
Config mount Host path or PVC mapped to /app/config inside the container
Main file settings.yaml — general settings, title, theme
Services services.yaml — groups and tiles
Widgets widgets.yaml — optional dashboard widgets
Bookmarks bookmarks.yaml — quick links

TODO: record exact host path after next edit — e.g. /mnt/pool/apps/homepage/config/ or the path shown in the app's Storage / Volumes tab.

Edit workflow:

  1. SSH or TrueNAS shell or edit via SMB if the config directory is shared (uncommon)
  2. Prefer editing services.yaml for new tiles
  3. Restart the Homepage app or wait for file watcher reload (depends on version)
  4. Hard-refresh browser on dash.saxobroko.com

Tile examples

Below are representative YAML snippets — adjust URLs and icons to match the live config.

Jellyfin

- Media:
    - Jellyfin:
        icon: jellyfin.png
        href: https://stream.saxobroko.com
        description: Video library
        widget:
          type: jellyfin
          url: https://stream.saxobroko.com
          key: <api-key-in-vaultwarden>

TrueNAS

    - TrueNAS:
        icon: truenas.png
        href: https://dsm.saxobroko.com
        description: NAS admin

*arr stack

- Automation:
    - Overseerr:
        icon: overseerr.png
        href: https://request.saxobroko.com
    - Sonarr:
        icon: sonarr.png
        href: https://sonarr.saxobroko.com
    - Radarr:
        icon: radarr.png
        href: https://radarr.saxobroko.com
    - Prowlarr:
        icon: prowlarr.png
        href: https://prowlarr.saxobroko.com

Full stack doc: arr-stack

SaxDocs

    - SaxDocs:
        icon: mdi-book-open-page-variant
        href: https://docs.saxobroko.com
        description: This wiki

API keys for widgets belong in Vaultwarden, not SaxDocs. Reference them obliquely in YAML on the server.

Adding a new service

  1. Get the app running on TrueNAS — Services
  2. Add a Cloudflare Tunnel hostname if external access is needed — Network
  3. Add a tile in Homepage services.yaml with name, icon, and URL
  4. If it should be public, add the hostname to WAF rules (block no aus, localnet full strict ssl) as needed
  5. If it should be behind Authentik, configure the provider/application in Authentik first
  6. Update SaxDocs service list

Jellyfin Accounts Manager

TODO: Jellyfin Accounts Manager still needs proper Homepage and tunnel entries.

Item Status
App on TrueNAS TODO: confirm installed app name and port
Public URL TODO: subdomain if any
Homepage tile Not added yet
Tunnel hostname TODO

Was previously at a direct LAN port during the Windows-host era — check TrueNAS Apps for the current internal URL. Purpose: manage Jellyfin users without full admin UI exposure.

When done: link from Jellyfin tile group, add tunnel + WAF, document in Jellyfin.

Troubleshooting

Symptom Fix
Login wall, no dashboard Authentik — Common Issues
Tile red / down Target service or widget API key; service may be fine while widget fails
YAML edit not showing Restart Homepage app; validate YAML syntax
403 from outside AU Expected — block no aus