dashwise-next

dashwise is an all-in-one homelab dashboard

TypeScriptGPL-3.034611423 open issues
Created Oct 18, 2025Last commit Feb 20, 2026Last human commit Feb 20, 2026
bookmarkshomelabnextjspocketbaseself-hostedselfhosted
Embed Badge
Play on Codakey
Markdown
[![Play on Codakey](https://codakey.io/badge.svg)](https://codakey.io/projects/dashwise-next)
HTML
<a href="https://codakey.io/projects/dashwise-next"><img src="https://codakey.io/badge.svg" alt="Play on Codakey" height="28" /></a>

Daily Activity

Monthly Activity

Star History

README

dashwise: Your Homelab, in one place

I've been self hosting for a while but did not find a dashboard that suits my needs and that I like the look of. This is my attempt to solving that.

Disclaimer: This project is still under development. Therefore, only the working features of the app are listed in the features section. Integration with additional services is planned, but will not be available until widget implementation is complete.

Screenshot

Screenshot 2025-11-18 at 17 24 19

Features

  • GUI Editing: Edit and manage links, search engines, your wallpapers in settings via the GUI instead of relying purely on a config.
  • Built-in Authentication: dashwise has Auth built right into it - and even features
  • SSO via OIDC: While tested with PocketId, it should work via OIDC - which can be configured in Pocketbase directly.
  • Links: store your most important links for quick access and group them into Link Groups. Folders coming soon.
  • Monitor your links: Can be enabled via link details settings. Performs a GET request to that endpoint. Logs downtime.
  • Glanceables: Customizable bits of one-line information next to the clock.
  • Widgets: Modular blocks on the dashboard that show key info or actions at a glance. They can be moved and customized individually.
  • News: Subscribe to RSS feeds to stay on top of everything.
  • Wallpapers: Upload them to dashwise directly, or even change the default one for new users by mounting one into the container
  • Spotlight-like Search: Hit Ctrl+K from your dashboard, and you'll be able to search your links and integrations or use bangs for search engines specified in settings.
  • Integrations: directly integrates with your favourite self hosted apps. Supported services are Karakeep, Dashdot, Beszel and Jellyfin. More integrations are planned

Installation

Grab the docker compose file (docker-compose.prod.yaml), edit env vars, pull, deploy. That's it.

Configuration

You can use the following environment variables for the main container:

NameRequiredDefault ValueDescription
NEXT_PUBLIC_PB_URLYeshttp://pocketbase:8090URL of the PocketBase instance
NEXT_PUBLIC_INTEGRATIONS_ENABLE_SSLNofalseEnable SSL for integrations
PB_ADMIN_EMAILYesdefault@dashwise.localEmail of the PocketBase admin user
PB_ADMIN_PASSWORDYesDashwiseIsAwesomePassword of the PocketBase admin user
NEXT_PUBLIC_APP_URLYeshttp://localhost:3000URL of the application
NEXT_PUBLIC_ENABLE_SSONofalseEnable Single Sign-On (SSO)
NEXT_PUBLIC_DEFAULT_BG_URLNo/dashboard-wallpaper.pngDefault background URL
NEXT_PUBLIC_JOBS_WEBHOOK_ENABLENofalseExplicitly enable the jobs webhook. Set to 1 or true- to force-enable the webhook regardless of whether a jobs URL is configured.
NEXT_PUBLIC_JOBS_URLNohttp://127.0.0.1:3001URL of the jobs webhook endpoint. If overwritten, the jobs webhook is automatically enabled even if NEXT_PUBLIC_JOBS_WEBHOOK_ENABLE is not set.

The jobs container can be configured with the following environment variables:

NameRequiredDefault ValueDescription
PB_URLYeshttp://pocketbase:8090Internal URL of the PocketBase instance used for API access
DASHWISE_URLYeshttp://dashwise:3000Internal URL of the Dashwise web application
PB_ADMIN_EMAILYesdefault@dashwise.localEmail of the PocketBase admin user for authentication
PB_ADMIN_PASSWORDYesDashwiseIsAwesomePassword of the PocketBase admin user for authentication
SEARCHITEMS_SCHEDULENo*/10 * * * *Cron expression defining the interval for the search item indexing job
MONITORING_INDEXER_SCHEDULENo*/10 * * * *Cron expression defining how often the monitoring indexer runs
MONITORING_RUNNER_SCHEDULENo*/1 * * * *Cron expression defining how often the monitoring runner executes
ALLOW_SSLNofalseEnables SSL support for internal service communication

Tech Stack

Frontend, API Layer: Next.js Backend: Pocketbase

How it works

On signup, a json config is created for each user. It's available to the frontend via a GET request to /api/v1/config. Accessing it is handled by the ConfigContext.

Open Source Projects that make dashwise possible

Selfh.st icons, Font Awesome, Nextjs, Shadcn

Contributions

Feel free to contribute! I'll probably create a more detailed roadmap soon.

Star History

Star History Chart

Related Projects