sui
sui copied to clipboard
a self-populating dashboard for your self-hosted apps
SUI
a startpage for your server and / or new tab page
This fork provides mechanisms for self-population: using Docker or Træfik as a source
Deploy with Docker compose
Prerequisites:
-
The Docker images are available on Docker Hub and the GitHub container registry
-
ghcr.io/willfantom/sui:latest
ordocker.io/willfantom/sui:latest
-
-
Images are available for
arm
too for deployment on raspberry pi.
Shameless Plug
This was designed to work with my compose setup. This setup can be found here. This is a good reference if you want too see how the configuration works using both docker labels and the traefik API.
Configuration
This version of SUI is designed to pull the apps list from an external provider.
There are 2 layers of configuration for this dashboard, static and dynamic. Static sets up connections to services such as Docker or Traefik, whereas dynamic uses features such as docker labels to overwrite data received from the App Providers.
Currently supported providers are:
-
Docker
via socket (docker
) -
Træfik
via API (traefik
)
A guide on static config - here
Dynamic Config
Using Docker Labels
If you have added a Docker provider (either by itself or with a traefik provider), you can use docker labels to overwrite values.
for example:
-
sui.enabled=true
will hide the service from the dashboard if false -
sui.name=Example
will set the application's name toExample
rather than the containers name -
sui.url=https://a.example.tld
will link the application to the given value rather than the traefik router url -
sui.icon=application
will set the apps icon toapplication
(see here)
Customization
Changing color themes
- Click the options button on the left bottom
Color themes
These can be added or customized in the themer.js file. When changing the name of a theme or adding one, make sure to edit this section in index.html accordingly:
<section class="themes">
I might add a simpler way to edit themes at some point, but adding the current ones should be pretty straight forward.
TODO
- [ ] Ignore traefik service with a regex
- [ ] Connect to remote docker instances via TCP
- [ ] Ensure auth works with this too
- [ ] If service goes missing, perhaps gray out for a few refresh cycles
- [ ] Password protect
protected
services - [ ] Add some other providers (including a simple File)
- [ ] Add more default icons