28 Commits

Author SHA1 Message Date
ducoterra
b7e1776724 Merge branch 'master' of gitlab.ducoterra.net:services/homer 2021-01-08 10:24:32 -05:00
ducoterra
08f7678258 Add pihole and DTN 2021-01-08 10:24:06 -05:00
ducoterra
2e5beb9c47 Merge branch 'master' of gitlab.ducoterra.net:services/homer 2021-01-08 10:21:09 -05:00
ducoterra
b9f092c5d0 add dtn 4 2020-12-16 13:20:30 -05:00
ducoterra
ab268eb290 dtn3 2020-12-16 12:58:55 -05:00
ducoterra
39f2f2b8bf add dtn2 2020-12-16 12:55:21 -05:00
ducoterra
050abd3828 add DTN logo 2020-12-16 12:50:27 -05:00
ducoterra
81edf4bdac annotation needs to be in the template metadata 2020-12-16 11:19:18 -05:00
ducoterra
765b006285 pod updates when config updates, configmap reads from config yaml 2020-12-16 10:46:35 -05:00
ducoterra
e24c14b189 add vscode asset 2020-12-15 16:55:40 -05:00
ducoterra
38ffc852b0 remove zipkin 2020-12-13 21:27:27 -05:00
devpi
a30730cf76 minor change 2020-12-14 02:25:01 +00:00
devpi
6beab6c06e upgrade template 2020-12-13 03:36:23 +00:00
ducoterra
394d1ae49b add python docs 2020 2020-12-11 17:28:17 -05:00
ducoterra
1a92c0bb16 consolidate traefik 2020-12-11 17:15:53 -05:00
ducoterra
8d788aaf25 update to correct registry 2020-09-18 09:43:46 -04:00
ducoterra
e9dc6a284a add http 2020-09-17 20:49:53 -04:00
ducoterra
156ec87493 update hub address 2020-09-17 20:47:46 -04:00
ducoterra
16810bf7fd remove pihole + pi glances 2020-09-01 10:48:23 -04:00
ducoterra
6e8c4d6998 fix another https issue 2020-08-17 15:13:19 -04:00
ducoterra
2b4ca7a64a fix http 2020-08-17 15:10:57 -04:00
ducoterra
5a1e697c0a add pihole.ducoterra.net and multiple glances 2020-08-17 15:07:59 -04:00
ducoterra
a370768b90 add pgadmin 2020-08-12 12:18:33 -04:00
ducoterra
8507515e56 change temp to monitor: 2020-07-10 12:37:09 -04:00
ducoterra
b66575bd29 switch freenas to http 2020-06-27 11:13:55 -04:00
ducoterra
cb71286c1e add glances 2020-06-27 11:12:39 -04:00
ducoterra
9c8774527f Merge branch 'master' of gitlab.ducoterra.net:services/homer 2020-06-15 21:33:48 -04:00
ducoterra
e0e90aa291 add tag to values 2020-06-15 21:33:42 -04:00
30 changed files with 314 additions and 53 deletions

View File

@@ -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

View File

@@ -1,4 +0,0 @@
FROM b4bz/homer:latest
COPY config.yml /www/config.yml
COPY assets /www/assets

View File

@@ -3,5 +3,5 @@
## Deploy
```bash
helm template homer --set tag=1.1.1 ./helm | kubectl apply -f -
helm install homer ./helm
```

View File

@@ -6,7 +6,7 @@ footer: false
links: [] # Allows for navbar (dark mode, layout, and search) without any links
services:
- name: "DevOps"
- name: "DevSecOps"
icon: "fas fa-code-branch"
items:
- name: "Gitlab"
@@ -14,6 +14,11 @@ services:
tag: "CI"
url: "https://gitlab.ducoterra.net/"
target: '_blank'
- name: "pgAdmin"
logo: "assets/tools/pgadmin.ico"
tag: "CI"
url: "https://pgadmin.ducoterra.net/"
target: '_blank'
- name: "Storage"
icon: "fas fa-save"
items:
@@ -25,7 +30,7 @@ services:
- name: "Freenas"
logo: "assets/tools/freenas.png"
tag: "Storage"
url: "https://freenas.ducoterra.net/"
url: "http://freenas.ducoterra.net/"
target: '_blank'
- name: "Entertainment"
icon: "fas fa-photo-video"
@@ -53,9 +58,19 @@ services:
url: "https://zipkin.ducoterra.net/"
tag: "Monitoring"
target: '_blank'
- name: "Mainframe"
logo: "assets/tools/glances.png"
url: "https://monitor.ducoterra.net/"
tag: "Monitoring"
target: '_blank'
- 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"
@@ -66,31 +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/"
target: '_blank'
- name: "Tools"
icon: "fas fa-wrench"
- name: "Projects"
icon: "fa-project-diagram"
items:
- name: "SVG Editor"
icon: "fas fa-icons"
tag: "Tools"
url: "https://svg-edit.github.io/svgedit/editor/svg-editor.html"
- 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
View 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: "#"

View 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
View 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;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
assets/icons/icon-any.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.7 KiB

1
assets/manifest.json Normal file
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

BIN
assets/tools/dtn2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
assets/tools/dtn3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
assets/tools/dtn4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
assets/tools/glances.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
assets/tools/pgadmin.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
assets/tools/sample.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
assets/tools/sample2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
assets/tools/vscode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

View File

@@ -2,10 +2,8 @@ version: '3'
services:
homer:
build: .
image: hub.ducoterra.net/ducoterra/homer:1.0.0
image: b4bz/homer:latest
ports:
- 8080:8080
volumes:
- ./config.yml:/www/config.yml
- ./assets:/www/assets
- ./helm/config.yml:/www/config.yml

View File

@@ -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
View 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'

View File

@@ -0,0 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}
data:
config.yml: |{{ range .Files.Lines "config.yml" }}
{{ . }}{{ end }}

View File

@@ -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 }}

View File

@@ -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

View File

@@ -1 +1 @@
image: hub.ducoterra.net/ducoterra/homer
image: b4bz/homer:latest