Skip to content

Configuration

Environment variables

Copy .env.example to .env and edit as needed. The server reads this file on startup.

VariableDefaultDescription
PORT3001Port the Express server listens on
NODE_ENVdevelopmentSet to production for production builds
DOCKER_SOCKET/var/run/docker.sockPath to Docker socket (Docker widget)
JELLYFIN_URLBase URL of your Jellyfin server, e.g. http://jellyfin:8096
JELLYFIN_API_KEYJellyfin API key (Dashboard → API Keys)
WEATHER_API_KEYOpenWeatherMap API key (legacy; prefer widget config)
WEATHER_LOCATIONLocation string, e.g. London,GB (legacy; prefer widget config)

Widget credentials vs environment variables

Most integrations now accept credentials directly in the widget config via Settings → Widgets, which stores them in the database. Environment variables remain as a fallback for Jellyfin and Weather.

Application settings

These are stored in the database (data/homepage.db) and are editable through the Settings panel.

SettingDescription
Homepage titleBrowser tab title and displayed heading
UsernameDisplayed in the header greeting
FaviconCustom favicon (upload via Settings → Preferences)
Clock format12h or 24h
Temperature unitC (Celsius) or F (Fahrenheit)
ThemeActive theme ID
Compact headerReduces header height
Header widgetsPin a widget (e.g. Search, Weather) to the left, centre, or right of the header
Bookmark category colourprimary, rainbow, or a fixed colour

Database

The SQLite database is created at data/homepage.db on first run. It stores:

  • Widget configurations and positions
  • Bookmarks and categories
  • Application settings
  • Themes (built-in + custom)
  • Keybindings
  • Backup settings

Backup & restore

Go to Settings → Backup to:

  • Create a manual backup (downloads a .db file)
  • Configure automatic scheduled backups
  • Restore from a previous backup

In Docker, mount the data/ directory as a volume so the database persists across container restarts:

yaml
volumes:
  - ./data:/app/data

Personal Homepage Dashboard