Initial Commit

This commit is contained in:
2022-09-09 16:37:09 -07:00
commit dddb37e979
21 changed files with 826 additions and 0 deletions

5
homer/README.md Normal file
View 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
View 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
View 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",
]
}
}
}
}