diff --git a/Procfile b/Procfile new file mode 100644 index 00000000..6f86b16c --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: node server.js \ No newline at end of file diff --git a/README.md b/README.md index f9537300..c92f9369 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,13 @@ You will need both [git](https://git-scm.com/downloads) and the latest or LTS ve After making changes to your configuration file, you will need to run: `yarn build` to rebuild. +#### Deploy to the Cloud + +Dashy supports 1-Click deployments on several popular cloud platforms (with more on the way!). 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 PWD](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml) + --- ## Configuring 🔧 diff --git a/app.json b/app.json new file mode 100644 index 00000000..8b8b61ed --- /dev/null +++ b/app.json @@ -0,0 +1,17 @@ +{ + "name": "Dashy", + "description": "A Dashboard for your Homelab 🚀", + "repository": "https://github.com/lissy93/dashy", + "logo": "https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/logo.png", + "keywords": [ + "node", + "vue", + "static", + "dashboard", + "self-hosted", + "home-lab", + "lissy93" + ], + "image": "heroku/nodejs", + "stack": "heroku-20" +} \ No newline at end of file diff --git a/docs/assets/logo.png b/docs/assets/logo.png new file mode 100644 index 00000000..78fabd25 Binary files /dev/null and b/docs/assets/logo.png differ diff --git a/docs/getting-started.md b/docs/getting-started.md index 6c5dfc2a..c80eef7a 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -1,26 +1,19 @@ # Getting Started - [Deployment](#deployment) - - [1-Click Deploy](#1-click-deploy) - [Deploy with Docker](#deploy-with-docker) - [Deploy from Source](#deploy-from-source) + - [Deploy to Cloud Service](#deploy-to-cloud-service) - [Usage](#usage) - [Providing Assets](#providing-assets) - [Basic Commands](#basic-commands) - [Updating](#updating) - [Updating Docker Container](#updating-docker-container) - - [Automating Docker Updates](#automating-docker-updates) - - [Updating from Source](#updating-from-source) + - [Automating Docker Updates](#automatic-docker-updates) + - [Updating from Source](#updating-dashy-from-source) ## Deployment -### 1-Click Deploy - -If you just want to test Dashy out, then you have several options: -- You can spin up a container with PWD by [clicking here](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/Lissy93/dashy/master/docker-compose.yml) -- Or on your own system, by running: `docker run -p 8080:80 lissy93/dashy`, then open your browser and visit `http://localhost:8080` -- Or you can check out the live demo, [here](http://dashy-demo-1.as93.net/) - ### Deploy with Docker The quickest way to get started on any system is with Docker, and Dashy is available though [Docker Hub](https://hub.docker.com/r/lissy93/dashy). You will need [Docker](https://docs.docker.com/get-docker/) installed on your system. @@ -61,6 +54,41 @@ If you do not want to use Docker, you can run Dashy directly on your host system 4. Build: `yarn build` 5. Run: `yarn start` +### Deploy to Cloud Service + +Dashy supports 1-Click deployments on several popular cloud platforms. + +#### 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. + +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](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. + +To deploy Dashy to Heroku, use the following link +``` +https://heroku.com/deploy?template=https://github.com/Lissy93/dashy +``` + +#### 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. + +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 +``` + + --- ## Usage diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 00000000..0410b7b2 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,10 @@ +[build] + command = "yarn build" + publish = "dist" + +[template.environment] + STATUSKIT_PAGE_TITLE = "Dashy" + STATUSKIT_COMPANY_LOGO = "https://raw.githubusercontent.com/Lissy93/dashy/master/docs/assets/logo.png" + STATUSKIT_SUPPORT_CONTACT_LINK = "https://dashy.as93.net" + STATUSKIT_RESOURCES_LINK = "https://github.com/Lissy93/dashy/tree/master/docs" + \ No newline at end of file diff --git a/package.json b/package.json index ad55eeb2..ca381324 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,8 @@ { - "name": "panel", + "name": "Dashy", "version": "0.1.0", "license": "MIT", + "main": "server", "scripts": { "start": "node server", "dev": "vue-cli-service serve", @@ -53,6 +54,9 @@ "gitHooks": { "pre-commit": "yarn lint" }, + "engines": { + "node": "15.x" + }, "eslintConfig": { "root": true, "env": { diff --git a/server.js b/server.js index d08fc26a..9bdbca41 100644 --- a/server.js +++ b/server.js @@ -12,7 +12,7 @@ require('./src/utils/ConfigValidator'); const isDocker = !!process.env.IS_DOCKER; /* Checks env var for port. If undefined, will use Port 80 for Docker, or 4000 for metal */ -const port = process.env.PORT || isDocker ? 80 : 4000; +const port = process.env.PORT || (isDocker ? 80 : 4000); const getLocalIp = () => { const dnsLookup = util.promisify(dns.lookup);