dashy/docs/quick-start.md

173 lines
9.7 KiB
Markdown
Raw Normal View History

2021-08-26 01:13:14 +03:00
# Quick Start
Welcome to Dashy! So glad you're here 😊 In a couple of minutes, you'll have your new dashboard up and running 🚀
2024-04-20 14:07:47 +03:00
**TLDR;** Run `docker run -p 8080:8080 lissy93/dashy`, then open `http://localhost:8080`
2021-08-26 01:13:14 +03:00
---
## 1. Prerequisites
The quickest and easiest method of running Dashy is using Docker (or another container engine). You can find installation instructions for your system in the [Docker Documentation](https://docs.docker.com/get-docker/).
2022-04-28 02:42:53 +03:00
If you don't want to use Docker, then you can use one of Dashy's other supported installation methods instead, all of which are outlined in the [Deployment Docs](https://github.com/Lissy93/dashy/blob/master/docs/deployment.md).
2021-08-26 01:13:14 +03:00
---
## 2. Installation
To pull the latest image, and build and start the app run:
2023-06-10 14:54:53 +03:00
```bash
2021-08-26 01:13:14 +03:00
docker run -d \
2024-04-20 14:07:47 +03:00
-p 8080:8080 \
-v ~/my-conf.yml:/app/user-data/conf.yml \
2021-08-26 01:13:14 +03:00
--name my-dashboard \
--restart=always \
lissy93/dashy:latest
```
2022-04-28 02:42:53 +03:00
Either replace the -v path to point to your config file, or leave it out. For a full list of available options, then see [Dashy with Docker](https://github.com/Lissy93/dashy/blob/master/docs/deployment.md#deploy-with-docker) Docs. If you'd prefer to use Docker Compose, then see [Dashy with Docker Compose](https://github.com/Lissy93/dashy/blob/master/docs/deployment.md#using-docker-compose) Docs. Alternate registries, architectures and pinned versions are also supported.
2021-08-26 01:13:14 +03:00
Your dashboard should now be up and running at `http://localhost:8080` (or your servers IP address/ domain, and the port that you chose). The first time you build, it may take a few minutes.
2021-08-26 01:13:14 +03:00
---
2024-04-29 00:59:15 +03:00
## 3. User Data Directory
Your config file should be placed inside `user-data/` (in Docker, that's `/app/user-data/`).
This directory can also contain some optional assets you wish to use within your dashboard, like icons, fonts, styles, scripts, etc.
Any files placed here will be served up to the root of the domain, and override the contents of `public/`.
For example, if you had `user-data/favicon.ico` this would be accessible at `http://my-dashy-instance.local/favicon.ico`
Example Files in `user-data`:
- `conf.yml` - This is the only file that is compulsary, it's your main Dashy config
- `**.yml` - Include more config files, if you'd like to have multiple pages, see [Multi-page support](/docs/pages-and-sections#multi-page-support) for docs
- `favicon.ico` - The default favicon, shown in the browser's tab title
- `initialization.html` - Static HTML page displayed before the app has finished compiling, see [`public/initialization.html`](https://github.com/Lissy93/dashy/blob/master/public/initialization.html)
- `robots.txt` - Search engine crawl rules, override this if you want your dashboard to be indexable
- `manifest.json` - PWA configuration file, for installing Dashy on mobile devices
- `index.html` - The main index page which initializes the client-side app, copy it from [`/public/index.html`](https://github.com/Lissy93/dashy/blob/master/public/index.html)
- `**.html` - Write your own HTML pages, and access them at `http://my-dashy-instance.local/my-page.html`
- `fonts/` - Custom fonts (be sure to include the ones already in [`public/fonts`](https://github.com/Lissy93/dashy/tree/master/public/fonts)
- `item-icons/` - To use your own icons for items on your dashboard, see [Icons --> Local Icons](/docs/icons#local-icons)
- `web-icons/` - Override Dashy logo
- `widget-resources/` - Fonts, icons and assets for custom widgets
---
## 4. Configure
2021-08-26 01:13:14 +03:00
Now that you've got Dashy running, you are going to want to set it up with your own content.
2024-04-20 14:07:47 +03:00
Config is written in [YAML Format](https://yaml.org/), and saved in [`/user-data/conf.yml`](https://github.com/Lissy93/dashy/blob/master/user-data/conf.yml).
2021-08-26 01:13:14 +03:00
The format on the config file is pretty straight forward. There are three root attributes:
2023-06-10 14:54:53 +03:00
2022-04-28 02:42:53 +03:00
- [`pageInfo`](https://github.com/Lissy93/dashy/blob/master/docs/configuring.md#pageinfo) - Dashboard meta data, like title, description, nav bar links and footer text
- [`appConfig`](https://github.com/Lissy93/dashy/blob/master/docs/configuring.md#appconfig-optional) - Dashboard settings, like themes, authentication, language and customization
- [`sections`](https://github.com/Lissy93/dashy/blob/master/docs/configuring.md#section) - An array of sections, each including an array of items
2024-04-29 00:59:15 +03:00
- [`pages`](https://github.com/Lissy93/dashy/blob/master/docs/configuring.md#pages-optional) - Have multiples pages in your dashboard
2021-08-26 01:13:14 +03:00
2022-04-28 02:42:53 +03:00
You can view a full list of all available config options in the [Configuring Docs](https://github.com/Lissy93/dashy/blob/master/docs/configuring.md).
2021-08-26 01:13:14 +03:00
```yaml
pageInfo:
title: Home Lab
sections: # An array of sections
- name: Example Section
icon: far fa-rocket
items:
- title: GitHub
description: Dashy source code and docs
icon: fab fa-github
url: https://github.com/Lissy93/dashy
- title: Issues
description: View open issues, or raise a new one
icon: fas fa-bug
url: https://github.com/Lissy93/dashy/issues
- name: Local Services
items:
- title: Firewall
icon: favicon
url: http://192.168.1.1/
- title: Game Server
icon: https://i.ibb.co/710B3Yc/space-invader-x256.png
url: http://192.168.130.1/
```
Notes:
2023-06-10 14:54:53 +03:00
2021-08-26 01:13:14 +03:00
- You can use a Docker volume to pass a config file from your host system to the container
2024-04-20 14:07:47 +03:00
- E.g. `-v ./host-system/my-local-conf.yml:/app/user-data/conf.yml`
2021-08-26 01:13:14 +03:00
- It's also possible to edit your config directly through the UI, and changes will be saved in this file
- Check your config against Dashy's schema, with `docker exec -it [container-id] yarn validate-config`
- You might find it helpful to look at some examples, a collection of which can be [found here](https://gist.github.com/Lissy93/000f712a5ce98f212817d20bc16bab10)
2024-04-29 00:59:15 +03:00
- It's also possible to load a remote config, e.g. from a GitHub Gist
2021-08-26 01:13:14 +03:00
---
2024-04-29 00:59:15 +03:00
## 5. Further Customisation
2021-08-26 01:13:14 +03:00
2022-04-28 02:42:53 +03:00
Once you've got Dashy setup, you'll want to ensure the container is properly healthy, secured, backed up and kept up-to-date. All this is covered in the [Management Docs](https://github.com/Lissy93/dashy/blob/master/docs/management.md).
2021-08-26 01:13:14 +03:00
You might also want to check out the docs for specific features you'd like to use:
2023-06-10 14:54:53 +03:00
2021-08-26 01:13:14 +03:00
- [Authentication](/docs/authentication) - Setting up authentication to protect your dashboard
- [Alternate Views](/docs/alternate-views) - Using the startpage and workspace view
2021-08-26 01:13:14 +03:00
- [Backup & Restore](/docs/backup-restore) - Guide to Dashy's cloud sync feature
- [Icons](/docs/icons) - Outline of all available icon types for sections and items
- [Localisation](/docs/multi-language-support) - How to change language, or add your own
- [Status Indicators](/docs/status-indicators) - Using Dashy to monitor uptime and status of your apps
- [Search & Shortcuts](/docs/searching) - Using instant filter, web search and custom hotkeys
2021-08-26 01:13:14 +03:00
- [Theming](/docs/theming) - Complete guide to applying, writing and modifying themes and styles
---
2024-04-29 00:59:15 +03:00
## 6. Final Note
2021-08-26 01:13:14 +03:00
If you need any help or support in getting Dashy running, head over to the [Discussions](https://github.com/Lissy93/dashy/discussions) page. If you think you've found a bug, please do [raise it](https://github.com/Lissy93/dashy/issues/new/choose) so it can be fixed. For contact options, see the [Support Page](https://github.com/Lissy93/dashy/blob/master/.github/SUPPORT.md).
2021-08-26 01:13:14 +03:00
2022-04-28 02:42:53 +03:00
If you're enjoying Dashy, and have a few minutes to spare, please do take a moment to look at the [Contributing Page](https://github.com/Lissy93/dashy/blob/master/docs/contributing.md). Huge thanks to [everyone](https://github.com/Lissy93/dashy/blob/master/docs/credits.md) who has already helped out!
2021-08-26 01:13:14 +03:00
2023-06-10 14:54:53 +03:00
Enjoy your dashboard :)
2021-08-26 01:13:14 +03:00
---
## Alternative Deployment Method 1 - From Source
You can also easily run the app on your system without Docker. For this [Git](https://git-scm.com/downloads), [Node.js](https://nodejs.org/), and [Yarn](https://yarnpkg.com/) are required.
2023-06-10 14:54:53 +03:00
```bash
2021-08-26 01:13:14 +03:00
git clone https://github.com/Lissy93/dashy.git && cd dashy
yarn # Install dependencies
yarn build # Build the app
yarn start # Start the app
```
2023-06-10 14:54:53 +03:00
2024-04-29 00:59:15 +03:00
Then edit `./user-data/conf.yml`
2021-08-26 01:13:14 +03:00
---
## Alternative Deployment Method 2 - Netlify
Don't have a server? No problem! You can run Dashy for free on Netlify (as well as many [other cloud providers](/docs/deployment#deploy-to-cloud-service)). All you need it a GitHub account.
2023-06-10 14:54:53 +03:00
2021-08-26 01:13:14 +03:00
1. Fork Dashy's repository on GitHub
2. [Log in](app.netlify.com/login/) to Netlify with GitHub
2021-08-26 01:13:14 +03:00
3. Click "New site from Git" and select your forked repo, then click **Deploy**!
2024-04-20 14:07:47 +03:00
4. You can then edit the config in `./user-data/conf.yml` in your repo, and Netlify will rebuild the app
---
## Alternative Deployment Method 3 - Cloud Services
Dashy supports 1-Click deployments on several popular cloud platforms. To spin up a new instance, just click a link below:
2023-06-10 14:54:53 +03:00
- [<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/J7MGymY/googlecloud.png" width="18"/> Deploy to GCP](https://deploy.cloud.run/?git_repo=https://github.com/lissy93/dashy.git)
2022-04-28 02:42:53 +03:00
- [<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)
- [<img src="https://i.ibb.co/7NxnM2P/easypanel.png" width="18"/> Deploy to Easypanel](https://easypanel.io/docs/templates/dashy)