topi314 / goapps

Simple Service Dashboard

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Go Report Go Version goapps License goapps Version Docker Discord

goapps

A simple service dashboard with custom icons, names and links. Services can be hidden depending on OIDC groups & users.

preview

Table of Contents

Features

  • OIDC Authentication
  • Customizable icons, names, descriptions and links
  • Hide services depending on OIDC groups & users
  • Dark & Light mode
  • Responsive design
  • Docker support
  • Easy to use
  • No database required

Installation

Docker

The easiest way to deploy goapps is using docker with Docker Compose. You can find the docker image on Packages.

Docker Compose

Create a new docker-compose.yml file with the following content:

version: "3.8"

services:
  goapps:
    image: ghcr.io/topi314/goapps:latest
    container_name: goapps
    restart: unless-stopped
    volumes:
      - ./goapps.yml:/var/lib/goapps/goapps.yml:ro
      - ./icons/:/var/lib/goapps/icons/:ro
    ports:
      - 80:80

For goapps.yml see Configuration.

docker-compose up -d

Manual

Requirements

  • Go 1.22 or higher

Build

git clone https://github.com/topi314/goapps.git
cd goapps
go build -o goapps

or

go install github.com/topi314/goapps@latest

Run

goapps --config=goapps.yml

Configuration

Create a new goapps.yml file with the following content:

  log:
    # log level, either "debug", "info", "warn" or "error"
    level: info
    # log format, either "json" or "text"
    format: text
    # whether to add the source file and line to the log output
    add_source: false

  # enable or disable hot reload of templates and assets
  dev_mode: false
  # enable or disable debug profiler endpoint
  debug: false

  server:
    # on which address & port to listen
    listen_addr: 0.0.0.0:80
    # the title of the page
    title: goapps
    # the icon of the page
    icon: icon/goapps.png
    # where to find the custom icons
    icons_dir: ./icon

  # auth configuration for OIDC
  auth:
    # if the site is http or https
    secure: true
    # the OIDC issuer URL
    issuer_url: https://auth.example.com
    # the client ID
    client_id: goapps
    # the client secret
    client_secret: secret
    # the redirect URL for the OIDC callback
    redirect_url: https://example.com/callback
    # the oidc audience which must be present in the id token
    audience: goapps

  # the services to display on the dashboard
  services:
      # the name of the service
    - name: example
      # the description of the service (optional)
      description: example service
      # the icon of the service (can also be a url to an external site) (optional)
      icon: icon/example.png
      # the link to the service
      link: https://example.com
      # the groups that can see the service (optional)
      groups: [ group1 ]
      # the users that can see the service (optional)
      users: [ user1 ]
}

License

goapps is licensed under the Apache License 2.0.


Contributing

Contributions are always welcome! Just open a pull request or discussion and I will take a look at it.


Contact

About

Simple Service Dashboard

License:Apache License 2.0


Languages

Language:Go 69.6%Language:CSS 20.7%Language:JavaScript 7.2%Language:Dockerfile 2.5%