A dynamically-populated homepage that uses Starbase 80's config-template rendering, in combination with consul-template's dynamic service rendering, to create live dashboards for users.
Go to file
Jordan Roher 4dd0fba556 Updated readme
Added license
2023-04-21 07:56:51 -07:00
.vscode Odd exclusion 2023-04-19 15:01:08 -07:00
src Using logo now 2023-04-20 21:44:37 -07:00
.dockerignore Removed baked-in images 2023-04-20 15:47:29 -07:00
.gitignore Removed baked-in images 2023-04-20 15:47:29 -07:00
compose.yml Removed baked-in images 2023-04-20 15:47:29 -07:00
config.json.sample Working on getting the dockerfile right 2023-04-20 16:42:30 -07:00
docker-entrypoint.sh Typos 2023-04-20 21:47:52 -07:00
dockerfile Using logo now 2023-04-20 21:44:37 -07:00
index.html Working on getting the dockerfile right 2023-04-20 16:42:30 -07:00
license Updated readme 2023-04-21 07:56:51 -07:00
package-lock.json Docker is working 2023-04-19 22:46:55 -07:00
package.json Updated readme 2023-04-21 07:56:51 -07:00
postcss.config.js Vite + Tailwind 2023-04-19 14:40:25 -07:00
preview.jpg Fixed base image 2023-04-20 15:59:51 -07:00
readme.md Updated readme 2023-04-21 07:56:51 -07:00
tailwind.config.js Icon background colors 2023-04-19 18:10:21 -07:00
tsconfig.json No more fake services 2023-04-19 19:31:29 -07:00
tsconfig.node.json Vite + Tailwind 2023-04-19 14:40:25 -07:00
vite.config.ts Removed baked-in images 2023-04-20 15:47:29 -07:00

Starbase 80

DR T'ANA: (to Mariner) "You wanna goof around? Go work on Starbase 80!"
JET: "Damn, Starbase 80?!"
via @EnterpriseExtra

About

A nice looking homepage for Docker containers or any services and links.

No actual integration with Docker. Loads instantly. No dark theme.

If you make a change to the config JSON, restart this container and refresh.

Provide your own icons.

Docker compose

services:
    homepage:
        image: jordanroher/starbase-80
        ports:
            - 4173:4173
        environment:
            - TITLE=My Homepage
			- LOGO=/logo.png
        volumes:
            - ./config.json:/app/src/config.json # required
            - ./public/favicon.ico:/app/public/favicon.ico # optional
            - ./public/logo.png:/app/public/logo.png # optional, or you can reference something in /icons
            - ./public/icons:/app/public/icons # or wherever, JSON icon paths are relative to /app/public

config.json format

[
	{
		"category": "Services",
		"services": [
			{
				"name": "Archivebox",
				"uri": "https://archivebox.mywebsite.com",
				"description": "Backup webpages",
				"icon": "/icons/archivebox.jpg"
			},
			{
				"name": "Authelia",
				"uri": "https://auth.mywebsite.com",
				"description": "Authentication",
				"icon": "/icons/authelia.png"
			},
			{
				"name": "Calibre",
				"uri": "https://calibre.mywebsite.com",
				"description": "eBook library",
				"icon": "/icons/calibre.png"
			}
		]
	},
	{
		"category": "Devices",
		"services": [
			{
				"name": "Router",
				"uri": "http://192.168.1.1/",
				"description": "Netgear Orbi",
				"icon": "/icons/router.png"
			},
			{
				"name": "Home Assistant",
				"uri": "http://homeassistant.local:8123/",
				"description": "Home automation",
				"icon": "/icons/home-assistant.svg"
			},
			{
				"name": "Synology",
				"uri": "http://synology:5000",
				"description": "Network storage",
				"icon": "/icons/synology.png"
			}
		]
	}
]