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