Compare commits
34 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 | ||
|
|
a370768b90 | ||
|
|
8507515e56 | ||
|
|
b66575bd29 | ||
|
|
cb71286c1e | ||
|
|
9c8774527f | ||
|
|
e0e90aa291 | ||
|
|
da3945378a | ||
|
|
dc88683e06 | ||
|
|
e1d1a21394 | ||
|
|
c7b6104ec6 | ||
|
|
f5e708ecea | ||
|
|
745e0734be |
@@ -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
|
||||
@@ -35,4 +34,4 @@ deploy_to_prod:
|
||||
- curl -L -o /usr/local/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
|
||||
- chmod +x /usr/local/bin/kubectl
|
||||
- curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
|
||||
- helm install --set tag=$CI_COMMIT_TAG $CI_PROJECT_NAME ./helm
|
||||
- helm template homer --set tag=$CI_COMMIT_TAG ./helm | kubectl apply -f -
|
||||
@@ -1,4 +0,0 @@
|
||||
FROM b4bz/homer:latest
|
||||
|
||||
COPY config.yml /www/config.yml
|
||||
COPY assets /www/assets
|
||||
7
README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Homer Dashboard
|
||||
|
||||
## Deploy
|
||||
|
||||
```bash
|
||||
helm install homer ./helm
|
||||
```
|
||||
91
assets/config.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
---
|
||||
title: "Reese's Homelab"
|
||||
subtitle: "Duconet"
|
||||
icon: "fas fa-tachometer-alt" # 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: "assets/tools/Gitlab.svg"
|
||||
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:
|
||||
- name: "Nextcloud"
|
||||
logo: "assets/tools/nextcloud.png"
|
||||
tag: "Storage"
|
||||
url: "https://nextcloud.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Freenas"
|
||||
logo: "assets/tools/freenas.png"
|
||||
tag: "Storage"
|
||||
url: "http://freenas.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Entertainment"
|
||||
icon: "fas fa-photo-video"
|
||||
items:
|
||||
- name: "Jellyfin"
|
||||
logo: "assets/tools/jellyfin.svg"
|
||||
url: "https://jellyfin.ducoterra.net"
|
||||
tag: "Entertainment"
|
||||
target: '_blank'
|
||||
- name: "Monitoring"
|
||||
icon: "fas fa-heartbeat"
|
||||
items:
|
||||
- name: "Grafana"
|
||||
logo: "assets/tools/grafana.svg"
|
||||
url: "https://grafana.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Graphite"
|
||||
logo: "assets/tools/graphite.png"
|
||||
url: "https://graphite.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Zipkin"
|
||||
logo: "assets/tools/zipkin.ico"
|
||||
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"
|
||||
url: "https://unifi.ui.com"
|
||||
target: '_blank'
|
||||
- name: "Protect"
|
||||
logo: assets/tools/protect.ico
|
||||
tag: "Network"
|
||||
url: "https://protect.ui.com/"
|
||||
target: '_blank'
|
||||
- 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/freenas.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
assets/tools/glances.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
14
assets/tools/grafana.svg
Normal file
|
After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 8.5 KiB |
BIN
assets/tools/jellyfin.ico
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
@@ -1,45 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
- Part of the Jellyfin project (https://jellyfin.media)
|
||||
-
|
||||
- All copyright belongs to the Jellyfin contributors; a full list can
|
||||
- be found in the file CONTRIBUTORS.md
|
||||
-
|
||||
- This program is free software; you can redistribute it and/or
|
||||
- modify it under the terms of the GNU General Public License
|
||||
- as published by the Free Software Foundation; either version 2
|
||||
- of the License, or (at your option) any later version.
|
||||
-
|
||||
- This program is distributed in the hope that it will be useful,
|
||||
- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
- GNU General Public License for more details.
|
||||
-
|
||||
- You should have received a copy of the GNU General Public License
|
||||
- along with this program; if not, write to the Free Software
|
||||
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
- ***** END LICENSE BLOCK ***** -->
|
||||
<svg id="banner-dark" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1536 512">
|
||||
<defs>
|
||||
<linearGradient id="linear-gradient" x1="110.25" y1="213.3" x2="496.14" y2="436.09" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#aa5cc3"/>
|
||||
<stop offset="1" stop-color="#00a4dc"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<title>banner-dark</title>
|
||||
<g id="banner-dark">
|
||||
<g id="banner-dark-icon">
|
||||
<path id="inner-shape" d="M261.42,201.62c-20.44,0-86.24,119.29-76.2,139.43s142.48,19.92,152.4,0S281.86,201.63,261.42,201.62Z" fill="url(#linear-gradient)"/>
|
||||
<path id="outer-shape" d="M261.42,23.3C199.83,23.3,1.57,382.73,31.8,443.43s429.34,60,459.24,0S323,23.3,261.42,23.3ZM411.9,390.76c-19.59,39.33-281.08,39.77-300.9,0S221.1,115.48,261.45,115.48,431.49,351.42,411.9,390.76Z" fill="url(#linear-gradient)"/>
|
||||
</g>
|
||||
<g id="jellyfin-light-outlines" style="isolation:isolate" transform="translate(43.8)">
|
||||
<path d="M556.64,350.75a67,67,0,0,1-22.87-27.47,8.91,8.91,0,0,1-1.49-4.75,7.42,7.42,0,0,1,2.83-5.94,9.25,9.25,0,0,1,6.09-2.38c3.16,0,5.94,1.69,8.31,5.05a48.09,48.09,0,0,0,16.34,20.34,40.59,40.59,0,0,0,24,7.58q20.51,0,33.27-12.62t12.77-33.12V159a8.44,8.44,0,0,1,2.67-6.39,9.56,9.56,0,0,1,6.83-2.52,9,9,0,0,1,6.68,2.52,8.7,8.7,0,0,1,2.53,6.39v138.4a64.7,64.7,0,0,1-8.32,32.67,59,59,0,0,1-23,22.72Q608.62,361,589.9,361A57.21,57.21,0,0,1,556.64,350.75Z" fill="#fff"/>
|
||||
<path d="M831.66,279.47a8.77,8.77,0,0,1-6.24,2.53H713.16q0,17.82,7.27,31.92a54.91,54.91,0,0,0,20.79,22.28q13.51,8.18,31.93,8.17a54,54,0,0,0,25.54-5.94,52.7,52.7,0,0,0,18.12-15.15,10,10,0,0,1,6.24-2.67,8.14,8.14,0,0,1,7.72,7.72,8.81,8.81,0,0,1-3,6.24,74.7,74.7,0,0,1-23.91,19A65.56,65.56,0,0,1,773.45,361q-22.87,0-40.4-9.8a69.51,69.51,0,0,1-27.32-27.48q-9.79-17.66-9.8-40.83,0-24.36,9.65-42.62t25.69-27.92a65.2,65.2,0,0,1,34.16-9.65A70,70,0,0,1,798.84,211a65.78,65.78,0,0,1,25.39,24.36q9.81,16,10.1,38A8.07,8.07,0,0,1,831.66,279.47ZM733.5,231.8Q718.8,243.68,714.64,266H815.92v-2.38A46.91,46.91,0,0,0,807,240.27a48.47,48.47,0,0,0-18.56-15.15,54,54,0,0,0-23-5.2Q748.2,219.92,733.5,231.8Z" fill="#fff"/>
|
||||
<path d="M888.24,355.5a8.92,8.92,0,0,1-15.3-6.38v-202a8.91,8.91,0,1,1,17.82,0v202A8.65,8.65,0,0,1,888.24,355.5Z" fill="#fff"/>
|
||||
<path d="M956.55,355.5a8.92,8.92,0,0,1-15.3-6.38v-202a8.91,8.91,0,1,1,17.82,0v202A8.65,8.65,0,0,1,956.55,355.5Z" fill="#fff"/>
|
||||
<path d="M1122.86,206.11a8.7,8.7,0,0,1,2.53,6.39v131q0,23.44-9.21,40.09a61.58,61.58,0,0,1-25.54,25.25q-16.34,8.61-36.83,8.61a96.73,96.73,0,0,1-23.31-2.68,61.72,61.72,0,0,1-18-7.12q-6.24-3.87-6.24-8.62a17.94,17.94,0,0,1,.6-3,8.06,8.06,0,0,1,3-4.45,7.49,7.49,0,0,1,4.45-1.49,7.91,7.91,0,0,1,3.56.89q19,10.39,36.24,10.4,24.65,0,39.06-15.44t14.4-42.18V333.38a54.37,54.37,0,0,1-21.38,20,62.55,62.55,0,0,1-30.3,7.58q-25.83,0-39.2-15.45t-13.37-41.87V212.5a8.91,8.91,0,1,1,17.82,0V301q0,21.39,9.36,32.38t29.25,11a48,48,0,0,0,23.32-6.09,49.88,49.88,0,0,0,17.82-16,37.44,37.44,0,0,0,6.68-21.24V212.5a9,9,0,0,1,15.29-6.39Z" fill="#fff"/>
|
||||
<path d="M1210.18,161.41q-5.21,6.24-5.2,17.23v30.59h33.27a8.19,8.19,0,0,1,5.79,2.38,8.26,8.26,0,0,1,0,11.88,8.22,8.22,0,0,1-5.79,2.37H1205V349.12a8.91,8.91,0,1,1-17.82,0V225.86h-21.68a7.83,7.83,0,0,1-5.94-2.52,8.21,8.21,0,0,1-2.37-5.79,8,8,0,0,1,2.37-6.09,8.33,8.33,0,0,1,5.94-2.23h21.68V178.64q0-18.7,10.84-29t29-10.24a46.1,46.1,0,0,1,15.45,2.52q7.13,2.53,7.12,8.17a8.07,8.07,0,0,1-2.37,5.94,7.37,7.37,0,0,1-5.35,2.37,18.81,18.81,0,0,1-6.53-1.48,42,42,0,0,0-10.4-1.78Q1215.37,155.18,1210.18,161.41ZM1276,180.87c-2.19-1.88-3.27-4.61-3.27-8.17v-3q0-5.34,3.41-8.17t9.36-2.82q11.88,0,11.88,11v3c0,3.56-1,6.29-3.12,8.17s-5.1,2.82-9.06,2.82S1278.14,182.75,1276,180.87Zm15.59,174.63a8.92,8.92,0,0,1-15.3-6.38V212.5a8.91,8.91,0,1,1,17.82,0V349.12A8.65,8.65,0,0,1,1291.56,355.5Z" fill="#fff"/>
|
||||
<path d="M1452.53,218.88q12.92,16.2,12.92,42.92v87.32a8.4,8.4,0,0,1-2.67,6.38,8.8,8.8,0,0,1-6.24,2.53,8.64,8.64,0,0,1-8.91-8.91V262.69q0-19.31-9.65-31.33t-29.85-12a53.28,53.28,0,0,0-42.77,21.83,36.24,36.24,0,0,0-7.13,21.53v86.43a8.91,8.91,0,1,1-17.82,0V216.06a8.91,8.91,0,1,1,17.82,0V232.4q8-12.77,23-21.24A61.84,61.84,0,0,1,1412,202.7Q1439.61,202.7,1452.53,218.88Z" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg width="512" height="512" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<linearGradient id="linear-gradient" x1="-0.443626" x2="2.0549" y1="0.075622" y2="1.518071">
|
||||
<stop offset="0" stop-color="#aa5cc3"/>
|
||||
<stop offset="1" stop-color="#00a4dc"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g class="layer">
|
||||
<title>Layer 1</title>
|
||||
<path d="m256,201.62c-20.44,0 -86.23,119.29 -76.2,139.43c10.03,20.14 142.48,19.92 152.4,0c9.92,-19.92 -55.73,-139.42 -76.2,-139.43z" fill="url(#linear-gradient)" id="inner-shape"/>
|
||||
<path d="m256,23.3c-61.56,0 -259.82,359.43 -229.59,420.13c30.23,60.7 429.34,60 459.24,0c29.9,-60 -168.03,-420.13 -229.65,-420.13zm150.51,367.46c-19.59,39.33 -281.08,39.77 -300.89,0c-19.81,-39.77 110.09,-275.28 150.44,-275.28c40.35,0 170.04,235.94 150.45,275.28z" fill="url(#linear-gradient)" id="outer-shape"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 914 B |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
assets/tools/pgadmin.ico
Normal file
|
After Width: | Height: | Size: 77 KiB |
21
assets/tools/pihole.svg
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<svg width="140" height="140" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs>
|
||||
<style>.cls-2{fill:#980200}.cls-3{fill:red}</style>
|
||||
<linearGradient id="New_Gradient_Swatch_1" x1="0" x2="1.000002" y1="0.499751" y2="0.499751">
|
||||
<stop offset="0" stop-color="#12b212"/>
|
||||
<stop offset="1" stop-color="#0f0"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<title>NewVortex</title>
|
||||
<g class="layer">
|
||||
<title>Layer 1</title>
|
||||
<g id="svg_6">
|
||||
<path d="m61.560065,44.93c-16.22,-1.73 -32.56,-13.99 -33.85,-39.93c25.17,0 38.63,14.9 39.93,38.51c4.76,-28.32 27.07,-25 27.07,-25c1.06,16.05 -12.12,25.78 -27.07,26.59c-4.2,-8.85 -29.36,-30.56 -29.36,-30.56a0.07,0.07 0 0 0 -0.11,0.08s24.28,21.15 23.39,30.31" fill="url(#New_Gradient_Swatch_1)" id="svg_1"/>
|
||||
<path class="cls-2" d="m69.160065,134.93c-1.57,-0.09 -16.22,-0.65 -17.11,-17.11c-0.72,-10 7.18,-17.37 7.18,-27.08c-1.79,-24.21 -34.23,-21.21 -34.23,0a19.94,19.94 0 0 0 5.83,14.14l24.17,24.18a19.94,19.94 0 0 0 14.14,5.83" id="svg_2"/>
|
||||
<path class="cls-3" d="m113.320065,90.75c-0.09,1.57 -0.65,16.22 -17.11,17.11c-10,0.72 -17.38,-7.18 -27.08,-7.18c-24.21,1.79 -21.21,34.22 0,34.22a19.94,19.94 0 0 0 14.14,-5.83l24.19,-24.17a19.94,19.94 0 0 0 5.83,-14.14" id="svg_3"/>
|
||||
<path class="cls-2" d="m69.160065,46.59c1.57,0.09 16.22,0.65 17.11,17.11c0.72,10 -7.18,17.37 -7.18,27.08c1.79,24.21 34.22,21.21 34.22,0a19.94,19.94 0 0 0 -5.83,-14.14l-24.18,-24.19a19.94,19.94 0 0 0 -14.14,-5.83" id="svg_4"/>
|
||||
<path class="cls-3" d="m25.080065,90.75c0.09,-1.57 0.65,-16.22 17.11,-17.11c10,-0.72 17.38,7.18 27.08,7.18c24.21,-1.82 21.21,-34.22 0,-34.22a19.94,19.94 0 0 0 -14.14,5.83l-24.19,24.18a19.94,19.94 0 0 0 -5.83,14.14" id="svg_5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
BIN
assets/tools/protect.ico
Normal file
|
After Width: | Height: | Size: 6.1 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 |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 34 KiB |
BIN
assets/tools/vscode.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
assets/tools/zipkin.ico
Normal file
|
After Width: | Height: | Size: 110 KiB |
112
config.yml
@@ -1,112 +0,0 @@
|
||||
---
|
||||
# Homepage configuration
|
||||
# See https://fontawesome.com/icons for icons options
|
||||
|
||||
title: "Reese's Homelab"
|
||||
subtitle: "Duconet"
|
||||
# logo: "assets/logo.png"
|
||||
icon: "fas fa-database" # Optional icon
|
||||
footer: false
|
||||
|
||||
# Optional message
|
||||
# message:
|
||||
# url: https://....
|
||||
# style: "is-dark" # See https://bulma.io/documentation/components/message/#colors for styling options.
|
||||
# title: "Demo !"
|
||||
# content: "This is a dummy homepage demo. Find more information on github.com/bastienwirtz/homer"
|
||||
|
||||
# Optional navbar
|
||||
# links: [] # Allows for navbar (dark mode, layout, and search) without any links
|
||||
# links:
|
||||
# - name: "ansible"
|
||||
# icon: "fab fa-github"
|
||||
# url: "https://github.com/bastienwirtz/homer"
|
||||
# target: '_blank' # optionnal 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: "DevOps"
|
||||
icon: "fas fa-code-branch"
|
||||
items:
|
||||
- name: "Gitlab"
|
||||
logo: "assets/tools/Gitlab.svg"
|
||||
tag: "CI"
|
||||
url: "https://gitlab.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Storage"
|
||||
icon: "fas fa-save"
|
||||
items:
|
||||
- name: "Nextcloud"
|
||||
logo: "assets/tools/nextcloud.png"
|
||||
tag: "Storage"
|
||||
url: "https://nextcloud.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Freenas"
|
||||
logo: "assets/tools/freenas.jpeg"
|
||||
tag: "Storage"
|
||||
url: "https://freenas.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Entertainment"
|
||||
icon: "fas fa-photo-video"
|
||||
items:
|
||||
- name: "Jellyfin"
|
||||
logo: "assets/tools/jellyfin.png"
|
||||
url: "https://jellyfin.ducoterra.net"
|
||||
tag: "Entertainment"
|
||||
target: '_blank'
|
||||
- name: "Monitoring"
|
||||
icon: "fas fa-heartbeat"
|
||||
items:
|
||||
- name: "Grafana"
|
||||
logo: "assets/tools/grafana.png"
|
||||
url: "https://grafana.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Graphite"
|
||||
logo: "assets/tools/graphite.png"
|
||||
url: "https://graphite.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Zipkin"
|
||||
logo: "assets/tools/zipkin.png"
|
||||
url: "https://zipkin.ducoterra.net/"
|
||||
tag: "Monitoring"
|
||||
target: '_blank'
|
||||
- name: "Network"
|
||||
icon: "fas fa-server"
|
||||
items:
|
||||
- name: "Unifi"
|
||||
logo: assets/tools/unifi.png
|
||||
tag: "Network"
|
||||
url: "https://unifi.ui.com"
|
||||
target: '_blank'
|
||||
- name: "Protect"
|
||||
logo: assets/tools/protect.png
|
||||
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.jpeg
|
||||
tag: "Network"
|
||||
url: "https://pihole1.ducoterra.net/"
|
||||
target: '_blank'
|
||||
- name: "Pihole2"
|
||||
logo: assets/tools/pihole.jpeg
|
||||
tag: "Network"
|
||||
url: "https://pihole2.ducoterra.net/"
|
||||
target: '_blank'
|
||||
@@ -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
|
||||
@@ -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 +1 @@
|
||||
image: hub.ducoterra.net/ducoterra/homer
|
||||
image: b4bz/homer:latest
|
||||