Homepage
Homepage is your start screen for My Own Suite. Think of it as your suite desktop: one place to open each app without remembering multiple URLs.
The dashboard is generated from your current stack configuration:
- If an app is active and has a valid URL, its tile appears.
- If an app URL is missing or the app is disabled, that tile is excluded.
- After rebuilding/restarting Homepage, visible tiles align with your actual stack.
Technical specs
Environment variables
HOMEPAGE_ALLOWED_HOSTS: Allowed hostnames for Homepage (hostname1,hostname2,...).- Any
${VAR_NAME}used inconfig/services.template.yaml:- Example:
${SEAFILE_URL},${VAULTWARDEN_URL},${ONLYOFFICE_URL}. - If not set (or empty), dependent tile is excluded from final dashboard.
- Example:
Customizations in this project
- Homepage config is generated at container start from a template.
entrypoint.shrunsnode /app/config-generator/dist/index.js /app/configbefore starting Homepage.- Source template:
config/services.template.yaml - Generated output:
config/services.yaml - Generator behavior:
- Replaces
${ENV_VAR}placeholders using runtime environment values. - If any placeholder in a service is unresolved, that full service is removed.
- If a category has no remaining services, that category is removed.
- Replaces
- Result: tiles appear only when their required env values exist.
Files commonly edited for customization:
apps/homepage/config/services.template.yaml: categories, tile order, names, descriptions, and icons.apps/homepage/config/widgets.yaml: widgets.apps/homepage/config/bookmarks.yaml: bookmarks.apps/homepage/config/settings.yaml: general dashboard settings.
Tile template example:
- Storage: - Seafile: href: ${SEAFILE_URL} description: Self-hosted file sync and share icon: mdi-folder-syncOperational commands
- If you changed
services.template.yamlor other files underapps/homepage/config:- Rebuild Homepage image (from repo root):
npm run vps:rebuild
- Rebuild Homepage image (from repo root):
- If you changed only env values in
deploy/vps/apps/homepage/.env:- Restarting Homepage is enough.
Troubleshooting
- Check generated config inside container:
docker compose -f deploy/vps/docker-compose.yml --project-directory deploy/vps exec homepage sh -c "cat /app/config/services.yaml"
- Check generator logs:
docker compose -f deploy/vps/docker-compose.yml --project-directory deploy/vps logs homepage --tail 200
- Common issue:
- Missing env var removes tile silently by design.