Merge branch 'master' of github.com:Lissy93/dashy into FEATURE/basic-widget-support

This commit is contained in:
Alicia Sykes 2021-12-18 23:58:05 +00:00
commit 0b868af5bb
21 changed files with 1339 additions and 871 deletions

24
.github/AUTHORS.txt vendored
View File

@ -1,4 +1,5 @@
Alicia <liss-bot@d0h.co> - 1 commits
BOZG <sr@bozg.se> - 1 commits
Begin <support@begin.com> - 1 commits
David <skaarj1989@gmail.com> - 1 commits
DeepSource <o> - 1 commits
@ -10,23 +11,26 @@ Ryan <urne> - 1 commits
Shreya <o> - 1 commits
deepsource-io[bot] <deepsource-io[bot]@users.noreply.github.com> - 1 commits
jnach <33467747+jnach@users.noreply.github.com> - 1 commits
Alicia <yke> - 2 commits
Brendan <&#39;Lear> - 2 commits
Dan <ilber> - 2 commits
liss-bot <87835202+liss-bot@users.noreply.github.com> - 2 commits
ᗪєνιη <υн> - 2 commits
Walkx <71191962+walkxcode@users.noreply.github.com> - 3 commits
Niklas <abe> - 4 commits
UrekD <urek.denis@gmail.com> - 4 commits
UrekD <urek.denis@gmail.com> - 5 commits
Erik <roo> - 6 commits
liss-bot <liss-bot@users.noreply.github.com> - 6 commits
repo-visualizer <repo-visualizer@users.noreply.github.com> - 11 commits
snyk-bot <snyk-bot@snyk.io> - 11 commits
repo-visualizer <repo-visualizer@users.noreply.github.com> - 15 commits
Alicia <yke> - 16 commits
github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> - 16 commits
Alicia <o> - 18 commits
snyk-bot <snyk-bot@users.noreply.github.com> - 18 commits
EVOTk <45015615+EVOTk@users.noreply.github.com> - 21 commits
Alicia <yke> - 25 commits
liss-bot <liss-bot@d0h.co> - 28 commits
snyk-bot <snyk-bot@snyk.io> - 20 commits
EVOTk <45015615+EVOTk@users.noreply.github.com> - 22 commits
Alicia <yke> - 28 commits
Alicia <o> - 32 commits
liss-bot <liss-bot@d0h.co> - 42 commits
Lissy93 <gh@d0h.co> - 78 commits
Lissy93 <Lissy93@users.noreply.github.com> - 199 commits
Alicia <yke> - 276 commits
Alicia <yke> - 1165 commits
Lissy93 <Lissy93@users.noreply.github.com> - 202 commits
Alicia <yke> - 302 commits
Alicia <yke> - 1196 commits

View File

@ -18,7 +18,7 @@ jobs:
npm run build
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@4.1.4
if: ${{ github.repository_owner === 'lissy93' }}
if: ${{ github.repository_owner == 'lissy93' }}
with:
branch: dev-demo
folder: dist

View File

@ -19,13 +19,7 @@ jobs:
add-awaiting-author:
runs-on: ubuntu-latest
if: >
${{
!github.event.issue.pull_request
&& github.event.comment.author_association != 'COLLABORATOR'
&& github.event.comment.author_association != 'OWNER'
&& github.event.issue.state === 'open'
}}
if: ${{!github.event.issue.pull_request && github.event.comment.author_association != 'COLLABORATOR' && github.event.comment.author_association != 'OWNER' && github.event.issue.state === 'open' }}
steps:
- name: Add Awaiting Author labels when Updated
uses: actions-cool/issues-helper@v2

148
README.md
View File

@ -66,23 +66,23 @@
## Features 🌈
- 🔎 Instant search by name, domain or tags + customizable hotkeys & keyboard shortcuts
- 🔎 Instant search by name, domain, or tags + customizable hotkeys & keyboard shortcuts
- 🎨 Multiple built-in color themes, with UI color editor and support for custom CSS
- 🧸 Many icon options - Font-Awesome, homelab icons, auto-fetching favicon, images, emojis, etc.
- 🚦 Status monitoring for each of your apps / links for basic availability and uptime checking
- 💂 Optional authentication with multi-user access, configurable privileges and SSO support
- 🧸 Many icon options - Font-Awesome, homelab icons, auto-fetching Favicon, images, emojis, etc.
- 🚦 Status monitoring for each of your apps/links for basic availability and uptime checking
- 💂 Optional authentication with multi-user access, configurable privileges, and SSO support
- 🌎 Multi-language support, with 10+ human-translated languages, and more on the way
- ☁ Optional, encrypted, free off-site cloud backup and restore feature available
- 💼 A workspace view, for easily switching between multiple apps at simultaneously
- 🛩️ A minimal view, for use as a fast-loading browser startpage
- 🖱️ Choose app launch method, either new tab, same tab, a pop-up modal or in the workspace view
- 📏 Customizable layout, sizes, text, component visibility, sort order, behavior etc.
- 🖼️ Option for full-screen background image, custom nav-bar links, html footer, title, etc.
- 💼 A workspace view, for easily switching between multiple apps simultaneously
- 🛩️ A minimal view, for use as a fast-loading browser Startpage
- 🖱️ Choose app launch method, either new tab, same tab, a pop-up modal, or in the workspace view
- 📏 Customizable layout, sizes, text, component visibility, sort order, behavior, etc.
- 🖼️ Options for a full-screen background image, custom nav-bar links, HTML footer, title, etc.
- 🚀 Easy to setup with Docker, or on bare metal, or with 1-Click cloud deployment
- ⚙️ Easy single-file YAML-based configuration, and option to configure app through the UI
- ✨ Under active development with improvements and new features added regularly
- 🤏 Small bundle size, fully responsive UI and PWA for basic offline access
- 🆓 100% free and open source
- 🤏 Small bundle size, fully responsive UI, and PWA for basic offline access
- 🆓 100% free and open-source
- 🔐 Strong focus on privacy
- 🌈 And loads more...
@ -128,16 +128,16 @@ docker run -d \
```
[![Dashy on Docker Hub](https://dockeri.co/image/lissy93/dashy)](https://hub.docker.com/r/lissy93/dashy)
See also examples [with Docker Compose](./docs/deployment.md#using-docker-compose). Dashy is also available via GHCR, and tags for other architectures (`arm32-7`, `arm64-v8`, etc) and set versions are supported
See also examples [with Docker Compose](./docs/deployment.md#using-docker-compose). Dashy is also available via GHCR, and tags for other architectures (`arm32v7`, `arm64v8`, etc.) and set versions are supported
> Once you've got Dashy running, see [App Management Docs](./docs/management.md), for info on using health checks, updating, backups, web-server configs, logs, performance, security and more.
> Once you've got Dashy running, see [App Management Docs](./docs/management.md) for info on using health checks, updating, backups, web-server configs, logs, performance, security, and more.
### 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.
- Get Code: `git clone https://github.com/Lissy93/dashy.git` and `cd dashy`
- Configuration: Fill in you're settings in `./public/conf.yml`
- Configuration: Fill in your settings in `./public/conf.yml`
- Install dependencies: `yarn`
- Build: `yarn build`
- Run: `yarn start`
@ -164,7 +164,7 @@ Dashy supports 1-Click deployments on several popular cloud platforms. To spin u
> For full configuration documentation, see: [**Configuring**](./docs/configuring.md)
Dashy is configured through a YAML file, located at `./public/conf.yml`. You can find a complete list of available options in th [Configuring Docs](/docs/configuring.md). The config can also be edited and saved directly through the UI.
Dashy is configured through a YAML file, located at `./public/conf.yml`. In addition, you can find a complete list of available options in the [Configuring Docs](/docs/configuring.md). The config can also be edited and saved directly through the UI.
**[⬆️ Back to Top](#dashy)**
@ -174,7 +174,7 @@ Dashy is configured through a YAML file, located at `./public/conf.yml`. You can
> For full theming documentation, see: [**Theming**](./docs/theming.md)
Dashy comes pre-bundled with several built-in themes, which you can preview, applied and edited through the UI. With the theme configurator, and support for custom CSS, everything is in place for you to easily develop your own unique looking dashboard.
Dashy comes pre-bundled with several built-in themes, which you can preview, applied and edit through the UI. With the theme configurator and support for custom CSS, everything is in place to quickly develop your unique-looking dashboard.
<p align="center">
<a href="https://i.ibb.co/BVSHV1v/dashy-themes-slideshow.gif">
@ -199,12 +199,12 @@ Dashy comes pre-bundled with several built-in themes, which you can preview, app
Both sections and items can have an icon associated with them, defined under the `icon` attribute. With several different icon packs supported, you'll be able to find the perfect thumbnail for any app or service.
The following icon types are supported:
- **Favicon** - Automatically fetch an apps icon from it's favicon or logo image
- **Favicon** - Automatically fetch an apps icon from its Favicon or logo image
- **Icon Packs** - Use any icon from [font-awesome], [simple-icons] or [material icons]
- **Emoji** - Any valid emoji can be used as an icon
- **Generative** - Unique, auto-generated images for easily identifying services
- **URL** - Pass the URL of any valid image in to have it fetched and rendered
- **Local** - Store custom images locally, and reference by filename
- **Local** - Store custom images locally and reference by filename
- **Homelab Icons** - Using [dashboard-icons] for logos of commonly self-hosted services
@ -227,9 +227,9 @@ The following icon types are supported:
> For full monitoring documentation, see: [**Status Indicators**](./docs/status-indicators.md)
Dashy has an optional feature that can check if each app/ service is up and responding, then display a small status indicator icon. Hovering over it will show additional stats like response time and status code.
Dashy has an optional feature to check if each app/ service is up and responding, then display a small status indicator icon. Hovering over it will show additional stats like response time and status code.
Status indicators can be globally enabled by setting `appConfig.statusCheck: true`, or enabled/ disabled on a per-item basis. Status is checked on page load, but you can enable continuous polling by specifying a time interval between checks, in seconds under `appConfig.statusCheckInterval`. You can also use a different endpoint for status checking, with `statusCheckUrl`, and if needed pass in custom headers under `statusCheckHeaders`.
Status indicators can be globally enabled by setting `appConfig.statusCheck: true` or enabled/ disabled on a per-item basis. Status is checked on page load, but you can allow continuous polling by specifying a time interval between checks, in seconds under `appConfig.statusCheckInterval`. You can also use a different endpoint for status checking, with `statusCheckUrl`, and if needed, pass in custom headers under `statusCheckHeaders`.
<p align="center">
<img alt="Status Checks demo" src="https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/status-check-demo.gif" width="600" />
@ -245,7 +245,7 @@ Status indicators can be globally enabled by setting `appConfig.statusCheck: tru
Dashy has full support for secure single-sign-on using [Keycloak](https://www.keycloak.org/) for secure, easy authentication, see [setup docs](/docs/authentication.md#keycloak) for a full usage guide.
There is also a basic auth feature, which doesn't require any additional setup. To enable this, just add an `auth` attribute under `appConfig`, containing an array of `users`, each with a username, SHA-256 hashed password and optional user type. Basic auth also has support for several access control features, including read-only guest access and granular controls.
There is also a basic auth feature, which doesn't require additional setup. To enable this, add an `auth` attribute under `appConfig`, containing an array of `users`, each with a username, SHA-256 hashed password and optional user type. Basic auth also supports several access control features, including read-only guest access and granular controls.
```yaml
@ -266,10 +266,10 @@ Other access control systems are also supported, see the [Alternative Auth Metho
## Alternate Views 👓
As well as the default homepage, there is also:
- A minimal view, useful for use as a browser start page
- A minimal view, valid for use as a browser start page
- A workspace view, useful for visiting many apps simultaneously
You can change the view from the UI, using the switch icon in the top-right corner, or select a default view in the config, under `appConfig.startingView` attribute.
You can change the view from the UI, using the switch icon in the top-right corner, or select a default view in the config under `appConfig.startingView` attribute.
<p align="center">
<b>Example of Workspace View</b><br>
@ -289,12 +289,12 @@ 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 apps can be launched. 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 to 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)
- `workspace` - Changes to Workspace view, and launches app
- `top` - Opens in the top-most browsing context, useful if your accessing Dashy through an iframe
- `workspace` - Changes to Workspace view and launches app
- `top` - Opens in the top-most browsing context, useful if you're accessing Dashy through an iframe
---
@ -302,15 +302,15 @@ There are several different ways apps can be launched. You can specify the defau
> For full documentation on searching, see: [**Searching & Shortcuts**](./docs/searching.md)
Quickly finding and launching applications is the primary aim of Dashy. To that end instant search and customizable keyboard shortcuts are built-in.
Quickly finding and launching applications is the primary aim of Dashy. To that end, instant search and customizable keyboard shortcuts are built-in.
To start filtering, just start typing. No need to select the search bar or use any special key. Then use either the tab key or arrow keys to select and move between results, and hit enter to launch the currently selected application.
To start filtering, start typing—no need to select the search bar or use any special key. Then use either the tab key or arrow keys to select and move between results, and hit enter to launch the currently selected application.
For apps that you use regularly, you can set a custom keybinding. Use the `hotkey` parameter on a certain item to specify a numeric key, between `0 - 9`. You can then launch that app, by just pressing that key.
For apps that you use regularly, you can set a custom keybinding. Use the `hotkey` parameter on a certain item to specify a numeric key between `0 - 9`. You can then launch that app by just pressing that key.
You can also add custom tags to a given item, to make finding them based on keywords easier. For example, in the following example, searching for 'Movies' will show 'Plex'
You can also add custom tags to a given item to make finding them based on keywords easier. For example, in the following example, searching for 'Movies' will show 'Plex'
```yaml
"`yaml
items:
- title: Plex
hotkey: 8
@ -320,7 +320,7 @@ You can also add custom tags to a given item, to make finding them based on keyw
tags: [ movies, videos, music ]
```
To search the web directly through Dashy, just press enter after typing your query. Options for web search are set under `appConfig.webSearch`. There is built in support for [10+ search engines](./docs/searching.md#setting-search-engine), or [use your own custom provider](./docs/searching.md#using-custom-search-engine) or self-hosted instance. With the web search, you can also define your own bangs, to redirect results to any given app, website or search engine, when the query is preceded with a certain character sequence (usually beginning in `/`, `!` or `:`).
To search the web directly through Dashy, just press enter after typing your query. Options for web search are set under `appConfig.webSearch`. There is built-in support for [10+ search engines](./docs/searching.md#setting-search-engine), or [use your own custom provider](./docs/searching.md#using-custom-search-engine) or self-hosted instance. With the web search, you can also define your bangs to redirect results to any given app, website, or search engine, when the query is preceded with a certain character sequence (usually beginning in `/`, `!` or `:`).
```yaml
webSearch:
@ -335,7 +335,7 @@ webSearch:
':git': github
```
Hit `Esc` at anytime to close any open apps, clear the search field, or hide any modals.
Hit `Esc` at any time to close any open apps, clear the search field, or hide any modals.
**[⬆️ Back to Top](#dashy)**
@ -344,11 +344,11 @@ Hit `Esc` at anytime to close any open apps, clear the search field, or hide any
## Config Editor ⚙️
> For full config documentation, see: [**Configuring**](./docs/configuring.md)
As well as passing in a YAML config file, you can also configure the app directly through the UI, and preview changes live.
As well as passing in a YAML config file, you can also configure the app directly through the UI and preview changes live.
To edit any section or item, right-click on it, and select "Edit", or enter the Edit Mode (using the Pen icon in the top-right), then click any part of the page to edit. Changes will be visible immediately, but will not be saved until you click "Save to Disk" or "Save Locally".
To edit any section or item, right-click on it, and select "Edit", or enter the Edit Mode (using the Pen icon in the top-right), then click any part of the page to edit. Changes will be visible immediately but will not be saved until clicking "Save to Disk" or "Save Locally".
Under the config menu, you can export, view, backup, or reset app config, as well as edit the raw config file in a text editor, with built-in schema validation. It's recommended to keep a backup of your config.
Under the config menu, you can export, view, backup, or reset app config and edit the raw config file in a text editor with built-in schema validation. It's recommended to keep a backup of your config.
<p align="center">
<img alt="Interactive Editor demo" src="https://user-images.githubusercontent.com/1862727/139543020-b0576d28-0830-476f-afc8-a815d4de6def.gif" width="600" />
@ -367,9 +367,9 @@ Under the config menu, you can export, view, backup, or reset app config, as wel
> For full backup documentation, see: [**Cloud Backup & Sync**](./docs/backup-restore.md)
Dashy has an **optional** built-in feature for securely backing up your config to a hosted cloud service, and then restoring it on another instance. This is useful not only for backing up your configuration off-site, but it also enables Dashy to be used without having write a YAML config file.
Dashy has an **optional** built-in feature for securely backing up your config to a hosted cloud service and then restoring it on another instance. This is useful not only for backing up your configuration off-site but also enables Dashy to be used without having to write a YAML config file.
All data is fully E2E encrypted before being sent to the backend (done in [`CloudBackup.js`](https://github.com/Lissy93/dashy/blob/master/src/utils/CloudBackup.js) using [crypto.js](https://github.com/brix/crypto-js)'s AES method). The data is then sent to a [Cloudflare worker](https://developers.cloudflare.com/workers/learning/how-workers-works), and stored in a [KV](https://developers.cloudflare.com/workers/learning/how-kv-works) data store.
All data is fully E2E encrypted before being sent to the backend (done in [`CloudBackup.js`](https://github.com/Lissy93/dashy/blob/master/src/utils/CloudBackup.js) using [crypto.js](https://github.com/brix/crypto-js) 's AES method). The data is then sent to a [Cloudflare worker](https://developers.cloudflare.com/workers/learning/how-workers-works) and stored in a [KV](https://developers.cloudflare.com/workers/learning/how-kv-works) data store.
**[⬆️ Back to Top](#dashy)**
@ -378,7 +378,7 @@ All data is fully E2E encrypted before being sent to the backend (done in [`Clou
## Language Switching 🌎
> For full internationalization documentation, see: [**Multi-Language Support**](./docs/multi-language-support.md)
Dashy supports multiple languages and locales. When available, your language should be automatically detected and applied on load. But you can also select a language through the UI (under Config --> Switch Language), or set `appConfig.language` to your language (specified as a 2-digit [ISO 639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)).
Dashy supports multiple languages and locales. When available, your language should be automatically detected and applied on load. But you can also select a language through the UI (under config --> Switch Language) or set `appConfig.language` to your language (specified as a 2-digit [ISO 639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)).
#### Supported Languages
- 🇬🇧 **English**: `en` - _Default_
@ -390,6 +390,7 @@ Dashy supports multiple languages and locales. When available, your language sho
- 🇵🇱 **Polish**: `pl` - Contributed by **[@skaarj1989](https://github.com/skaarj1989)**
- 🇪🇸 **Spanish**: `es` - Contributed by **[@lu4t](https://github.com/lu4t)**
- 🇸🇮 **Slovenian**: `sl` - Contributed by **[@UrekD](https://github.com/UrekD)**
- 🇸🇪 **Swedish**: `sv` - Contributed by **[@BOZG](https://github.com/BOZG)**
- 🇮🇹 **Italian**: `it` - Machine Translated *(awaiting human review)*
- 🇵🇹 **Portuguese**: `pt` - Machine Translated *(awaiting human review)*
- 🇷🇺 **Russian**: `ru` - Contributed by Anon
@ -398,7 +399,7 @@ Dashy supports multiple languages and locales. When available, your language sho
- 🇯🇵 **Japanese**: `ja` - Contributed by Anon
#### Add your Language
I would love Dashy to be available to everyone, without language being a barrier to entry. If you've got a few minutes to spare, consider adding translations for your language. It's a quick task and all text is in [a single JSON file](https://github.com/Lissy93/dashy/tree/master/src/assets/locales). Since any missing text will fallback to English, you don't need to translate it all.
I would love Dashy to be available to everyone without language being a barrier to entry. If you've got a few minutes to spare, consider adding translations for your language. It's a quick task, and all text is in [a single JSON file](https://github.com/Lissy93/dashy/tree/master/src/assets/locales). Since any missing text will fall back to English, you don't need to translate it all.
**[⬆️ Back to Top](#dashy)**
@ -406,7 +407,7 @@ I would love Dashy to be available to everyone, without language being a barrier
## System Requirements 📊
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.
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.
@ -433,17 +434,17 @@ It's best to check the [docs](./docs), [previous issues](https://github.com/Liss
## Supporting Dashy 💖
> For full details, and other ways you can help out, see: [**Contributing**](./docs/contributing.md)
> For full details and other ways you can help out, see: [**Contributing**](./docs/contributing.md)
If you're using Dashy, and would like to help support it's development, then that would be awesome! Contributions of any type, however small are always very much appreciated, and you will be appropriately credited for your effort.
If you're using Dashy and would like to help support its development, then that would be awesome! Contributions of any type, any size, are always very much appreciated, and we will appropriately credit you for your effort.
Several areas that we need a bit of help with at the moment are:
- Translating - Help make Dashy available to non-native English speakers by [adding youre language](./docs/multi-language-support.md#adding-a-new-language)
- Donate a small amount, by [Sponsoring @Lissy93 on GitHub](https://github.com/sponsors/Lissy93) and receive some extra perks!
- Complete a [short survey](https://survey.typeform.com/to/gl0L68ou), to have your say about future features
- Share your dashboard in the [Showcase](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#dashy-showcase-), to provide inspiration for others
- Spread the word, by sharing Dashy or a screenshot of your dashboard, to help new users discover it
- Submit a PR, to add a new feature, fix a bug, update the docs, add a theme or something else
- Translating - Help make Dashy available to non-native English speakers by [adding your language](./docs/multi-language-support.md#adding-a-new-language)
- Donate a small amount by [Sponsoring @Lissy93 on GitHub](https://github.com/sponsors/Lissy93) and receive some extra perks!
- Complete a [short survey](https://survey.typeform.com/to/gl0L68ou) to have your say about future features
- Share your dashboard in the [Showcase](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#dashy-showcase-), to inspire others
- Spread the word by sharing Dashy or a screenshot of your dashboard to help new users discover it
- Submit a PR to add a new feature, fix a bug, update the docs, add a theme, or something else
- Star Dashy on GitHub/ DockerHub or leave an upvote / review on [these platforms](https://github.com/Lissy93/dashy/blob/master/docs/contributing.md#star-upvote-or-leave-a-review)
[![Sponsor Lissy93 on GitHub](./docs/assets/sponsor-button.svg)](https://github.com/sponsors/Lissy93)
@ -452,9 +453,9 @@ Several areas that we need a bit of help with at the moment are:
## Credits 🏆
> For a full list of credits, and attributions to packages used within Dashy, see: [**Credits**](./docs/credits.md)
> For a complete list of credits, and attributions to packages used within Dashy, see: [**Credits**](./docs/credits.md)
Thank you so much to everyone who has helped with Dashy so far, every contribution is very much appreciated.
Thank you so much to everyone who has helped with Dashy so far; every contribution is very much appreciated.
#### Sponsors
@ -463,17 +464,24 @@ Huge thanks to the sponsors helping to support Dashy's development!
<table>
<tr>
<td align="center">
<a href="https://github.com/mfnalex">
<img src="https://avatars.githubusercontent.com/u/1122571?v=4" width="80;" alt="mfnalex"/>
<a href="https://github.com/BOZG">
<img src="https://avatars.githubusercontent.com/u/6022344?u=a52f42b946a1e1156f7bb9d7f65e9e28bb2da89f&v=4" width="80;" alt="BOZG"/>
<br />
<sub><b>Mfnalex</b></sub>
<sub><b>Stephen Rigney</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Robert-Ernst">
<img src="https://avatars.githubusercontent.com/u/9050259?u=7253b4063f1ffe3b5a894263c8b2056151802508&v=4" width="80;" alt="Robert-Ernst"/>
<a href="https://github.com/vlad-timofeev">
<img src="https://avatars.githubusercontent.com/u/11474041?v=4" width="80;" alt="vlad-timofeev"/>
<br />
<sub><b>Robert Ernst</b></sub>
<sub><b>Vlad Timofeev</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/matthewjdegarmo">
<img src="https://avatars.githubusercontent.com/u/46715299?u=65f979e86de9dce8a5fe04df9775d32c6cefd73a&v=4" width="80;" alt="matthewjdegarmo"/>
<br />
<sub><b>Matthew J. DeGarmo</b></sub>
</a>
</td></tr>
</table>
@ -501,9 +509,9 @@ To set up the development environment:
2. Install dependencies: `yarn`
3. Start dev server: `yarn dev`
Hot reload is enabled, so changes will be automatically detected, compiled and refreshed.
Hot reload is enabled, so changes will be automatically detected, compiled and, refreshed.
If you're new to web development, I've put together a short [list of resources](https://github.com/Lissy93/dashy/blob/master/docs/developing.md#resources-for-beginners), to help beginners get started
If you're new to web development, I've put together a short [list of resources](https://github.com/Lissy93/dashy/blob/master/docs/developing.md#resources-for-beginners) to help beginners get started
**Repo Status**:
[![Open PRs](https://flat.badgen.net/github/open-prs/lissy93/dashy?icon=github)](https://github.com/Lissy93/dashy/pulls)
@ -520,13 +528,13 @@ If you're new to web development, I've put together a short [list of resources](
> For full release, automation and CI documentation, see: [**Releases & Workflows**](./docs/release-workflow.md)
Dashy is under active development, with features, improvements and changes pushed almost daily.
Dashy is under active development, with features, improvements, and changes pushed almost daily.
We're using [Semantic Versioning](https://semver.org/), to indicate major, minor and patch versions. You can find the current version number in the readme, and check your apps version under the config menu. The version number is pulled from the [package.json](https://github.com/Lissy93/dashy/blob/master/package.json#L3) file.
We're using [Semantic Versioning](https://semver.org/) to indicate major, minor, and patch versions. You can find the current version number in the readme and check the version of your app under the config menu. The version number is pulled from the [package.json](https://github.com/Lissy93/dashy/blob/master/package.json#L3) file.
Typically there is a new major release every 2 - 4 weeks, usually on Sunday, and you can view these under the [Releases Page](https://github.com/Lissy93/dashy/releases) and [on DockerHub](https://hub.docker.com/r/lissy93/dashy/tags). New minor versions are pushed several times a week, and are [tagged here](https://github.com/Lissy93/dashy/tags).
Typically there is a new major release every 2 - 4 weeks, usually on Sunday, and you can view these under the [Releases Page](https://github.com/Lissy93/dashy/releases) and [on DockerHub](https://hub.docker.com/r/lissy93/dashy/tags). In addition, new minor versions are pushed several times a week and are [tagged here](https://github.com/Lissy93/dashy/tags).
For a full breakdown of each change, you can view the [Changelog](https://github.com/Lissy93/dashy/blob/master/.github/CHANGELOG.md). Each new feature or significant change needs to be submitted through [a pull request](https://github.com/Lissy93/dashy/pulls?q=is%3Apr), which makes it easy to review and track these changes, and roll back if needed.
For a full breakdown of each change, you can view the [Changelog](https://github.com/Lissy93/dashy/blob/master/.github/CHANGELOG.md). In addition, each new feature or significant change needs to be submitted through [a pull request](https://github.com/Lissy93/dashy/pulls?q=is%3Apr), which makes it easy to review and track these changes, and roll back if needed.
**[⬆️ Back to Top](#dashy)**
@ -585,7 +593,7 @@ The following features and tasks are planned for the near future.
## Alternatives 🙌
There are a few self-hosted web apps, that serve a similar purpose to Dashy. If you're looking for a dashboard, and Dashy doesn't meet your needs, I highly recommend you check these projects out!
A few self-hosted web apps serve a similar purpose to Dashy. If you're looking for a dashboard, and Dashy doesn't meet your needs, I highly recommend you check these projects out!
- [Flame](https://github.com/pawelmalak/flame) by @pawelmalak (`MIT`)
- [HomeDash2](https://lamarios.github.io/Homedash2)
- [Homer](https://github.com/bastienwirtz/homer) (`Apache License 2.0`)
@ -599,13 +607,13 @@ There are a few self-hosted web apps, that serve a similar purpose to Dashy. If
---
## License 📜
Dashy is License under [MIT X11](https://en.wikipedia.org/wiki/MIT_License)
Dashy is Licensed under [MIT X11](https://en.wikipedia.org/wiki/MIT_License)
```
Copyright © 2021 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
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
@ -613,15 +621,15 @@ persons to whom the Software is furnished to do so, subject to the following con
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWAREOR THE USE
LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, Dashy shall not be used in advertising or otherwise
to promote the sale, use or other dealings in this Software without prior written
to promote the sale, use, or other dealings in this Software without prior written
authorization from the repo owner.
```

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 3.2 MiB

After

Width:  |  Height:  |  Size: 3.3 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

@ -5,24 +5,24 @@
<table>
<tr>
<td align="center">
<a href="https://github.com/mfnalex">
<img src="https://avatars.githubusercontent.com/u/1122571?u=5503223f5a5077197ddc229a938a5c3120a276ce&v=4" width="80;" alt="mfnalex"/>
<a href="https://github.com/BOZG">
<img src="https://avatars.githubusercontent.com/u/6022344?u=a52f42b946a1e1156f7bb9d7f65e9e28bb2da89f&v=4" width="80;" alt="BOZG"/>
<br />
<sub><b>Mfnalex</b></sub>
<sub><b>Stephen Rigney</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Robert-Ernst">
<img src="https://avatars.githubusercontent.com/u/9050259?u=7253b4063f1ffe3b5a894263c8b2056151802508&v=4" width="80;" alt="Robert-Ernst"/>
<a href="https://github.com/vlad-timofeev">
<img src="https://avatars.githubusercontent.com/u/11474041?v=4" width="80;" alt="vlad-timofeev"/>
<br />
<sub><b>Robert Ernst</b></sub>
<sub><b>Vlad Timofeev</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/DylanBeMe">
<img src="https://avatars.githubusercontent.com/u/41838333?v=4" width="80;" alt="DylanBeMe"/>
<a href="https://github.com/matthewjdegarmo">
<img src="https://avatars.githubusercontent.com/u/46715299?u=65f979e86de9dce8a5fe04df9775d32c6cefd73a&v=4" width="80;" alt="matthewjdegarmo"/>
<br />
<sub><b>DylanH</b></sub>
<sub><b>Matthew J. DeGarmo</b></sub>
</a>
</td></tr>
</table>
@ -39,13 +39,6 @@
<sub><b>Alicia Sykes</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/EVOTk">
<img src="https://avatars.githubusercontent.com/u/45015615?v=4" width="80;" alt="EVOTk"/>
<br />
<sub><b>EVOTk</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/liss-bot">
<img src="https://avatars.githubusercontent.com/u/87835202?v=4" width="80;" alt="liss-bot"/>
@ -54,10 +47,10 @@
</a>
</td>
<td align="center">
<a href="https://github.com/evroon">
<img src="https://avatars.githubusercontent.com/u/11857441?v=4" width="80;" alt="evroon"/>
<a href="https://github.com/EVOTk">
<img src="https://avatars.githubusercontent.com/u/45015615?v=4" width="80;" alt="EVOTk"/>
<br />
<sub><b>Erik Vroon</b></sub>
<sub><b>EVOTk</b></sub>
</a>
</td>
<td align="center">
@ -67,6 +60,13 @@
<sub><b>Snyk Bot</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/evroon">
<img src="https://avatars.githubusercontent.com/u/11857441?v=4" width="80;" alt="evroon"/>
<br />
<sub><b>Erik Vroon</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/UrekD">
<img src="https://avatars.githubusercontent.com/u/38784343?v=4" width="80;" alt="UrekD"/>
@ -75,6 +75,13 @@
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/walkxcode">
<img src="https://avatars.githubusercontent.com/u/71191962?v=4" width="80;" alt="walkxcode"/>
<br />
<sub><b>Walkx</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/onedr0p">
<img src="https://avatars.githubusercontent.com/u/213795?v=4" width="80;" alt="onedr0p"/>
@ -89,6 +96,13 @@
<sub><b>Dan Gilbert</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/BOZG">
<img src="https://avatars.githubusercontent.com/u/6022344?v=4" width="80;" alt="BOZG"/>
<br />
<sub><b>Stephen Rigney</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/BeginCI">
<img src="https://avatars.githubusercontent.com/u/57495754?v=4" width="80;" alt="BeginCI"/>
@ -102,7 +116,8 @@
<br />
<sub><b>David</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/deepsourcebot">
<img src="https://avatars.githubusercontent.com/u/60907429?v=4" width="80;" alt="deepsourcebot"/>
@ -116,8 +131,7 @@
<br />
<sub><b>FormatToday</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/Compunctus">
<img src="https://avatars.githubusercontent.com/u/5058853?v=4" width="80;" alt="Compunctus"/>
@ -145,7 +159,8 @@
<br />
<sub><b>Shreya Roy</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/jnach">
<img src="https://avatars.githubusercontent.com/u/33467747?v=4" width="80;" alt="jnach"/>

File diff suppressed because it is too large Load Diff

View File

@ -35,6 +35,16 @@ Header set X-Frame-Options: "ALLOW-FROM http://[dashy-location]/"
---
## 404 On Static Hosting
If you're seeing Dashy's 404 page on initial load/ refresh, and then the main app when you go back to Home, then this is likely caused by the Vue router, and if so can be fixed in one of two ways.
The first solution is to switch the routing mode, from HTML5 `history` mode to `hash` mode, by setting `appConfig.routingMode` to `hash`.
If this works, but you wish to continue using HTML5 history mode, then a bit of extra [server configuration](/docs/management.md#web-server-configuration) is required. This is explained in more detaail in the [Vue Docs](https://router.vuejs.org/guide/essentials/history-mode.html). Once completed, you can then use `routingMode: history` again, for neater URLs.
---
## Yarn Error
For more info, see [Issue #1](https://github.com/Lissy93/dashy/issues/1)
@ -180,4 +190,4 @@ Currently, the status check needs a page to be rendered, so if this URL in your
For further troubleshooting, use an application like [Postman](https://postman.com) to diagnose the issue. Set the parameter to `GET`, and then make a call to: `https://[url-of-dashy]/status-check/?&url=[service-url]`. Where the service URL must have first been encoded (e.g. with `encodeURIComponent()` or [urlencoder.io](https://www.urlencoder.io/))
If you're serving Dashy though a CDN, instead of using the Node server or Docker image, then the Node endpoint that makes requests will not be available to you, and all requests will fail. A workaround for this may be implemented in the future, but in the meantime, your only option is to use the Docker or Node deployment method.
If you're serving Dashy though a CDN, instead of using the Node server or Docker image, then the Node endpoint that makes requests will not be available to you, and all requests will fail. A workaround for this may be implemented in the future, but in the meantime, your only option is to use the Docker or Node deployment method.

View File

@ -4,7 +4,7 @@
# Essential site config
[build]
base = "/"
base = "/"
command = "yarn build"
publish = "dist"
functions = "services/serverless-functions"
@ -37,6 +37,6 @@
# Set any security headers here
[[headers]]
for = "/*"
[headers.values]
[headers.values]
# Uncomment to enable Netlify user control. You must have a paid plan.
# Basic-Auth = "someuser:somepassword anotheruser:anotherpassword"

View File

@ -1,6 +1,6 @@
{
"name": "Dashy",
"version": "1.9.2",
"version": "1.9.3",
"license": "MIT",
"main": "server",
"author": "Alicia Sykes <alicia@omg.lol> (https://aliciasykes.com)",
@ -18,10 +18,10 @@
},
"dependencies": {
"@formschema/native": "^2.0.0-beta.5",
"@sentry/tracing": "^6.13.1",
"@sentry/tracing": "^6.14.3",
"@sentry/vue": "^6.13.1",
"ajv": "^8.6.3",
"axios": "^0.23.0",
"ajv": "^8.8.1",
"axios": "^0.24.0",
"connect-history-api-fallback": "^1.6.0",
"crypto-js": "^4.1.1",
"express": "^4.17.1",
@ -31,7 +31,7 @@
"register-service-worker": "^1.6.2",
"remedial": "^1.0.8",
"rsup-progress": "^2.0.4",
"simple-icons": "^5.19.0",
"simple-icons": "^5.23.0",
"v-jsoneditor": "^1.4.2",
"v-tooltip": "^2.1.3",
"vue": "^2.6.10",

View File

@ -20,6 +20,7 @@
"remember-me-hour": "4 Hours",
"remember-me-day": "1 Day",
"remember-me-week": "1 Week",
"remember-me-long-time": "A long time",
"error-missing-username": "Missing Username",
"error-missing-password": "Missing Password",
"error-incorrect-username": "User not found",

View File

@ -19,6 +19,7 @@
"remember-me-hour": "4 Heures",
"remember-me-day": "1 Jour",
"remember-me-week": "1 Semaine",
"remember-me-long-time": "Un long moment",
"error-missing-username": "Nom d'utilisateur manquant",
"error-missing-password": "Mot de passe manquant",
"error-incorrect-username": "Utilisateur inexistant",
@ -77,7 +78,7 @@
"item-size-small": "Petite",
"item-size-medium": "Moyenne",
"item-size-large": "Grande",
"config-launcher-label": "Config.",
"config-launcher-label": "Configuration",
"config-launcher-tooltip": "Modifier la configuration",
"sign-out-tooltip": "Déconnexion",
"sign-in-tooltip": "Connexion",
@ -101,6 +102,7 @@
"export-button": "Exporter des variables personnalisées",
"reset-button": "Réinitialiser les styles pour",
"show-all-button": "Afficher toutes les variables",
"change-fonts-button": "Changer les Polices d'écritures",
"save-button": "Enregistrer",
"cancel-button": "Annuler",
"saved-toast": "{theme} mis à jour avec succès",
@ -112,6 +114,7 @@
"location-local-label": "Appliquer localement",
"location-disk-label": "Appliquer dans le fichier de configuration",
"save-button": "Enregistrer",
"preview-button": "Prévisuliser les modifications",
"valid-label": "La configuration est valide",
"status-success-msg": "Tâche terminée",
"status-fail-msg": "Échec de la tâche",
@ -218,6 +221,7 @@
},
"edit-section": {
"edit-section-title": "Éditeur",
"add-section-title": "Ajouter une section",
"edit-tooltip": "Cliquer pour modifier ou cliquer droit pour plus d'options",
"remove-confirm": "Voulez-vous vraiment supprimer cette section ? Cette action peut être annulée ultérieurement."
},

View File

@ -29,7 +29,7 @@
"already-logged-in-text": "Prijavljeni ste kot",
"proceed-to-dashboard": "Nadaljujte na nadzorno ploščo",
"log-out-button": "Odjava",
"proceed-guest-button": "Nadaljujte kot gost"
"proceed-guest-button": "Nadaljujte kot gost"
},
"config": {
"main-tab": "Glavni Meni",
@ -62,10 +62,11 @@
"css-note-l3": "Če želite odstraniti vse sloge po meri, izbrišite vsebino in pritisnite Shrani spremembe"
},
"alternate-views": {
"alternate-view-heading": "Spremeni Pogled",
"default": "Privzeto",
"workspace": "Delovni prostor",
"minimal": "Minimalno"
},
},
"settings": {
"theme-label": "Tema",
"layout-label": "Postavitev",
@ -100,6 +101,7 @@
"export-button": "Izvozi Spremenljivke po Meri",
"reset-button": "Ponastavi Sloge za",
"show-all-button": "Pokaži Vse Spremenljivke",
"change-fonts-button": "Spremeni Pisavo",
"save-button": "Shrani",
"cancel-button": "Prekliči",
"saved-toast": "{theme} Posodbljena Uspešno",
@ -111,6 +113,7 @@
"location-local-label": "Shrani Lokalno",
"location-disk-label": "Zapišite spremembe v datoteko za konfiguracijo",
"save-button": "Shrani Spremembe",
"preview-button": "Predogled Sprememb",
"valid-label": "Konfiguracija je veljavna",
"status-success-msg": "Operacija dokončana",
"status-fail-msg": "Operacija ni uspela",
@ -163,10 +166,82 @@
"restore-success-msg": "Konfiguracija Uspešno Obnovljena"
},
"menu": {
"open-section-title": "Odpri V",
"sametab": "Odpri v Trenutnem Zavihku",
"newtab": "Odpri v Novem Zavihku",
"modal": "Odpri v Pojavnem Oknu",
"workspace": "Odpri v Delovnem Pogledu"
"workspace": "Odpri v Delovnem Pogledu",
"options-section-title": "Nastavitve",
"edit-item": "Uredi",
"move-item": "Kopiral ali Premakni",
"remove-item": "Odstrani"
},
"context-menus": {
"item": {
"open-section-title": "Odpri V",
"sametab": "Trenutni Zavihek",
"newtab": "Nov Zavihek",
"modal": "Pojavno Okno",
"workspace": "Delovni Pogled",
"options-section-title": "Nastavitve",
"edit-item": "Uredi",
"move-item": "Kopiral ali Premakni",
"remove-item": "Odstrani"
},
"section": {
"open-section": "Odpri Razdelek",
"edit-section": "Uredi",
"move-section": "Premakni v",
"remove-section": "Odstrani"
}
},
"interactive-editor": {
"menu": {
"start-editing-tooltip": "Vstopite v Interaktivni Urejevalnik",
"edit-site-data-subheading": "Uredi Podatke Strani",
"edit-page-info-btn": "Uredi Informacije Strani",
"edit-page-info-tooltip": "Naslov, opis, nav linki, teks noge. itd",
"edit-app-config-btn": "Urejanje Konfiguracije",
"edit-app-config-tooltip": "Vse druge možnosti konfiguracije aplikacije",
"config-save-methods-subheading": "Možnosti Shranjevanja Konfiguracije",
"save-locally-btn": "Shrani Lokalno",
"save-locally-tooltip": "Shranite konfiguracijo lokalno v pomnilnik brskalnika. To ne bo vplivalo na vašo konfiguracijsko datoteko, vendar bodo spremembe shranjene samo v tej napravi",
"save-disk-btn": "Shrani na Disk",
"save-disk-tooltip": "Shranite konfiguracijo v datoteko conf.yml na disku. To bo varnostno kopiralo in nato prepisalo vašo obstoječo konfiguracijo",
"export-config-btn": "Izvozi Nastavitve",
"export-config-tooltip": "Oglejte si in izvozite novo konfiguracijo v datoteko ali v odložišče",
"cloud-backup-btn": "Varnostno kopiranje v Oblak",
"cloud-backup-tooltip": "Shranite šifrirano varnostno kopijo konfiguracije v oblak",
"edit-raw-config-btn": "Urejanje Raw Konfiguracije",
"edit-raw-config-tooltip": "Oglejte si in spremenite raw konfiguracijo prek urejevalnika JSON",
"cancel-changes-btn": "Prekliči Urejanje",
"cancel-changes-tooltip": "Ponastavite trenutne spremembe in zapustite način urejanja. To ne bo vplivalo na vašo shranjeno konfiguracijo",
"edit-mode-name": "Način Urejanja",
"edit-mode-subtitle": "Ste v načinu za Urejanje",
"edit-mode-description": "To pomeni, da lahko spremenite svojo konfiguracijo in si ogledate predogled rezultatov, vendar dokler ne shranite, nobena od vaših sprememb ne bo ohranjena.",
"save-stage-btn": "Shrani",
"cancel-stage-btn": "Prekliči"
},
"edit-section": {
"edit-section-title": "Uredi Razdelek",
"add-section-title": "Dodaj Razdelek",
"edit-tooltip": "Kliknite za Urejanje ali z desno tipko miške kliknite za Več Možnosti",
"remove-confirm": "Ali ste prepričani, da želite odstraniti ta razdelek? To dejanje lahko pozneje razveljavite."
},
"edit-app-config": {
"warning-msg-title": "Nadaljuj Previdno",
"warning-msg-l1": "Naslednje možnosti so za napredno konfiguracijo aplikacije.",
"warning-msg-l2": "Če niste prepričani glede katerega od polj, se obrnite na",
"warning-msg-docs": "dokumentacija",
"warning-msg-l3": "da bi se izognili neželenim posledicam."
},
"export": {
"export-title": "Izvozi Nastavitve",
"copy-clipboard-btn": "Kopirati v Odložišče",
"copy-clipboard-tooltip": "Kopirajte vso konfiguracijo aplikacije v sistemsko odložišče v formatu YAML",
"download-file-btn": "Prenesi kot Datoteko",
"download-file-tooltip": "Prenesite vso konfiguracijo aplikacije v svojo napravo v formatu YAML",
"view-title": "Ogled Konfiguracije"
}
}
}
}

248
src/assets/locales/sv.json Normal file
View File

@ -0,0 +1,248 @@
{
"home": {
"no-results": "Inga sökresultat",
"no-data": "Ingen data konfigurerad"
},
"search": {
"search-label": "Sök",
"search-placeholder": "Börja skriva för att filtrera",
"clear-search-tooltip": "Rensa sök",
"enter-to-search-web": "Tryck på Retur för att söka på webben"
},
"login": {
"title": "Dashy",
"username-label": "Användarnamn",
"password-label": "Lösenord",
"login-button": "Logga in",
"remember-me-label": "Kom ihåg mig",
"remember-me-never": "Aldrig",
"remember-me-hour": "4 Timmar",
"remember-me-day": "1 Dag",
"remember-me-week": "1 Vecka",
"remember-me-long-time": "Länge",
"error-missing-username": "Användarnamn saknas",
"error-missing-password": "Lösenord saknas",
"error-incorrect-username": "Användaren hittas inte",
"error-incorrect-password": "Fel lösenord",
"success-message": "Loggar in...",
"logout-message": "Utloggad",
"already-logged-in-title": "Redan inloggad",
"already-logged-in-text": "Du är inloggad som",
"proceed-to-dashboard": "Fortsätt till Dashboard",
"log-out-button": "Logga ut",
"proceed-guest-button": "Fortsätt som Gäst"
},
"config": {
"main-tab": "Huvudmeny",
"view-config-tab": "Visa konfiguration",
"edit-config-tab": "Redigera konfiguration",
"custom-css-tab": "Egendefinierade stilmallar",
"heading": "Konfigurationsalternativ",
"download-config-button": "Visa / Exportera konfiguration",
"edit-config-button": "Redigera konfiguration",
"edit-css-button": "Redigera egendefinierad CSS",
"cloud-sync-button": "Aktivera molnsynkronisering",
"edit-cloud-sync-button": "Redigera molnsynkronisering",
"rebuild-app-button": "Återuppbygga appen",
"change-language-button": "Ändra appspråk",
"reset-settings-button": "Återställ lokala inställningar",
"app-info-button": "Appinfo",
"backup-note": "Det rekommenderas att du gör en säkerhetskopia av din konfiguration innan du gör ändringar.",
"reset-config-msg-l1": "Detta tar bort alla användarinställningar från lokal lagring, men påverkar inte din 'conf.yml'-fil",
"reset-config-msg-l2": "Du bör först göra en säkerhetskopia av alla ändringar du har gjort lokalt, om du vill använda dem i framtiden.",
"reset-config-msg-l3": "Är du säker på att du vill fortsätta?",
"data-cleared-msg": "Datarensning har lyckats",
"actions-label": "Åtgärder",
"copy-config-label": "Kopiera konfiguration",
"data-copied-msg": "Konfiguration har kopierats till urklipp",
"reset-config-label": "Återställ konfiguration",
"css-save-btn": "Spara ändringar",
"css-note-label": "Not",
"css-note-l1": "Du måste uppdatera sidan för att dina ändringar ska gälla.",
"css-note-l2": "Styles overrides lagras bara lokalt, så det rekommenderas att du gör en kopia av din CSS.",
"css-note-l3": "För att ta bort alla egendefinierade stilmallar, radera innehållet och tryck på Spara ändringar"
},
"alternate-views": {
"alternate-view-heading": "Ändra vy",
"default": "Standard",
"workspace": "Workspace",
"minimal": "Minimal"
},
"settings": {
"theme-label": "Tema",
"layout-label": "Layout",
"layout-auto": "Auto",
"layout-horizontal": "Vågrät",
"layout-vertical": "Lodrät",
"item-size-label": "Storlek",
"item-size-small": "Liten",
"item-size-medium": "Mellan",
"item-size-large": "Stor",
"config-launcher-label": "Konfig",
"config-launcher-tooltip": "Uppdatera konfiguration",
"sign-out-tooltip": "Logga ut",
"sign-in-tooltip": "Logga in",
"sign-in-welcome": "Hej {username}!"
},
"updates": {
"app-version-note": "Dashy-version",
"up-to-date": "Uppdaterat",
"out-of-date": "Uppdatering finns",
"unsupported-version-l1": "Du använder en icke-stödd version av Dashy",
"unsupported-version-l2": "För den bästa upplevelsen och de senaste säkerhetskorrigeringarna, uppdatera till"
},
"language-switcher": {
"title": "Ändra appspråk",
"dropdown-label": "Välj språk",
"save-button": "Spara",
"success-msg": "Språket har ändrats till"
},
"theme-maker": {
"title": "Temakonfigurator",
"export-button": "Exportera egendefinierade variabler",
"reset-button": "Återställ stilmallar för",
"show-all-button": "Visa alla variabler",
"change-fonts-button": "Ändra typsnitt",
"save-button": "Spara",
"cancel-button": "Avbryt",
"saved-toast": "Uppdatering av {theme} har lyckats",
"copied-toast": "Temadatan för {theme} har kopierats till urklipp",
"reset-toast": "Egendefinierade färger för {theme} har tagits bort"
},
"config-editor": {
"save-location-label": "Sparningsplats",
"location-local-label": "Tillämpa lokalt",
"location-disk-label": "Skriv ändringar till konfigurationsfil",
"save-button": "Spara ändringar",
"preview-button": "Förhandsgranska ändringar",
"valid-label": "Konfigurationen är giltig",
"status-success-msg": "Åtgärden slutförts",
"status-fail-msg": "Åtgärden misslyckats",
"success-msg-disk": "Konfigurationsfil har skrivits till disk utan problem",
"success-msg-local": "Lokala ändringar har sparats utan problem",
"success-note-l1": "Återskapa",
"success-note-l2": "Detta kan ta upp till en minut.",
"success-note-l3": "Du måste uppdatera sidan för att ändringar ska gälla",
"error-msg-save-mode": "Välj Lagringsläge: Lokalt eller Fil",
"error-msg-cannot-save": "Ett fel uppstod när konfigurationen skulle sparas",
"error-msg-bad-json": "Fel i JSON, möjligen felformaterat",
"warning-msg-validation": "Valideringsvarning",
"not-admin-note": "Du kan inte skriva ändringar till disk, eftersom du inte är inloggad som admin"
},
"app-rebuild": {
"title": "Återskapa appen",
"rebuild-note-l1": "Appen måste återskapas för att ändringar som skrivits till filen conf.yml ska gälla.",
"rebuild-note-l2": "Detta bör ske automatiskt, men om det inte har gjort det kan du aktivera det manuellt här.",
"rebuild-note-l3": "Detta krävs inte för ändringar som lagras lokalt.",
"rebuild-button": "Återskapa",
"rebuilding-status-1": "Återskapar...",
"rebuilding-status-2": "Detta kan ta några minuter",
"error-permission": "Du har inte behörighet att utföra denna åtgärd",
"success-msg": "Återskapning lyckats",
"fail-msg": "Återskapning misslyckats",
"reload-note": "En omladdning av sidan krävs nu för att ändringarna ska gälla",
"reload-button": "Ladda om sidan"
},
"cloud-sync": {
"title": "Molnsäkerhetskopiering och återställning",
"intro-l1": "Molnsäkerhetskopiering och återställning är en valfri funktion som gör att du kan ladda upp din konfiguration till internet och sedan återställa den på någon annan enhet eller instans av Dashy.",
"intro-l2": "All data är fullständigt end-to-end krypterad med AES, med ditt lösenord som nyckel.",
"intro-l3": "För mer information, vänligen se",
"backup-title-setup": "Gör en säkerhetskopia",
"backup-title-update": "Uppdatera säkerhetskopia",
"password-label-setup": "Välj lösenord",
"password-label-update": "Ange ditt lösenord",
"backup-button-setup": "Säkerhetskopiering",
"backup-button-update": "Uppdatera säkerhetskopia",
"backup-id-label": "Ditt säkerhetskopierings-ID",
"backup-id-note": "Detta används för att återställa från säkerhetskopior senare. Så förvara det tillsammans med ditt lösenord någonstans säkert.",
"restore-title": "Återställ en säkerhetskopia",
"restore-id-label": "Återställ ID",
"restore-password-label": "Lösenord",
"restore-button": "Återställ",
"backup-missing-password": "Lösenord saknas",
"backup-error-unknown": "Begäran kan inte behandlas",
"backup-error-password": "Fel lösenord. Vänligen ange ditt aktuella lösenord.",
"backup-success-msg": "Slutfört utan problem",
"restore-success-msg": "Konfigurationen har återställts utan problem"
},
"menu": {
"open-section-title": "Öppna i",
"sametab": "Denna flik",
"newtab": "Ny flik",
"modal": "Pop-Up Modal",
"workspace": "Workspace-vy",
"options-section-title": "Alternativ",
"edit-item": "Redigera",
"move-item": "Kopiera eller flytta",
"remove-item": "Ta bort"
},
"context-menus": {
"item": {
"open-section-title": "Öppna i",
"sametab": "Denna flik",
"newtab": "Ny flik",
"modal": "Pop-Up Modal",
"workspace": "Workspace View",
"options-section-title": "Alternativ",
"edit-item": "Redigera",
"move-item": "Kopiera eller flytta",
"remove-item": "Ta bort"
},
"section": {
"open-section": "Öppna sektion",
"edit-section": "Redigera",
"move-section": "Flytta till",
"remove-section": "Ta bort"
}
},
"interactive-editor": {
"menu": {
"start-editing-tooltip": "Öppna den interaktiva redigeraren",
"edit-site-data-subheading": "Redigera webbplatsinformation",
"edit-page-info-btn": "Redigera sidinformation",
"edit-page-info-tooltip": "Appnamn, beskrivning, navigeringslänkar, sidfotstext, etc",
"edit-app-config-btn": "Redigera appkonfiguration",
"edit-app-config-tooltip": "Övriga appkonfigurationsalternativ",
"config-save-methods-subheading": "Alternativ för konfigurationssparande",
"save-locally-btn": "Spara lokalt",
"save-locally-tooltip": "Spara konfigurationen lokalt, till webbläsarens lagring. Detta påverkar inte din konfigurationsfil, men ändringarna sparas bara på denna enhet",
"save-disk-btn": "Spara till disk",
"save-disk-tooltip": "Spara konfiguration to conf.yml-filen på disk. Detta kommer att säkerhetskopiera och sedan skriva över din befintliga konfiguration",
"export-config-btn": "Exportera konfiguration",
"export-config-tooltip": "Visa och exportera den nya konfigurationen, antingen till fil eller urklipp",
"cloud-backup-btn": "Säkerhetskopiera till molnet",
"cloud-backup-tooltip": "Spara krypterad säkerhetskopia av konfigurationen i molnet",
"edit-raw-config-btn": "Redigera raw-konfiguration",
"edit-raw-config-tooltip": "Visa och redigera raw-konfiguration via JSON-redigeraren",
"cancel-changes-btn": "Avbryt redigering",
"cancel-changes-tooltip": "Radera nuvarande ändringar och lämna Redigeringsläge. Detta kommer in påverka din sparade konfiguration.",
"edit-mode-name": "Redigeringsläge",
"edit-mode-subtitle": "Du är i Redigeringsläge",
"edit-mode-description": "Detta innebär att du kan göra ändringar i din konfiguration och förhandsgranska resultaten, men tills du sparar kommer inga av dina ändringar att bevaras.",
"save-stage-btn": "Spara",
"cancel-stage-btn": "Avbryt"
},
"edit-section": {
"edit-section-title": "Redigera sektion",
"add-section-title": "Lägg till ny sektion",
"edit-tooltip": "Tryck för att redigera, eller högerklicka för fler alternativ",
"remove-confirm": "Är du säker på att du vill ta bort denna sektion? Denna åtgärd kan ångras senare."
},
"edit-app-config": {
"warning-msg-title": "Fortsätt med försiktighet",
"warning-msg-l1": "Följande alternativ är för avancerade appkonfigurationer.",
"warning-msg-l2": "Om du är osäker på något av fälten, vänligen kolla",
"warning-msg-docs": "dokumentationen",
"warning-msg-l3": "för att undvika oavsiktliga konsekvenser."
},
"export": {
"export-title": "Exportera konfiguration",
"copy-clipboard-btn": "Kopiera till urklipp",
"copy-clipboard-tooltip": "Kopiera alla appkonfigurationer till systemets urklipp i YAML-format",
"download-file-btn": "Ladda ned som fil",
"download-file-tooltip": "Ladda ner alla appkonfigurationer till din enhet som en YAML-fil",
"view-title": "Visa konfiguration"
}
}
}

View File

@ -227,6 +227,9 @@ export default {
};
if (newItem.tags) newItem.tags = strToTags(newItem.tags);
if (newItem.statusCheck) newItem.statusCheck = strToBool(newItem.statusCheck);
if (newItem.statusCheckAllowInsecure) {
newItem.statusCheckAllowInsecure = strToBool(newItem.statusCheckAllowInsecure);
}
// if (newItem.hotkey) newItem.hotkey = parseInt(newItem.hotkey, 10);
return newItem;
},

View File

@ -210,7 +210,7 @@ export default {
},
/* Sorts items alphabetically using the title attribute */
sortAlphabetically(items) {
return items.sort((a, b) => (a.title > b.title ? 1 : -1));
return items.sort((a, b) => (a.title.toLowerCase() > b.title.toLowerCase() ? 1 : -1));
},
/* Sorts items by most used to least used, based on click-count */
sortByMostUsed(items) {

View File

@ -145,13 +145,15 @@
"type": "string",
"enum": [
"local",
"faviconkit",
"google",
"allesedv",
"clearbit",
"webmasterapi",
"allesedv"
"faviconkit",
"duckduckgo",
"yandex",
"google",
"besticon"
],
"default": "faviconkit",
"default": "allesedv",
"description": "Which service to use to resolve favicons. Set to local to do this locally instead"
},
"layout": {
@ -719,4 +721,4 @@
}
}
}
}
}

View File

@ -15,6 +15,7 @@ import pt from '@/assets/locales/pt.json';
import ru from '@/assets/locales/ru.json';
import nb from '@/assets/locales/nb.json';
import pirate from '@/assets/locales/zz-pirate.json';
import sv from '@/assets/locales/sv.json';
// Language data - Next register your language by adding it to this list
export const languages = [
@ -114,6 +115,12 @@ export const languages = [
locale: pirate,
flag: '🏴‍☠️',
},
{ // Swedish
name: 'Svenska',
code: 'sv',
locale: sv,
flag: '🇸🇪',
},
];
/**

View File

@ -111,6 +111,7 @@ export default {
{ label: this.$t('login.remember-me-hour'), time: 14400 * 1000 },
{ label: this.$t('login.remember-me-day'), time: 86400 * 1000 },
{ label: this.$t('login.remember-me-week'), time: 604800 * 1000 },
{ label: this.$t('login.remember-me-long-time'), time: 604800 * 52 * 1000 },
];
},
/* Translations for login response messages */

View File

@ -1134,6 +1134,15 @@
"@sentry/utils" "6.14.1"
tslib "^1.9.3"
"@sentry/hub@6.15.0":
version "6.15.0"
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.15.0.tgz#fb8a91d12fdd2726a884374ea7242f6bbd081d69"
integrity sha512-cUbHPeG6kKpGBaEMgbTWeU03Y1Up5T3urGF+cgtrn80PmPYYSUPvVvWlZQWPb8CJZ1yQ0gySWo5RUTatBFrEHA==
dependencies:
"@sentry/types" "6.15.0"
"@sentry/utils" "6.15.0"
tslib "^1.9.3"
"@sentry/minimal@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.14.1.tgz#6fbce5b873fb096411dbb9a01ff6706ed684f2e8"
@ -1143,15 +1152,24 @@
"@sentry/types" "6.14.1"
tslib "^1.9.3"
"@sentry/tracing@^6.13.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.14.1.tgz#fadea88b505078f61b949ecd99891ddb5538f08e"
integrity sha512-Bv/+S5Wn9OPxP7sA9VYMV1wpmXWptFVIMFoG4BuyV4aFYdIAMxSNE/ktqXwmqn+nkBic04nP9rF6lMJBLIvIaA==
"@sentry/minimal@6.15.0":
version "6.15.0"
resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.15.0.tgz#fcc083ba901cfe57d25303d0b5fa8cd13e164466"
integrity sha512-7RJIvZsjBa1qFUfMrAzQsWdfZT6Gm4t6ZTYfkpsXPBA35hkzglKbBrhhsUvkxGIhUGw/PiCUqxBUjcmzQP0vfg==
dependencies:
"@sentry/hub" "6.14.1"
"@sentry/minimal" "6.14.1"
"@sentry/types" "6.14.1"
"@sentry/utils" "6.14.1"
"@sentry/hub" "6.15.0"
"@sentry/types" "6.15.0"
tslib "^1.9.3"
"@sentry/tracing@^6.14.3":
version "6.15.0"
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.15.0.tgz#5a5f08ee6b9cc1189227536fca053cd23488600d"
integrity sha512-V5unvX8qNEfdawX+m2n0jKgmH/YR2ItWZLH+3UevBTptO+xyfvRtpgGXYWUCo3iGvFgWb1C+iIC7LViR9rTvBg==
dependencies:
"@sentry/hub" "6.15.0"
"@sentry/minimal" "6.15.0"
"@sentry/types" "6.15.0"
"@sentry/utils" "6.15.0"
tslib "^1.9.3"
"@sentry/types@6.14.1":
@ -1159,6 +1177,11 @@
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.14.1.tgz#0d562a7aa91253b7843723344b4ba03a010e6376"
integrity sha512-RIk3ZwQKZnASrYWfV5i4wbzVveHz8xLFAS2ySIMqh+hICKnB0N4/r8a1Of/84j7pj+iAbf5vPS85639eIf+9qg==
"@sentry/types@6.15.0":
version "6.15.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.15.0.tgz#a2917f8aed91471bdfd6651384ffcd47b95c43ad"
integrity sha512-zBw5gPUsofXUSpS3ZAXqRNedLRBvirl3sqkj2Lez7X2EkKRgn5D8m9fQIrig/X3TsKcXUpijDW5Buk5zeCVzJA==
"@sentry/utils@6.14.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.14.1.tgz#cb746858665314c07cfe9b0f307b410e377032ad"
@ -1167,6 +1190,14 @@
"@sentry/types" "6.14.1"
tslib "^1.9.3"
"@sentry/utils@6.15.0":
version "6.15.0"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.15.0.tgz#0c247cb092b1796d39c3d16d8e6977b9cdab9ca2"
integrity sha512-gnhKKyFtnNmKWjDizo7VKD0/Vx8cgW1lCusM6WI7jy2jlO3bQA0+Dzgmr4mIReZ74mq4VpOd2Vfrx7ZldW1DMw==
dependencies:
"@sentry/types" "6.15.0"
tslib "^1.9.3"
"@sentry/vue@^6.13.1":
version "6.14.1"
resolved "https://registry.yarnpkg.com/@sentry/vue/-/vue-6.14.1.tgz#2528d03e2068e28a6a5874f39a5686add509dd55"
@ -1913,7 +1944,7 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.6:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
ajv@^8.0.1, ajv@^8.6.3:
ajv@^8.0.1:
version "8.7.1"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.7.1.tgz#52be6f1736b076074798124293618f132ad07a7e"
integrity sha512-gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==
@ -1923,6 +1954,16 @@ ajv@^8.0.1, ajv@^8.6.3:
require-from-string "^2.0.2"
uri-js "^4.2.2"
ajv@^8.8.1:
version "8.8.2"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.8.2.tgz#01b4fef2007a28bf75f0b7fc009f62679de4abbb"
integrity sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==
dependencies:
fast-deep-equal "^3.1.1"
json-schema-traverse "^1.0.0"
require-from-string "^2.0.2"
uri-js "^4.2.2"
alphanum-sort@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
@ -2206,10 +2247,10 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
axios@^0.23.0:
version "0.23.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149"
integrity sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg==
axios@^0.24.0:
version "0.24.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6"
integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==
dependencies:
follow-redirects "^1.14.4"
@ -8703,10 +8744,10 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
simple-icons@^5.19.0:
version "5.22.0"
resolved "https://registry.yarnpkg.com/simple-icons/-/simple-icons-5.22.0.tgz#c987aeea658828e858b774ab334264dabbe0344c"
integrity sha512-crEorhti73Sh88EZbw9mG/toCEoSQexf8HJCFFloz2V7bP7/lDpgcEmoWrW3SAh9tOQL8sWau4DSSRBVvRIRew==
simple-icons@^5.23.0:
version "5.24.0"
resolved "https://registry.yarnpkg.com/simple-icons/-/simple-icons-5.24.0.tgz#6485a5713c2e5758605b461b833396c4874e9e4d"
integrity sha512-wKHeqUBsHYB5KPqdc3e7BGQPQCx/NbHfJuukjo70ABGk6hegjTDSoJhsSEcVadknVG4W3+jcC3G3RbytJnapGQ==
simple-swizzle@^0.2.2:
version "0.2.2"