From 18a2a2d2bf43087fa3dbf2db6573b64738b0ddf5 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 6 Aug 2021 06:48:49 +0000 Subject: [PATCH 01/42] fix: upgrade ajv from 8.6.1 to 8.6.2 Snyk has created this PR to upgrade ajv from 8.6.1 to 8.6.2. See this package in npm: See this project in Snyk: https://app.snyk.io/org/lissy93/project/564ca11b-8665-48b8-befa-ccd607c3e09a?utm_source=github&utm_medium=upgrade-pr --- package.json | 2 +- yarn.lock | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e40fc224..f99d5802 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "dependencies": { "@sentry/tracing": "^6.10.0", "@sentry/vue": "^6.10.0", - "ajv": "^8.5.0", + "ajv": "^8.6.2", "axios": "^0.21.1", "body-parser": "^1.19.0", "connect": "^3.7.0", diff --git a/yarn.lock b/yarn.lock index e7fba661..7ad78757 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1895,7 +1895,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.5.0: +ajv@^8.0.1: version "8.6.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.1.tgz#ae65764bf1edde8cd861281cda5057852364a295" integrity sha512-42VLtQUOLefAvKFAQIxIZDaThq6om/PrfP0CYk3/vn+y4BMNkKnbli8ON2QCiHov4KkzOSJ/xSoBJdayiiYvVQ== @@ -1905,6 +1905,16 @@ ajv@^8.0.1, ajv@^8.5.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ajv@^8.6.2: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + 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" From a771fe4fc9914ee4677eb8aa8945fd10bc5f1432 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Sun, 8 Aug 2021 22:42:37 +0100 Subject: [PATCH 02/42] :incoming_envelope: Extracts icon CDN endpoints into Defaults --- src/utils/defaults.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/utils/defaults.js b/src/utils/defaults.js index 09f5a2f6..1d731b9e 100644 --- a/src/utils/defaults.js +++ b/src/utils/defaults.js @@ -126,6 +126,15 @@ module.exports = { allesedv: 'https://f1.allesedv.com/128/$URL', webmasterapi: 'https://api.webmasterapi.com/v1/favicon/yEwx0ZFs0CSPshHq/$URL', }, + /* The URL to CDNs used for external icons. These are only loaded when required */ + iconCdns: { + fa: 'https://kit.fontawesome.com', + mdi: 'https://cdn.jsdelivr.net/npm/@mdi/font@5.9.55/css/materialdesignicons.min.css', + si: 'https://unpkg.com/simple-icons@v5/icons', + generative: 'https://ipsicon.io', + localPath: '/item-icons', + faviconName: 'favicon.ico', + }, /* Available built-in colors for the theme builder */ swatches: [ ['#eb5cad', '#985ceb', '#5346f3', '#5c90eb'], From 513be9d662e68ec0d322084234cbfb813192cd33 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Sun, 8 Aug 2021 22:43:37 +0100 Subject: [PATCH 03/42] :zap: Adds efficiency checks to determine which icon CDNs are needed --- src/views/Home.vue | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/src/views/Home.vue b/src/views/Home.vue index d8d56764..42adf811 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -43,7 +43,7 @@ import SettingsContainer from '@/components/Settings/SettingsContainer.vue'; import ItemGroup from '@/components/LinkItems/ItemGroup.vue'; -import Defaults, { localStorageKeys } from '@/utils/defaults'; +import Defaults, { localStorageKeys, iconCdns } from '@/utils/defaults'; export default { name: 'home', @@ -160,16 +160,21 @@ export default { availibleThemes.Default = '#'; return availibleThemes; }, - /* Checks if any of the icons are Font Awesome glyphs */ - checkIfFontAwesomeNeeded() { + /* Checks if any sections or items use icons from a given CDN */ + checkIfIconLibraryNeeded(prefix) { let isNeeded = false; if (!this.sections) return false; this.sections.forEach((section) => { - if (section.icon && section.icon.includes('fa-')) isNeeded = true; + if (section.icon && section.icon.includes(prefix)) isNeeded = true; section.items.forEach((item) => { - if (item.icon && item.icon.includes('fa-')) isNeeded = true; + if (item.icon && item.icon.includes(prefix)) isNeeded = true; }); }); + return isNeeded; + }, + /* Checks if any of the icons are Font Awesome glyphs */ + checkIfFontAwesomeNeeded() { + let isNeeded = this.checkIfIconLibraryNeeded('fa-'); const currentTheme = localStorage[localStorageKeys.THEME]; // Some themes require FA if (['material', 'material-dark'].includes(currentTheme)) isNeeded = true; return isNeeded; @@ -179,10 +184,23 @@ export default { if (this.appConfig.enableFontAwesome || this.checkIfFontAwesomeNeeded()) { const fontAwesomeScript = document.createElement('script'); const faKey = this.appConfig.fontAwesomeKey || Defaults.fontAwesomeKey; - fontAwesomeScript.setAttribute('src', `https://kit.fontawesome.com/${faKey}.js`); + fontAwesomeScript.setAttribute('src', `${iconCdns.fa}/${faKey}.js`); document.head.appendChild(fontAwesomeScript); } }, + /* Checks if any of the icons are Material Design Icons */ + checkIfMdiNeeded() { + return this.checkIfIconLibraryNeeded('mdi-'); + }, + /* Injects Material Design Icons, only if needed */ + initiateMaterialDesignIcons() { + if (this.checkIfMdiNeeded()) { + const mdiStylesheet = document.createElement('link'); + mdiStylesheet.setAttribute('rel', 'stylesheet'); + mdiStylesheet.setAttribute('href', iconCdns.mdi); + document.head.appendChild(mdiStylesheet); + } + }, /* Returns true if there is more than 1 sub-result visible during searching */ checkIfResults() { if (!this.sections) return false; @@ -204,6 +222,7 @@ export default { }, mounted() { this.initiateFontAwesome(); + this.initiateMaterialDesignIcons(); this.layout = this.layoutOrientation; this.itemSizeBound = this.iconSize; }, From 787b7a42c35320e5d3dd0294caba75bdba59cb4a Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Sun, 8 Aug 2021 22:44:27 +0100 Subject: [PATCH 04/42] :sparkles: Re: #139 Adds support for Material-Decison-Icons --- src/components/LinkItems/ItemIcon.vue | 53 ++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/src/components/LinkItems/ItemIcon.vue b/src/components/LinkItems/ItemIcon.vue index d4c5d39e..f2ee84ab 100644 --- a/src/components/LinkItems/ItemIcon.vue +++ b/src/components/LinkItems/ItemIcon.vue @@ -1,10 +1,19 @@ @@ -12,7 +21,7 @@ From 030764c99e3d58d2b09359b1df0051d4aea30db3 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 05:05:22 +0100 Subject: [PATCH 08/42] :construction: Checks if multi-tasking enabled, and loads in correct component --- src/views/Workspace.vue | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/views/Workspace.vue b/src/views/Workspace.vue index 7d384d89..2878885c 100644 --- a/src/views/Workspace.vue +++ b/src/views/Workspace.vue @@ -1,7 +1,8 @@ @@ -9,6 +10,7 @@ import SideBar from '@/components/Workspace/SideBar'; import WebContent from '@/components/Workspace/WebContent'; +import MultiTaskingWebComtent from '@/components/Workspace/MultiTaskingWebComtent'; import Defaults from '@/utils/defaults'; import { GetTheme, ApplyLocalTheme, ApplyCustomVariables } from '@/utils/ThemeHelper'; @@ -24,9 +26,15 @@ export default { ApplyLocalTheme, ApplyCustomVariables, }), + computed: { + isMultiTaskingEnabled() { + return this.appConfig.enableMultiTasking || false; + }, + }, components: { SideBar, WebContent, + MultiTaskingWebComtent, }, methods: { launchApp(url) { From 6f3c9d36a183b0cb1e663c67deb30ccd6c3a2545 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 05:06:42 +0100 Subject: [PATCH 09/42] :card_file_box: Adds new option to config, enableMultiTasking If set to true, will keep apps open in the background when in the workspace view. Useful for quickly switching between multiple sites, and preserving their state, but comes at the cost of performance. --- docs/configuring.md | 1 + src/utils/ConfigSchema.json | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/docs/configuring.md b/docs/configuring.md index 900184a5..b763c2a1 100644 --- a/docs/configuring.md +++ b/docs/configuring.md @@ -72,6 +72,7 @@ To disallow any changes from being written to disk via the UI config editor, set **`externalStyleSheet`** | `string` or `string[]` | _Optional_ | Either a URL to an external stylesheet or an array or URLs, which can be applied as themes within the UI **`customCss`** | `string` | _Optional_ | Raw CSS that will be applied to the page. This can also be set from the UI. Please minify it first. **`hideComponents`** | `object` | _Optional_ | A list of key page components (header, footer, search, settings, etc) that are present by default, but can be removed using this option. See [`appConfig.hideComponents`](#appconfighideComponents-optional) +**`enableMultiTasking`** | `boolean` | _Optional_ | If set to true, will keep apps open in the background when in the workspace view. Useful for quickly switching between multiple sites, and preserving their state, but comes at the cost of performance. **`allowConfigEdit`** | `boolean` | _Optional_ | Should prevent / allow the user to write configuration changes to the conf.yml from the UI. When set to `false`, the user can only apply changes locally using the config editor within the app, whereas if set to `true` then changes can be written to disk directly through the UI. Defaults to `true`. Note that if authentication is enabled, the user must be of type `admin` in order to apply changes globally. **`enableErrorReporting`** | `boolean` | _Optional_ | Enable reporting of unexpected errors and crashes. This is off by default, and **no data will ever be captured unless you explicitly enable it**. Turning on error reporting helps previously unknown bugs get discovered and fixed. Dashy uses [Sentry](https://github.com/getsentry/sentry) for error reporting. Defaults to `false`. **`sentryDsn`** | `boolean` | _Optional_ | If you need to monitor errors in your instance, then you can use Sentry to collect and process bug reports. Sentry can be self-hosted, or used as SaaS, once your instance is setup, then all you need to do is pass in the DSN here, and enable error reporting. You can learn more on the [Sentry DSN Docs](https://docs.sentry.io/product/sentry-basics/dsn-explainer/). Note that this will only ever be used if `enableErrorReporting` is explicitly enabled. diff --git a/src/utils/ConfigSchema.json b/src/utils/ConfigSchema.json index 129445db..2bd605a5 100644 --- a/src/utils/ConfigSchema.json +++ b/src/utils/ConfigSchema.json @@ -239,6 +239,11 @@ } } }, + "enableMultiTasking": { + "type": "boolean", + "default": false, + "description": "If set to true, will keep apps opened in the workspace open in the background. Useful for switching between sites, but comes at the cost of performance" + }, "allowConfigEdit": { "type": "boolean", "default": true, From 97d27ea9f47263ffda837ae72847d76d515054a7 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 17:23:22 +0100 Subject: [PATCH 10/42] =?UTF-8?q?=F0=9F=91=B7=20Starts=20the=20action=20to?= =?UTF-8?q?=20sync=20deploy=5Fcloudflare?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/sync-deployment-branches.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/sync-deployment-branches.yml diff --git a/.github/sync-deployment-branches.yml b/.github/sync-deployment-branches.yml new file mode 100644 index 00000000..9bc71d77 --- /dev/null +++ b/.github/sync-deployment-branches.yml @@ -0,0 +1,24 @@ +# Action to keep cloud-specific, deployment-ready branched in sync with master +name: Sync Deployment Branches +on: + workflow_dispatch: # Manual dispatch + schedule: + - cron: '0 1 * * 0' # At 01:00 on Sunday. +jobs: + sync-deploy-cloudflare: + runs-on: ubuntu-latest + name: Sync latest commits from master + steps: + - name: Checkout master + uses: actions/checkout@v2 + with: + ref: master + - name: Pull master into deploy Cloudflare branch + id: sync + uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 + with: + target_sync_branch: deploy_cloudflare + target_repo_token: ${{ secrets.GITHUB_TOKEN }} + upstream_sync_branch: master + upstream_sync_repo: lissy93/dashy + upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} From a4db685e36d39c2193f106398700af532df16803 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 17:42:30 +0100 Subject: [PATCH 11/42] =?UTF-8?q?=F0=9F=91=B7=20Moves=20to=20workflow=20di?= =?UTF-8?q?r,=20and=20adds=20for=20other=20services?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/sync-deployment-branches.yml | 24 ------ .../workflows/sync-deployment-branches.yml | 79 +++++++++++++++++++ 2 files changed, 79 insertions(+), 24 deletions(-) delete mode 100644 .github/sync-deployment-branches.yml create mode 100644 .github/workflows/sync-deployment-branches.yml diff --git a/.github/sync-deployment-branches.yml b/.github/sync-deployment-branches.yml deleted file mode 100644 index 9bc71d77..00000000 --- a/.github/sync-deployment-branches.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Action to keep cloud-specific, deployment-ready branched in sync with master -name: Sync Deployment Branches -on: - workflow_dispatch: # Manual dispatch - schedule: - - cron: '0 1 * * 0' # At 01:00 on Sunday. -jobs: - sync-deploy-cloudflare: - runs-on: ubuntu-latest - name: Sync latest commits from master - steps: - - name: Checkout master - uses: actions/checkout@v2 - with: - ref: master - - name: Pull master into deploy Cloudflare branch - id: sync - uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 - with: - target_sync_branch: deploy_cloudflare - target_repo_token: ${{ secrets.GITHUB_TOKEN }} - upstream_sync_branch: master - upstream_sync_repo: lissy93/dashy - upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/sync-deployment-branches.yml b/.github/workflows/sync-deployment-branches.yml new file mode 100644 index 00000000..bd44850d --- /dev/null +++ b/.github/workflows/sync-deployment-branches.yml @@ -0,0 +1,79 @@ +# Action to keep cloud-specific, deployment-ready branched in sync with master +name: Sync Deployment Branches +on: + workflow_dispatch: # Manual dispatch + schedule: + - cron: '0 1 * * 0' # At 01:00 on Sunday. +jobs: + sync-deploy-cloudflare: + runs-on: ubuntu-latest + name: Sync latest commits from master + steps: + - name: Checkout master + uses: actions/checkout@v2 + with: + ref: master + - name: Pull master into deploy Cloudflare branch + id: sync + uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 + with: + target_sync_branch: deploy_cloudflare + target_repo_token: ${{ secrets.GITHUB_TOKEN }} + upstream_sync_branch: master + upstream_sync_repo: lissy93/dashy + upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} + + sync-deploy-platform-sh: + runs-on: ubuntu-latest + name: Sync master with Platform SH branch + steps: + - name: Checkout master + uses: actions/checkout@v2 + with: + ref: master + - name: Pull master into deploy Platform SH branch + id: sync-psh + uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 + with: + target_sync_branch: deploy_platform-sh + target_repo_token: ${{ secrets.GITHUB_TOKEN }} + upstream_sync_branch: master + upstream_sync_repo: lissy93/dashy + upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} + + sync-deploy-digital-ocean: + runs-on: ubuntu-latest + name: Sync master with Digital Ocean branch + steps: + - name: Checkout master + uses: actions/checkout@v2 + with: + ref: master + - name: Pull master into deploy Digital Ocean branch + id: sync-do + uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 + with: + target_sync_branch: deploy_digital-ocean + target_repo_token: ${{ secrets.GITHUB_TOKEN }} + upstream_sync_branch: master + upstream_sync_repo: lissy93/dashy + upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} + + sync-deploy-render: + runs-on: ubuntu-latest + name: Sync master with Render branch + steps: + - name: Checkout master + uses: actions/checkout@v2 + with: + ref: master + - name: Pull master into deploy Render branch + id: sync-render + uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 + with: + target_sync_branch: deploy_render + target_repo_token: ${{ secrets.GITHUB_TOKEN }} + upstream_sync_branch: master + upstream_sync_repo: lissy93/dashy + upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} + From e2b8db571262b8ce2287f2819bd52e3cc902eee4 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 17:43:58 +0100 Subject: [PATCH 12/42] =?UTF-8?q?=F0=9F=9A=A8=20Fixes=20indentation=20erro?= =?UTF-8?q?rs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sync-deployment-branches.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-deployment-branches.yml b/.github/workflows/sync-deployment-branches.yml index bd44850d..82d61122 100644 --- a/.github/workflows/sync-deployment-branches.yml +++ b/.github/workflows/sync-deployment-branches.yml @@ -41,7 +41,7 @@ jobs: upstream_sync_repo: lissy93/dashy upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} - sync-deploy-digital-ocean: + sync-deploy-digital-ocean: runs-on: ubuntu-latest name: Sync master with Digital Ocean branch steps: @@ -59,7 +59,7 @@ jobs: upstream_sync_repo: lissy93/dashy upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} - sync-deploy-render: + sync-deploy-render: runs-on: ubuntu-latest name: Sync master with Render branch steps: From 21509c727d42863a710c6a507ceca6a848d70b96 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 20:51:41 +0100 Subject: [PATCH 13/42] :sparkles: Implements multi-tasking functionality in Workspace view --- .../Workspace/MultiTaskingWebComtent.vue | 25 +++++++++++-------- src/components/Workspace/SideBarItem.vue | 6 ++--- src/components/Workspace/WebContent.vue | 12 ++++++--- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/components/Workspace/MultiTaskingWebComtent.vue b/src/components/Workspace/MultiTaskingWebComtent.vue index 2be51dd5..268bf54d 100644 --- a/src/components/Workspace/MultiTaskingWebComtent.vue +++ b/src/components/Workspace/MultiTaskingWebComtent.vue @@ -1,7 +1,5 @@ From 01dfa5771da38723c97133b33198800b81f71bb3 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 21:06:20 +0100 Subject: [PATCH 14/42] :bookmark: Bumps to V 1.5.8 and updates changelog, Multi-tasking support --- .github/CHANGELOG.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md index 001b7b16..b04d0a7c 100644 --- a/.github/CHANGELOG.md +++ b/.github/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## ✨ 1.5.8 - Multi-Tasking Support in Workspace View [PR #146](https://github.com/Lissy93/dashy/pull/146) +- Adds option to keep launched apps open in the background, to reduce friction when switching between websites, Re: #144 +- This can be enabled by setting `appConfig.enableMultiTasking: true` +- Note that having many apps opened simultaneously, will have an impact on performance + ## ✨ 1.5.7 - Adds Support for Material Design Icons [PR #141](https://github.com/Lissy93/dashy/pull/141) - Enables user to use any icon from [materialdesignicons.com](https://dev.materialdesignicons.com/icons), Re: #139 - Also adds support for [simpleicons.org](https://simpleicons.org/) diff --git a/package.json b/package.json index 5854b783..d8394dc3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Dashy", - "version": "1.5.7", + "version": "1.5.8", "license": "MIT", "main": "server", "scripts": { From c8df32817801941732ed0780a2d3753d234e0d6a Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Wed, 11 Aug 2021 21:19:36 +0100 Subject: [PATCH 15/42] :bug: Open in workspace when target set, Fixes #143 --- src/components/LinkItems/Item.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/LinkItems/Item.vue b/src/components/LinkItems/Item.vue index 7234c1fd..f4a433c6 100644 --- a/src/components/LinkItems/Item.vue +++ b/src/components/LinkItems/Item.vue @@ -3,7 +3,7 @@ Date: Wed, 11 Aug 2021 21:29:09 +0100 Subject: [PATCH 16/42] :whale: Re: #136 - Sets Docker base to alpine3.14 LTS --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9cde9c99..3539bd9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:lts-alpine +FROM node:lts-alpine3.14 # Define some ENV Vars ENV PORT=80 \ From 395eafa3a67977831db18241781caf4c2cb36792 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 11:17:26 +0100 Subject: [PATCH 17/42] Create CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..d21413c4 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +dashy.to \ No newline at end of file From e8aa0888f8a5080809fea049cf76557318175d28 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 17:35:54 +0100 Subject: [PATCH 18/42] =?UTF-8?q?=F0=9F=93=9D=20Adds=20a=20Quick-Start=20G?= =?UTF-8?q?uide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/quick-start.md | 106 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 docs/quick-start.md diff --git a/docs/quick-start.md b/docs/quick-start.md new file mode 100644 index 00000000..b2925a24 --- /dev/null +++ b/docs/quick-start.md @@ -0,0 +1,106 @@ +# Quick Start + +Welcome to Dashy! So glad you're here 😊 In a couple of minutes, you'll have your new dashboard up and running 🚀 + +**TDLR;** Run `docker run -p 8080:80 lissy93/dashy`, then open `http://localhost:8080` + +--- + +## 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/). +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). + +--- + +## 2. Installation + +To pull the latest image, and build and start the app run: +``` +docker run -d \ + -p 8080:80 \ + --name my-dashboard \ + --restart=always \ + lissy93/dashy:latest +``` + +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. + +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 build will may take a few minutes + +--- + +## 3. Configure + +Now that you've got Dashy running, you are going to want to set it up with your own content. +Config is written in [YAML Format](https://yaml.org/), and saved in [`/public/conf.yml`](https://github.com/Lissy93/dashy/blob/master/public/conf.yml). +The format on the config file is pretty straight forward. There are three root attributes: +- [`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 + + +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). + +```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: +- You can use a Docker volume to pass a config file from your host system to the container + - E.g. `-v ./host-system/my-local-conf.yml:/app/public/conf.yml` +- 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) +- After editing your config, the app will rebuild in the background, which may take a minute + +--- + +## 4. Further Customisation + +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). + + +You might also want to check out the docs for specific features you'd like to use: +- [Authentication](/docs/authentication.md) - Setting up authentication to protect your dashboard +- [Backup & Restore](/docs/backup-restore.md) - Guide to Dashy's cloud sync feature +- [Icons](/docs/icons.md) - Outline of all available icon types for sections and items +- [Localisation](/docs/multi-language-support.md) - How to change language, or add your own +- [Status Indicators](/docs/status-indicators.md) - Using Dashy to monitor uptime and status of your apps +- [Theming](/docs/theming.md) - Complete guide to applying, writing and modifying themes and styles + +--- + +## 5. Final Note + +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). There are a few things that we really need some help with, and whatever your skill set, there are ways you can help out. Any contributions, however small would be greatly appreciated. +Thank you to [everyone](https://github.com/Lissy93/dashy/blob/master/docs/credits.md) who is already doing so, without developing and maintaining Dashy would not have been so possible. + +You can also consider sharing your dashboard in the [Showcase](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md), to help provide inspiration for others. + +For more info, check out the [Documentation](https://github.com/Lissy93/dashy/tree/master/docs#readme). If you've got any questions feel free to ask in the [Discussion](https://github.com/Lissy93/dashy/discussions), and if you think you've found a bug you can [raise an issue](https://github.com/Lissy93/dashy/issues/new/choose) to get it fixed. + +Enjoy your dashboard :) + +--- From 8c3c011480cef79061f7a870074fd339f2ae21a0 Mon Sep 17 00:00:00 2001 From: EVOTk <45015615+EVOTk@users.noreply.github.com> Date: Thu, 12 Aug 2021 19:00:25 +0200 Subject: [PATCH 19/42] Update en.json --- src/assets/locales/en.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/assets/locales/en.json b/src/assets/locales/en.json index f52aa0ab..0132e315 100644 --- a/src/assets/locales/en.json +++ b/src/assets/locales/en.json @@ -147,5 +147,11 @@ "backup-error-password": "Incorrect password. Please enter your current password.", "backup-success-msg": "Completed Successfully", "restore-success-msg": "Config Restored Successfully" + }, + "menu": { + "sametab": "Open in Current Tab", + "newtab": "Open in New Tab", + "modal": "Open in Pop-Up Modal", + "workspace": "Open in Workspace View" } -} \ No newline at end of file +} From a89f1dabbad7161da875c071828327711b01b1d1 Mon Sep 17 00:00:00 2001 From: EVOTk <45015615+EVOTk@users.noreply.github.com> Date: Thu, 12 Aug 2021 19:01:42 +0200 Subject: [PATCH 20/42] Update ContextMenu.vue --- src/components/LinkItems/ContextMenu.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/LinkItems/ContextMenu.vue b/src/components/LinkItems/ContextMenu.vue index 3e8de908..68349c24 100644 --- a/src/components/LinkItems/ContextMenu.vue +++ b/src/components/LinkItems/ContextMenu.vue @@ -5,19 +5,19 @@
  • - Open in Current Tab + {{ $t('menu.sametab') }}
  • - Open in New Tab + {{ $t('menu.newtab') }}
  • - Open in Pop-Up Modal + {{ $t('menu.modal') }}
  • - Open in Workspace View + {{ $t('menu.workspace') }}
From e8d3a90c6237b7a72a70afb59425ab61f0e19571 Mon Sep 17 00:00:00 2001 From: EVOTk <45015615+EVOTk@users.noreply.github.com> Date: Thu, 12 Aug 2021 19:21:23 +0200 Subject: [PATCH 21/42] Update fr.json --- src/assets/locales/fr.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/assets/locales/fr.json b/src/assets/locales/fr.json index 6d89e834..271343a1 100644 --- a/src/assets/locales/fr.json +++ b/src/assets/locales/fr.json @@ -147,5 +147,11 @@ "backup-error-password": "Mot de passe incorrect. Veuillez saisir votre mot de passe actuel.", "backup-success-msg": "Sauvegarde effectuée avec succès", "restore-success-msg": "Configuration restaurée avec succès" + }, + "menu": { + "sametab": "Ouvrir dans l'onglet actuel", + "newtab": "Ouvrir dans un nouvel onglet", + "modal": "Ouvrir en mode fenêtré", + "workspace": "Ouvrir en mode plein écran" } } From d1177873d6f0f28448bc620dc2dea80c3895bcb7 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 21:27:50 +0100 Subject: [PATCH 22/42] :memo: Re: #149 - Adds X-Frame-Options fix instructions --- docs/troubleshooting.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index dee14a41..5a376aa2 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -2,7 +2,7 @@ This document contains common problems and their solutions. -### Yarn Error +## Yarn Error For more info, see [Issue #1](https://github.com/Lissy93/dashy/issues/1) @@ -18,3 +18,35 @@ Alternatively, as a workaround, you have several options: - Try using [NPM](https://www.npmjs.com/get-npm) instead: So clone, cd, then run `npm install`, `npm run build` and `npm start` - Try using [Docker](https://www.docker.com/get-started) instead, and all of the system setup and dependencies will already be taken care of. So from within the directory, just run `docker build -t lissy93/dashy .` to build, and then use docker start to run the project, e.g: `docker run -it -p 8080:80 lissy93/dashy` (see the [deploying docs](https://github.com/Lissy93/dashy/blob/master/docs/deployment.md#deploy-with-docker) for more info) +--- +## `Refused to Connect` in Modal or Workspace View + +This is not an issue with Dashy, but instead caused by the target app preventing direct access through embedded elements. It can be fixed by setting the [`X-Frame-Options`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) HTTP header set to `ALLOW [path to Dashy]` or `SAMEORIGIN`, as defined in [RFC-7034](https://datatracker.ietf.org/doc/html/rfc7034). These settings are usually set in the config file for the web server that's hosting the target application, here are some examples of how to enable cross-origin access with common web servers: + +### NGINX +In NGINX, you can use the [`add_header`](https://nginx.org/en/docs/http/ngx_http_headers_module.html) module within the app block. +``` +server { + ... + add_header X-Frame-Options SAMEORIGIN always; +} +``` +Then reload with `service nginx reload` + +### Caddy + +In Caddy, you can use the [`header`](https://caddyserver.com/docs/caddyfile/directives/header) directive. + +```yaml +header { + X-Frame-Options SAMEORIGIN +} +``` + +### Apache + +In Apache, you can use the [`mod_headers`](https://httpd.apache.org/docs/current/mod/mod_headers.html) module to set the `X-Frame-Options` in your config file. This file is usually located somewhere like `/etc/apache2/httpd.conf + +``` +Header set X-Frame-Options: "ALLOW-FROM http://[dashy-location]/" +``` From da2f93e3372392ad0678577f264c0a04acb2101f Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 22:31:54 +0100 Subject: [PATCH 23/42] :construction_worker: Updates Credits action --- .github/workflows/generate-credits.yml | 46 ++++++++++++++++---------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/.github/workflows/generate-credits.yml b/.github/workflows/generate-credits.yml index 821ba113..e2848d60 100644 --- a/.github/workflows/generate-credits.yml +++ b/.github/workflows/generate-credits.yml @@ -6,23 +6,7 @@ on: schedule: - cron: '0 1 * * 0' # At 01:00 on Sunday. jobs: - # Job #1 - Update the Credits page - insert-credits: - runs-on: ubuntu-latest - name: Inserts contributors into credits.md - steps: - - name: Contribute List - uses: akhilmhdh/contributors-readme-action@v2.2 - env: - GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} - with: - image_size: 80 - readme_path: docs/credits.md - columns_per_row: 6 - commit_message: ':yellow_heart: Updates contributors list' - committer_username: liss-bot - committer_email: liss-bot@d0h.co - # Job #2 - Generate an embedded SVG asset, showing all contributors + # Job #1 - Generate an embedded SVG asset, showing all contributors generate-contributors: runs-on: ubuntu-latest steps: @@ -37,4 +21,32 @@ jobs: userNameHeight: 20 svgWidth: 830 commitMessage: ':blue_heart: Updates contributor SVG' + # Job #2 - Update the Credits page + insert-credits: + runs-on: ubuntu-latest + name: Inserts contributors into credits.md + steps: + - name: Contribute List - Credits Page + uses: akhilmhdh/contributors-readme-action@v2.2 + env: + GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} + with: + image_size: 80 + readme_path: docs/credits.md + columns_per_row: 6 + commit_message: ':purple_heart: Updates contributors list' + committer_username: liss-bot + committer_email: liss-bot@d0h.co + - name: Sponsors List - Readme + uses: akhilmhdh/contributors-readme-action@v2.2 + env: + GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} + with: + image_size: 80 + readme_path: README.md + columns_per_row: 6 + commit_message: ':yellow_heart: Updates sponsors table' + committer_username: liss-bot + committer_email: liss-bot@d0h.co + From 300febd5500a6d8c7adbb817ecd5a1f6a895dd15 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 22:36:48 +0100 Subject: [PATCH 24/42] :memo: Adds custom 1-click deploy buttons --- docs/deployment.md | 60 +++++++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/docs/deployment.md b/docs/deployment.md index cc5c3ad2..db24ffbb 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -3,7 +3,7 @@ Welcome to Dashy, so glad you're here :) Deployment is super easy, and there are several methods available depending on what type of system you're using. If you're self-hosting, then deploying with Docker (or similar container engine) is the recommended approach. #### Quick Start -If you want to skip the fuss, and get straight down to it, then you can spin up a new instance of Dashy by running: +If you want to skip the fuss, and [get straight down to it](./docs/quick-start.md), then you can spin up a new instance of Dashy by running: ``` docker run -p 8080:80 lissy93/dashy ``` @@ -25,7 +25,18 @@ Once you've got Dashy up and running, you'll want to configure it with your own ### Deploy with Docker -[![Dashy on Docker Hub](https://dockeri.co/image/lissy93/dashy)](https://hub.docker.com/r/lissy93/dashy) +**Container Info**: [ +![Docker Supported Architecture](https://img.shields.io/badge/Architectures-amd64%20|%20arm32v7%20|%20arm64v8-6ba6e5) +![Docker Base Image](https://img.shields.io/badge/Base_Image-Alpine_3.14-6ba6e5) +![Docker Hosted on](https://img.shields.io/badge/Hosted_on-DockerHub-6ba6e5) +](https://hub.docker.com/r/lissy93/dashy)
+**Status**: [ +![Docker Build Status](https://img.shields.io/docker/cloud/build/lissy93/dashy?label=Docker%20Build) +![Docker Pulls](https://img.shields.io/docker/pulls/lissy93/dashy?color=ecb2f7) +![Docker Stars](https://img.shields.io/docker/stars/lissy93/dashy?color=f7f754&label=Docker%20Stars) +![Docker Image Size](https://img.shields.io/docker/image-size/lissy93/dashy/latest?color=1eea76) +![Docker Cloud Build](https://img.shields.io/docker/cloud/automated/lissy93/dashy?color=f4a966&label=Docker%20Build) +](https://hub.docker.com/r/lissy93/dashy) Dashy has a built container image hosted on [Docker Hub](https://hub.docker.com/r/lissy93/dashy). You will need [Docker](https://docs.docker.com/get-docker/) installed on your system. @@ -108,8 +119,8 @@ Some hosting providers required a bit of extra configuration, which was why I've **Note** If you use a static hosting provider, then status checks, writing new config changes to disk from the UI, and triggering a rebuild through the UI will not be availible. This is because these features need endpoints provided by Dashy's local Node server. Everything else should work just the same though. -#### Netlify -[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy) +#### Netlify +[![Deploy to Netlify](https://i.ibb.co/GtKMysT/deploy-netlify-button.png)](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy) [Netlify](https://www.netlify.com/) offers Git-based serverless cloud hosting for web applications. Their services are free to use for personal use, and they support deployment from both public and private repos, as well as direct file upload. The free plan also allows you to use your own custom domain or sub-domain, and is easy to setup. @@ -118,8 +129,8 @@ To deploy Dashy to Netlify, use the following link https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy ``` -#### Heroku -[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/Lissy93/dashy) +#### Heroku +[![Deploy to Heroku](https://i.ibb.co/GdMFzBP/deploy-heroku-button.png)](https://heroku.com/deploy?template=https://github.com/Lissy93/dashy) [Heroku](https://www.heroku.com/) is a fully managed cloud platform as a service. You define app settings in a Procfile and app.json, which specifying how the app should be build and how the server should be started. Heroku is free to use for unlimited, non-commercial, single dyno apps, and supports custom domains. Heroku's single-dyno service is not as quite performant as some other providers, and the app will have a short wake-up time when not visited for a while @@ -128,8 +139,8 @@ To deploy Dashy to Heroku, use the following link https://heroku.com/deploy?template=https://github.com/Lissy93/dashy ``` -#### Cloudflare Workers -[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/lissy93/dashy/tree/deploy_cloudflare) +#### Cloudflare Workers +[![Deploy to Cloudflare Workers](https://i.ibb.co/jf9xVdm/deploy-cloudflare-button.png)](https://deploy.workers.cloudflare.com/?url=https://github.com/lissy93/dashy/tree/deploy_cloudflare) [Cloudflare Workers](https://workers.cloudflare.com/) is a simple yet powerful service for running cloud functions and hosting web content. It requires a Cloudflare account, but is completely free for smaller projects, and very reasonably priced ($0.15/million requests per month) for large applications. You can use your own domain, and applications are protected with Cloudflare's state of the art DDoS protection. For more info, see the docs on [Worker Sites](https://developers.cloudflare.com/workers/platform/sites) @@ -138,8 +149,8 @@ To deploy Dashy to Cloudflare, use the following link https://deploy.workers.cloudflare.com/?url=https://github.com/lissy93/dashy/tree/deploy_cloudflare ``` -#### Vercel -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/project?template=https://github.com/lissy93/dashy) +#### Vercel +[![Deploy with Vercel](https://i.ibb.co/mJF3R7m/deploy-vercel-button.png)](https://vercel.com/new/project?template=https://github.com/lissy93/dashy) [Vercel](https://vercel.com/) is a performance-focused platform for hosting static frontend apps. It comes bundled with some useful tools for monitoring and anaylzing application performance and other metrics. Vercel is free for personal use, allows for custom domains and has very reasonable limits. @@ -148,8 +159,8 @@ To deploy Dashy to Vercel, use the following link https://vercel.com/new/project?template=https://github.com/lissy93/dashy ``` -#### DigitalOcean -[![Deploy to DO](https://www.deploytodo.com/do-btn-blue.svg)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/lissy93/dashy/tree/deploy_digital-ocean&refcode=3838338e7f79) +#### DigitalOcean +[![Deploy to DO](https://i.ibb.co/PFt0PkB/deploy-digital-ocean-button.png)](https://cloud.digitalocean.com/apps/new?repo=https://github.com/lissy93/dashy/tree/deploy_digital-ocean&refcode=3838338e7f79) [DigitalOcan](https://www.digitalocean.com/) is a cloud service providing affordable developer-friendly virtual machines from $5/month. But they also have an app platform, where you can run web apps, static sites, APIs and background workers. CDN-backed static sites are free for personal use. @@ -157,8 +168,8 @@ https://vercel.com/new/project?template=https://github.com/lissy93/dashy https://cloud.digitalocean.com/apps/new?repo=https://github.com/lissy93/dashy/tree/deploy_digital-ocean ``` -#### Google Cloud Platform -[![Run on Google Cloud](https://deploy.cloud.run/button.svg)](https://deploy.cloud.run/?git_repo=https://github.com/lissy93/dashy.git) +#### Google Cloud Platform +[![Run on Google Cloud](https://i.ibb.co/LkvHttd/deploy-google-cloud-button.png)](https://deploy.cloud.run/?git_repo=https://github.com/lissy93/dashy.git) [Cloud Run](https://cloud.google.com/run/) is a service offered by [Google Cloud](https://cloud.google.com/). It's a fully managed serverless platform, for developing and deploying highly scalable containerized applications. Similar to AWS and Azure, GCP offers a wide range of cloud services, which are billed on a pay‐per‐use basis, but Cloud Run has a [free tier](https://cloud.google.com/run/pricing) offering 180,000 vCPU-seconds, 360,000 GiB-seconds, and 2 million requests per month. @@ -167,8 +178,8 @@ To deploy Dashy to GCP, use the following link https://deploy.cloud.run/?git_repo=https://github.com/lissy93/dashy.git ``` -#### Platform.sh -[![Deploy to Platform.sh](https://platform.sh/images/deploy/deploy-button-lg-blue.svg)](https://console.platform.sh/projects/create-project/?template=https://github.com/lissy93/dashy&utm_campaign=deploy_on_platform?utm_medium=button&utm_source=affiliate_links&utm_content=https://github.com/lissy93/dashy) +#### Platform.sh +[![Deploy to Platform.sh](https://i.ibb.co/nPnJgJP/deploy-platform-sh-button.png)](https://console.platform.sh/projects/create-project/?template=https://github.com/lissy93/dashy&utm_campaign=deploy_on_platform?utm_medium=button&utm_source=affiliate_links&utm_content=https://github.com/lissy93/dashy) [Platform.sh](https://platform.sh) is an end-to-end solution for developing and deploying applications. It is geared towards enterprise users with large teams, and focuses on allowing applications to scale up and down. Unlike the above providers, Platform.sh is not free, although you can deploy a test app to it without needing a payment method @@ -177,8 +188,8 @@ To deploy Dashy to Platform.sh, use the following link https://console.platform.sh/projects/create-project/?template=https://github.com/lissy93/dashy ``` -#### Render -[![Deploy to Render](https://render.com/images/deploy-to-render-button.svg)](https://render.com/deploy?repo=https://github.com/lissy93/dashy/tree/deploy_render) +#### Render +[![Deploy to Render](https://i.ibb.co/QXNCbxT/deploy-render-button.png)](https://render.com/deploy?repo=https://github.com/lissy93/dashy/tree/deploy_render) [Render](https://render.com) is cloud provider that provides easy deployments for static sites, Docker apps, web services, databases and background workers. Render is great for developing applications, and very easy to use. Static sites are free, and services start at $7/month. Currently there are only 2 server locations - Oregon, USA and Frankfurt, Germany. For more info, see the [Render Docs](https://render.com/docs) @@ -187,8 +198,8 @@ To deploy Dashy to Render, use the following link https://render.com/deploy?repo=https://github.com/lissy93/dashy/tree/deploy_render ``` -#### Scalingo -[![Deploy on Scalingo](https://cdn.scalingo.com/deploy/button.svg)](https://my.scalingo.com/deploy?source=https://github.com/lissy93/dashy#master) +#### Scalingo +[![Deploy on Scalingo](https://i.ibb.co/nj0KxyH/deploy-scalingo-button.png)](https://my.scalingo.com/deploy?source=https://github.com/lissy93/dashy#master) [Scalingo](https://scalingo.com/) is a scalable container-based cloud platform as a service. It's focus is on compliance and uptime, and is geared towards enterprise users. Scalingo is also not free, although they do have a 3-day free trial that does not require a payment method @@ -197,8 +208,8 @@ To deploy Dashy to Scalingo, use the following link https://my.scalingo.com/deploy?source=https://github.com/lissy93/dashy#master ``` -#### Play-with-Docker -[![Try in PWD](https://raw.githubusercontent.com/play-with-docker/stacks/cff22438/assets/images/button.png)](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml) +#### Play-with-Docker +[![Try in PWD](https://i.ibb.co/SfbH7Zy/deploy-pwd-button.png)](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml) [Play with Docker](https://labs.play-with-docker.com/) is a community project by Marcos Liljedhal and Jonathan Leibiusky and sponsored by Docker, intended to provide a hands-on learning environment. Their labs let you quickly spin up a Docker container or stack, and test out the image in a temporary, sandboxed environment. There's no need to sign up, and it's completely free. @@ -207,9 +218,10 @@ To run Dashy in PWD, use the following URL: https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml ``` -#### Surge.sh -[Surge.sh](http://surge.sh/) is quick and easy static web publishing platform for frontend-apps. +#### Surge.sh +![Follow instructions below](https://i.ibb.co/XkcKzKz/deploy-surge-button.png) +[Surge.sh](http://surge.sh/) is quick and easy static web publishing platform for frontend-apps. Surge supports [password-protected projects](https://surge.sh/help/adding-password-protection-to-a-project). You can also [add a custom domain](https://surge.sh/help/adding-a-custom-domain) and then [force HTTPS by default](https://surge.sh/help/using-https-by-default) and optionally [set a custom SSL certificate](https://surge.sh/help/securing-your-custom-domain-with-ssl) To deploy Dashy to Surge.sh, first clone and cd into Dashy, install dependencies, and then use the following commands From 1ed3ed1af12355ece82253e0741a59d3ce9b2771 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 22:37:34 +0100 Subject: [PATCH 25/42] :memo: Adds Smashing as an alternative, and adds Open in VS Code button --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ee7eb85f..0c2feb07 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,7 @@ #### Spin up your own Demo - 1-Click Deploy: [![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 on your own machine: `docker run -p 8080:80 lissy93/dashy` + - See the [Quick Start Guide](./docs/quick-start.md) for getting Dashy up and running in under 5 minutes #### Recording

@@ -123,6 +124,8 @@ docker run -d \ If you prefer to use Docker Compose, [here is an example](./docs/deployment.md#using-docker-compose). +[![Dashy on Docker Hub](https://dockeri.co/image/lissy93/dashy)](https://hub.docker.com/r/lissy93/dashy) + > Once you've got Dashy running, you can take a look at [App Management Docs](./docs/management.md), for info on using health checks, provisioning assets, configuring web servers, securing your app, logs, performance and more. ### Deploying from Source 🚀 @@ -157,11 +160,11 @@ Dashy supports 1-Click deployments on several popular cloud platforms. To spin u > For full configuration documentation, see: [**Configuring**](./docs/configuring.md) -All of Dashy's configuration is specified in a single [YAML](https://yaml.org/) file, located at `./public/conf.yml` (or `./app/public/conf.yml` for Docker). You can find a complete list of available options in th [Configuring Docs](/docs/configuring.md). If you're using Docker, you'll probably want to pass this file in as a Docker volume (e.g. `-v /root/my-local-conf.yml:/app/public/conf.yml`). +All of Dashy's configuration is specified in a single [YAML](https://yaml.org/) file, located at `./public/conf.yml`. You can find a complete list of available options in th [Configuring Docs](/docs/configuring.md). If you're using Docker, you'll probably want to pass this file in as a Docker volume (e.g. `-v /root/my-local-conf.yml:/app/public/conf.yml`). -The config can also be edited directly through the UI, with changes written to your conf.yml file. After making any modifications the app does need to be rebuilt, this should happen automatically but you can also trigger a build with `yarn build`, `docker exec -it [container-id] yarn build`, or directly through the UI. +The config can also be edited directly through the UI, with changes written to your conf.yml file. After making any modifications the app needs to be rebuilt, which will happen automatically or can be trigger with `yarn build` or directly through the UI. -You can check that your config is correct and valid, by running: `yarn validate-config`. This will validate that your configuration matches Dashy's [schema](https://github.com/Lissy93/dashy/blob/master/src/utils/ConfigSchema.json). +You can check that your config is valid and matches Dashy's [schema](https://github.com/Lissy93/dashy/blob/master/src/utils/ConfigSchema.json), by running: `yarn validate-config`. Finally, you may find these [example config](https://gist.github.com/Lissy93/000f712a5ce98f212817d20bc16bab10) helpful for getting you started. @@ -459,6 +462,8 @@ Dashy was made possible thanks to the following packages and components. For mor > 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=for-the-badge&logo=visualstudiocode)](https://open.vscode.dev/Lissy93/Dashy) + To set up the development environment: 1. Get Code: `git clone git@github.com:Lissy93/dashy.git` and `cd dashy` 2. Install dependencies: `yarn` @@ -550,7 +555,8 @@ There are a few self-hosted web apps, that serve a similar purpose to Dashy. If - [HomeDash2](https://lamarios.github.io/Homedash2) - [Homer](https://github.com/bastienwirtz/homer) (`Apache License 2.0`) - [Organizr](https://organizr.app/) (`GPL-3.0 License`) -- [Heimdall](https://github.com/linuxserver/Heimdall) (`MIT License`) +- [Heimdall](https://github.com/linuxserver/Heimdall) (`MIT`) +- [Smashing](https://github.com/Smashing/smashing) (`MIT`) **[⬆️ Back to Top](#dashy)** From 33d5003d4c76afd37b3b78819eb4d22ea9062c31 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 22:41:33 +0100 Subject: [PATCH 26/42] =?UTF-8?q?=F0=9F=A5=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sync-deployment-branches.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync-deployment-branches.yml b/.github/workflows/sync-deployment-branches.yml index 82d61122..431cf5d2 100644 --- a/.github/workflows/sync-deployment-branches.yml +++ b/.github/workflows/sync-deployment-branches.yml @@ -17,7 +17,7 @@ jobs: id: sync uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 with: - target_sync_branch: deploy_cloudflare + target_sync_branch: origin deploy_cloudflare target_repo_token: ${{ secrets.GITHUB_TOKEN }} upstream_sync_branch: master upstream_sync_repo: lissy93/dashy @@ -35,7 +35,7 @@ jobs: id: sync-psh uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 with: - target_sync_branch: deploy_platform-sh + target_sync_branch: origin/deploy_platform-sh target_repo_token: ${{ secrets.GITHUB_TOKEN }} upstream_sync_branch: master upstream_sync_repo: lissy93/dashy From d4b6bf42e7157dbfbf8b38bb7ddac0006188f52b Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Thu, 12 Aug 2021 22:44:40 +0100 Subject: [PATCH 27/42] =?UTF-8?q?=F0=9F=97=91=EF=B8=8F=20Deletes=20sync=20?= =?UTF-8?q?action.=20It=20wasn't=20workin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflows/sync-deployment-branches.yml | 79 ------------------- 1 file changed, 79 deletions(-) delete mode 100644 .github/workflows/sync-deployment-branches.yml diff --git a/.github/workflows/sync-deployment-branches.yml b/.github/workflows/sync-deployment-branches.yml deleted file mode 100644 index 431cf5d2..00000000 --- a/.github/workflows/sync-deployment-branches.yml +++ /dev/null @@ -1,79 +0,0 @@ -# Action to keep cloud-specific, deployment-ready branched in sync with master -name: Sync Deployment Branches -on: - workflow_dispatch: # Manual dispatch - schedule: - - cron: '0 1 * * 0' # At 01:00 on Sunday. -jobs: - sync-deploy-cloudflare: - runs-on: ubuntu-latest - name: Sync latest commits from master - steps: - - name: Checkout master - uses: actions/checkout@v2 - with: - ref: master - - name: Pull master into deploy Cloudflare branch - id: sync - uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 - with: - target_sync_branch: origin deploy_cloudflare - target_repo_token: ${{ secrets.GITHUB_TOKEN }} - upstream_sync_branch: master - upstream_sync_repo: lissy93/dashy - upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} - - sync-deploy-platform-sh: - runs-on: ubuntu-latest - name: Sync master with Platform SH branch - steps: - - name: Checkout master - uses: actions/checkout@v2 - with: - ref: master - - name: Pull master into deploy Platform SH branch - id: sync-psh - uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 - with: - target_sync_branch: origin/deploy_platform-sh - target_repo_token: ${{ secrets.GITHUB_TOKEN }} - upstream_sync_branch: master - upstream_sync_repo: lissy93/dashy - upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} - - sync-deploy-digital-ocean: - runs-on: ubuntu-latest - name: Sync master with Digital Ocean branch - steps: - - name: Checkout master - uses: actions/checkout@v2 - with: - ref: master - - name: Pull master into deploy Digital Ocean branch - id: sync-do - uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 - with: - target_sync_branch: deploy_digital-ocean - target_repo_token: ${{ secrets.GITHUB_TOKEN }} - upstream_sync_branch: master - upstream_sync_repo: lissy93/dashy - upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} - - sync-deploy-render: - runs-on: ubuntu-latest - name: Sync master with Render branch - steps: - - name: Checkout master - uses: actions/checkout@v2 - with: - ref: master - - name: Pull master into deploy Render branch - id: sync-render - uses: aormsby/Fork-Sync-With-Upstream-action@v3.0 - with: - target_sync_branch: deploy_render - target_repo_token: ${{ secrets.GITHUB_TOKEN }} - upstream_sync_branch: master - upstream_sync_repo: lissy93/dashy - upstream_repo_access_token: ${{ secrets.GITHUB_TOKEN }} - From 4a3d8fde89e3c0022f2f83840b1ab938582eeac3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Aug 2021 21:49:50 +0000 Subject: [PATCH 28/42] :blue_heart: Updates contributor SVG --- docs/assets/CONTRIBUTORS.svg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/assets/CONTRIBUTORS.svg b/docs/assets/CONTRIBUTORS.svg index ad273b7c..0fedef26 100644 --- a/docs/assets/CONTRIBUTORS.svg +++ b/docs/assets/CONTRIBUTORS.svg @@ -3,11 +3,11 @@ - - - - + + + + From 27ab4ef152f088fe7462604d5ad6ac1b6e476fa3 Mon Sep 17 00:00:00 2001 From: liss-bot Date: Thu, 12 Aug 2021 22:49:50 +0100 Subject: [PATCH 29/42] :purple_heart: Updates contributors list --- docs/credits.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/credits.md b/docs/credits.md index 75477ffd..a9eb9ac1 100644 --- a/docs/credits.md +++ b/docs/credits.md @@ -32,6 +32,13 @@ Alicia Sykes + + + EVOTk +
+ EVOTk +
+ evroon @@ -40,10 +47,10 @@ - - EVOTk + + snyk-bot
- EVOTk + Snyk Bot
@@ -59,7 +66,8 @@
DeepSource Bot - + + turnrye @@ -67,14 +75,6 @@ Ryan Turner - - - - snyk-bot -
- Snyk Bot -
- From 768a1f47786518e90b89d421f30f12a6935065a1 Mon Sep 17 00:00:00 2001 From: liss-bot Date: Thu, 12 Aug 2021 22:49:52 +0100 Subject: [PATCH 30/42] :yellow_heart: Updates sponsors table --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index 0c2feb07..7abd1558 100644 --- a/README.md +++ b/README.md @@ -442,6 +442,23 @@ Thank you so much to everyone who has helped with Dashy so far, every contributi Huge thanks to the sponsors helping to support Dashy's development! + + + + +
+ + Robert-Ernst +
+ Robert Ernst +
+
+ + swcarlosrj +
+ Carlos Rufo +
+
#### Contributors From 483bee23b2071debcd6d0b2ea32b9eee3b0ac327 Mon Sep 17 00:00:00 2001 From: UrekD Date: Fri, 13 Aug 2021 02:06:30 +0200 Subject: [PATCH 31/42] Slovenian translation - Add Slovenian Locale --- README.md | 1 + src/assets/locales/si.json | 157 +++++++++++++++++++++++++++++++++++++ src/utils/languages.js | 7 ++ 3 files changed, 165 insertions(+) create mode 100644 src/assets/locales/si.json diff --git a/README.md b/README.md index 7abd1558..3ad54f94 100644 --- a/README.md +++ b/README.md @@ -355,6 +355,7 @@ Dashy has the ability to support multiple languages and locales. When available, - 🇩🇪 **German**: `de` - Contributed by **[@Niklashere](https://github.com/Niklashere)** - 🇳🇱 **Dutch**: `nl` - Contributed by **[@evroon](https://github.com/evroon)** - 🇲🇫 **French**: `fr` - Contributed by **[@EVOTk](https://github.com/EVOTk)** +- 🇸🇮 **Slovenian**: `si` - Contributed by **[@UrekD](https://github.com/UrekD)** #### Add your Language It would be awesome for open source projects to be available to everyone, without language being a barrier to entry for non-native English speakers. If you have a few minutes to sapir, you're help with translating it would be very much appreciated. diff --git a/src/assets/locales/si.json b/src/assets/locales/si.json new file mode 100644 index 00000000..83319aba --- /dev/null +++ b/src/assets/locales/si.json @@ -0,0 +1,157 @@ +{ + "home": { + "no-results": "Ni Rezultatov Iskanja", + "no-data": "Podatki Niso Konfigurirani" + }, + "search": { + "search-label": "Iskanje", + "search-placeholder": "Začnite tipkati za filtrirate", + "clear-search-tooltip": "Počisti iskanje" + }, + "login": { + "title": "Dashy", + "username-label": "Uporabniško ime", + "password-label": "Geslo", + "login-button": "Prijava", + "remember-me-label": "Zapomni si me za", + "remember-me-never": "Nikoli", + "remember-me-hour": "4 Ure", + "remember-me-day": "1 Dan", + "remember-me-week": "1 Teden", + "error-missing-username": "Manjka Uporabniško Ime", + "error-missing-password": "Manjka Geslo", + "error-incorrect-username": "Uporabnik ne obstaja", + "error-incorrect-password": "Napačno Geslo", + "success-message": "Prijavljanje...", + "logout-message": "Odjavljen" + }, + "config": { + "main-tab": "Glavni Meni", + "view-config-tab": "Ogled Konfiguracije", + "edit-config-tab": "Urejanje Konfiguracije", + "custom-css-tab": "Slogi Po Meri", + "heading": "Možnosti Konfiguracija", + "download-config-button": "Prenos Konfiguracije", + "edit-config-button": "Uredi Konfiguracijo", + "edit-css-button": "Uredi CSS Po Meri", + "cloud-sync-button": "Omogoči Sinhronizacijo v Oblaku", + "edit-cloud-sync-button": "Ureditev Sinhronizacije v Oblaku", + "rebuild-app-button": "Obnovi Aplikacijo", + "change-language-button": "Spremeni Jezik Aplikacije", + "reset-settings-button": "Ponastavi Lokalne Nastavitve", + "app-info-button": "Informacije o Aplikaciji", + "backup-note": "Priporočljivo je, da pred spremembami naredite varnostno kopijo konfiguracije.", + "reset-config-msg-l1": "To bo odstranilo vse uporabniške nastavitve iz lokalnega pomnilnika, vendar ne bo vplivalo na datoteko 'conf.yml'.", + "reset-config-msg-l2": "Če želeti spremembe, ki ste jih naredili lokalno uporabiti v prihodnosti, ustvarite varnostno kopijo.", + "reset-config-msg-l3": "Ali ste prepričani, da želite nadaljevati?", + "data-cleared-msg": "Podatki so bili uspešno izbrisani", + "actions-label": "Dejanja", + "copy-config-label": "Kopiraj Konfiguracijo", + "data-copied-msg": "Config je bil kopiran v odložišče", + "reset-config-label": "Ponastavi Konfiguracijo", + "css-save-btn": "Shrani spremembe", + "css-note-label": "Opomba", + "css-note-l1": "Za uveljavitev sprememb boste morali osvežiti stran.", + "css-note-l2": "Preglasitve slogov so shranjene samo lokalno, zato je priporočljivo narediti kopijo CSS -ja.", + "css-note-l3": "Če želite odstraniti vse sloge po meri, izbrišite vsebino in pritisnite Shrani spremembe" + }, + "settings": { + "theme-label": "Tema", + "layout-label": "Postavitev", + "layout-auto": "Avtomatsko", + "layout-horizontal": "Vodoravno", + "layout-vertical": "Vertikalno", + "item-size-label": "Velikost Predmeta", + "item-size-small": "Majhno", + "item-size-medium": "Srednje", + "item-size-large": "Veliko", + "config-launcher-label": "Nastavitve", + "config-launcher-tooltip": "Posodobi Konfiguracijo", + "sign-out-tooltip": "Odjava" + }, + "updates": { + "app-version-note": "Dashy verzija", + "up-to-date": "Posodobljeno", + "out-of-date": "Navoljo posodobitev", + "unsupported-version-l1": "Uporabljate nepodprto različico programa Dashy", + "unsupported-version-l2": "Za najboljšo izkušnjo in najnovejše varnostne popravke posodobite na" + }, + "language-switcher": { + "title": "Spremenite Jezik Aplikacije", + "dropdown-label": "Izberite Jezik", + "save-button": "Shrani", + "success-msg": "Jezik Posodobljen na" + }, + "theme-maker": { + "title": "Konfigurator Teme", + "export-button": "Izvozi Spremenljivke po Meri", + "reset-button": "Ponastavi Sloge za", + "show-all-button": "Pokaži Vse Spremenljivke", + "save-button": "Shrani", + "cancel-button": "Prekliči", + "saved-toast": "{theme} Posodbljena Uspešno", + "copied-toast": "Podatki o temi za {theme} so kopirani v odložišče", + "reset-toast": "Barve po Meri za {theme} Odstranjene" + }, + "config-editor": { + "save-location-label": "Način Shranjevanja", + "location-local-label": "Shrani Lokalno", + "location-disk-label": "Zapišite spremembe v datoteko za konfiguracijo", + "save-button": "Shrani Spremembe", + "valid-label": "Konfiguracija je veljavna", + "status-success-msg": "Operacija dokončana", + "status-fail-msg": "Operacija ni uspela", + "success-msg-disk": "Konfiguracijska datoteka je uspešno zapisana na disk", + "success-msg-local": "Lokalne spremembe so bile uspešno shranjene", + "success-note-l1": "Aplikacija se bo samodejno obnovila.", + "success-note-l2": "To lahko traja do ene minute.", + "success-note-l3": "Za uveljavitev sprememb boste morali osvežiti stran.", + "error-msg-save-mode": "Izberite način shranjevanja: Lokalno ali v Datoteko", + "error-msg-cannot-save": "Pri shranjevanju konfiguracije je prišlo do napake", + "error-msg-bad-json": "Napaka v JSON -u, morda nepravilno oblikovana", + "warning-msg-validation": "Opozorilo o Validaciji" + }, + "app-rebuild": { + "title": "Obnovite Aplikacijo", + "rebuild-note-l1": "Za uveljavitev sprememb, zapisanih v datoteki conf.yml, je potrebna obnovitev.", + "rebuild-note-l2": "To bi se moralo zgoditi samodejno, če pa se ne, lahko to ročno sprožite tukaj.", + "rebuild-note-l3": "To ni potrebno za spremembe, shranjene lokalno.", + "rebuild-button": "Začni Graditi", + "rebuilding-status-1": "Gradnja...", + "rebuilding-status-2": "To lahko traja nekaj minut", + "error-permission": "Nimate dovoljenja za izvajanje tega dejanja", + "success-msg": "Gradnja je bila uspešno zaključena", + "fail-msg": "Operacija izdelave ni uspela", + "reload-note": "Za uveljavitev sprememb je potrebno osvežiti stran", + "reload-button": "Osveži Stran" + }, + "cloud-sync": { + "title": "Varnostno Kopiranje & Obnovitev v Oblaku", + "intro-l1": "Varnostno kopiranje in obnovitev v oblaku je izbirna funkcija, ki vam omogoča, da svojo konfiguracijo shranite v oblak in jo nato obnovite v kateri koli drugi napravi ali primerku Dashyja.", + "intro-l2": "Vsi podatki so v celoti šifrirani z AES, pri čemer je vaše geslo ključ.", + "intro-l3": "Za več informacij si oglejte", + "backup-title-setup": "Ustvari Varnostno Kopijo", + "backup-title-update": "Posodobi Varnostno Kopijo", + "password-label-setup": "Izberi Geslo", + "password-label-update": "Vnesite Geslo", + "backup-button-setup": "Varnosto Kopiraj", + "backup-button-update": "Posodobi Varnostno Kopijo", + "backup-id-label": "Vaš Obnovitveni ID", + "backup-id-note": "To se uporabi za obnovitev iz varnostnih kopij pozneje. Zato ga skupaj z geslom hranite na varnem.", + "restore-title": "Obnovite Varnostno Kopijo", + "restore-id-label": "Obnovitveni ID", + "restore-password-label": "Geslo", + "restore-button": "Obnovi", + "backup-missing-password": "Vnesite geslo", + "backup-error-unknown": "Zahteve ni mogoče obdelati", + "backup-error-password": "Napačno geslo. Prosim vnesite vaše trenutno geslo.", + "backup-success-msg": "Uspešno Zaključeno", + "restore-success-msg": "Konfiguracija Uspešno Obnovljena" + }, + "menu": { + "sametab": "Odpri v Trenutnem Zavihku", + "newtab": "Odpri v Novem Zavihku", + "modal": "Odpri v Pojavnem Oknu", + "workspace": "Odpri v Delovnem Pogledu" + } +} diff --git a/src/utils/languages.js b/src/utils/languages.js index 15b2abad..2ea3b787 100644 --- a/src/utils/languages.js +++ b/src/utils/languages.js @@ -3,6 +3,7 @@ import en from '@/assets/locales/en.json'; import de from '@/assets/locales/de.json'; import nl from '@/assets/locales/nl.json'; import fr from '@/assets/locales/fr.json'; +import si from '@/assets/locales/si.json'; // Language data - Add your country name, locale code and imported file here export const languages = [ @@ -30,6 +31,12 @@ export const languages = [ locale: fr, flag: '🇲🇫', }, + { + name: 'Slovenian', + code: 'si', + locale: si, + flag: '🇸🇮', + }, // Including: // name - Human readable name for your language (e.g German) // code - ISO language code (e.g. de) From 6b04004c73bda5105ce88b13bfdf44be151b141b Mon Sep 17 00:00:00 2001 From: UrekD Date: Fri, 13 Aug 2021 02:17:11 +0200 Subject: [PATCH 32/42] Fixed correct ISO code sl instead of si.. --- README.md | 2 +- src/assets/locales/{si.json => sl.json} | 0 src/utils/languages.js | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) rename src/assets/locales/{si.json => sl.json} (100%) diff --git a/README.md b/README.md index 3ad54f94..ba65bb5b 100644 --- a/README.md +++ b/README.md @@ -355,7 +355,7 @@ Dashy has the ability to support multiple languages and locales. When available, - 🇩🇪 **German**: `de` - Contributed by **[@Niklashere](https://github.com/Niklashere)** - 🇳🇱 **Dutch**: `nl` - Contributed by **[@evroon](https://github.com/evroon)** - 🇲🇫 **French**: `fr` - Contributed by **[@EVOTk](https://github.com/EVOTk)** -- 🇸🇮 **Slovenian**: `si` - Contributed by **[@UrekD](https://github.com/UrekD)** +- 🇸🇮 **Slovenian**: `sl` - Contributed by **[@UrekD](https://github.com/UrekD)** #### Add your Language It would be awesome for open source projects to be available to everyone, without language being a barrier to entry for non-native English speakers. If you have a few minutes to sapir, you're help with translating it would be very much appreciated. diff --git a/src/assets/locales/si.json b/src/assets/locales/sl.json similarity index 100% rename from src/assets/locales/si.json rename to src/assets/locales/sl.json diff --git a/src/utils/languages.js b/src/utils/languages.js index 2ea3b787..311f360c 100644 --- a/src/utils/languages.js +++ b/src/utils/languages.js @@ -3,7 +3,7 @@ import en from '@/assets/locales/en.json'; import de from '@/assets/locales/de.json'; import nl from '@/assets/locales/nl.json'; import fr from '@/assets/locales/fr.json'; -import si from '@/assets/locales/si.json'; +import sl from '@/assets/locales/sl.json'; // Language data - Add your country name, locale code and imported file here export const languages = [ @@ -33,8 +33,8 @@ export const languages = [ }, { name: 'Slovenian', - code: 'si', - locale: si, + code: 'sl', + locale: sl, flag: '🇸🇮', }, // Including: From fed83ba5009643a7a09af0fd9542430ee07b8fc2 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 13 Aug 2021 08:15:49 +0100 Subject: [PATCH 33/42] :memo: Adds buttons to contributing page --- docs/contributing.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index 8109f432..e6d6708d 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -20,6 +20,8 @@ If you've found a bug, then please do raise it as an issue. This will help me kn ## Join the discussion I've enabled the discussion feature on GitHub, here you can share tips and tricks, useful information, or your dashboard. You can also ask questions, and offer basic support to other users. +[![Join the Discussion on GitHub](https://img.shields.io/badge/Join_the-Discussion-%23ffd000?style=for-the-badge&logo=livechat)](https://github.com/Lissy93/dashy/discussions) + ## Share your dashboard Dashy now has a [Showcase](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#dashy-showcase-) where you can show off a screenshot of your dashboard, and get inspiration from other users. I also really enjoy seeing how people are using Dashy. To [submit your dashboard](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#submitting-your-dashboard), please either open a PR or raise an issue. @@ -42,8 +44,9 @@ Dashy is on the following platforms, and if you could spare a few seconds to giv [![ProductHunt](https://img.shields.io/badge/Review-ProductHunt-%23b74424?style=for-the-badge&logo=producthunt)](https://www.producthunt.com/posts/dashy) [![AlternativeTo](https://img.shields.io/badge/Review-AlternativeTo-%235581a6?style=for-the-badge&logo=abletonlive)](https://alternativeto.net/software/dashy/about/) +[![Slant](https://img.shields.io/badge/Review-Slant-%2346a1df?style=for-the-badge&logo=capacitor)](https://www.slant.co/improve/topics/27783/viewpoints/1/~self-hosted-homelab-startpage~dashy) [![Star on GitHub](https://img.shields.io/github/stars/Lissy93/Dashy?color=ba96d6&label=Star%20-%20GitHub&logo=github&style=for-the-badge)](https://github.com/Lissy93/dashy/stargazers) - +[![Star on DockerHub](https://img.shields.io/docker/stars/lissy93/dashy?color=4cb6e0&label=Star%20-%20Docker&logo=docker&style=for-the-badge)](https://hub.docker.com/r/lissy93/dashy) ## Make a small donation Please only do this is you can definitely afford to. Don't feel any pressure to donate anything, as Dashy and my other projects will always be 100% free, for everyone, for ever. @@ -65,7 +68,7 @@ Sponsoring will give you several perks, from $1 / £0.70 per month, as well as a ## Request a feature via BountySource BountySource is a platform for sponsoring the development of certain features on open source projects. If there is a feature you'd like implemented into Dashy, but either isn't high enough priority or is deemed to be more work than it's worth, then you can instead contribute a bounty towards it's development. You won't pay a penny until your proposal is fully built, and you are satisfied with the result. This helps support the developers, and makes Dashy better for everyone. -For more info, see [Dashy on Bounty Source](https://www.bountysource.com/teams/dashy) +[![Request a Feature on BountySource](https://img.shields.io/badge/BountySource-Dashy-%23F67909?style=for-the-badge&logo=openbugbounty)](https://www.bountysource.com/teams/dashy) ## Enable Anonymous Bug Reports [Sentry](https://github.com/getsentry/sentry) is an open source error tracking and performance monitoring tool, which enables the identification any errors which occur in the production app (only if you enable it). It helps me to discover bugs I was unaware of, and then fix them, in order to make Dashy more reliable long term. This is a simple, yet really helpful step you can take to help improve Dashy. From 59843f9a5cd4369864014a87cdbc3cd3de4d80d8 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 13 Aug 2021 07:24:43 +0000 Subject: [PATCH 34/42] fix: upgrade crypto-js from 4.0.0 to 4.1.1 Snyk has created this PR to upgrade crypto-js from 4.0.0 to 4.1.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/lissy93/project/564ca11b-8665-48b8-befa-ccd607c3e09a?utm_source=github&utm_medium=upgrade-pr --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a8037764..358b918e 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "axios": "^0.21.1", "body-parser": "^1.19.0", "connect": "^3.7.0", - "crypto-js": "^4.0.0", + "crypto-js": "^4.1.1", "js-yaml": "^4.1.0", "npm-run-all": "^4.1.5", "prismjs": "^1.24.1", diff --git a/yarn.lock b/yarn.lock index 5476fdea..e2c10188 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3310,10 +3310,10 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-js@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" - integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== +crypto-js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== crypto-random-string@^2.0.0: version "2.0.0" From b977a4974d007513afeef6957cb30eb01364c1d3 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Fri, 13 Aug 2021 07:24:46 +0000 Subject: [PATCH 35/42] fix: upgrade vue-select from 3.11.2 to 3.12.1 Snyk has created this PR to upgrade vue-select from 3.11.2 to 3.12.1. See this package in npm: See this project in Snyk: https://app.snyk.io/org/lissy93/project/564ca11b-8665-48b8-befa-ccd607c3e09a?utm_source=github&utm_medium=upgrade-pr --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a8037764..a7e6c07d 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "vue-material-tabs": "0.1.5", "vue-prism-editor": "^1.2.2", "vue-router": "^3.0.3", - "vue-select": "^3.11.2", + "vue-select": "^3.12.1", "vue-swatches": "^2.1.1", "vue-toasted": "^1.1.28" }, diff --git a/yarn.lock b/yarn.lock index 5476fdea..d51eecd2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9795,10 +9795,10 @@ vue-router@^3.0.3: resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== -vue-select@^3.11.2: - version "3.11.2" - resolved "https://registry.yarnpkg.com/vue-select/-/vue-select-3.11.2.tgz#3ef93e3f2707e133c2df0b2920a05eea78764d18" - integrity sha512-pIOcY8ajWNSwg8Ns4eHVr5ZWwqKCSZeQRymTnlUI8i+3QiQXF6JIM4lylK6mVfbccs4S6vOyxB7zmJBpp7tDUg== +vue-select@^3.12.1: + version "3.12.2" + resolved "https://registry.yarnpkg.com/vue-select/-/vue-select-3.12.2.tgz#b0dd89233d673dcbee567418667b1bfd5c139b64" + integrity sha512-KWIXQ50pC+B1wpBmaUXwuHm8yevPIL8YsZin9Hi2qCdK7C0KMbztRk6adgpIJ99bqaiccrGFQIPuXsuUNeegPw== vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: version "4.1.3" From a356682ed628dcba8165f0426ed01620818eabda Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 13 Aug 2021 08:43:46 +0100 Subject: [PATCH 36/42] =?UTF-8?q?=F0=9F=97=91=EF=B8=8F=20Deletes=20cname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CNAME | 1 - 1 file changed, 1 deletion(-) delete mode 100644 CNAME diff --git a/CNAME b/CNAME deleted file mode 100644 index d21413c4..00000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -dashy.to \ No newline at end of file From dc5ecbe9282fbd25abfacddc3a76ef53965a16cc Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 13 Aug 2021 08:44:14 +0100 Subject: [PATCH 37/42] :rocket: Adds domain for GH-Pages --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..d21413c4 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +dashy.to \ No newline at end of file From dcc76168b80ec3e8fecf3dcfb3ef191ffe88a9ea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Aug 2021 14:14:11 +0000 Subject: [PATCH 38/42] :blue_heart: Updates contributor SVG --- docs/assets/CONTRIBUTORS.svg | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/assets/CONTRIBUTORS.svg b/docs/assets/CONTRIBUTORS.svg index 0fedef26..743f2027 100644 --- a/docs/assets/CONTRIBUTORS.svg +++ b/docs/assets/CONTRIBUTORS.svg @@ -9,10 +9,13 @@ + + + - + - + \ No newline at end of file From a396a25efa78a170596cd3f0e9e6e2a339619387 Mon Sep 17 00:00:00 2001 From: liss-bot Date: Fri, 13 Aug 2021 15:14:12 +0100 Subject: [PATCH 39/42] :purple_heart: Updates contributors list --- docs/credits.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/credits.md b/docs/credits.md index a9eb9ac1..0ddbbcec 100644 --- a/docs/credits.md +++ b/docs/credits.md @@ -53,21 +53,28 @@ Snyk Bot + + + UrekD +
+ UrekD +
+ BeginCI
Begin
- + + deepsourcebot
DeepSource Bot
- - + turnrye From 479a5f672f0469bcc519a69d9bc7a5ee37cdb9bc Mon Sep 17 00:00:00 2001 From: liss-bot Date: Fri, 13 Aug 2021 15:14:13 +0100 Subject: [PATCH 40/42] :yellow_heart: Updates sponsors table --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba65bb5b..0b36d9a7 100644 --- a/README.md +++ b/README.md @@ -447,14 +447,14 @@ Huge thanks to the sponsors helping to support Dashy's development! - Robert-Ernst + Robert-Ernst
Robert Ernst
- swcarlosrj + swcarlosrj
Carlos Rufo
From ec5ed7159208154a095a096e6e7072fe0bd74891 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 13 Aug 2021 15:45:14 +0100 Subject: [PATCH 41/42] =?UTF-8?q?=F0=9F=91=B7=20Build=20+=20publish=20Dock?= =?UTF-8?q?er=20container=20on=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds an action to build and publish the Docker container to the GitHub container registry after each release. --- .github/workflows/docker-release.yml | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/docker-release.yml diff --git a/.github/workflows/docker-release.yml b/.github/workflows/docker-release.yml new file mode 100644 index 00000000..fe74cffa --- /dev/null +++ b/.github/workflows/docker-release.yml @@ -0,0 +1,40 @@ +# Test and build the Docker container after a release +# Then push it to GH container registry if all checks pass +name: Build & Publish Docker Image +on: + release: + types: [published] +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + # Get the code + - name: Checkout repository 🛎️ + uses: actions/checkout@v2 + # Log into ghcr.io + - name: Log in to the Container registry 🔑 + uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + # Get release version, for Docker tag + - name: Extract metadata (tags, labels) for Docker 🗂️ + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + # Build the container, and push if succesful + - name: Build and push Docker image ⚒️ + uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 0906ab9cfecad985d965c86c226fdd8941f0c8c3 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 13 Aug 2021 18:28:43 +0100 Subject: [PATCH 42/42] =?UTF-8?q?=F0=9F=93=9D=20Adds=20link=20to=20Survey?= =?UTF-8?q?=20in=20Contributing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contributing.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/contributing.md b/docs/contributing.md index e6d6708d..e24b3d2d 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -10,21 +10,28 @@ Contributing to the code or documentation is super helpful. You can fix a bug, a ## Add Translations If you speak another language, then adding translations would be really helpful, and you will be credited in the readme for your work. Multi-language support makes Dashy accessible for non-English speakers, which I feel is important. This is a very quick and easy task, as all application text is located in [`locales/en.json`](https://github.com/Lissy93/dashy/blob/master/src/assets/locales/en.json), so adding a new language is as simple as copying this file and translating the values. You don't have to translate it all, as any missing attributes will just fallback to English. For a full tutorial, see the [Multi-Language Support Docs](https://github.com/Lissy93/dashy/blob/master/docs/multi-language-support.md). +## Take a 2-minute survey +Help improve Dashy by taking a very short, 6-question survey. This will give me a better understanding of what is important to you, so that I can make Dashy better in the future :) + +[![Take the Survey](https://img.shields.io/badge/Take_the-Survey-%231a86fd?style=for-the-badge&logo=buddy)](https://n9fy6xak9yd.typeform.com/to/gl0L68ou) + +## Share your dashboard +Dashy now has a [Showcase](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#dashy-showcase-) where you can show off a screenshot of your dashboard, and get inspiration from other users. I also really enjoy seeing how people are using Dashy. To [submit your dashboard](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#submitting-your-dashboard), please either open a PR or raise an issue. + ## Improve the Docs Found a typo, or something that isn't as clear as it could be? Maybe I've missed something off altogether, or you hit a roadblock that took you a while to figure out. Submitting a pull request to add to or improve the documentation will help future users get Dashy up and running more easily. All content is located either in the [`./README.md`](/README.md) or [`/docs/`](/docs) directory, and synced to the Wiki and website using a GH [action](/actions/workflows/wiki-sync.yml). ## Raise a bug -If you've found a bug, then please do raise it as an issue. This will help me know if there's something that needs fixing. Try and include as much detail as possible, such as your environment, steps to reproduce, any console output and maybe an example screenshot or recording if necessary. You can [Raise a Bug here](https://github.com/Lissy93/dashy/issues/new?assignees=Lissy93&labels=%F0%9F%90%9B+Bug&template=bug-report---.md&title=%5BBUG%5D) 🐛. +If you've found a bug, then please do raise it as an issue. This will help me know if there's something that needs fixing. Try and include as much detail as possible, such as your environment, steps to reproduce, any console output and maybe an example screenshot or recording if necessary. + +[![Raise a Bug](https://img.shields.io/badge/Raise_a-Bug-%23dc2d76?style=for-the-badge&logo=dependabot)](https://github.com/Lissy93/dashy/issues/new?assignees=Lissy93&labels=%F0%9F%90%9B+Bug&template=bug-report---.md&title=%5BBUG%5D) ## Join the discussion I've enabled the discussion feature on GitHub, here you can share tips and tricks, useful information, or your dashboard. You can also ask questions, and offer basic support to other users. [![Join the Discussion on GitHub](https://img.shields.io/badge/Join_the-Discussion-%23ffd000?style=for-the-badge&logo=livechat)](https://github.com/Lissy93/dashy/discussions) -## Share your dashboard -Dashy now has a [Showcase](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#dashy-showcase-) where you can show off a screenshot of your dashboard, and get inspiration from other users. I also really enjoy seeing how people are using Dashy. To [submit your dashboard](https://github.com/Lissy93/dashy/blob/master/docs/showcase.md#submitting-your-dashboard), please either open a PR or raise an issue. - ## Spread the word Dashy is still a relatively young project, and as such not many people know of it. It would be great to see more users, and so it would be awesome if you could consider sharing on social platforms.