Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 2 additions & 14 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,24 +1,12 @@
root = true

# Basics - All Files
[*]
end_of_line = lf
charset = utf-8
insert_final_newline = true

# JS, TS and Vue
[*.{js,jsx,ts,tsx,vue}]
end_of_line = lf
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
trim_trailing_whitespace = true

# YAML, for config file
[*.{yml,yaml}]
indent_size = 2

# Markdown for docs
[*.md]
trim_trailing_whitespace = false

# Licensed under MIT, (C) 2024 Alicia Sykes <https://aliciasykes.com>
104 changes: 51 additions & 53 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,41 @@

<h1 align="center">Dashy</h1>
<p align="center">
<i>Dashy helps you organize your self-hosted services by making them accessible from a single place</i>
<i>The most customizable dashboard for self-hosters</i><br>
<b>Dashy is the homepage for your homelab</b>
<br/>
<img width="120" src="https://i.ibb.co/yhbt6CY/dashy.png" />
<br/>
<b><a href="./docs/showcase.md">User Showcase</a></b> | <b><a href="https://demo.dashy.to">Live Demo</a></b> | <b><a href="./docs/quick-start.md">Getting Started</a></b> | <b><a href="https://dashy.to/docs">Documentation</a></b> | <b><a href="https://github.com/Lissy93/dashy">GitHub</a></b>
</p>

---

<p align="center">
<sup>Dashy is kindly sponsored by <a href="https://ssdnodes.com/dashy">SSD Nodes</a> - Affordable VPS hosting for self-hosters</sup><br>
<a href="https://ssdnodes.com/dashy" target="_blank">
<img src="https://pixelflare.cc/alicia/sponsors/ssd-nodes-sponsorship.png" width="400" alt="SSD Nodes" />
</a>
</p>

<p align="center">
<br>
<sup>Dashy is kindly sponsored by <a href="https://umbrel.com?ref=dashy">Umbrel</a> - the personal home cloud and OS for self-hosting</sup><br>
<a href="https://umbrel.com?ref=dashy">
<img width="400" src="https://cdn.as93.net/sponsors/umbrel-banner.jpg" />
</a>
</p>

<p align="center">
<sup>Dashy is kindly sponsored by <a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=dashy">TestMu AI</a> - The world’s first full-stack Agentic AI Quality Engineering platform</sup><br>
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=dashy" target="_blank">
<img src="https://cdn.as93.net/sponsors/test-mu-ai.png" width="400" alt="LambdaTest" />
</a>
</p>
<h4><p align="center">Kindly sponsored by</p></h4>

<table align="center">
<tr>
<td align="center" width="33%">
<a href="https://ssdnodes.com/dashy" target="_blank">
<img src="https://pixelflare.cc/alicia/sponsors/ssd-nodes-sponsorship.png" width="260" alt="SSD Nodes"><br>
<b>SSD Nodes</b>
</a><br>
<sub>Affordable VPS hosting for self-hosters</sub>
</td>
<td align="center" width="33%">
<a href="https://umbrel.com?ref=dashy" target="_blank">
<img src="https://cdn.as93.net/sponsors/umbrel-banner.jpg" width="260" alt="Umbrel"><br>
<b>Umbrel</b>
</a><br>
<sub>Personal home cloud and OS for self-hosting</sub>
</td>
<td align="center" width="33%">
<a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=dashy" target="_blank">
<img src="https://cdn.as93.net/sponsors/test-mu-ai.png" width="260" alt="TestMu AI"><br>
<b>TestMu AI</b>
</a><br>
<sub>Full-stack Agentic AI Quality Engineering platform</sub>
</td>
</tr>
</table>

<details>
<summary><b>Table of Contents</b></summary>
Expand Down Expand Up @@ -60,7 +65,6 @@
- [💖 Supporting Dashy](#supporting-dashy-)
- [🏆 Credits](#credits-)
- [🧱 Developing](#developing-)
- [🗞️ Release Schedule](#release-schedule-)
- [📘 Documentation](#documentation-)
- [🛣️ Roadmap](#roadmap-)
- [🙌 Alternatives](#alternatives-)
Expand Down Expand Up @@ -96,11 +100,11 @@

## Demo ⚡

**Live Instances**: [Demo 1](https://demo.dashy.to) (Live Demo) ┆ [Demo 2](https://live.dashy.to) (Dashy Links) ┆ [Demo 3](https://dev.dashy.to) (Dev Preview)
**Live Instances**: [Demo](https://demo.dashy.to) (Live Demo) ┆ [Dev Preview](https://dev.dashy.to) (Dev Preview)

**Screenshots**: Checkout the [Showcase](./docs/showcase.md), to see example dashboards from the community

**Spin up your own demo**: [![One-Click Deploy with PWD](https://img.shields.io/badge/Play--with--Docker-Deploy-2496ed?style=flat-square&logo=docker)](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml) or [`docker run -p 8080:8080 lissy93/dashy`](./docs/quick-start.md)
**Try it yourself**: [`docker run -p 8080:8080 lissy93/dashy`](./docs/quick-start.md)


<p align="center">
Expand All @@ -120,13 +124,13 @@

You will need [Docker](https://docs.docker.com/get-docker/) installed on your system

```
docker run -p 8080:8080 lissy93/dashy
```bash
docker run -p 4000:8080 lissy93/dashy
```

Or

```docker
```bash
docker run -d \
-p 4000:8080 \
-v /path/to/your/user-data:/app/user-data \
Expand All @@ -135,37 +139,36 @@ docker run -d \
lissy93/dashy:latest
```

[![Dashy on Docker Hub](https://dockeri.co/image/lissy93/dashy)](https://hub.docker.com/r/lissy93/dashy)
To use with compose, see our sample [`docker-compose.yml`](https://github.com/lissy93/dashy/blob/master/docker-compose.yml).

The mounted `/app/user-data` directory **must** contain at least a `conf.yml`.
It can also hold sub-config files, item icons, fonts, custom CSS, or anything else you want served from the web root.

Dashy is also available via GHCR (`ghcr.io/lissy93/dashy`).
To use with compose, see our sample [`docker-compose.yml`](https://github.com/lissy93/dashy/blob/master/docker-compose.yml).
Dashy is distributed both on [DockerHub](https://hub.docker.com/r/lissy93/dashy) (`lissy93/dashy`) and [GHCR](https://github.com/lissy93/dashy/pkgs/container/dashy) (`ghcr.io/lissy93/dashy`).

You can either use `:latest` or pin to specific versions (like `4.0.0`).
All images are multi-arch (works on amd64, arm64, and arm/v7).

> Once you've got Dashy running, see [the docs](https://dashy.to/docs/) for configuration references and usage guides.

### Deploying from Source 🔨

You will need [git](https://git-scm.com/downloads), the latest or LTS version of [Node.js](https://nodejs.org/) and _(optionally)_ [Yarn](https://yarnpkg.com/) installed on your system.
You'll need Node (20+) installed, as well as git and `yarn` enabled.

- Clone the Repo: `git clone https://github.com/Lissy93/dashy.git` and `cd dashy`
- Configuration: Fill in your settings in `./user-data/conf.yml`
- Install dependencies: `yarn`
- Build: `yarn build`
- Run: `yarn start`

> See docs: [Full list of Dashy's commands](./docs/management.md#basic-commands)
> See docs: [Full list of Dashy's commands](./docs/management.md#running-commands)

### Deploy to the Cloud ☁️

Dashy supports **1-Click deployments** on several popular cloud platforms. To spin up a new instance, just click a link below:
- [<img src="https://i.ibb.co/ZxtzrP3/netlify.png" width="18"/> Deploy to Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy)
- [<img src="https://i.ibb.co/d2P1WZ7/heroku.png" width="18"/> Deploy to Heroku](https://heroku.com/deploy?template=https://github.com/Lissy93/dashy)
- [<img src="https://i.ibb.co/Ld2FZzb/vercel.png" width="18"/> Deploy to Vercel](https://vercel.com/new/project?template=https://github.com/lissy93/dashy)
- [<img src="https://i.ibb.co/xCHtzgh/render.png" width="18"/> Deploy to Render](https://render.com/deploy?repo=https://github.com/lissy93/dashy/tree/deploy_render)
- [<img src="https://i.ibb.co/xCHtzgh/render.png" width="18"/> Deploy to Render](https://render.com/deploy?repo=https://github.com/lissy93/dashy)
- [<img src="https://railway.app/brand/logo-light.png" width="18"/> Deploy to Railway](https://railway.app/template/MtdjAQ?referralCode=app)
- [<img src="https://i.ibb.co/J7MGymY/googlecloud.png" width="18"/> Deploy to GCP](https://deploy.cloud.run/?git_repo=https://github.com/lissy93/dashy.git)
- [<img src="https://i.ibb.co/HVWVYF7/docker.png" width="18"/> Deploy to PWD](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml)
Expand Down Expand Up @@ -230,7 +233,7 @@ The following icon types are supported:
[simple-icons]: https://simpleicons.org/
[material icons]: https://github.com/Templarian/MaterialDesign
[selfh.st/icons]: https://selfh.st/icons
[dashboard-icons]: https://github.com/WalkxCode/dashboard-icons
[dashboard-icons]: https://github.com/homarr-labs/dashboard-icons


<p align="center">
Expand Down Expand Up @@ -324,7 +327,7 @@ You can change the view from the UI, using the switch icon in the top-right corn

> For full documentation on views and opening methods, see: [**Alternate Views**](./docs/alternate-views.md)

There are several different ways you can launch apps. You can specify the default opening method for any given item under the `target` attribute or set a site-wide default under `appConfig.defaultOpeningMethod`. Right-click on an item to item for all options. The following options are supported:
There are several different ways you can launch apps. You can specify the default opening method for any given item under the `target` attribute or set a site-wide default under `appConfig.defaultOpeningMethod`. Right-click on an item for all options. The following options are supported:
- `sametab` - The app will be launched in the current tab
- `newtab` - The app will be launched in a new tab (or use Ctrl + Click)
- `modal` - Launch app in a resizable/ movable popup modal on the current page (or use Alt + Click)
Expand Down Expand Up @@ -424,7 +427,7 @@ Dashy supports multiple languages and locales. When available, your language sho
- 🇦🇪 **Arabic**: `ar` - Contributed by **[@kayedspace](https://github.com/kayedspace)**
- 🇧🇩 **Bengali**: `bn` - Contributed by **[@soaibsafi](https://github.com/soaibsafi)**
- 🇧🇬 **Bulgarian**: `bg` - Contributed by **[@asenov](https://github.com/asenov)**
- 🇨🇳 **Chinese**: `cn` - Contributed by **[@FormatToday](https://github.com/FormatToday)**
- 🇨🇳 **Chinese**: `zh-CN` - Contributed by **[@FormatToday](https://github.com/FormatToday)**
- 🇨🇿 **Czech**: `cs` - Contributed by **[@Tuzi555](https://github.com/Tuzi555)**
- 🇩🇰 **Danish**: `da` - Contributed by **[@lordpansar](https://github.com/lordpansar)**
- 🇳🇱 **Dutch**: `nl` - Contributed by **[@evroon](https://github.com/evroon)**
Expand All @@ -440,11 +443,11 @@ Dashy supports multiple languages and locales. When available, your language sho
- 🇳🇴 **Norwegian Bokmål**: `nb` - Contributed by **[@rubjo](https://github.com/rubjo)**
- 🇵🇱 **Polish**: `pl` - Contributed by **[@skaarj1989](https://github.com/skaarj1989)**
- 🇵🇹 **Portuguese**: `pt` - Contributed by **[@LeoColman](https://github.com/LeoColman)**
- 🇷🇴 **Romanian**: `ro` - Contributed by **[@z3r0l1nk](https://github.com/z3r0l1nk)**
- 🛰️ **Galician**: `gl` - Contributed by **[@pvillaverde](https://github.com/pvillaverde)**
- 🇷🇺 **Russian**: `ru` -Contributed by **[@sasetz](https://github.com/sasetz)**
- 🇷🇺 **Russian**: `ru` - Contributed by **[@sasetz](https://github.com/sasetz)**
- 🇸🇰 **Slovak**: `sk` - Contributed by **[@Smexhy](https://github.com/Smexhy)**
- 🇸🇮 **Slovenian**: `sl` - Contributed by **[@UrekD](https://github.com/UrekD)**
- 🇰🇬 **Kyrgyz**: `ky` - Contributed by **[@noblepower1337](https://github.com/noblepower1337)**
- 🇪🇸 **Spanish**: `es` - Contributed by **[@lu4t](https://github.com/lu4t)**
- 🇸🇪 **Swedish**: `sv` - Contributed by **[@BOZG](https://github.com/BOZG)**
- 🇹🇼 **Traditional Chinese**: `zh-TW` - Contributed by **[@stanly0726](https://github.com/stanly0726)**
Expand Down Expand Up @@ -489,20 +492,15 @@ pages:

## System Requirements 📊

If running on bare metal, Dashy requires [Node](https://nodejs.org/en/) V 18.0.0 or later, LTS (20.x) is recommended.
If running on bare metal, Dashy requires [Node](https://nodejs.org/en/) V 20.0.0 or later, LTS (22.x) is recommended.

If running in Docker container, the recommended base image is Alpine (3.19)
If running in Docker container, the recommended base image is Alpine (3.21)

The hardware requirements vary depending on where and how you are running Dashy. Generally speaking, on a bare-metal system or Docker container, 1GB of memory should be more than enough, and depending on whether you are using your own assets, then 1GB of disk space should be sufficient.

If you are using one of the 1-click cloud deployment methods, serving the app through a CDN or using a static hosting provider, then there are no specific requirements, as the built app is just a series of static JS files, and so is very light-weight.

Dashy also wells run on low-powered ARM-based single board computers, such as a Raspberry Pi (tested on Pi 3)

**Browser Support**
![Chrome](https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png) | ![Firefox](https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png) | ![IE](https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png) | ![Opera](https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png) | ![Safari](https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png)
--- | --- | --- | --- | --- |
Latest ✔ | Latest ✔ | 10+ ✔ | Latest ✔ | 6.1+ ❌ |
Dashy also runs well on low-powered ARM-based single board computers, such as a Raspberry Pi (tested on Pi 3)

**[⬆️ Back to Top](#dashy)**

Expand Down Expand Up @@ -565,7 +563,7 @@ Huge thanks to the sponsors helping to support Dashy's development!

> For full development documentation, see: [**Developing**](./docs/developing.md)

[![Open Project in VS Code](https://img.shields.io/badge/Open_in-VS_Code-863cfc?style=flat-square&logo=visualstudiocode)](https://open.vscode.dev/Lissy93/Dashy)
[![Open Project in VS Code](https://img.shields.io/badge/Open_in-VS_Code-863cfc?style=flat-square&logo=visualstudiocode)](https://vscode.dev/github/Lissy93/Dashy)
[![Open in GitPod](https://img.shields.io/badge/Open_in-GitPod-ffae33?style=flat-square&logo=gitpod)](https://gitpod.io/#github.com/lissy93/dashy.git)
[![Open in GitHub Code Spaces](https://img.shields.io/badge/Open_in-Code%20Spaces-131313?style=flat-square&logo=github)](https://github.dev/Lissy93/dashy)

Expand Down Expand Up @@ -658,7 +656,7 @@ A few self-hosted web apps serve a similar purpose to Dashy. If you're looking f
Dashy is Licensed under [MIT X11](https://en.wikipedia.org/wiki/MIT_License)

```
Copyright © 2021-2024 Alicia Sykes <https://aliciasykes.com>
Copyright © Alicia Sykes <https://aliciasykes.com>

Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
Expand Down Expand Up @@ -695,7 +693,7 @@ For more info, see TLDR Legal's [Explanation of MIT](https://tldrlegal.com/licen

<!-- License + Copyright -->
<p align="center">
<i>© <a href="https://aliciasykes.com">Alicia Sykes</a> 2024</i><br>
<i>© <a href="https://aliciasykes.com">Alicia Sykes</a> 2019 - 2026</i><br>
<i>Licensed under <a href="https://gist.github.com/Lissy93/143d2ee01ccc5c052a17">MIT</a></i><br>
<a href="https://github.com/lissy93"><img src="https://i.ibb.co/4KtpYxb/octocat-clean-mini.png" /></a><br>
<sup>Thanks for visiting :)</sup>
Expand Down
2 changes: 1 addition & 1 deletion docs/authentication/authelia-oidc.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Authelia Authentication for Dashy
# Authelia OIDC

Dashy supports using [Authelia](https://www.authelia.com/) as its OIDC provider.

Expand Down
2 changes: 1 addition & 1 deletion docs/authentication/authentik.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Authentik Authentication for Dashy
# Authentik OIDC

Dashy supports using [Authentik](https://goauthentik.io/) as its OIDC provider.

Expand Down
2 changes: 1 addition & 1 deletion docs/authentication/cloudflare-tunnel.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Cloudflare Tunnel + Access for Dashy
# Cloudflare Tunnel

Dashy works well behind [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) with [Cloudflare Access](https://developers.cloudflare.com/cloudflare-one/policies/access/) doing auth at the edge. This is one of the most common ways to expose a homelab dashboard to the public internet without opening any inbound ports, without managing TLS, and without standing up your own identity provider.

Expand Down
2 changes: 1 addition & 1 deletion docs/authentication/keycloak.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Keycloak Authentication for Dashy
# Keycloak

Dashy supports using a [Keycloak](https://www.keycloak.org/) (V17+) authentication server.

Expand Down
2 changes: 1 addition & 1 deletion docs/authentication/pocketid.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Pocket ID Authentication for Dashy
# Pocket ID OIDC

Dashy supports using [Pocket ID](https://pocket-id.org/) as its OIDC provider.

Expand Down
2 changes: 1 addition & 1 deletion docs/authentication/tailscale.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Tailscale (and Headscale) for Dashy
# Tailscale

[Tailscale](https://tailscale.com/) is a popular way to put Dashy on a private network you can reach from your phone, laptop, or any other device you've added to your tailnet, without exposing it to the public internet. With Tailscale Serve in front, requests reaching Dashy already carry the user's identity in HTTP headers, which plugs straight into Dashy's header auth for auto-login.

Expand Down
4 changes: 2 additions & 2 deletions docs/authentication/zitadel.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Zitadel Authentication for Dashy
# Zitadel OIDC

Dashy supports using [Zitadel](https://zitadel.com/) as its OIDC provider.

Expand Down Expand Up @@ -109,7 +109,7 @@ First boot runs the database migrations and creates the org, admin user, and a m

## 2. Configure Zitadel

Steps below are the manual UI walkthrough. There's also a Management API for scripted setup; an example bootstrap script is at [`alicia-notes/zitadel/configure.sh`](https://github.com/lissy93/dashy/blob/4.1.5/alicia-notes/zitadel/configure.sh) in the source repo.
Steps below are the manual UI walkthrough. Zitadel also has a Management API if you'd rather script the setup.

### Create the project

Expand Down
Loading