2023-04-20 22:47:29 +00:00
# Starbase 80
2023-04-20 22:54:43 +00:00
> DR T'ANA: (to Mariner) "You wanna goof around? Go work on Starbase 80!"<br />
> JET: "Damn, Starbase 80?!"<br />
> via [@EnterpriseExtra](https://twitter.com/EnterpriseExtra/status/1304161631451004928)
# About
2023-04-20 22:59:51 +00:00
A nice looking homepage for Docker containers or any services and links.
2023-04-21 22:50:54 +00:00
No actual integration with Docker. Loads instantly. Dark mode follows your OS.
2023-04-20 22:47:29 +00:00
If you make a change to the config JSON, restart this container and refresh.
2023-04-21 20:34:14 +00:00
Inspired by [Ben Phelps' Homepage ](https://gethomepage.dev/ ) and [Umbrel ](https://umbrel.com/ ).
< img src = "./preview.jpg" alt = "" / >
# Icons
2023-04-21 21:40:19 +00:00
## Options
- Set a background by providing an "iconBG" from the [list of Tailwind colors ](https://tailwindcss.com/docs/background-color ). Do not prefix with "bg-".
- Turn off the bubble and shadow by setting `"iconBubble": false` .
- Turn off background color by setting `"iconBG": "transparent"` .
- Hide the icon entirely by setting `"icon": ""` .
```bash
# Specify an icon in config.json
"icon": "/icons/jellyfin.jpg",
"iconColor": "blue-500", # optional, defaults to a contrasting color
"iconBG": "gray-200", # optional, defaults to a complementary color
"iconBubble": false, # optional, defaults to true
```
2023-04-21 20:34:14 +00:00
## Use your own
Create a volume or bind mount to a subfolder of `/app/public` and specify a relative path.
```bash
# Your folder
compose.yml
- icons
- jellyfin.jpg
- ghost.jpg
# Bind mount
./icons:/app/public/icons
# Specify an icon in config.json
"icon": "/icons/jellyfin.jpg"
```
## Dashboard icons
Use [Dashboard icons ](https://github.com/walkxcode/dashboard-icons ) by specifying a name without any prefix.
```bash
# Specify an icon in config.json
"icon": "jellyfin"
```
## Material design
Use any [Material Design icon ](https://icon-sets.iconify.design/mdi/ ) by prefixing the name with `mdi-` .
2023-04-21 21:15:25 +00:00
Fill the icon by providing an "iconColor" from the [list of Tailwind colors ](https://tailwindcss.com/docs/background-color ). Do not prefix with "bg-".
2023-04-21 22:02:15 +00:00
Use "black" or "white" for those colors.
2023-04-21 20:34:14 +00:00
```bash
# Specify an icon in config.json
2023-04-21 22:02:15 +00:00
"icon": "mdi-cloud",
"iconColor": "black"
2023-04-21 20:34:14 +00:00
```
2023-04-20 22:47:29 +00:00
# Docker compose
```yaml
services:
homepage:
image: jordanroher/starbase-80
ports:
- 4173:4173
2023-04-20 23:42:30 +00:00
environment:
2023-04-21 22:02:15 +00:00
- TITLE=Starbase 80 # defaults to "My Website", set to TITLE= to hide the title
- LOGO=/starbase80.jpg # defaults to /logo.png, set to LOGO= to hide the logo
- HEADER=true # defaults to true, set to false to hide the title and logo
2023-04-21 22:08:24 +00:00
- HEADERLINE=true # defaults to true, set to false to turn off the header border line
2023-04-21 22:02:15 +00:00
- CATEGORIES=small # defaults to normal, set to small for smaller, uppercase category labels
2023-04-21 22:50:54 +00:00
- BGCOLOR=#fff # defaults to theme(colors.slate.50), set to any hex color or Tailwind color using the theme syntax
- BGCOLORDARK=#000 # defaults to theme(colors.gray.950), set to any hex color or Tailwind color using the theme syntax
2023-04-20 22:47:29 +00:00
volumes:
2023-04-21 14:56:51 +00:00
- ./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
2023-04-21 01:03:15 +00:00
- ./public/icons:/app/public/icons # or wherever, JSON icon paths are relative to /app/public
2023-04-20 22:47:29 +00:00
```
# config.json format
2023-04-21 20:34:14 +00:00
## Categories
Can have as many categories as you like.
- **category** : Title, optional, displays above services
2023-04-21 22:26:03 +00:00
- **bubble** : boolean, optional, defaults to false, shows a bubble around category
2023-04-21 20:34:14 +00:00
- **services** : Array of services
## Service
- **name** : Name, required
- **uri** : Hyperlink, required
- **description** : 2-3 words, optional
- **icon** : relative URI, absolute URI, service name ([Dashboard icon](https://github.com/walkxcode/dashboard-icons)) or `mdi-` service name ([Material Design icon](https://icon-sets.iconify.design/mdi/))
## Template
```json
[
{
"category": "Category name",
2023-04-21 22:26:03 +00:00
"bubble": false,
2023-04-21 20:34:14 +00:00
"services": [
{
"name": "My App",
"uri": "https://website.com",
"description": "Fun site",
"icon": "/icons/myapp.png"
}
]
}
]
```
## Example
2023-04-20 22:47:29 +00:00
```json
[
{
"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",
2023-04-21 22:26:03 +00:00
"bubble": true,
2023-04-20 22:47:29 +00:00
"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"
}
]
}
]
```