migrate
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
---
|
||||
# Homepage configuration
|
||||
# See https://fontawesome.com/icons for icons options
|
||||
|
||||
title: "<< homer_title >>"
|
||||
subtitle: "<< homer_subtitle >>"
|
||||
logo: "<< homer_logo >>"
|
||||
# icon: "fas fa-home" # Optional icon instead of logo
|
||||
|
||||
header: true
|
||||
footer: false # Set to "<Message>" to enable footer with a custom message
|
||||
|
||||
# Optional theme customization
|
||||
theme: default # Options: default, sui
|
||||
# colors:
|
||||
# light:
|
||||
# highlight-primary: "#3367d6"
|
||||
# highlight-secondary: "#4285f4"
|
||||
# highlight-hover: "#5a95f5"
|
||||
# background: "#f5f5f5"
|
||||
# card-background: "#ffffff"
|
||||
# text: "#363636"
|
||||
# text-header: "#ffffff"
|
||||
# dark:
|
||||
# highlight-primary: "#3367d6"
|
||||
# highlight-secondary: "#4285f4"
|
||||
# highlight-hover: "#5a95f5"
|
||||
# background: "#131313"
|
||||
# card-background: "#2b2b2b"
|
||||
# text: "#eaeaea"
|
||||
# text-header: "#ffffff"
|
||||
|
||||
# Optional message displayed at the top
|
||||
# message:
|
||||
# style: "is-dark" # Options: is-dark, is-warning, is-info, is-success, is-danger
|
||||
# title: "Welcome!"
|
||||
# icon: "fa fa-grin"
|
||||
# content: "This is your Homer dashboard. <br /> Add your services below."
|
||||
|
||||
# Optional navbar links
|
||||
# links:
|
||||
# - name: "GitHub"
|
||||
# icon: "fab fa-github"
|
||||
# url: "https://github.com"
|
||||
# target: "_blank" # optional: open in new tab
|
||||
# - name: "Documentation"
|
||||
# icon: "fas fa-book"
|
||||
# url: "https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md"
|
||||
|
||||
# Services
|
||||
# First level array represents a group.
|
||||
# Leave only an "items" key if not using groups (group name, icon & tagstyle are optional)
|
||||
services:
|
||||
- name: "Applications"
|
||||
icon: "fas fa-cloud"
|
||||
# items:
|
||||
# - name: "Example App"
|
||||
# logo: "assets/tools/sample.png" # or use "icon: fas fa-server"
|
||||
# subtitle: "Description of the app"
|
||||
# tag: "app" # Optional tag
|
||||
# tagstyle: "is-success" # Optional: is-success, is-warning, is-info, is-danger
|
||||
# url: "https://example.com"
|
||||
# target: "_blank" # optional: open in new tab
|
||||
|
||||
# - name: "Monitoring"
|
||||
# icon: "fas fa-chart-line"
|
||||
# items:
|
||||
# - name: "Grafana"
|
||||
# icon: "fas fa-chart-area"
|
||||
# subtitle: "Metrics & dashboards"
|
||||
# url: "https://grafana.example.com"
|
||||
@@ -0,0 +1,43 @@
|
||||
services:
|
||||
<< service_name >>:
|
||||
image: docker.io/b4bz/homer:v26.4.2
|
||||
restart: << restart_policy >>
|
||||
<%- if container_name %>
|
||||
container_name: << container_name >>
|
||||
<%- endif %>
|
||||
<%- if container_timezone %>
|
||||
environment:
|
||||
- TZ=<< container_timezone >>
|
||||
<%- endif %>
|
||||
<%- if traefik_enabled %>
|
||||
networks:
|
||||
<< traefik_network >>:
|
||||
<%- endif %>
|
||||
<%- if not traefik_enabled %>
|
||||
ports:
|
||||
- "<< ports_http >>:8080"
|
||||
<%- endif %>
|
||||
volumes:
|
||||
- ./assets:/www/assets
|
||||
<%- if traefik_enabled %>
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.docker.network=<< traefik_network >>
|
||||
- traefik.http.services.<< service_name >>-web.loadBalancer.server.port=8080
|
||||
- traefik.http.routers.<< service_name >>-http.service=<< service_name >>-web
|
||||
- traefik.http.routers.<< service_name >>-http.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
||||
- traefik.http.routers.<< service_name >>-http.entrypoints=<< traefik_entrypoint >>
|
||||
<%- if traefik_tls_enabled %>
|
||||
- traefik.http.routers.<< service_name >>-https.service=<< service_name >>-web
|
||||
- traefik.http.routers.<< service_name >>-https.rule=Host(`<< traefik_host >>.<< traefik_domain >>`)
|
||||
- traefik.http.routers.<< service_name >>-https.entrypoints=<< traefik_tls_entrypoint >>
|
||||
- traefik.http.routers.<< service_name >>-https.tls=true
|
||||
- traefik.http.routers.<< service_name >>-https.tls.certresolver=<< traefik_tls_certresolver >>
|
||||
<%- endif %>
|
||||
<%- endif %>
|
||||
|
||||
<%- if traefik_enabled %>
|
||||
networks:
|
||||
<< traefik_network >>:
|
||||
external: true
|
||||
<%- endif %>
|
||||
@@ -0,0 +1,261 @@
|
||||
{
|
||||
"slug": "homer",
|
||||
"kind": "compose",
|
||||
"metadata": {
|
||||
"name": "Homer",
|
||||
"description": "Simple static homepage for your server to keep your services on hand, configured through a single YAML file.",
|
||||
"tags": [
|
||||
"traefik",
|
||||
"authentik"
|
||||
],
|
||||
"icon": {
|
||||
"provider": "selfhst",
|
||||
"id": "homer"
|
||||
},
|
||||
"draft": false,
|
||||
"version": {
|
||||
"name": "v26.4.2",
|
||||
"source_dep_name": "docker.io/b4bz/homer",
|
||||
"source_dep_version": "v26.4.2"
|
||||
}
|
||||
},
|
||||
"variables": [
|
||||
{
|
||||
"title": "General",
|
||||
"name": "general",
|
||||
"items": [
|
||||
{
|
||||
"name": "service_name",
|
||||
"type": "str",
|
||||
"title": "Service Name",
|
||||
"required": false,
|
||||
"default": "homer",
|
||||
"config": {
|
||||
"placeholder": "homer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "container_name",
|
||||
"type": "str",
|
||||
"title": "Container Name",
|
||||
"required": false,
|
||||
"default": "homer",
|
||||
"config": {
|
||||
"placeholder": "homer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "container_timezone",
|
||||
"type": "str",
|
||||
"title": "Container Timezone",
|
||||
"required": false,
|
||||
"config": {
|
||||
"placeholder": "Europe/Berlin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "restart_policy",
|
||||
"type": "enum",
|
||||
"title": "Restart Policy",
|
||||
"required": true,
|
||||
"default": "unless-stopped",
|
||||
"config": {
|
||||
"options": [
|
||||
"unless-stopped",
|
||||
"always",
|
||||
"on-failure",
|
||||
"no"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "homer_title",
|
||||
"type": "str",
|
||||
"title": "Dashboard title",
|
||||
"required": false,
|
||||
"default": "Dashboard",
|
||||
"config": {
|
||||
"placeholder": "Dashboard"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "homer_subtitle",
|
||||
"type": "str",
|
||||
"title": "Dashboard subtitle",
|
||||
"required": false,
|
||||
"default": "Dashboard",
|
||||
"config": {
|
||||
"placeholder": "Dashboard"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "homer_logo",
|
||||
"type": "str",
|
||||
"title": "Logo Path",
|
||||
"required": false,
|
||||
"default": "logo-file.png",
|
||||
"description": "Logo file path (relative to assets/)",
|
||||
"config": {
|
||||
"placeholder": "logo-file.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Ports",
|
||||
"name": "ports",
|
||||
"items": [
|
||||
{
|
||||
"name": "ports_http",
|
||||
"type": "int",
|
||||
"title": "HTTP Port",
|
||||
"required": false,
|
||||
"default": 8080,
|
||||
"config": {
|
||||
"placeholder": "8080"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Traefik",
|
||||
"name": "traefik",
|
||||
"toggle": "traefik_enabled",
|
||||
"items": [
|
||||
{
|
||||
"name": "traefik_enabled",
|
||||
"type": "bool",
|
||||
"title": "Traefik",
|
||||
"required": false,
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "traefik_host",
|
||||
"type": "str",
|
||||
"title": "Host",
|
||||
"required": true,
|
||||
"config": {
|
||||
"placeholder": "dashboard"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_domain",
|
||||
"type": "str",
|
||||
"title": "Domain",
|
||||
"required": true,
|
||||
"config": {
|
||||
"placeholder": "home.arpa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_entrypoint",
|
||||
"type": "str",
|
||||
"title": "Entrypoint",
|
||||
"required": true,
|
||||
"default": "web",
|
||||
"config": {
|
||||
"placeholder": "web"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_network",
|
||||
"type": "str",
|
||||
"title": "Network",
|
||||
"required": true,
|
||||
"default": "traefik",
|
||||
"config": {
|
||||
"placeholder": "traefik"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "traefik_tls_enabled",
|
||||
"type": "bool",
|
||||
"title": "TLS",
|
||||
"required": false,
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "traefik_tls_entrypoint",
|
||||
"type": "str",
|
||||
"title": "TLS Entrypoint",
|
||||
"required": true,
|
||||
"default": "websecure",
|
||||
"config": {
|
||||
"placeholder": "websecure"
|
||||
},
|
||||
"needs": [
|
||||
"traefik_tls_enabled=true"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "traefik_tls_certresolver",
|
||||
"type": "str",
|
||||
"title": "Cert Resolver",
|
||||
"required": true,
|
||||
"default": "cloudflare",
|
||||
"config": {
|
||||
"placeholder": "cloudflare"
|
||||
},
|
||||
"needs": [
|
||||
"traefik_tls_enabled=true"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Authentik SSO",
|
||||
"toggle": "authentik_enabled",
|
||||
"name": "authentik",
|
||||
"items": [
|
||||
{
|
||||
"name": "authentik_traefik_middleware",
|
||||
"type": "str",
|
||||
"title": "Authentik Traefik Middleware",
|
||||
"required": true,
|
||||
"default": "middleware@file",
|
||||
"needs": [
|
||||
"traefik_enabled=true"
|
||||
],
|
||||
"config": {
|
||||
"placeholder": "middleware@file"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "authentik_client_id",
|
||||
"type": "str",
|
||||
"title": "Client ID",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "authentik_client_secret",
|
||||
"type": "str",
|
||||
"title": "Client Secret",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "authentik_enabled",
|
||||
"type": "bool",
|
||||
"title": "Authentik SSO",
|
||||
"required": false,
|
||||
"default": false
|
||||
},
|
||||
{
|
||||
"name": "authentik_slug",
|
||||
"type": "str",
|
||||
"title": "Slug",
|
||||
"required": false,
|
||||
"default": ""
|
||||
},
|
||||
{
|
||||
"name": "authentik_url",
|
||||
"type": "str",
|
||||
"title": "The Authentik URL",
|
||||
"required": false,
|
||||
"default": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user