Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b7e1776724 | ||
|
|
08f7678258 | ||
|
|
2e5beb9c47 | ||
|
|
b9f092c5d0 | ||
|
|
ab268eb290 | ||
|
|
39f2f2b8bf | ||
|
|
050abd3828 | ||
|
|
81edf4bdac | ||
|
|
765b006285 | ||
|
|
e24c14b189 | ||
|
|
38ffc852b0 | ||
|
|
a30730cf76 | ||
|
|
6beab6c06e | ||
|
|
394d1ae49b | ||
|
|
1a92c0bb16 | ||
|
|
8d788aaf25 | ||
|
|
e9dc6a284a | ||
|
|
156ec87493 | ||
|
|
16810bf7fd | ||
|
|
6e8c4d6998 | ||
|
|
2b4ca7a64a | ||
|
|
5a1e697c0a |
@@ -19,7 +19,6 @@ build:
|
||||
script:
|
||||
- echo $DEPLOY
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
||||
|
||||
deploy_to_prod:
|
||||
variables:
|
||||
DEPLOY: prod
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
FROM b4bz/homer:latest
|
||||
|
||||
COPY config.yml /www/config.yml
|
||||
COPY assets /www/assets
|
||||
@@ -58,7 +58,7 @@ services:
|
||||
url: "https://zipkin.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Glances"
|
||||
- name: "Mainframe"
|
||||
logo: "assets/tools/glances.png"
|
||||
url: "https://monitor.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
@@ -66,6 +66,11 @@ services:
|
||||
- name: "Network"
|
||||
icon: "fas fa-server"
|
||||
items:
|
||||
- name: "Traefik"
|
||||
logo: assets/tools/traefik.png
|
||||
tag: "Network"
|
||||
url: "https://traefik.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Unifi"
|
||||
logo: assets/tools/unifi.png
|
||||
tag: "Network"
|
||||
@@ -76,23 +81,11 @@ services:
|
||||
tag: "Network"
|
||||
url: "https://protect.ui.com/"
|
||||
target: '_blank'
|
||||
- name: "Traefik Internal"
|
||||
logo: assets/tools/traefik.png
|
||||
tag: "Network"
|
||||
url: "https://traefik-internal.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Traefik External"
|
||||
logo: assets/tools/traefik.png
|
||||
tag: "Network"
|
||||
url: "https://traefik-external.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Pihole1"
|
||||
logo: assets/tools/pihole.svg
|
||||
tag: "Network"
|
||||
url: "https://pihole1.ducoterra.net/admin/"
|
||||
target: '_blank'
|
||||
- name: "Pihole2"
|
||||
logo: assets/tools/pihole.svg
|
||||
tag: "Network"
|
||||
url: "https://pihole2.ducoterra.net/admin/"
|
||||
- name: "Projects"
|
||||
icon: "fa-project-diagram"
|
||||
items:
|
||||
- name: "Python Class 2020"
|
||||
logo: "fa-file-code"
|
||||
tag: "Projects"
|
||||
url: "https://pythondocs2020.ducoterra.net/day5/"
|
||||
target: '_blank'
|
||||
77
assets/config.yml.dist
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
# Homepage configuration
|
||||
# See https://fontawesome.com/icons for icons options
|
||||
|
||||
title: "Demo dashboard"
|
||||
subtitle: "Homer"
|
||||
logo: "logo.png"
|
||||
# icon: "fas fa-skull-crossbones" # Optional icon
|
||||
|
||||
header: true
|
||||
footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it.
|
||||
|
||||
# Optional theme customization
|
||||
theme: default
|
||||
colors:
|
||||
light:
|
||||
highlight-primary: "#3367d6"
|
||||
highlight-secondary: "#4285f4"
|
||||
highlight-hover: "#5a95f5"
|
||||
background: "#f5f5f5"
|
||||
card-background: "#ffffff"
|
||||
text: "#363636"
|
||||
text-header: "#ffffff"
|
||||
text-title: "#303030"
|
||||
text-subtitle: "#424242"
|
||||
card-shadow: rgba(0, 0, 0, 0.1)
|
||||
link-hover: "#363636"
|
||||
dark:
|
||||
highlight-primary: "#3367d6"
|
||||
highlight-secondary: "#4285f4"
|
||||
highlight-hover: "#5a95f5"
|
||||
background: "#131313"
|
||||
card-background: "#2b2b2b"
|
||||
text: "#eaeaea"
|
||||
text-header: "#ffffff"
|
||||
text-title: "#fafafa"
|
||||
text-subtitle: "#f5f5f5"
|
||||
card-shadow: rgba(0, 0, 0, 0.4)
|
||||
link-hover: "#ffdd57"
|
||||
|
||||
# Optional message
|
||||
message:
|
||||
#url: https://b4bz.io
|
||||
style: "is-dark" # See https://bulma.io/documentation/components/message/#colors for styling options.
|
||||
title: "Demo !"
|
||||
icon: "fa fa-grin"
|
||||
content: "This is a dummy homepage demo. <br /> Find more information on <a href='https://github.com/bastienwirtz/homer'>github.com/bastienwirtz/homer</a>"
|
||||
|
||||
# Optional navbar
|
||||
# links: [] # Allows for navbar (dark mode, layout, and search) without any links
|
||||
links:
|
||||
- name: "Contribute"
|
||||
icon: "fab fa-github"
|
||||
url: "https://github.com/bastienwirtz/homer"
|
||||
target: "_blank" # optional html a tag target attribute
|
||||
- name: "Wiki"
|
||||
icon: "fas fa-book"
|
||||
url: "https://www.wikipedia.org/"
|
||||
|
||||
# Services
|
||||
# First level array represent a group.
|
||||
# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
|
||||
services:
|
||||
- name: "Applications"
|
||||
icon: "fas fa-cloud"
|
||||
items:
|
||||
- name: "Awesome app"
|
||||
logo: "assets/tools/sample.png"
|
||||
subtitle: "Bookmark example"
|
||||
tag: "app"
|
||||
url: "https://www.reddit.com/r/selfhosted/"
|
||||
target: "_blank" # optional html a tag target attribute
|
||||
- name: "Another one"
|
||||
logo: "assets/tools/sample2.png"
|
||||
subtitle: "Another application"
|
||||
tag: "app"
|
||||
url: "#"
|
||||
64
assets/config.yml.dist.sample-sui
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
# Homepage configuration
|
||||
# See https://fontawesome.com/icons for icons options
|
||||
|
||||
title: "Hello beautiful!"
|
||||
subtitle: "App dashboard"
|
||||
logo: false
|
||||
# icon: "fas fa-skull-crossbones" Optional icon
|
||||
|
||||
header: true
|
||||
|
||||
# Optional theme customization
|
||||
theme: sui
|
||||
colors:
|
||||
light:
|
||||
highlight-primary: transparent
|
||||
highlight-secondary: transparent
|
||||
highlight-hover: "#4a4a4a"
|
||||
text-subtitle: "#424242"
|
||||
dark:
|
||||
background: "#2B2C56"
|
||||
highlight-primary: transparent
|
||||
highlight-secondary: transparent
|
||||
highlight-hover: "#200b35"
|
||||
text-subtitle: "#6375e8"
|
||||
|
||||
# Optional navbar
|
||||
# links: [] # Allows for navbar (dark mode, layout, and search) without any links
|
||||
links: []
|
||||
|
||||
# Services
|
||||
# First level array represent a group.
|
||||
# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
|
||||
services:
|
||||
- name: "APPLICATIONS"
|
||||
items:
|
||||
- name: "Jenkins"
|
||||
logo: "assets/tools/jenkins.png"
|
||||
subtitle: "Continuous integration server"
|
||||
url: "https://jenkins.io/"
|
||||
- name: "RabbitMQ Management"
|
||||
logo: "assets/tools/rabbitmq.png"
|
||||
subtitle: "Manage & monitor RabbitMQ server"
|
||||
# Optional tagstyle
|
||||
# Same styling options as the optional message.
|
||||
tagstyle: "is-success"
|
||||
url: "https://www.rabbitmq.com/"
|
||||
- name: "M/Monit"
|
||||
logo: "assets/tools/monit.png"
|
||||
subtitle: "Monitor & manage all monit enabled hosts"
|
||||
url: "https://mmonit.com/monit/"
|
||||
- name: "Grafana"
|
||||
logo: "assets/tools/grafana.png"
|
||||
subtitle: "Metric analytics & dashboards"
|
||||
url: "https://grafana.com/"
|
||||
- name: "Kibana"
|
||||
logo: "assets/tools/elastic.png"
|
||||
subtitle: "Explore & visualize logs"
|
||||
url: "https://www.elastic.co/products/kibana"
|
||||
- name: "Website monitoring"
|
||||
logo: "assets/tools/pingdom.png"
|
||||
subtitle: "Pingdom public reports overview"
|
||||
tag: "CI"
|
||||
url: "https://www.pingdom.com/"
|
||||
8
assets/custom.css.sample
Normal file
@@ -0,0 +1,8 @@
|
||||
@charset "UTF-8";
|
||||
|
||||
/* Custom card colors */
|
||||
/* Use with `class:` property of services in config.yml */
|
||||
body #app .card.green {
|
||||
background-color: #006600;
|
||||
color: #00ff00;
|
||||
}
|
||||
BIN
assets/icons/favicon-16x16.png
Normal file
|
After Width: | Height: | Size: 790 B |
BIN
assets/icons/favicon-32x32.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
assets/icons/icon-any.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
1
assets/icons/icon-any.svg
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/icons/icon-maskable.png
Normal file
|
After Width: | Height: | Size: 124 KiB |
3
assets/icons/safari-pinned-tab.svg
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
1
assets/manifest.json
Normal file
@@ -0,0 +1 @@
|
||||
{"name":"Homer Dashboard","short_name":"Homer","theme_color":"#3367D6","icons":[{"src":"./icons/favicon-16x16.png","sizes":"16x16","type":"image/png"},{"src":"./icons/favicon-32x32.png","sizes":"32x32","type":"image/png"},{"src":"./icons/icon-any.png","sizes":"512x512","type":"image/png","purpose":"any"},{"src":"./icons/icon-any.svg","sizes":"any","type":"image/svg+xml","purpose":"any"},{"src":"./icons/icon-maskable.png","sizes":"512x512","type":"image/png","purpose":"maskable"},{"src":"./icons/safari-pinned-tab.svg","sizes":"any","type":"image/svg+xml","purpose":"monochrome"}],"start_url":"../","display":"standalone","background_color":"#000000"}
|
||||
BIN
assets/tools/dtn.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
assets/tools/dtn2.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
assets/tools/dtn3.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/tools/dtn4.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
assets/tools/sample.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
assets/tools/sample2.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
BIN
assets/tools/vscode.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
@@ -2,10 +2,8 @@ version: '3'
|
||||
|
||||
services:
|
||||
homer:
|
||||
build: .
|
||||
image: hub.ducoterra.net/ducoterra/homer:1.0.2
|
||||
image: b4bz/homer:latest
|
||||
ports:
|
||||
- 8080:8080
|
||||
volumes:
|
||||
- ./config.yml:/www/config.yml
|
||||
- ./assets:/www/assets
|
||||
- ./helm/config.yml:/www/config.yml
|
||||
@@ -1,6 +1,6 @@
|
||||
apiVersion: v2
|
||||
name: helm
|
||||
description: A Helm chart for Kubernetes
|
||||
name: homer
|
||||
description: a simple homer chart
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
|
||||
86
helm/config.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: "DucoTerra Network"
|
||||
subtitle: "DTN"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/dtn4.png" # Optional icon
|
||||
footer: false
|
||||
|
||||
links: [] # Allows for navbar (dark mode, layout, and search) without any links
|
||||
services:
|
||||
- name: "DevSecOps"
|
||||
icon: "fas fa-code-branch"
|
||||
items:
|
||||
- name: "Gitlab"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/Gitlab.svg"
|
||||
tag: "CI"
|
||||
url: "https://gitlab.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Code Server"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/vscode.png"
|
||||
tag: "Duconet"
|
||||
url: "https://dev.dnet/"
|
||||
target: '_blank'
|
||||
- name: "Cloud"
|
||||
icon: "fas fa-save"
|
||||
items:
|
||||
- name: "Freenas"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/freenas.png"
|
||||
tag: "Duconet"
|
||||
url: "https://freenas.dnet/"
|
||||
target: '_blank'
|
||||
- name: "Nextcloud"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/nextcloud.png"
|
||||
tag: "Storage"
|
||||
url: "https://nextcloud.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Entertainment"
|
||||
icon: "fas fa-photo-video"
|
||||
items:
|
||||
- name: "Jellyfin"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/jellyfin.svg"
|
||||
url: "https://jellyfin.ducoterra.net"
|
||||
tag: "Entertainment"
|
||||
target: '_blank'
|
||||
- name: "Monitoring"
|
||||
icon: "fas fa-heartbeat"
|
||||
items:
|
||||
- name: "Grafana"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/grafana.svg"
|
||||
url: "https://grafana.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Mainframe"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/glances.png"
|
||||
url: "https://monitor.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Network"
|
||||
icon: "fas fa-server"
|
||||
items:
|
||||
- name: "Traefik"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/traefik.png"
|
||||
tag: "Network"
|
||||
url: "https://traefik.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Pihole"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/pihole.svg"
|
||||
tag: "Network"
|
||||
url: "https://pi.hole"
|
||||
target: '_blank'
|
||||
- name: "Unifi"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/unifi.png"
|
||||
tag: "Network"
|
||||
url: "https://unifi.ui.com"
|
||||
target: '_blank'
|
||||
- name: "Protect"
|
||||
logo: "https://gitlab.ducoterra.net/services/homer/-/raw/master/assets/tools/protect.ico"
|
||||
tag: "Network"
|
||||
url: "https://protect.ui.com/"
|
||||
target: '_blank'
|
||||
- name: "Projects"
|
||||
icon: "fas fa-project-diagram"
|
||||
items:
|
||||
- name: "Python Class 2020"
|
||||
icon: "fas fa-file-code"
|
||||
tag: "Projects"
|
||||
url: "https://pythondocs2020.ducoterra.net/day5/"
|
||||
target: '_blank'
|
||||
7
helm/templates/configmap.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Release.Name }}
|
||||
data:
|
||||
config.yml: |{{ range .Files.Lines "config.yml" }}
|
||||
{{ . }}{{ end }}
|
||||
@@ -10,10 +10,16 @@ spec:
|
||||
metadata:
|
||||
labels:
|
||||
app: {{ .Release.Name }}
|
||||
annotations:
|
||||
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
|
||||
spec:
|
||||
containers:
|
||||
- name: {{ .Release.Name }}
|
||||
image: {{ .Values.image }}:{{ .Values.tag }}
|
||||
image: {{ .Values.image }}
|
||||
volumeMounts:
|
||||
- mountPath: /www/config.yml
|
||||
name: config
|
||||
subPath: config.yml
|
||||
resources:
|
||||
limits:
|
||||
memory: "128Mi"
|
||||
@@ -22,4 +28,8 @@ spec:
|
||||
memory: "64Mi"
|
||||
cpu: "1m"
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
- containerPort: 8080
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ .Release.Name }}
|
||||
@@ -1,31 +1,29 @@
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-internal-tls
|
||||
name: {{ .Release.Name }}-tls
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik-internal
|
||||
kubernetes.io/ingress.class: traefik
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
tls:
|
||||
certResolver: myresolver
|
||||
domains:
|
||||
- main: "*.ducoterra.net"
|
||||
certResolver: duconet
|
||||
routes:
|
||||
- match: Host(`{{ .Release.Name }}.ducoterra.net`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: {{ .Release.Name }}
|
||||
port: 8080
|
||||
|
||||
middlewares:
|
||||
- name: basic-auth-{{ .Release.Name }}
|
||||
---
|
||||
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: {{ .Release.Name }}-internal-web
|
||||
name: {{ .Release.Name }}
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik-internal
|
||||
kubernetes.io/ingress.class: traefik
|
||||
spec:
|
||||
entryPoints:
|
||||
- web
|
||||
@@ -36,4 +34,22 @@ spec:
|
||||
- name: {{ .Release.Name }}
|
||||
port: 8080
|
||||
middlewares:
|
||||
- name: httpsredirect
|
||||
- name: httpsredirect-{{ .Release.Name }}
|
||||
---
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: httpsredirect-{{ .Release.Name }}
|
||||
spec:
|
||||
redirectScheme:
|
||||
scheme: https
|
||||
permanent: true
|
||||
---
|
||||
apiVersion: traefik.containo.us/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: basic-auth-{{ .Release.Name }}
|
||||
spec:
|
||||
basicAuth:
|
||||
secret: authsecret
|
||||
removeHeader: true
|
||||
@@ -1,2 +1 @@
|
||||
image: hub.ducoterra.net/ducoterra/homer
|
||||
tag: 1.1.5
|
||||
image: b4bz/homer:latest
|
||||