A simple service dashboard with custom icons, names and links. Services can be hidden depending on OIDC groups & users.
Table of Contents
- 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
The easiest way to deploy goapps is using docker with Docker Compose. You can find the docker image on Packages.
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
- Go 1.22 or higher
git clone https://github.com/topi314/goapps.git
cd goapps
go build -o goapps
or
go install github.com/topi314/goapps@latest
goapps --config=goapps.yml
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 ]
}
goapps is licensed under the Apache License 2.0.
Contributions are always welcome! Just open a pull request or discussion and I will take a look at it.