A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Ángel Fernández Sánchez 0672da621e
Translated using Weblate (Spanish)
2 years ago
.github Update docker-publish.yml 2 years ago
images package coinmarketcap logo 2 years ago
public Translated using Weblate (Spanish) 2 years ago
src add greeting and datetime info widgets 2 years ago
.babelrc forcefully disable next-swc 2 years ago
.dockerignore first public source commit 2 years ago
.editorconfig first public source commit 2 years ago
.eslintrc.json linting and cleanup 2 years ago
.gitignore first public source commit 2 years ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2 years ago
CONTRIBUTING.md Create CONTRIBUTING.md 2 years ago
Dockerfile revert to previous Dockerfile 2 years ago
LICENSE Initial commit 2 years ago
README.md update readme attributions 2 years ago
docker-entrypoint.sh experiment with entrypoint for backwards compat 2 years ago
jsconfig.json first public source commit 2 years ago
next.config.js remove experimental tag again 2 years ago
package.json Merge branch 'main' into add-jackett-widget 2 years ago
pnpm-lock.yaml Merge branch 'main' into add-jackett-widget 2 years ago
postcss.config.js first public source commit 2 years ago
tailwind.config.js add theme switcher 2 years ago

README.md

Homepage Preview

Docker Weblate

Features

  • Fast! The entire site is statically generated at build time, so you can expect instant load times
  • Images built for AMD64 (x86_64), ARM64, ARMv7 and ARMv6
    • Supports all Raspberry Pi's, most SBCs & Apple Silicon
  • Full i18n support with automatic language detection
    • Translations for Chinese, Dutch, French, German, Norwegian Bokmål, Polish, Portuguese, Russian and Spanish
    • Want to help translate? Join the Weblate project
  • Service & Web Bookmarks
  • Docker Integration
    • Container status (Running / Stopped) & statistics (CPU, Memory, Network)
    • Automatic service discovery (via labels)
  • Service Integration
    • Sonarr, Radarr, Readarr, Prowlarr, Bazarr, Lidarr, Emby, Jellyfin, Tautulli (Plex)
    • Ombi, Overseerr, Jellyseerr, Jackett, NZBGet, SABnzbd, ruTorrent, Transmission
    • Portainer, Traefik, Speedtest Tracker, PiHole, Nginx Proxy Manager, Gotify
  • Information Providers
    • Coin Market Cap
  • Information & Utility Widgets
    • System Stats (Disk, CPU, Memory)
    • Weather via WeatherAPI.com or OpenWeatherMap
      • Automatic location detection (with HTTPS), or manual location selection
    • Search Bar
  • Customizable
    • 21 theme colors with light and dark mode support
    • Background image support

Support & Suggestions

If you have any questions, suggestions, or general issues, please start a discussion on the Discussions page.

If you have a more specific issue, please open an issue on the Issues page.

Getting Started

For configuration options, examples and more, please check out the Wiki.

With Docker

Using docker compose:

version: "3.3"
services:
  homepage:
    image: ghcr.io/benphelps/homepage:latest
    container_name: homepage
    user: 1000:1000 # Optional, change to your user and group IDs for permissions
    ports:
      - 3000:3000
    volumes:
      - /path/to/config:/app/config # Make sure your local config directory is exists
      - /var/run/docker.sock:/var/run/docker.sock # (optional) For docker integrations

or docker run:

docker run -p 3000:3000 -v /path/to/config:/app/config -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/benphelps/homepage:latest

With Node

First, clone the repository:

git clone https://github.com/benphelps/homepage.git

Then install dependencies and build the production bundle (I'm using pnpm here, you can use npm or yarn if you like):

pnpm install
pnpm build

If this is your first time starting, copy the src/skeleton directory to config/ to populate initial example config files.

Finally, run the server:

pnpm start

Configuration

Configuration files will be genereted and placed on the first request.

Configuration is done in the /config directory using .yaml files. Refer to each config for the specific configuration options.

You may also check the wiki for detailed configuration instructions, examples and more.

Development

Install NPM packages, this project uses pnpm (and so should you!):

pnpm install

Start the development server:

pnpm dev

Open http://localhost:3000 to start.

This is a Next.js application, see their doucmentation for more information:

Contributors

Huge thanks to the all the contributors who have helped make this project what it is today! In alphabetical order: