From f118388f09c36d91e867192be56eb066ec9dd848 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 16 Jul 2021 22:06:10 +0100 Subject: [PATCH 1/4] :sparkles: Adds ability for user to pass in their own stylesheet with Docker --- src/App.vue | 1 + src/styles/user-defined-themes.scss | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/styles/user-defined-themes.scss diff --git a/src/App.vue b/src/App.vue index 8930e9c9..806c33e4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -89,5 +89,6 @@ export default { @import '@/styles/dimensions.scss'; @import '@/styles/color-themes.scss'; @import '@/styles/typography.scss'; +@import '@/styles/user-defined-themes.scss'; diff --git a/src/styles/user-defined-themes.scss b/src/styles/user-defined-themes.scss new file mode 100644 index 00000000..362ce3bd --- /dev/null +++ b/src/styles/user-defined-themes.scss @@ -0,0 +1,12 @@ +// Put your custom themes here. +// Don't forget to also put your theme name into the config +// E.g: appConfig: cssThemes: [ 'my-theme' ] + +// Example theme: +// html[data-theme='my-theme'] { +// --primary: #00CCB4; +// --background: #141b33; +// --background-darker: #060913; +// } + +// For more info, see: https://github.com/Lissy93/dashy/blob/master/docs/theming.md From 21c9deeaae05a9e42c366c6b5b41e4578dccb8f7 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 16 Jul 2021 22:06:59 +0100 Subject: [PATCH 2/4] :memo: Explains how to pass in own stylesheet with Docker --- docs/theming.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/theming.md b/docs/theming.md index cb7233e0..a87783c0 100644 --- a/docs/theming.md +++ b/docs/theming.md @@ -4,7 +4,7 @@ By default Dashy comes with 20 built in themes, which can be applied from the dr ![Built-in Themes](https://i.ibb.co/GV3wRss/Dashy-Themes.png) -You can also add your own themes, apply custom CSS, and modify colors. +You can also add your own themes, apply custom styles, and modify colors. You can customize Dashy by writing your own CSS, which can be loaded either as an external stylesheet, set directly through the UI, or specified in the config file. Most styling options can be set through CSS variables, which are outlined below. @@ -25,7 +25,7 @@ You can now create a block to target you're theme with `html[data-theme='my-them ```css html[data-theme='tiger'] { --primary: #f58233; - --item-group-background: #0b1021; + --background: #0b1021; } ``` @@ -33,13 +33,15 @@ Finally, from the UI use the theme dropdown menu to select your new theme, and y You can also set `appConfig.theme` to pre-select a default theme, which will be applied immediately after deployment. -### Setting Custom CSS +### Adding your own Theme + +User-defined styles and custom themes should be defined in `./src/styles/user-defined-themes.scss`. If you're using Docker, you can pass your own stylesheet in using the `--volume` flag. E.g. `v ./my-themes.scss:/app/src/styles/user-defined-themes.scss`. Don't forget to pass your theme name into `appConfig.cssThemes` so that it shows up on the theme-switcher dropdown. + +### Setting Custom CSS in the UI Custom CSS can be developed, tested and applied directly through the UI. Although you will need to make note of your changes to apply them across instances. -This can be done from the Config menu (spanner icon in the top-right), under the Custom Styles tab. This is then associated with `appConfig.customCss` in local storage. Any styles set this way can be synced across instances using the cloud backup and sync feature. - -It's also possible to set CSS in the config file under `appConfig.customCss`. However this approach is not very neat, and if you do do it, first minify / compress your CSS and wrap in quotes, to ensure it does not cause any validation errors. +This can be done from the Config menu (spanner icon in the top-right), under the Custom Styles tab. This is then associated with `appConfig.customCss` in local storage. Styles can also be directly applied to this attribute in the config file, but this may get messy very quickly if you have a lot of CSS. ### Loading External Stylesheets From a7298d57f99a5e0b9deab478a9f217b7d697ae32 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 16 Jul 2021 22:10:04 +0100 Subject: [PATCH 3/4] :star2: Adds homelab to showcase --- docs/showcase.md | 6 ++++++ docs/showcase/9-home-lab-oblivion.png | Bin 0 -> 61146 bytes 2 files changed, 6 insertions(+) create mode 100644 docs/showcase/9-home-lab-oblivion.png diff --git a/docs/showcase.md b/docs/showcase.md index bd8036e3..b0307226 100644 --- a/docs/showcase.md +++ b/docs/showcase.md @@ -55,6 +55,12 @@ --- +### Yet Another Homelab + +![screenshot-yet-another-homelab](https://raw.githubusercontent.com/Lissy93/dashy/master/docs/showcase/9-home-lab-oblivion.png) + +--- + ## Submitting your Dashboard #### How to Submit diff --git a/docs/showcase/9-home-lab-oblivion.png b/docs/showcase/9-home-lab-oblivion.png new file mode 100644 index 0000000000000000000000000000000000000000..ec1a26f619bb11b911ecb63aa6b645cf3554379e GIT binary patch literal 61146 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 literal 0 HcmV?d00001 From 6afc761ead1c9952c3622417e3b935dc6d479556 Mon Sep 17 00:00:00 2001 From: Alicia Sykes Date: Fri, 16 Jul 2021 22:11:07 +0100 Subject: [PATCH 4/4] :memo: Adds 1-Click deployment to Render.com --- README.md | 11 ++++++----- docs/deployment.md | 28 +++++++++++++++++++--------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 912d38d8..d8e1a2a4 100644 --- a/README.md +++ b/README.md @@ -91,11 +91,12 @@ You will need both [git](https://git-scm.com/downloads) and the latest or LTS ve #### Deploy to the Cloud -Dashy supports 1-Click deployments on several popular cloud platforms. To get started, just click a link below: -- [Deploy to Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy) -- [Deploy to Heroku](https://heroku.com/deploy?template=https://github.com/Lissy93/dashy) -- [Deploy with Vercel](https://vercel.com/new/project?template=https://github.com/lissy93/dashy) -- [Deploy with PWD](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml) +Dashy supports 1-Click deployments on several popular cloud platforms. To spin up a new instance, just click a link below: +- [ Deploy to Netlify](https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy) +- [ Deploy to Heroku](https://heroku.com/deploy?template=https://github.com/Lissy93/dashy) +- [ Deploy to Vercel](https://vercel.com/new/project?template=https://github.com/lissy93/dashy) +- [ Deploy to Render](https://render.com/deploy?repo=https://github.com/lissy93/dashy/tree/deploy_render) +- [ Deploy to PWD](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml) #### Basic Commands diff --git a/docs/deployment.md b/docs/deployment.md index 158d53cb..4cae89a2 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -74,7 +74,7 @@ If you do not want to use Docker, you can run Dashy directly on your host system Dashy supports 1-Click deployments on several popular cloud platforms. -#### Netlify +#### 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](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. @@ -84,7 +84,7 @@ To deploy Dashy to Netlify, use the following link https://app.netlify.com/start/deploy?repository=https://github.com/lissy93/dashy ``` -#### Heroku +#### Heroku [![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](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 @@ -94,7 +94,7 @@ To deploy Dashy to Heroku, use the following link https://heroku.com/deploy?template=https://github.com/Lissy93/dashy ``` -#### Cloudflare Workers +#### 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](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) @@ -104,7 +104,7 @@ To deploy Dashy to Cloudflare, use the following link https://deploy.workers.cloudflare.com/?url=https://github.com/lissy93/dashy/tree/deploy_cloudflare ``` -#### Deploy to Vercel +#### Vercel [![Deploy with Vercel](https://vercel.com/button)](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. @@ -114,7 +114,7 @@ To deploy Dashy to Vercel, use the following link https://vercel.com/new/project?template=https://github.com/lissy93/dashy ``` -#### Deploy to DigitalOcean +#### 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) [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. @@ -123,7 +123,7 @@ 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 ``` -#### Platform.sh +#### 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](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 @@ -133,7 +133,17 @@ To deploy Dashy to Platform.sh, use the following link https://console.platform.sh/projects/create-project/?template=https://github.com/lissy93/dashy ``` -#### Deploy to Scalingo +#### 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](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) + +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](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 @@ -143,7 +153,7 @@ To deploy Dashy to Scalingo, use the following link https://my.scalingo.com/deploy?source=https://github.com/lissy93/dashy#master ``` -#### Play-with-Docker +#### 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](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. @@ -153,7 +163,7 @@ 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 [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)