Initial Commit
This commit is contained in:
5
homer/README.md
Normal file
5
homer/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Homer
|
||||
|
||||
This is the nomad job file I use for the [Homer](https://github.com/bastienwirtz/homer/) dashboard. It takes its config file from the Consul Key/Value store. This means that whenever the config is edited, Nomad automatically installs the new file and restarts the container. It also means that Homer is completely stateless, and therefore can be freely moved around by Nomad.
|
||||
|
||||
This directory also contains the config I use for my dashboard at https://dashboard.arsenm.dev. This is placed into the Consul K/V store as `homer/config.yml`.
|
||||
84
homer/config.yml
Normal file
84
homer/config.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
# Homepage configuration
|
||||
# See https://fontawesome.com/v5/search for icons options
|
||||
|
||||
# externalConfig: https://example.com/server-luci/config.yaml
|
||||
|
||||
title: "Dashboard"
|
||||
subtitle: "Home"
|
||||
documentTitle: "Dashboard"
|
||||
|
||||
header: true
|
||||
footer: false
|
||||
|
||||
columns: "auto"
|
||||
connectivityCheck: true
|
||||
|
||||
defaults:
|
||||
layout: list
|
||||
colorTheme: dark
|
||||
|
||||
theme: default
|
||||
|
||||
colors:
|
||||
dark:
|
||||
highlight-primary: "#00aa0b"
|
||||
highlight-secondary: "#00b918"
|
||||
highlight-hover: "#47c447"
|
||||
|
||||
links: []
|
||||
|
||||
services:
|
||||
- name: "Self-hosted Services"
|
||||
icon: "fa-solid fa-user"
|
||||
items:
|
||||
- name: "SearXNG"
|
||||
icon: "fa-solid fa-magnifying-glass"
|
||||
subtitle: "Metasearch engine"
|
||||
url: "https://search.arsenm.dev/"
|
||||
- name: "Nextcloud"
|
||||
icon: "fa-solid fa-cloud"
|
||||
subtitle: "Cloud file storage"
|
||||
url: "https://nextcloud.arsenm.dev/"
|
||||
- name: "Home Assistant"
|
||||
icon: "fa-solid fa-house"
|
||||
subtitle: "Home automation hub"
|
||||
url: "https://hass.arsenm.dev/"
|
||||
- name: "Gitea"
|
||||
icon: "fa-solid fa-code-branch"
|
||||
subtitle: "Web interface for Git"
|
||||
url: "https://gitea.arsenm.dev/"
|
||||
- name: "Minio"
|
||||
icon: "fa-solid fa-box"
|
||||
subtitle: "Open source S3 implementation"
|
||||
url: "https://minio.arsenm.dev/"
|
||||
- name: "LMS"
|
||||
icon: "fa-solid fa-music"
|
||||
subtitle: "Lightweight music server"
|
||||
url: "https://music.arsenm.dev/"
|
||||
- name: "Piracy"
|
||||
icon: "fa-solid fa-skull-crossbones"
|
||||
items:
|
||||
- name: "LibGen"
|
||||
icon: "fa-solid fa-book"
|
||||
subtitle: "Database of pirated books"
|
||||
url: "https://whereislibgen.now.sh/go"
|
||||
- name: "Sci-Hub"
|
||||
icon: "fa-solid fa-flask"
|
||||
subtitle: "Database of pirated scientific papers"
|
||||
url: "https://sci-hub.now.sh/"
|
||||
- name: "Administration"
|
||||
icon: "fa-solid fa-wrench"
|
||||
items:
|
||||
- name: "Traefik"
|
||||
icon: "fa fa-globe"
|
||||
subtitle: "Reverse proxy"
|
||||
url: "https://traefik.arsenm.dev/"
|
||||
- name: "Nomad"
|
||||
icon: "fa-solid fa-circle-nodes"
|
||||
subtitle: "Cluster orchestrator"
|
||||
url: "https://nomad.arsenm.dev/"
|
||||
- name: "Consul"
|
||||
icon: "fa-solid fa-database"
|
||||
subtitle: "Service discovery and K/V store"
|
||||
url: "https://consul.arsenm.dev/"
|
||||
46
homer/homer.nomad
Normal file
46
homer/homer.nomad
Normal file
@@ -0,0 +1,46 @@
|
||||
job "homer" {
|
||||
region = "global"
|
||||
datacenters = ["dc1"]
|
||||
type = "service"
|
||||
|
||||
group "homer" {
|
||||
count = 1
|
||||
|
||||
network {
|
||||
port "homer" {}
|
||||
}
|
||||
|
||||
task "homer" {
|
||||
driver = "docker"
|
||||
|
||||
env {
|
||||
PORT = "${NOMAD_PORT_homer}"
|
||||
}
|
||||
|
||||
config {
|
||||
image = "b4bz/homer:latest"
|
||||
ports = ["homer"]
|
||||
|
||||
volumes = [
|
||||
"local/config.yml:/www/assets/config.yml"
|
||||
]
|
||||
}
|
||||
|
||||
template {
|
||||
data = "{{ key `homer/config.yml` }}"
|
||||
destination = "local/config.yml"
|
||||
}
|
||||
|
||||
service {
|
||||
name = "homer"
|
||||
port = "homer"
|
||||
|
||||
tags = [
|
||||
"traefik.enable=true",
|
||||
"traefik.http.routers.homer.rule=Host(`dashboard.arsenm.dev`)",
|
||||
"traefik.http.routers.homer.tls.certResolver=letsencrypt",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user