A blazing fast start page for your services written with Go and TailwindCSS
Find a file
2023-04-19 09:01:06 +02:00
bookmarks Update bookmark.go 2023-01-19 13:32:31 +01:00
static Use SSE instead of WS 2023-04-16 21:44:54 +02:00
system Use SSE instead of WS 2023-04-16 21:44:54 +02:00
templates Add version to css for cache reload 2023-04-19 08:50:53 +02:00
weather Use SSE instead of WS 2023-04-16 21:44:54 +02:00
.gitignore Use SSE instead of WS 2023-04-16 21:44:54 +02:00
.goreleaser.yaml Add version and build date to docker container 2023-04-16 16:07:44 +02:00
docker-compose.yml Use Air for live go rebuild 2023-04-16 16:03:18 +02:00
Dockerfile Update Dockerfile 2023-04-19 09:01:06 +02:00
Dockerfile.dev Use Air for live go rebuild 2023-04-16 16:03:18 +02:00
entrypoint.sh Reverse workdir for volumes to still work 2023-02-04 21:11:11 +01:00
go.mod Add version to css for cache reload 2023-04-19 08:50:53 +02:00
go.sum Add version to css for cache reload 2023-04-19 08:50:53 +02:00
LICENSE Add description 2022-10-21 15:15:15 +02:00
logger.go Moved completely to new tech 2022-12-19 11:03:56 +01:00
main.go Add version to css for cache reload 2023-04-19 08:50:53 +02:00
middlewares.go Add health endpoint 2022-12-23 09:09:00 +01:00
package.json Use SSE instead of WS 2023-04-16 21:44:54 +02:00
README.md Update README.md 2022-12-23 09:11:26 +01:00
router.go Use SSE instead of WS 2023-04-16 21:44:54 +02:00
routes.go Use SSE instead of WS 2023-04-16 21:44:54 +02:00
tailwind.config.js Refactor html and tailwind files 2023-04-16 16:04:20 +02:00
templates.go Use SSE instead of WS 2023-04-16 21:44:54 +02:00
yarn.lock Change content padding 2023-04-18 10:37:57 +02:00

GoDash

A blazing fast start-page for your services written in Go.

Build Status

https://hub.docker.com/r/unjxde/godash

Dark Mode

dark_mode

Light Mode

light_mode

Lighthouse performance test

Emulated Moto G4 with Lighthouse 9.6.6, using headless chromium 106.0.5249.103:

lighthouse

How to use

Use the docker-compose to spin up the service. The Weather is fetched over a Current Weather Api Call with environment variables for the needed parameters. If you don't want to see the weather, do not provide a key as environment variable. Please refer to the available options as shown in the docker-compose example.

Example of the config.yaml

All Bookmarks are read from a file called config.yaml located inside the ./storage folder. The application will create a default file at startup and will automatically look for changes inside the file. Changes are printed in stdout when running with LOG_LEVEL=trace.

You can specify an icon of a bookmark either by using a link or by using the name of the file located inside the ./storage/icons folder that is mounted via the docker compose file. The name and related link can be provided as well.

config.yaml example:

links:
  - category: "Code"
    entries:
      - name: "Github"
        url: "https://github.com"
  - category: "CI/CD"
    entries:
      - name: "Jenkins"
        url: "https://www.jenkins.io/"
  - category: "Server"
    entries:
      - name: "bwCloud"
        url: "https://portal.bw-cloud.org"

applications:
  - category: "Code"
    entries:
      - name: "Github"
        icon: "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png"
        url: "https://github.com"
  - category: ""
    entries:
      - name: "Jenkins"
        icon: "https://www.jenkins.io/images/logos/jenkins/Jenkins-stop-the-war.svg"
        url: "https://www.jenkins.io/"
  - category: "Server"
    entries:
      - name: "bwCloud"
        icon: "https://portal.bw-cloud.org/static/dashboard/img/logo-splash.svg"
        url: "https://portal.bw-cloud.org"

Available environment variables with default values

PORT = 4000
ALLOWED_HOSTS = "*"
TITLE = "GoDash"

LOG_LEVEL = "info"

LOCATION_LATITUDE = 48.780331609463815
LOCATION_LONGITUDE = 9.177968320179422
WEATHER_KEY = ""
WEATHER_UNITS = "metric"
WEATHER_LANG = "en"
WEATHER_DIGITS = true

LIVE_SYSTEM = true

Heartbeat

/health

Heartbeat endpoint can be useful to setting up a load balancers or an external uptime testing service that can make a request before hitting any routes.

A docker-compose example:

version: '3.9'

services:

  godash:
    image: unjxde/godash:latest
    container_name: godash
    restart: unless-stopped
    environment:
      # https://docs.linuxserver.io/general/understanding-puid-and-pgid
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      # allowed hosts for cors, seperated by comma
      - ALLOWED_HOSTS=https://home.example.com,https://another.example.com
      # change title to something else
      - TITLE=GoDash
      # available log-levels: debug,info,warn,error,panic,fatal
      - LOG_LEVEL=info
      # create account here to get free key:
      # https://home.openweathermap.org/users/sign_up
      # remove to disable weather
      - WEATHER_KEY=thisIsNoFunctioningKey
      # standard, metric or imperial
      - WEATHER_UNITS=metric
      # https://openweathermap.org/current#multi
      - WEATHER_LANG=en
      # Temp is normally xx.xx, can be rounded to xx if desired
      - WEATHER_DIGITS=true
      # location is needed for weather
      - LOCATION_LATITUDE=48.644929601442485
      - LOCATION_LONGITUDE=9.349618464869025
      # show live system information
      - LIVE_SYSTEM=true
    volumes:
      # to mount the config.yaml and the icons folder on the system
      - ./storage:/app/storage
    # https://docs.docker.com/compose/compose-file/compose-file-v3/#ports
    ports:
      - "4000:4000"