Compare commits

..

8 Commits
master ... mmrr

Author SHA1 Message Date
Michael Grote 23053781b4 dgfds 2023-11-03 12:15:01 +01:00
Michael Grote ae7f9a7b6b add fqupd 2023-11-03 11:47:18 +01:00
Michael Grote 2a435e38f1 revert 2023-11-03 11:45:58 +01:00
Michael Grote 2ba5f1fd99 test bagde 2023-11-03 11:44:53 +01:00
Michael Grote e088f7ebc6 mail 2023-11-03 11:36:56 +01:00
Michael Grote 1243e68ae4 df 2023-11-03 11:35:48 +01:00
Michael Grote 65d5119122 add map 2023-11-03 11:28:09 +01:00
Michael Grote 3ff661bd88 d 2023-11-03 11:04:13 +01:00
267 changed files with 2778 additions and 3020 deletions

View File

@ -12,14 +12,15 @@ exclude_paths:
- .gitlab-ci.yml
- friedhof/
- playbooks/on-off
- roles/ansible-role-pip
- roles/ansible-role-bootstrap
- roles/ansible_role_ctop
- roles/ansible-role-docker
- roles/ansible-role-helm
- roles/ansible-role-nfs
- roles/ansible-role-unattended-upgrades
- roles/ansible-manage-lvm
- roles/ansible-ufw
- roles/ansible_role_gitea
- roles/ansible-role-postgresql
- roles/geerlingguy-ansible-role-pip
- roles/pyratlabs-ansible-role-k3s
- roles/robertdebock-ansible-role-bootstrap
- roles/gantsign-ansible-role-ctop
- roles/geerlingguy-ansible-role-docker
- roles/geerlingguy-ansible-role-helm
- roles/geerlingguy-ansible-role-nfs
- roles/hifis-net-ansible-role-unattended-upgrades
- roles/mrlesmithjr-ansible-manage-lvm
- roles/oefenweb-ansible-ufw
- roles/pandemonium1986-ansible-role-k9s
- roles/pyratlabs-ansible-role-gitea

34
.drone.yml Normal file
View File

@ -0,0 +1,34 @@
---
kind: pipeline
type: docker
name: gitleaks
steps:
- name: gitleaks
image: plugins/gitleaks
settings:
path: .
when:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: ansible-lint
steps:
- name: ansible-lint
image: quay.io/ansible/creator-ee
commands:
- ansible-lint --version
- echo $ANSIBLE_VAULT_PASSWORD > ./vault-pass.yml
- ansible-galaxy install -r requirements.yml
- ansible-lint --force-color --format pep8
when:
event:
exclude:
- tag
environment:
ANSIBLE_VAULT_PASSWORD:
from_secret: vault-pass

25
.gitignore vendored
View File

@ -2,19 +2,16 @@
vault-pass.yml
id_ed25519
id_ed25519.pub
roles/ansible-role-pip
roles/ansible-role-k3s
roles/ansible-role-bootstrap
roles/ansible_role_ctop
roles/ansible-role-docker
roles/ansible-role-helm
roles/ansible-role-nfs
roles/ansible_role_gitea
roles/ansible-role-unattended-upgrades
roles/ansible-manage-lvm
roles/ansible-ufw
roles/geerlingguy-ansible-role-pip
roles/pyratlabs-ansible-role-k3s
roles/robertdebock-ansible-role-bootstrap
roles/gantsign-ansible-role-ctop
roles/geerlingguy-ansible-role-docker
roles/geerlingguy-ansible-role-helm
roles/geerlingguy-ansible-role-nfs
roles/hifis-net-ansible-role-unattended-upgrades
roles/mrlesmithjr-ansible-manage-lvm
roles/oefenweb-ansible-ufw
roles/pandemonium1986-ansible-role-k9s
roles/ansible_role_gitea
roles/pyratlabs-ansible-role-gitea
collections/
plugins/lookup/__pycache__/
roles/ansible-role-postgresql

View File

@ -1,18 +0,0 @@
---
depends_on:
- gitleaks
steps:
ansible-lint:
image: quay.io/ansible/creator-ee:v24.2.0
commands:
- ansible-lint --version
- echo $${VAULTPASS} > ./vault-pass.yml # nach des Secret in Großschreibung
- ansible-galaxy install -r requirements.yaml
- ansible-lint --force-color --format pep8
# https://woodpecker-ci.org/docs/usage/secrets#use-secrets-in-commands
secrets: [vaultpass]
when:
- event: [push, pull_request, cron]
evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
...

View File

@ -1,10 +0,0 @@
---
steps:
gitleaks:
image: zricethezav/gitleaks:v8.18.2
commands:
- gitleaks detect --no-git --verbose --source $CI_WORKSPACE
when:
- event: [push, pull_request, cron]
evaluate: 'CI_COMMIT_AUTHOR_EMAIL != "renovate@mgrote.net"'
...

View File

@ -1,3 +1 @@
# ansible_heimserver
[![status-badge](https://ci.mgrote.net/api/badges/2/status.svg)](https://ci.mgrote.net/repos/2)

View File

@ -4,7 +4,7 @@ nocows = 1
retry_files_enabled = False
roles_path = ./roles
lookup_plugins = ./plugins/lookup
collections_path = ./collections
collections_paths = ./collections
private_key_file = ./id_ed25519
vault_password_file = vault-pass.yml
gathering = smart

View File

@ -0,0 +1,54 @@
version: '3.3'
services:
# server
drone:
volumes:
- 'data:/data'
environment:
DRONE_GITEA_SERVER: https://git.mgrote.net
DRONE_GITEA_CLIENT_ID: f8f0db2a-0089-4e23-9f5a-a5e52f20d765
DRONE_GITEA_CLIENT_SECRET: {{ lookup('keepass', 'drone_gitea_client_secret', 'password') }}
DRONE_RPC_SECRET: {{ lookup('keepass', 'drone_rpc_secret', 'password') }}
DRONE_SERVER_HOST: docker10.grote.lan:81
DRONE_SERVER_PROTO: http
DRONE_USER_CREATE: username:mg,admin:true # Gitea-Nutzer "mg" als Admin
#DRONE_LOGS_DEBUG: true
ports:
- '81:80'
- '444:443'
restart: always
container_name: drone-server
image: 'drone/drone:2'
networks:
- intern
labels:
com.centurylinklabs.watchtower.enable: true
# runner
drone-runner-docker:
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
environment:
DRONE_RPC_PROTO: http
# container-name des servers
DRONE_RPC_HOST: drone-server
DRONE_RPC_SECRET: {{ lookup('keepass', 'drone_rpc_secret', 'password') }}
DRONE_RUNNER_CAPACITY: 8
DRONE_RUNNER_NAME: drone-runner
ports:
- '3000:3000'
restart: always
container_name: drone-runner
image: 'drone/drone-runner-docker:latest'
networks:
- intern
labels:
com.centurylinklabs.watchtower.enable: true
com.centurylinklabs.watchtower.depends-on: drone-server
######## Volumes ########
volumes:
data:
######## Networks ########
networks:
intern: # hier kommunizieren Runner + Server

View File

@ -0,0 +1,174 @@
@charset "UTF-8";
/* Catppuccin theme for Homer */
#app.theme-default.is-dark {
--catppuccin-base: #303446;
--catppuccin-surface0: #414559;
--catppuccin-text: #c6d0f5;
--catppuccin-surface2: #626880;
--catppuccin-teal: #81c8be;
--catppuccin-green: #a6d189;
--catppuccin-peach: #ef9f76;
--catppuccin-pink: #f4b8e4;
--catppuccin-mauve: #ca9ee6;
--catppuccin-red: #e78284;
--catppuccin-yellow: #e5c890;
--highlight-primary: transparent;
--highlight-secondary: var(--catppuccin-surface0);
--highlight-hover: var(--catppuccin-surface0);
--background: var(--catppuccin-base);
--highlight-hover: var(--catppuccin-surface0);
--card-background: var(--catppuccin-surface0);
--text: var(--catppuccin-text);
--text-header: var(--catppuccin-text);
--text-title: var(--catppuccin-text);
--text-subtitle: var(--catppuccin-teal);
--link: var(--catppuccin-green);
--link-hover: var(--catppuccin-green);
}
/* Header */
/* Comment the following section out if you want no header image. Also, set --highlight-primary to var(--catppuccin-surface0). */
#app.theme-default.is-dark #bighead {
background-image: url('../assets/images/romb.png');
background-size: cover;
background-position: center;
}
#app.theme-default.is-dark .logo {
color: var(--catppuccin-mauve);
}
#app.theme-default.is-dark .first-line .headline {
color: var(--catppuccin-yellow);
}
#app.theme-default.is-dark .navbar-start i {
color: var(--catppuccin-teal);
}
#app.theme-default.is-dark [title='Auto-switch'] {
color: var(--catppuccin-mauve);
}
#app.theme-default.is-dark [title='Dark theme'] {
color: var(--catppuccin-peach);
}
#app.theme-default.is-dark .navbar-item .fa-columns {
color: var(--catppuccin-green);
}
#app.theme-default.is-dark .navbar-item .fa-list {
color: var(--catppuccin-teal);
}
#app.theme-default.is-dark .search-bar .search-label:before {
color: var(--catppuccin-yellow);
}
#app.theme-default.is-dark .search-bar input {
background-color: var(--catppuccin-base);
}
#app.theme-default.is-dark .search-bar > input:nth-child(2) {
color: var(--catppuccin-text);
}
#app.theme-default.is-dark .search-bar input:focus-visible {
outline: none;
}
/* Message */
#app.theme-default.is-dark .message-header {
color: var(--catppuccin-text);
background-color: var(--catppuccin-surface0);
border-style: none none solid none;
border-width: thin;
}
#app.theme-default.is-dark .is-info .message-header {
border-color: var(--catppuccin-teal);
}
#app.theme-default.is-dark .is-info .message-header i {
color: var(--catppuccin-teal);
}
#app.theme-default.is-dark .is-success .message-header {
border-color: var(--catppuccin-green);
}
#app.theme-default.is-dark .is-success .message-header i {
color: var(--catppuccin-green);
}
#app.theme-default.is-dark .is-warning .message-header {
border-color: var(--catppuccin-peach);
}
#app.theme-default.is-dark .is-warning .message-header i {
color: var(--catppuccin-peach);
}
#app.theme-default.is-dark .is-danger .message-header {
border-color: var(--catppuccin-red);
}
#app.theme-default.is-dark .is-danger .message-header i {
color: var(--catppuccin-red);
}
/* Cards */
#app.theme-default.is-dark .tag {
background-color: var(--catppuccin-pink);
color: var(--catppuccin-text);
}
#app.theme-default.is-dark .status.unknown::before {
background-color: var(--catppuccin-yellow);
border-color: var(--catppuccin-yellow);
box-shadow: 0 0 5px 1px var(--catppuccin-yellow);
}
#app.theme-default.is-dark .status.bad::before {
background-color: var(--catppuccin-red);
border-color: var(--catppuccin-red);
box-shadow: 0 0 5px 1px var(--catppuccin-red);
}
#app.theme-default.is-dark .status.running::before {
background-color: var(--catppuccin-green);
border-color: var(--catppuccin-green);
box-shadow: 0 0 5px 1px var(--catppuccin-green);
}
body #app .card:hover {
background-color: #51576d; /* Surface1 */
}
/* Footer */
#app.theme-default.is-dark .footer {
color: var(--catppuccin-text);
}
/* Adds spacing to the bottom of cards */
body #app .card-content {
margin-bottom: 0.55rem;
}
/* Custom font using Fira Code */
body #bighead .navbar a {
font-family: 'Fira Code', monospace;
}
body #app .title {
font-family: 'Fira Code', monospace;
}

View File

@ -0,0 +1,162 @@
---
# https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md
title: "Homer"
header: false
footer: false
columns: "4"
# Set the default layout and color scheme
defaults:
layout: columns # Either 'columns', or 'list'
colorTheme: dark # One of 'auto', 'light', or 'dark'
stylesheet:
- 'assets/catppuccin-frappe.css'
links:
- name: "Homepage"
icon: "fas fa-heartbeat"
url: "http://docker10.grote.lan:333"
- name: "Management"
icon: "fas fa-code-branch"
url: "#mgmt"
# wetter
# https://github.com/bastienwirtz/homer/pull/181
services:
# - name: "Wetter"
# icon: "fas fa-cloud"
# items:
# - name: "Weather"
# location: "Burg" # your location.
# locationId: "2941501" # OpenWeatherMap city ID.
# apiKey: "c1ec4c040abfa80b991c72d48b49d4a0" # insert your own API key here. Request one from https://o#penweathermap.org/api. # key deactiviert
# units: "metric" # units to display temperature. Can be one of: metric, imperial, kelvin. Defaults to kelvin.
# background: "none" # choose which type of background you want behind the image. Can be one of: square, cicle, none. Defaults to none.
# type: "OpenWeather"
# - name: "Weather"
# location: "Magdeburg"
# locationId: "2874545"
# apiKey: "c1ec4c040abfa80b991c72d48b49d4a0"
# units: "metric"
# background: "none"
# type: "OpenWeather"
- name: "Dienste"
icon: "fas fa-cloud"
items:
- name: "gitea"
logo: "assets/icons/gitea.png"
url: "https://git.mgrote.net"
target: "_blank"
subtitle: "git"
- name: "Miniflux"
logo: "assets/icons/miniflux.png"
url: "https://miniflux.mgrote.net/unread"
target: "_blank"
subtitle: "RSS"
- name: "Nextcloud"
logo: "assets/icons/nextcloud.png"
url: "https://nextcloud.mgrote.net"
target: "_blank"
subtitle: "Cloud"
- name: "DokuWiki"
logo: "assets/icons/dokuwiki.png"
url: "http://dokuwiki2.grote.lan"
target: "_blank"
subtitle: "Wiki"
- name: "RSS-Bridge"
logo: "assets/icons/rssb.png"
url: "http://docker10.grote.lan:3001"
target: "_blank"
subtitle: "Facebook/Instagram-to-rss"
- name: "Navidrome"
logo: "assets/icons/navidrome.png"
url: "https://audio.mgrote.net/mg"
target: "_blank"
subtitle: "Audio-Streaming"
- name: "changedetection.io"
logo: "assets/icons/changedetection.png"
url: "http://docker10.grote.lan:5000"
target: "_blank"
subtitle: "Website2rss"
- name: "Web"
icon: "fas fa-cloud"
items:
- name: "Todoist"
logo: "assets/icons/todoist.png"
url: "https://todoist.com/app/#project%2F2231794668"
target: "_blank"
- name: "WhatsApp"
logo: "assets/icons/whatsapp.png"
url: "https://web.whatsapp.com"
target: "_blank"
- name: "GitHub"
logo: "assets/icons/github.png"
url: "https://github.com/quotengrote"
target: "_blank"
- name: "Monkeytype"
logo: "assets/icons/monkeytype.png"
target: "_blank"
url: "https://monkeytype.com"
- name: "Posteo"
logo: "assets/icons/posteo.png"
url: "https://posteo.de/webmail/?_task=mail&_refresh=1&_mbox=INBOX"
target: "_blank"
- name: "Wikipedia"
logo: "assets/icons/wikipedia.png"
url: "https://de.wikipedia.org/wiki/Benutzer:Quotengrote"
target: "_blank"
- name: "Docker Hub"
logo: "assets/icons/docker.png"
url: "https://hub.docker.com/r/quotengrote"
target: "_blank"
- name: "Help"
icon: "fas fa-cloud"
items:
- name: "Crontab Guru"
logo: "assets/icons/healthchecks.png"
url: "https://crontab.guru"
target: "_blank"
- name: "chmod Calculator"
logo: "assets/icons/redis.png"
url: "https://chmod-calculator.com"
target: "_blank"
- name: "composerizer"
logo: "assets/icons/docker.png"
url: "https://www.composerize.com"
target: "_blank"
subtitle: "docker-run to docker-compose"
- name: "git revert..."
logo: "assets/icons/netatmo.png"
url: "https://sethrobertson.github.io/GitFixUm/fixup.html"
target: "_blank"
- name: "Diabetes"
icon: "fas fa-cloud"
items:
- name: "DexCom Clarity"
logo: "assets/icons/dexcom.png"
url: "https://clarity.dexcom.eu/#/overview"
target: "_blank"
- name: "glooko"
logo: "assets/icons/glooko.png"
url: "https://de-fr.my.glooko.com"
target: "_blank"
- name: "Finanzen"
icon: "fas fa-cloud"
items:
- name: "ING Diba"
logo: "assets/icons/ing.png"
url: "https://www.ing.de"
target: "_blank"
- name: "Leaseplanbank"
logo: "assets/icons/leaseplan.webp"
url: "https://sparen.leaseplanbank.de"
target: "_blank"

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,12 @@
# PWA Icons / Images
We suggest you to create a svg or png icon (if it is a png icon, with the maximum resolution possible) for your application and use it to generate a favicon package in [Favicon Generator](https://realfavicongenerator.net/).
Once generated, download the ZIP and use android-* icons for pwa-*:
- use `android-chrome-192x192.png` for `pwa-192x192.png`
- use `android-chrome-512x512.png` for `pwa-512x512.png`
- `apple-touch-icon.png` is `apple-touch-icon.png`
- `favicon.ico` is `favicon.ico`
`

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,320 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.1, SVG Export Plug-In -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
]>
<svg version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
x="0px" y="0px" width="270px" height="270px" viewBox="-16.2 -42 270 270"
overflow="visible" enable-background="new -16.2 -42 270 270" xml:space="preserve">
<defs>
</defs>
<path d="M193.8,103l9.5-17.2c-7.2-7.5-19.1-19.2-39.1-37.7c-46.6-43.2-49.4-43-50.5-43c-1.2,0-3.4-0.8-49.8,42.9
C11.7,97.1,13.5,98.8,13.5,98.8s-1.6,2.7,50.9,51.2c47.1,43.6,48,42.4,49.3,42.4c1.3,0,4.1,0.7,50.6-43
c25.1-23.6,37.6-36.2,43.7-42.9L193.8,103"/>
<path d="M193.8,103l0.5,0.2l9.6-17.5l-0.3-0.3c-7.2-7.5-19.1-19.2-39.1-37.7c-23.1-21.4-35.4-32.1-42.1-37.5
c-3.4-2.7-5.3-4.1-6.5-4.8c-0.6-0.4-1-0.5-1.4-0.7c-0.3-0.1-0.6-0.1-0.8-0.1h0l-0.1,0c-0.2,0-0.5,0-0.8,0.1
c-1.2,0.4-3.7,1.9-10.8,7.9c-7.1,6-18.8,16.5-38.4,35c-24.4,23-37,35.6-43.5,42.5c-3.2,3.4-5,5.5-5.9,6.7c-0.5,0.6-0.7,1-0.9,1.3
c-0.2,0.3-0.2,0.4-0.2,0.6c0,0.1,0,0.3,0.2,0.4l0.4-0.4L13,98.5c-0.1,0.1-0.1,0.2-0.1,0.3c0,0.2,0.1,0.4,0.2,0.7
c0.5,1,2.4,3.7,9.6,11.2c7.2,7.5,19.6,19.7,41.3,39.7c22.3,20.6,34.3,31.2,40.8,36.7c3.3,2.7,5.2,4.2,6.4,4.9c0.6,0.4,1,0.6,1.4,0.7
c0.3,0.1,0.6,0.2,0.8,0.2c0.1,0,0.2,0,0.2,0l0.1,0c0.2,0,0.5,0,0.9-0.1c1.3-0.4,3.9-1.9,11.2-7.9c7.2-6,19.1-16.6,38.8-35.1
c25.1-23.6,37.6-36.2,43.7-43l0.6-0.6l-15-3.6L193.8,103l0.5,0.2L193.8,103l-0.1,0.5l14.1,3.4l0.1-0.5l-0.4-0.3
c-6.1,6.7-18.5,19.3-43.7,42.9c-22.5,21.1-34.7,31.9-41.5,37.3c-3.4,2.7-5.4,4.1-6.7,4.8c-0.6,0.4-1,0.5-1.3,0.6
c-0.3,0.1-0.4,0.1-0.6,0.1l-0.1,0l-0.2,0c-0.1,0-0.2,0-0.5-0.1c-0.4-0.2-1.3-0.6-2.8-1.8c-4.7-3.5-16.2-13.3-45.4-40.4
C40,126.7,27.2,114,20.7,107c-3.3-3.5-5-5.6-5.9-6.8c-0.4-0.6-0.7-1-0.8-1.2C14,98.9,14,98.8,14,98.8l0,0l-0.2,0H14l0,0l-0.2,0H14
h-0.5l0.4,0.2c0.1-0.1,0.1-0.2,0.1-0.2h-0.5l0.4,0.2l0.2-0.4l-0.3-0.3l-0.3,0.3H14c0-0.1,0-0.2-0.2-0.3l-0.3,0.3H14h-0.3l0.3,0.1
l0-0.1h-0.3l0.3,0.1l-0.1,0l0.1,0l0,0l-0.1,0l0.1,0l0-0.1c0.1-0.3,0.6-1,1.9-2.5c3.9-4.6,15.3-16.7,48.3-47.7
c22.4-21.1,34.5-31.8,41.1-37.2c3.3-2.7,5.3-4.1,6.5-4.8c0.6-0.4,1-0.5,1.2-0.6c0.3-0.1,0.4-0.1,0.5-0.1l0.1,0h0
c0.1,0,0.2,0,0.5,0.1c0.4,0.1,1.2,0.5,2.8,1.6c4.8,3.3,16.5,13.1,46.9,41.1c20,18.5,31.9,30.2,39.1,37.7l0.4-0.4l-0.5-0.2l-9.8,17.8
l0.7,0.2L193.8,103"/>
<path fill="#FFE500" d="M193.8,103l8.1-14.8c-6.1-6.8-18.6-19.4-43.9-42.8c-46.3-42.8-48.8-43-50.5-43c-1.7,0-3.3-0.9-49.8,42.9
C5.6,94.4,7.4,96,7.4,96s-1.6,2.7,50.9,51.2c46.8,43.3,47.9,42.4,49.3,42.4c1.4,0,4.1,0.7,50.6-43c23.9-22.5,36.3-35,42.7-41.9
L193.8,103"/>
<path d="M193.8,103l0.7,0.4l8.1-14.8l-0.1-0.9c-6.1-6.8-18.6-19.4-43.9-42.8c-23.2-21.4-35.4-32.2-42-37.6c-3.3-2.7-5.3-4.1-6.5-4.8
c-0.6-0.4-1.1-0.6-1.5-0.7c-0.4-0.1-0.7-0.1-1-0.1l-0.2,0c-0.2,0-0.6,0-1,0.2c-0.7,0.2-1.7,0.7-3.4,1.9c-5,3.6-16.5,13.4-45.8,41
c-24.4,23-37,35.6-43.5,42.5c-3.3,3.4-5,5.5-5.9,6.7c-0.5,0.6-0.7,1-0.9,1.3c-0.2,0.3-0.2,0.5-0.3,0.8c0,0.2,0.1,0.4,0.2,0.6L7.4,96
l-0.7-0.4c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.3,0.1,0.5,0.2,0.8c0.3,0.6,0.9,1.5,2.3,3.2c4.3,5.2,16.1,17.7,48.5,47.7
c22.5,20.8,34.4,31.4,40.9,36.8c3.3,2.7,5.2,4.1,6.4,4.9c0.6,0.4,1.1,0.6,1.4,0.7c0.4,0.1,0.7,0.2,0.9,0.2l0.2,0l0.1,0
c0.2,0,0.6,0,1-0.1c0.7-0.2,1.7-0.7,3.4-1.9c5.2-3.5,17-13.4,46.6-41.1c23.9-22.5,36.3-35,42.8-41.9l-0.4-1.3l-7.1-1.7L193.8,103
l0.7,0.4L193.8,103l-0.2,0.7l7.1,1.7l0.2-0.7l-0.6-0.5c-6.4,6.9-18.8,19.4-42.7,41.9c-22.5,21.1-34.7,31.9-41.5,37.3
c-3.4,2.7-5.4,4.1-6.6,4.8c-0.6,0.3-1,0.5-1.3,0.6c-0.3,0.1-0.4,0.1-0.5,0.1l-0.1,0l-0.2,0c-0.1,0-0.2,0-0.4-0.1
c-0.4-0.1-1.2-0.5-2.7-1.7c-4.6-3.4-16-13.1-45.5-40.4c-24.7-22.9-37.4-35.5-43.9-42.5c-3.3-3.5-5-5.6-5.8-6.8
c-0.4-0.6-0.7-1-0.8-1.2C8.2,96,8.1,96,8.1,96l0,0l-0.4,0.1h0.4l0-0.1l-0.4,0.1h0.4H7.4L8,96.4c0.1-0.1,0.1-0.3,0.1-0.4H7.4L8,96.4
l-0.1-1L7.4,96h0.7c0-0.1,0-0.4-0.2-0.5L7.4,96h0.7H7.6l0.5,0.1l0-0.1H7.6l0.5,0.1l-0.2,0l0.2,0.1l0,0l-0.2,0l0.2,0.1
c0,0,0.3-0.6,1.4-2C13,90,23.9,78.2,58.2,45.9c22.3-21,34.3-31.7,40.9-37.2c3.3-2.7,5.2-4.1,6.4-4.8c0.6-0.3,1-0.5,1.2-0.6
c0.3-0.1,0.4-0.1,0.6-0.1l0.2,0c0.2,0,0.3,0,0.6,0.1c0.4,0.1,1.2,0.5,2.8,1.6c4.7,3.3,16.3,13,46.6,41.1
c25.3,23.4,37.7,36,43.8,42.7l0.6-0.5l-0.7-0.4l-8.1,14.8l0.5,1.1L193.8,103"/>
<g>
<defs>
<path id="SVGID_1_" d="M107.5,3.9L107.5,3.9L107.5,3.9l0.2,0l-0.1,0C107.9,3.9,107.3,3.9,107.5,3.9 M201.3,90.3
c-5.5-6.2-17.3-18.8-44.3-43.8c-40.9-38-48.4-42.1-49.5-42.6c-1.1,0.4-8.5,4.5-48.8,42.5C38.2,65.7,23.6,80,15.3,88.8
c-3.6,3.8-6.1,6.8-6.4,7.1c0.8,1.4,6.5,9.6,50.4,50.2c18.8,17.4,32.6,29.7,41.2,36.7c1.2,1,6.9,5.3,6.9,5.3l0.2,0
c0.6-0.1,7.1-2.5,49.7-42.6c26.2-24.7,38-37.3,43.8-43.6L201.3,90.3 M8.6,96.8c0.2-0.3,0.2-0.5,0.2-0.7l0,0L8.6,96.8"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_2_)" fill="#FFE500" d="M90.7,170.7l-5-6l-5.2-5.8l-3.5-3.6c-18.5-18.5-56.1-56.3-56.5-56.6
c-0.1-0.1-0.2-0.2-0.2-0.3v0c0-0.1,0.1-0.2,0.1-0.3c1.6-1.5,38.4-37,58.4-54L109.8,19l-0.9-19l-47,41.9C44.7,57,11.9,93,11.6,93.3
c-0.8,0.7-1.3,1.8-1.3,3c0,1.2,0.5,2.2,1.4,3l0.2,0.2c5.7,5.4,34.6,33,49.3,47.1c5,4.8,6.8,6.3,8.6,7.8l8,6.6L90.7,170.7z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE500" d="M85.5,164.7L85.5,164.7c-0.1-0.1-0.7-0.8-5.2-5.8l-3.5-3.6l-48.6-48.7l-7.9-7.9
l-0.2-0.4l0.2-0.4c3.9-3.8,39-37.5,58.4-54c0,0,30.2-24.4,30.8-24.9c0-0.1-0.9-18-0.9-18.6C108.2,0.8,62,42,62,42
C44.8,57.1,12,93.1,11.7,93.4c-0.8,0.7-1.2,1.8-1.2,2.9c0,1.1,0.5,2.1,1.3,2.9l0,0l0.2,0.2c5.7,5.4,34.6,33,49.3,47.1
c4.9,4.7,6.7,6.2,8.5,7.7l8.1,6.6c0,0,8.9,6.7,11.9,9C88.6,168.4,85.5,164.7,85.5,164.7z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE600" d="M85.4,164.8L85.4,164.8c0,0-0.5-0.5-5.2-5.8l-3.5-3.6l-48.6-48.7l-7.9-7.9
L20,98.3v0c0-0.1,0.2-0.5,0.2-0.5c3.9-3.8,38.9-37.4,58.5-54c0,0,30.2-24.4,30.7-24.9c0-0.1-0.9-17.6-0.9-18.2
c-0.5,0.4-46.5,41.5-46.5,41.5c-17.2,15.1-50,51.1-50.3,51.4c-0.8,0.7-1.2,1.7-1.2,2.8c0,1.1,0.4,2.1,1.3,2.8l0.2,0.2
c10.3,9.8,35.8,34.1,49.3,47.1c4.9,4.7,6.7,6.2,8.5,7.7l8.1,6.6c0,0,9.4,7.1,10.9,8.2C87.7,167.6,85.4,164.8,85.4,164.8z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE600" d="M85.3,164.9l0.1,0.1c-0.2-0.1-0.5-0.6-5.3-5.9l-3.5-3.6l-48.6-48.7l-7.9-7.9
l-0.3-0.5v0c0-0.1,0.2-0.6,0.2-0.6c0.4-0.4,37.8-36.5,58.5-54.1c0,0,30.1-24.3,30.7-24.8c0-0.1-0.9-17.2-0.9-17.8
C108,1.4,62.2,42.2,62.2,42.2c-16.8,14.8-49,50-50.3,51.3c-0.8,0.7-1.2,1.7-1.2,2.7c0,1,0.4,2,1.2,2.7l0.2,0.2
c10.3,9.8,35.7,34,49.3,47.1c4.9,4.7,6.7,6.2,8.5,7.6l8.1,6.6c0,0,8.3,6.3,9.9,7.5C86.9,166.8,85.3,164.9,85.3,164.9z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE600" d="M85.2,165l0.2,0.1c-0.2-0.1-0.4-0.4-5-5.6l-0.3-0.3l-3.5-3.6L28,106.9l-7.9-7.9
l-0.3-0.5l0,0c0-0.1,0.2-0.8,0.2-0.8c0.3-0.3,37.9-36.6,58.6-54.1c0,0,30.1-24.3,30.6-24.8c0-0.1-0.9-16.8-0.9-17.4
c-0.5,0.4-46,41-46,41c-16.9,14.9-49,50-50.3,51.3c-0.7,0.7-1.1,1.6-1.1,2.6c0,1,0.4,1.9,1.2,2.6l0.2,0.2
c10.3,9.8,35.7,34,49.3,47.1c4.9,4.7,6.7,6.2,8.5,7.6l8.1,6.6c0,0,6.3,4.8,8.8,6.7C86.2,166.2,85.2,165,85.2,165z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE707" d="M85.1,165.1L85.1,165.1c-0.4-0.4-1.3-1.5-4.9-5.5l-0.3-0.3l-3.5-3.6L27.9,107
L20,99l-0.3-0.5l0,0c0-0.1,0.2-0.9,0.2-0.9c0.2-0.3,37.8-36.5,58.6-54.2c0,0,30-24.2,30.6-24.7c0-0.1-0.9-16.4-0.9-17.1
c-0.5,0.4-45.8,40.8-45.8,40.8c-17,14.9-49,50-50.3,51.3c-0.7,0.6-1.1,1.5-1.1,2.5c0,0.9,0.4,1.8,1.1,2.5l0.2,0.2
c10.3,9.8,35.6,33.9,49.3,47.1c4.9,4.7,6.7,6.2,8.5,7.6l8.1,6.6c0,0,6.5,5,7.8,5.9C85.5,165.6,85.1,165.1,85.1,165.1z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE71C" d="M85,165.2L85,165.2l-5.2-5.8l-3.4-3.6l-48.6-48.7l-7.9-7.9l-0.3-0.6l0,0
c0-0.2,0.2-1,0.2-1c0.2-0.2,37.4-36.2,58.6-54.3c0,0,30-24.2,30.5-24.7c0-0.1-0.9-16-0.9-16.7c-0.5,0.4-45.5,40.6-45.5,40.6
C46,57,15.5,90.6,12.2,93.9c-0.7,0.6-1.1,1.5-1.1,2.4c0,0.9,0.4,1.7,1.1,2.4l0.2,0.2c10.2,9.7,35.5,33.8,49.3,47.1
c4.9,4.7,6.7,6.2,8.4,7.6l8.1,6.6c0,0,5.4,4.1,6.8,5.1L85,165.2z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE829" d="M79.7,159.5l-3.4-3.6l-48.6-48.7l-7.9-7.9l-0.4-0.6l0,0c0-0.2,0.1-1.1,0.1-1.1
c0.1-0.2,37.5-36.4,58.7-54.4c0,0,29.9-24.2,30.5-24.6c0-0.1-0.9-15.7-0.9-16.3c-0.5,0.4-45.3,40.4-45.3,40.4
c-16.5,14.5-47,48-50.3,51.3c-0.6,0.6-1,1.4-1,2.3c0,0.9,0.4,1.7,1,2.3l0.2,0.2c10.2,9.7,35.4,33.7,49.3,47.1
c4.9,4.7,6.7,6.2,8.4,7.6c0,0,0,0,8.1,6.7c0,0,3.8,2.8,5.7,4.3C82.9,163.1,79.7,159.5,79.7,159.5z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE833" d="M79.6,159.6l-3.4-3.6l-48.6-48.7l-7.9-7.9l-0.4-0.6l0,0c0-0.2,0.1-1.2,0.1-1.2
c0.1-0.2,37-36,58.7-54.4c0,0,29.9-24.1,30.4-24.6c0-0.1-0.9-15.3-0.9-15.9c-0.5,0.4-45,40.1-45,40.1c-16.4,14.4-47,48-50.3,51.3
c-0.6,0.6-1,1.4-1,2.2c0,0.8,0.3,1.6,1,2.2l0.2,0.2c10.1,9.7,35.3,33.6,49.3,47.1c4.9,4.7,6.7,6.2,8.4,7.6l-0.2,0
c0.2,0,1,0.7,7.5,6l0.8,0.7c0,0,3.7,2.8,4.5,3.4C81.8,162,79.6,159.6,79.6,159.6z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE93C" d="M79.5,159.6L79.5,159.6l-3.4-3.6l-48.6-48.7l-7.9-7.9l-0.4-0.7l0,0
c0-0.2,0.1-1.2,0.1-1.2C19.3,97.4,56.3,61.4,78,43c0,0,29.8-24.1,30.4-24.6c0-0.1-0.9-14.9-0.9-15.5c-0.5,0.4-44.8,39.9-44.8,39.9
c-16.4,14.4-47,48-50.3,51.3c-0.6,0.5-0.9,1.3-0.9,2.1c0,0.8,0.3,1.5,0.9,2.1l0.2,0.2c10.2,9.7,35.3,33.6,49.3,47.1
c4.8,4.7,6.7,6.2,8.4,7.6l0,0l0,0c0.5,0.3,1.9,1.4,7.3,5.9l0.8,0.7c0,0,2,1.5,3.3,2.5C81.4,161.8,79.5,159.6,79.5,159.6z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE944" d="M79.4,159.7L79.4,159.7l-3.4-3.5l-48.6-48.7l-7.9-7.9L19,98.9l0-0.1l0.1-1.3
c0.1-0.1,36.6-35.8,58.8-54.6c0,0,29.8-24,30.3-24.5c0-0.1-0.9-14.5-0.9-15.1C106.9,3.7,62.9,43,62.9,43
C46.5,57.4,15.9,91,12.6,94.3c-0.6,0.5-0.9,1.2-0.9,2c0,0.7,0.3,1.4,0.9,2l0.2,0.2C23,108,48.1,132,62.1,145.5
c4.8,4.7,6.6,6.2,8.4,7.6c0.5,0.4,8.1,6.6,8.1,6.6c0,0,1.1,0.8,2,1.5C80,160.5,79.4,159.7,79.4,159.7z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEA4B" d="M79.2,159.8L79.2,159.8l-3.4-3.5l-48.6-48.7l-7.9-7.9l-0.4-0.7l0-0.2l0.1-1.3
c0.2-0.5,37.7-36.8,58.9-54.7c0,0,29.7-24,30.3-24.5c0-0.1-0.9-14.1-0.9-14.7C106.8,4,63,43.1,63,43.1C46.6,57.5,16,91.1,12.7,94.4
c-0.5,0.5-0.8,1.2-0.8,1.9c0,0.7,0.3,1.4,0.8,1.8l0.2,0.2c10.2,9.7,35.3,33.6,49.3,47.1c4.8,4.7,6.6,6.1,8.4,7.6l8.2,6.7
c0,0,0.2,0.1,0.8,0.6C79.5,160.1,79.2,159.8,79.2,159.8z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEA52" d="M75.7,156.4l-48.6-48.7l-7.9-7.9L18.8,99l-0.1-0.3l0.1-1.3
C19,97,56.5,60.6,77.7,42.6c0,0,29.7-23.9,30.2-24.4c0-0.1-0.9-13.7-0.9-14.3c-0.5,0.4-44,39.3-44,39.3
c-16.4,14.4-46.9,48-50.2,51.3c-0.5,0.5-0.8,1.1-0.8,1.7c0,0.7,0.3,1.3,0.8,1.7l0.2,0.2c10.1,9.7,35.3,33.6,49.3,47.1
c4.8,4.7,6.6,6.1,8.4,7.6c0,0,6.3,5.2,7.4,6.1C77.1,157.9,75.7,156.4,75.7,156.4z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEB58" d="M75.6,156.5L27,107.8l-7.9-7.9l-0.5-0.8l-0.1-0.3c0-0.1,0.1-1.3,0.1-1.3
c0.2-0.5,37.7-36.9,59-54.9c0,0,29.6-23.9,30.2-24.4c0-0.1-0.9-13.3-0.9-13.9c-0.5,0.4-43.8,39.1-43.8,39.1
C46.9,57.6,16.3,91.3,13,94.6c-0.5,0.4-0.8,1-0.8,1.6c0,0.6,0.3,1.2,0.7,1.6l0.2,0.2c10.1,9.6,35.2,33.5,49.3,47.1
c4.8,4.7,6.6,6.1,8.3,7.5c0,0,5.2,4.2,5.6,4.5C76,156.9,75.6,156.5,75.6,156.5z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEB5E" d="M26.9,107.9L19,100l-0.5-0.8l-0.1-0.2l0-0.2l0.1-1.3c0.2-0.5,37.7-36.9,59-55
c0,0,29.6-23.9,30.1-24.3c0-0.1-0.9-12.9-0.9-13.5C106.3,5,63.3,43.4,63.3,43.4C47,57.7,16.4,91.4,13.1,94.7
c-0.5,0.4-0.7,1-0.7,1.5c0,0.6,0.2,1.1,0.7,1.5l0.2,0.2c10.1,9.6,35.1,33.4,49.3,47.1c4.8,4.7,6.6,6.1,8.3,7.5c0,0,1.9,1.5,3.5,2.8
C70.2,151.2,54.3,135.3,26.9,107.9z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEC64" d="M18.9,100.1l-0.5-0.8L18.3,99l0-0.2l0.1-1.4c0.2-0.5,37.7-37,59.1-55.1
c0,0,29.5-23.8,30.1-24.3c0-0.1-0.9-12.5-0.9-13.1c-0.5,0.4-43.3,38.6-43.3,38.6c-16.3,14.3-46.9,48-50.2,51.3
c-0.4,0.4-0.7,0.9-0.7,1.4c0,0.5,0.2,1,0.6,1.4l0.2,0.2c10.1,9.6,35.2,33.5,49.3,47.1c4.8,4.7,6.6,6.1,8.3,7.5c0,0,0.6,0.5,1.2,1
C68.6,149.9,18.9,100.1,18.9,100.1z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEC64" d="M18.8,100.2L18.8,100.2l-0.6-0.8L18.1,99c0-0.1,0-0.2,0-0.2l0.1-1.4
c0.2-0.5,37.7-37,59.2-55.2c0,0,29.5-23.8,30-24.2c0-0.1-0.9-12.1-0.9-12.7c-0.5,0.4-43,38.4-43,38.4c-16.2,14.2-46.9,48-50.2,51.3
c-0.4,0.4-0.6,0.9-0.6,1.3c0,0.5,0.2,1,0.6,1.3l0.2,0.2c10.1,9.6,35.2,33.5,49.3,47.1c3.9,3.8,5.8,5.4,7.3,6.7
C66.2,147.7,18.8,100.2,18.8,100.2z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEC6A" d="M18.7,100.3L18.7,100.3l-0.6-0.9L18,99.1l0-0.2l0.1-1.4
c0.2-0.5,37.7-37.1,59.2-55.3c0,0,29.4-23.7,30-24.2c0-0.1-0.9-11.7-0.9-12.3C105.9,6,63.6,43.7,63.6,43.7
C47.4,58,16.7,91.7,13.4,95c-0.4,0.3-0.6,0.8-0.6,1.2c0,0.4,0.2,0.9,0.6,1.2l0.2,0.2c7.9,7.5,34.6,33,49.3,47.1
c1.6,1.6,2.9,2.8,3.9,3.7C61.3,142.9,18.7,100.3,18.7,100.3z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEC6A" d="M18.6,100.4L18.6,100.4L18,99.5l-0.1-0.4l-0.1-0.3l0.1-1.4
c0.1-0.5,37.7-37.2,59.3-55.4c0,0,29.4-23.7,29.9-24.2c0-0.1-0.9-11.3-0.9-11.9c-0.5,0.4-42.5,38-42.5,38
c-16.2,14.2-46.9,48-50.2,51.3c-0.3,0.3-0.5,0.7-0.5,1.1c0,0.4,0.2,0.8,0.5,1.1l0.2,0.2c7,6.7,29.2,27.8,44.3,42.3
C46.2,128,18.6,100.4,18.6,100.4z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFED75" d="M18.5,100.5L18.5,100.5l-0.6-0.9l-0.2-0.4l-0.1-0.3l0.1-1.5
c0.1-0.5,37.7-37.2,59.3-55.5c0,0,29.3-23.6,29.9-24.1c0-0.1-0.9-10.9-0.9-11.5C105.6,6.6,63.8,44,63.8,44
C47.6,58.2,16.9,91.9,13.6,95.2c-0.3,0.3-0.5,0.7-0.5,1c0,0.4,0.2,0.7,0.5,1c0,0,22.8,21.8,35.7,34.1
C38.8,120.8,18.5,100.5,18.5,100.5z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEE7B" d="M18.4,100.6l-0.1-0.1l-0.5-0.8l-0.2-0.4l-0.1-0.4l0.1-1.5
c0.1-0.5,37.7-37.3,59.4-55.6c0,0,29.3-23.6,29.8-24.1c0-0.1-0.9-10.6-0.9-11.1c-0.5,0.4-42,37.5-42,37.5
C47.7,58.3,17,92,13.7,95.3c-0.3,0.3-0.5,0.6-0.5,0.9c0,0.3,0.1,0.6,0.4,0.9c0,0,17.9,17.1,27,25.7
C31.7,113.9,18.4,100.6,18.4,100.6z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEE80" d="M18.3,100.7l-0.1-0.1l-0.5-0.8l-0.2-0.4l-0.1-0.4l0.1-1.5
c0.1-0.5,37.7-37.4,59.4-55.7c0,0,29.2-23.6,29.8-24c0-0.1-0.9-10.2-0.9-10.8C105.3,7.3,64,44.2,64,44.2
C47.9,58.3,17.1,92.1,13.8,95.4c-0.3,0.2-0.4,0.5-0.4,0.8c0,0.3,0.1,0.6,0.4,0.8c0,0,11.8,11.2,18.2,17.4
C25.5,107.9,18.3,100.7,18.3,100.7z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFEF85" d="M18.2,100.8l-0.1-0.2l0,0c-0.1-0.1-0.2-0.3-0.6-0.9l-0.2-0.5l-0.1-0.4l0.1-1.5
c0.1-0.5,37.8-37.4,59.5-55.8c0,0,29.2-23.5,29.7-24c0-0.1-0.9-9.8-0.9-10.4c-0.5,0.4-41.6,37.1-41.6,37.1
C48,58.4,17.2,92.2,13.9,95.5c-0.2,0.2-0.4,0.5-0.4,0.7c0,0.2,0.1,0.5,0.3,0.7c0,0,6.8,6.4,9.5,9C20.9,103.5,18.2,100.8,18.2,100.8
z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF08A" d="M18.1,100.9L18.1,100.9L18.1,100.9z M17.4,99.9l-0.2-0.5l-0.1-0.5v0l0.1-1.6
c0.1-0.5,37.8-37.5,59.5-55.9c0,0,29.1-23.5,29.7-23.9c0-0.1-0.9-9.4-0.9-10C105,7.9,64.2,44.4,64.2,44.4
C48.1,58.5,17.3,92.3,14,95.6c-0.2,0.2-0.3,0.4-0.3,0.6c0,0.2,0.1,0.4,0.3,0.6c0,0,2.5,2.4,3.8,3.6C17.6,100.2,17.4,99.9,17.4,99.9
z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF08F" d="M17.3,100L17.3,100L17.3,100z M17,99.4L16.9,99v0l0.1-1.6
c0.1-0.5,37.8-37.6,59.6-56c0,0,29.1-23.4,29.6-23.9c0-0.1-0.9-9-0.9-9.6c-0.5,0.4-41.1,36.7-41.1,36.7
c-16,14.1-46.8,47.9-50.2,51.2c-0.2,0.2-0.3,0.4-0.3,0.5c0,0.2,0.1,0.3,0.2,0.5c0,0,2.2,2.1,3.1,2.9L17,99.4z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF194" d="M16.8,99c0-0.1,0.1-1.7,0.1-1.7c0.1-0.5,37.8-37.6,59.6-56.1
c0,0,29-23.4,29.6-23.9c0-0.1-0.9-8.6-0.9-9.2c-0.5,0.4-40.8,36.4-40.8,36.4c-16,14-46.8,47.9-50.2,51.2L14,96.2l0.2,0.4
c0,0,2.3,2.2,2.7,2.5L16.8,99z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF199" d="M16.7,97.3c0.1-0.5,37.8-37.7,59.7-56.2c0.3-0.2,28.5-23,29.5-23.8
c0-0.1-0.1-2-0.1-2s-0.8-6.2-0.8-6.8c-0.5,0.4-40.6,36.2-40.6,36.2c-12.4,10.9-34,34-44.4,45.1l-5.8,6.1l0,0c0,0-0.1,0.2-0.2,0.3
l0.1,0.3c0,0,1.7,1.6,2.4,2.3C16.7,98.4,16.7,97.3,16.7,97.3z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF29E" d="M16.6,97.3L16.6,97.3c0.1-0.5,37.8-37.8,59.7-56.3c0,0,28.9-23.3,29.5-23.8
c0-0.1-0.1-2-0.1-2s-0.7-5.1-0.8-6.4c-0.5,0.4-40.3,36-40.3,36c-12.5,10.9-34,34-44.3,45.1L14.4,96l0-0.1c0,0-0.1,0.2-0.2,0.4
l0.1,0.2l-0.1,0c0.2,0.1,0.7,0.6,2.2,2C16.5,98.1,16.6,97.3,16.6,97.3z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF2A3" d="M16.4,97.3L16.4,97.3c0.1-0.5,37.9-37.9,59.8-56.5c0,0,28.8-23.2,29.4-23.7
c0-0.1-0.1-1.9-0.1-1.9s-0.7-4.9-0.8-6.1c-0.5,0.4-40.1,35.8-40.1,35.8c-12.4,10.9-34,34-44.3,45c0,0,0,0-5.8,6.2l0,0l0,0.1
l0.1,0.2l-0.1-0.1c0.2,0.1,0.7,0.6,2,1.8C16.4,97.8,16.4,97.3,16.4,97.3z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF3A8" d="M16.3,97.3L16.3,97.3c0.1-0.5,37.9-38,59.8-56.6c0,0,0,0,16-13.2
c0,0,13.3-10.4,13.4-10.5c0-0.1-0.8-6.4-0.8-7.6C104.2,9.8,64.8,45,64.8,45C52.3,56,30.8,79,20.5,90l0,0c-0.1,0.1-0.3,0.4-0.9,0.9
l-5,5.3l0.1,0.1c0.2,0.2,0.7,0.6,1.6,1.5C16.3,97.6,16.3,97.3,16.3,97.3z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF4AC" d="M16.1,97.3l0-0.1c0.1-0.4,37.9-37.9,59.9-56.5l0,0c0.1-0.1,0.2-0.2,0.5-0.4
c0,0,28.7-23.2,28.8-23.3c0-0.1-0.8-6.7-0.8-7.3c-0.5,0.4-39.6,35.4-39.6,35.4c-12.4,10.9-34,33.9-44.3,45L19.8,91
c-0.1,0.1-4.5,4.7-4.9,5.2c0.1,0.2,0.9,0.9,1.3,1.3L16.1,97.3z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF4B1" d="M65,45.3C52.5,56.2,31,79.2,20.7,90.2l-0.8,0.8c0,0-4.3,4.6-4.8,5.1
c0.1,0.1,0.7,0.7,1,0.9c0.1-0.5,38-38,59.9-56.6l0.5-0.4c0,0,28.1-22.7,28.8-23.2c0-0.1-0.2-1.7-0.2-1.7c-0.2-1.8-0.5-4.4-0.6-5.2
C104,10.4,65,45.3,65,45.3z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF5B5" d="M65.1,45.4c-12.4,10.9-33.9,33.9-44.3,45c0,0-5,5.3-5.6,5.9
c0.1,0.1,0.6,0.6,0.8,0.7c2.5-2.7,38.6-38.5,59.8-56.5l0.5-0.4c0,0,27.9-22.5,28.7-23.2c0-0.1-0.2-1.6-0.2-1.6s-0.4-3.9-0.5-4.9
C103.9,10.7,65.1,45.4,65.1,45.4z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF5B9" d="M65.1,45.5C52.7,56.4,31.2,79.4,20.9,90.4c0,0-5.3,5.6-5.5,5.8
c0.1,0.1,0.4,0.4,0.6,0.5c3.1-3.3,38.8-38.7,59.7-56.4l0.5-0.4c0,0,28.5-23,28.7-23.1c0-0.1-0.2-1.5-0.2-1.5c0,0-0.4-3.6-0.5-4.6
C103.7,11,65.1,45.5,65.1,45.5z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF6BE" d="M65.2,45.6C52.8,56.5,31.4,79.5,21,90.5c0,0-5.2,5.5-5.4,5.7
c0.1,0.1,0.3,0.3,0.4,0.3c3.5-3.8,38.7-38.6,59.6-56.4l0.5-0.4c0,0,0,0,16-12.9c0,0,12.5-10.1,12.6-10.2c0-0.1-0.2-1.5-0.2-1.5
c0,0-0.4-3.9-0.5-4.4C103.6,11.3,65.2,45.6,65.2,45.6z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF6C2" d="M65.3,45.7C52.9,56.6,31.5,79.6,21.1,90.6c0,0,0,0-2.8,2.9c0,0-2.3,2.5-2.5,2.7
l0.1,0.1c3.9-4.2,38.8-38.6,59.5-56.3l0.5-0.4l0,0.1c0.1-0.1,0.6-0.5,2.8-2.3c0,0,25.7-20.7,25.8-20.8c0-0.1-0.2-1.4-0.2-1.4
c0,0-0.4-3.7-0.5-4.1C103.5,11.6,65.3,45.7,65.3,45.7z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFF7C6" d="M65.4,45.8C53,56.7,31.6,79.7,21.2,90.7v0c0,0.1-0.2,0.2-0.5,0.6
c0,0-0.9,1-1.6,1.7c10-10,38.4-37.8,56.3-53l0.5-0.4l0,0.1c0.1-0.2,0.4-0.5,2.8-2.4c0,0,25.6-20.7,25.7-20.8c0-0.1-0.1-1.3-0.1-1.3
c0,0-0.4-3.5-0.4-3.8C103.4,11.9,65.4,45.8,65.4,45.8z"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE500" d="M124.3,22.5l5,6l5.2,5.8L138,38c18.5,18.5,56.1,56.3,56.5,56.6
c0.1,0.1,0.2,0.2,0.2,0.3v0c0,0.1-0.1,0.2-0.1,0.3c-1.6,1.5-38.4,37-58.4,54l-30.8,24.9l0.9,19l47-41.9
c17.2-15.1,50-51.1,50.3-51.4c0.8-0.7,1.3-1.8,1.3-3c0-1.2-0.5-2.2-1.3-3l-0.2-0.2c-5.7-5.4-34.6-33-49.3-47.1
c-5-4.8-6.8-6.3-8.6-7.8l-8-6.6L124.3,22.5"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE500" d="M200.9,101.7c-2.6,2.8-7.4,7.9-13.1,14c4.5-4.6,7.9-8.2,10.4-10.9
c0.4-0.5,0.8-0.9,1.2-1.3c0.5-0.6,1-1.1,1.5-1.6L200.9,101.7 M126.2,24.3c1.1,1.3,3.4,4.1,3.4,4.1l-0.1-0.1
c0.1,0.1,0.6,0.6,5.3,5.9l3.5,3.6l48.6,48.7l7.9,7.9l0.2,0.4v0c0,0.1-0.2,0.5-0.2,0.5c-4,3.8-38.9,37.4-58.5,54
c0,0-30.2,24.4-30.7,24.9c0,0.1,0.4,7.6,0.6,13c0.1,0.1,0.2,0.2,0.3,0.3c-0.3-5.1-0.7-13-0.7-13.1c0.6-0.5,30.6-24.8,30.6-24.8
c20.6-17.5,58.2-53.8,58.5-54.1c0,0,0.2-0.6,0.2-0.8l0,0l-0.3-0.5l-7.9-7.9l-48.6-48.7L135,34l-0.3-0.3c-4.6-5.2-4.9-5.5-5-5.6
l0.2,0.1c0,0-1-1.2-1.7-2.1c2.5,1.9,8.8,6.7,8.8,6.7l8.1,6.6c1.8,1.4,3.6,2.9,8.5,7.6c12.9,12.5,36.7,35.1,47.8,45.7l0-0.4
c-11.2-10.7-34.8-33.1-47.6-45.5c-4.9-4.7-6.7-6.2-8.5-7.7l-8.1-6.6C137,32.5,127.6,25.4,126.2,24.3"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE400" d="M200.9,101.2c-3.9,4.2-12.8,13.8-22.5,23.9c3.6-3.5,6.7-6.6,9.4-9.4
c5.7-6.1,10.5-11.2,13.1-14L200.9,101.2 M128,26.1c0.8,0.9,1.7,2.1,1.7,2.1l-0.2-0.1c0.2,0.1,0.4,0.4,5,5.6L135,34l3.5,3.6
L187,86.3l7.9,7.9l0.3,0.5l0,0c0,0.1-0.2,0.8-0.2,0.8c-0.3,0.3-37.9,36.6-58.5,54.1c0,0-30.1,24.3-30.6,24.8c0,0.1,0.4,8,0.7,13.1
c0.1,0.1,0.2,0.2,0.3,0.3c-0.3-4.9-0.7-13.2-0.7-13.3c0.6-0.5,30.5-24.7,30.5-24.7c21.2-18,58.5-54,58.6-54.3c0,0,0.2-0.8,0.2-1
l0,0l-0.3-0.6l-7.9-7.9l-48.6-48.7l-3.4-3.6L130,28l0,0l-0.1-0.1c1.4,1,6.8,5.1,6.8,5.1l8.1,6.6c1.8,1.4,3.6,2.9,8.4,7.6
c13.3,12.8,37,35.5,48,45.9l0-0.4c-11.1-10.6-34.8-33.2-47.8-45.7c-4.9-4.7-6.7-6.2-8.5-7.6l-8.1-6.6C136.9,32.8,130.6,28,128,26.1
"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE400" d="M142.7,159c-5.4,4.8-12.2,10.9-18.4,16.4C129,171.3,135,166,142.7,159
M200.9,100.8c-4.7,5-17.5,18.9-30,31.6c2.7-2.6,5.2-5,7.5-7.3c9.7-10.1,18.6-19.7,22.5-23.9L200.9,100.8 M129.9,27.9L130,28l0,0
l5.2,5.8l3.4,3.6l48.6,48.7l7.9,7.9l0.3,0.6l0,0c0,0.2-0.2,1-0.2,1c-0.2,0.2-37.4,36.2-58.6,54.3c0,0-30,24.2-30.5,24.7
c0,0.1,0.5,8.4,0.7,13.3c0.1,0.1,0.3,0.2,0.3,0.3c-0.2-4.5-0.7-13.3-0.7-13.4c0.6-0.5,30.4-24.6,30.4-24.6
c21.7-18.4,58.6-54.3,58.7-54.4c0,0,0.1-0.9,0.1-1.2l0,0l-0.4-0.6l-7.9-7.9l-48.6-48.7l-3.4-3.6c0,0-2.2-2.4-3.4-3.8
c0.8,0.6,4.4,3.4,4.5,3.4l0.8,0.7c6.5,5.3,7.3,6,7.5,6l-0.2,0c1.8,1.4,3.6,2.9,8.4,7.6c13.5,13.1,37.4,35.8,48.1,46l0-0.4
c-10.9-10.4-34.7-33-48-45.9c-4.9-4.7-6.7-6.2-8.4-7.6l-8.1-6.6C136.7,33,131.3,28.9,129.9,27.9"/>
<path clip-path="url(#SVGID_2_)" fill="#FFE100" d="M153.8,148.7c-0.6,0.5-1.2,1-1.7,1.5c0,0-21.6,19.3-34.8,31
c1.9-1.6,4.2-3.5,7-5.8c6.2-5.6,13.1-11.7,18.4-16.4C146.1,155.9,149.8,152.4,153.8,148.7 M201,100.3c-5.7,6-24.9,27-39.9,41.5
c3.6-3.4,6.9-6.6,9.9-9.5c12.5-12.7,25.3-26.6,30-31.6L201,100.3 M132,29.9c1.2,1.3,3.4,3.8,3.4,3.8l3.4,3.6l48.6,48.7l7.9,7.9
l0.4,0.6l0,0c0,0.2-0.1,1.2-0.1,1.2c-0.1,0.2-37,36-58.7,54.4c0,0-29.9,24.1-30.4,24.6c0,0.1,0.5,8.9,0.7,13.4
c0.1,0.1,0.1,0.1,0.1,0.1l0.2,0c0,0,0,0,0,0c-0.2-4-0.8-13.2-0.8-13.3c0.6-0.5,30.3-24.5,30.3-24.5c22.2-18.9,58.8-54.5,58.8-54.6
l0.1-1.3l0-0.1l-0.4-0.7l-7.9-7.9L139.1,37l-3.4-3.6l0,0c0,0-0.7-0.8-1.4-1.5c0.9,0.7,2,1.5,2,1.5c0,0,7.7,6.3,8.1,6.6
c1.7,1.4,3.6,2.9,8.4,7.6c13.6,13.1,37.6,36,48.3,46.2l0-0.4c-10.8-10.3-34.6-33-48.1-46c-4.9-4.7-6.7-6.2-8.4-7.6l0.2,0
c-0.2,0-1-0.7-7.5-6l-0.8-0.7C136.5,33.2,132.8,30.5,132,29.9"/>
<path clip-path="url(#SVGID_2_)" fill="#FFDE00" d="M201,99.9c-6.6,6.9-33.9,36.8-49.1,50.1c0,0-26.4,23.5-38.3,34.2
c1.1-0.8,2.3-1.8,3.7-2.9c13.1-11.7,34.8-31,34.8-31c0.6-0.5,1.1-1,1.7-1.5c1.1-1,2.2-2.1,3.3-3.1c1.3-1.3,2.6-2.5,3.9-3.7
c15-14.6,34.2-35.5,39.9-41.5L201,99.9 M134.3,31.9c0.7,0.7,1.4,1.5,1.4,1.5l0,0l3.4,3.6l48.6,48.7l7.9,7.9l0.4,0.7l0,0.1l-0.1,1.3
c-0.1,0.1-36.6,35.8-58.8,54.6c0,0-29.8,24-30.3,24.5c0,0.1,0.6,9.3,0.8,13.3c0.1,0,0.2,0,0.3-0.1c-0.2-3.5-0.8-13-0.8-13.1
c0.6-0.5,30.2-24.4,30.2-24.4c21.2-18,58.8-54.4,58.9-54.8l0.1-1.3l-0.1-0.3l-0.5-0.7l-7.9-7.9l-48.6-48.7c0,0-1.4-1.5-2.4-2.5
c1.1,0.9,7.4,6.1,7.4,6.1c1.7,1.4,3.5,2.9,8.4,7.6c13.7,13.2,37.9,36.3,48.5,46.4l0-0.4c-10.7-10.2-34.8-33.1-48.3-46.2
c-4.8-4.7-6.6-6.2-8.4-7.6c-0.5-0.4-8.1-6.6-8.1-6.6C136.3,33.5,135.2,32.6,134.3,31.9"/>
<path clip-path="url(#SVGID_2_)" fill="#FFDA00" d="M201,99.4c-6.1,6.5-34,36.9-49.3,50.3c0,0-30.8,27.5-40.6,36.2
c0.7-0.5,1.5-1.1,2.5-1.8c11.9-10.6,38.3-34.2,38.3-34.2c15.2-13.3,42.5-43.2,49.1-50.1L201,99.4 M136.8,34.3c1,1,2.4,2.5,2.4,2.5
l48.6,48.7l7.9,7.9l0.5,0.7l0.1,0.3l-0.1,1.3c-0.2,0.5-37.7,36.8-58.9,54.8c0,0-29.7,23.9-30.2,24.4c0,0.1,0.6,9.6,0.8,13.1
c0.1,0,0.2-0.1,0.3-0.2c-0.2-2.8-0.8-12.7-0.8-12.8c0.6-0.5,30.1-24.3,30.1-24.3c21.3-18.1,58.9-54.6,59-55l0.1-1.3l0-0.2l-0.1-0.2
l-0.5-0.8l-7.9-7.9c-27.4-27.5-43.3-43.4-47.4-47.5c1.6,1.3,3.5,2.8,3.5,2.8c1.7,1.4,3.5,2.9,8.3,7.5
c13.9,13.4,38.3,36.7,48.7,46.6l0-0.4c-10.6-10.1-34.8-33.2-48.5-46.4c-4.8-4.7-6.6-6.1-8.4-7.6C144.3,40.3,138,35.2,136.8,34.3"/>
<path clip-path="url(#SVGID_2_)" fill="#FFD800" d="M201,99c-5.6,5.9-34.1,37-49.5,50.6c0,0-36,32.2-42.2,37.6
c0.5-0.3,1.1-0.7,1.8-1.2c9.8-8.7,40.6-36.2,40.6-36.2c15.3-13.4,43.2-43.9,49.3-50.3L201,99 M140.6,37.7
c4.2,4.2,20,20.1,47.4,47.5l7.9,7.9l0.5,0.8l0.1,0.2l0,0.2l-0.1,1.3c-0.2,0.5-37.7,36.9-59,55c0,0-29.6,23.9-30.1,24.3
c0,0.1,0.7,9.9,0.8,12.8c0.1,0,0.2-0.1,0.3-0.2c-0.1-1.8-0.9-12.4-0.9-12.5c0.6-0.5,30-24.2,30-24.2c21.4-18.2,59-54.8,59.1-55.2
l0.1-1.4c0,0,0-0.1,0-0.2l-0.1-0.3l-0.5-0.8l0,0c0,0-47.4-47.5-51.2-51.4c1.5,1.2,3.4,2.9,7.3,6.7c13.9,13.4,38.6,36.9,48.9,46.8
l0-0.4c-10.4-9.9-34.8-33.1-48.7-46.6c-4.8-4.7-6.6-6.1-8.3-7.5C144.1,40.6,142.2,39,140.6,37.7"/>
<path clip-path="url(#SVGID_2_)" fill="#FFD700" d="M144.9,41.6c3.8,3.8,51.2,51.4,51.2,51.4l0,0l0.5,0.8l0.1,0.3
c0,0.1,0,0.2,0,0.2l-0.1,1.4c-0.2,0.5-37.7,37-59.1,55.2c0,0-29.5,23.8-30,24.2c0,0.1,0.8,10.6,0.9,12.5c0.2-0.1,0.5-0.3,0.9-0.5
c6.1-5.5,42.2-37.6,42.2-37.6C166.9,136,195.4,104.9,201,99l0-0.4c-5.1,5.3-34.1,37.1-49.7,50.8c0,0-42,37.5-42.5,38
c0-0.6-0.9-11.8-0.9-11.9c0.6-0.5,29.9-24.2,29.9-24.2c21.5-18.3,59.1-55,59.2-55.4l0.1-1.4l-0.1-0.3l-0.1-0.4l-0.5-0.8l-0.1-0.1
c0,0-27.6-27.7-39.3-39.4c15,14.4,36.9,35.2,44.1,42.1l0-0.4c-10.4-9.9-35-33.3-48.9-46.8C148.3,44.5,146.4,42.9,144.9,41.6"/>
<path clip-path="url(#SVGID_2_)" fill="#FED500" d="M157.1,53.4c11.7,11.8,39.3,39.4,39.3,39.4l0.1,0.1l0.5,0.8l0.1,0.4l0.1,0.3
l-0.1,1.4c-0.1,0.5-37.7,37.2-59.2,55.4c0,0-29.4,23.7-29.9,24.2c0,0.1,0.9,11.3,0.9,11.9c0.5-0.4,42.5-38,42.5-38
c15.6-13.7,44.7-45.5,49.7-50.8l0-0.4c-4.3,4.4-34.1,37.1-49.9,51c0,0-41.6,37.1-42,37.5c0-0.6-0.9-11-0.9-11.1
c0.6-0.5,29.8-24.1,29.8-24.1c21.6-18.3,59.2-55.2,59.3-55.6l0.1-1.5l-0.1-0.4l-0.2-0.4l-0.5-0.8l-0.1-0.1c0,0-13.3-13.3-22.2-22.3
c8.5,8.1,24.8,23.7,26.8,25.6l0-0.4C193.9,88.6,172,67.8,157.1,53.4"/>
<path clip-path="url(#SVGID_2_)" fill="#FED400" d="M174.4,70.3c8.9,8.9,22.2,22.3,22.2,22.3l0.1,0.1l0.5,0.8l0.2,0.4l0.1,0.4
l-0.1,1.5c-0.1,0.5-37.7,37.3-59.3,55.6c0,0-29.3,23.6-29.8,24.1c0,0.1,0.9,10.6,0.9,11.1c0.5-0.4,42-37.5,42-37.5
c15.8-13.9,45.6-46.6,49.9-51l0-0.4c-3.4,3.4-34.1,37.1-50.2,51.2c0,0-41.1,36.7-41.5,37.1c0-0.6-0.9-10.2-0.9-10.4
c0.6-0.5,29.7-24,29.7-24c21.7-18.4,59.3-55.4,59.4-55.8l0.1-1.5l-0.1-0.4l-0.2-0.5c-0.4-0.5-0.5-0.8-0.6-0.9l0,0l-0.1-0.2
c0,0-2.7-2.7-5.1-5.1c2.6,2.5,9.1,8.7,9.4,9l0-0.4C199.1,94,182.8,78.4,174.4,70.3"/>
<path clip-path="url(#SVGID_2_)" fill="#FDD200" d="M197.7,93.2L197.7,93.2L197.7,93.2 M191.7,87.2c2.4,2.4,5.1,5.1,5.1,5.1
l0.1,0.2l0,0c0.1,0.1,0.2,0.3,0.6,0.9l0.2,0.5l0.1,0.4l-0.1,1.5c-0.1,0.5-37.8,37.4-59.4,55.8c0,0-29.2,23.5-29.7,24
c0,0.1,0.9,9.8,0.9,10.4c0.5-0.4,41.5-37.1,41.5-37.1c16.1-14.1,46.7-47.8,50.2-51.2l0-0.5c0,0.1-0.1,0.2-0.2,0.3
c-3.3,3.3-34.2,37.2-50.2,51.2c0,0-40.6,36.2-41.1,36.7c0-0.6-0.9-9.4-0.9-9.6c0.6-0.5,29.6-23.9,29.6-23.9
c21.8-18.5,59.4-55.6,59.6-56l0.1-1.6v0l-0.1-0.5l-0.1-0.2c0.9,0.9,3.1,2.9,3.1,2.9c0.1,0.1,0.1,0.2,0.2,0.2l0-0.5
C200.8,96,194.3,89.8,191.7,87.2"/>
<path clip-path="url(#SVGID_2_)" fill="#FDD000" d="M109.9,184.7c0-0.6-0.7-6.8-0.7-6.8s-0.2-1.9-0.2-2c1-0.8,29.2-23.6,29.5-23.8
c21.8-18.5,59.5-55.8,59.7-56.2c0,0,0.1-1.1,0.1-1.4c0.7,0.6,2.4,2.3,2.4,2.3l0,0l0.1,0.3c-0.1,0.1-0.2,0.3-0.2,0.3l0,0l-5.8,6.1
c-10.4,11.1-31.9,34.1-44.3,45.1C150.5,148.5,110.4,184.3,109.9,184.7 M197.9,93.6l0.1,0.2l0.1,0.5v0l-0.1,1.6
c-0.1,0.5-37.8,37.6-59.6,56c0,0-29.1,23.4-29.6,23.9c0,0.1,0.9,9,0.9,9.6c0.5-0.4,41.1-36.7,41.1-36.7
c16-14.1,46.8-47.9,50.2-51.2c0.1-0.1,0.2-0.2,0.2-0.3l0-0.5c0-0.1-0.1-0.2-0.2-0.2C200.9,96.5,198.8,94.4,197.9,93.6 M197.7,93.2
L197.7,93.2L197.7,93.2"/>
<path clip-path="url(#SVGID_2_)" fill="#FCCE00" d="M110.2,184.1c0-1.3-0.6-6-0.6-6s-0.2-1.9-0.2-2c0.6-0.5,29.4-23.7,29.4-23.7
c21.9-18.6,59.6-56,59.7-56.4l0-0.1c0,0,0-0.5,0-0.8c1.3,1.2,1.8,1.7,2,1.8l-0.1-0.1l0.1,0.2l0,0.1l0,0c-5.6,5.9-5.8,6.2-5.8,6.2
c0,0,0,0,0,0c-10.3,11.1-31.9,34.1-44.3,45C150.3,148.2,110.7,183.7,110.2,184.1 M198.3,94.4c0,0.3-0.1,1.4-0.1,1.4
c-0.1,0.5-37.8,37.7-59.7,56.2c-0.3,0.2-28.5,23-29.5,23.8c0,0.1,0.2,2,0.2,2s0.6,6.2,0.7,6.8c0.5-0.4,40.6-36.2,40.6-36.2
c12.4-10.9,34-34,44.3-45.1l5.8-6.1l0,0c0,0,0.1-0.2,0.2-0.3l-0.1-0.3l0,0C200.7,96.7,199,95,198.3,94.4"/>
<path clip-path="url(#SVGID_2_)" fill="#FBCD00" d="M139,152.5c21.9-18.6,59.7-56.1,59.8-56.5l0-0.1l0-0.2c0.4,0.4,1.2,1.1,1.3,1.3
c-0.5,0.5-4.9,5.2-4.9,5.2l-0.8,0.8c-10.3,11.1-31.8,34.1-44.3,45c0,0-39.2,35-39.6,35.4c0-0.6-0.8-7.1-0.8-7.3
c0.1-0.1,28.8-23.3,28.8-23.3C138.8,152.7,138.9,152.6,139,152.5L139,152.5 M198.6,95.1c0,0.3,0,0.8,0,0.8l0,0.1
c-0.1,0.4-37.9,37.8-59.7,56.4c0,0-28.8,23.2-29.4,23.7c0,0.1,0.2,2,0.2,2s0.6,4.7,0.6,6c0.5-0.4,40.1-35.8,40.1-35.8
c12.4-10.9,34-33.9,44.3-45c0,0,0,0,0,0c0,0,0.2-0.3,5.8-6.2l0,0l0-0.1l-0.1-0.2l0.1,0.1C200.3,96.7,199.9,96.3,198.6,95.1"/>
<path clip-path="url(#SVGID_2_)" fill="#FBCB00" d="M198.8,95.7l0,0.2l0,0.1c-0.1,0.4-37.9,37.9-59.8,56.5l0,0
c-0.1,0.1-0.2,0.2-0.5,0.4c0,0-28.7,23.2-28.8,23.3c0,0.1,0.8,6.7,0.8,7.3c0.5-0.4,39.6-35.4,39.6-35.4
c12.4-10.9,33.9-33.9,44.3-45l0.8-0.8c0.1-0.1,4.5-4.7,4.9-5.2C200,96.8,199.2,96.1,198.8,95.7"/>
</g>
<rect x="15.3" y="66.6" transform="matrix(0.706 0.7082 -0.7082 0.706 58.1477 6.1217)" fill="#FFE500" width="12.7" height="13.1"/>
<rect x="186.4" y="65.1" fill="#FFE500" width="2.6" height="10.1"/>
<polygon fill-rule="evenodd" clip-rule="evenodd" points="119.8,62.7 119.8,121.7 102.4,121.7 102.3,73.4 109.8,71.6 107.6,62.8 "/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M49.5,75.5c7.2-0.3,17.7-0.8,24.3,0c8.4,1,19.4,3.2,20.3,15
c0.4,5.6-1.5,10.4-9.4,16.7c0,0,8,8.7,15.3,17c0,0-9.1,8.6-14.1,12.7l-17.9-29.7c4-3.1,8.8-7.6,8.8-12.9c0-5.1-4.8-7.5-6.5-7.5h-3.7
v49.6H49.5V75.5z"/>
<polygon fill-rule="evenodd" clip-rule="evenodd" points="140.1,136.1 140.1,89.5 123.3,89.5 123.3,74.5 174.5,74.5 174.5,89.5
157.8,89.5 157.8,136.1 "/>
<path d="M42.9,60.1L42.8,75l-18.1,0l0,13.8l16.7-0.1v14.2l-16.4,0l0,23.9H7V60.9C25,60.1,42.9,60.1,42.9,60.1z"/>
<polygon fill-rule="evenodd" clip-rule="evenodd" points="229,97.7 240.6,98.1 245.2,68.2 230.8,67 "/>
<polygon points="223.8,104.3 232.9,96.9 242.5,108.9 233.4,116.2 226.1,107.1 "/>
<polygon fill-rule="evenodd" clip-rule="evenodd" points="115.8,118.3 95.4,118.3 95.3,67.3 102.5,65.5 100.2,56.3 115.8,56.3 "/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M133.1,86.1c0,0-15.2,0.4-15.1,0.4l-1.7,0.2V68.1h54.3v18.6l-1.8,0l-14.9-0.6v46.6
h-20.7V86.1z"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M169.5,53.3l0.6,0c5.9,0,23-0.3,46.2,1l2.6,0.2l-24.4,45.4
c5,0.1,11.5,0.2,20.1-0.4l1.9-0.1l0,18.4c0,0-47.4,0-48.2,0h-3.6L189,71.2c-5.2,0-11.4,0-18.9,0.4l-0.7,0.1V53.3z"/>
<path d="M38.9,55l0,16.7l-1.7,0l-16.5,0l0,10.2l16.7-0.1l0,17.4h-1.7l-14.7,0l0,23.9H0V54.6l1.4-0.1c18-0.8,37-0.7,37-0.7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M62.6,100.4c3.7-3.1,7.3-6.8,7.3-11.1c0-4.1-3.9-6-5.1-6h-2.2V100.4z M68.5,69.1
c8.2,1,20.6,3.3,21.6,16.4c0.4,5.9-1.6,10.9-8.7,17l15.3,17.9l-0.9,0.9c-4.2,4.3-8.9,8.4-13.9,12.4l-1.3,1.1l-17.9-29.7v27.8H42.5
V69.2l1.4-0.1C51.2,68.8,61.8,68.4,68.5,69.1z"/>
<polygon fill-rule="evenodd" clip-rule="evenodd" points="224.2,62.6 241.8,64 236.7,96.9 222.2,96.4 "/>
<path d="M239.1,106.5l-9.3-11.5l-11.5,9.3h-1.8v1.8c-8.2,0.4-14.4,0.2-18.9,0.1l24.5-45.5c-23.2-1.3-40-1-52.2-0.7v15.3
c15.1-0.8,21.6-0.7,27.2-0.8l-24.2,46.6h1.1c0.8,0,46.7,0,46.7,0l0-14l7,8.7L239.1,106.5z"/>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#E2001A" points="114.3,57.8 114.3,116.7 96.9,116.7 96.8,68.5 104.3,66.7
102.1,57.8 "/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#E2001A" d="M44,70.6c7.2-0.3,17.7-0.8,24.3,0c8.4,1,19.4,3.2,20.3,15
c0.4,5.6-1.5,10.4-9.4,16.7l15.4,18c-4.1,4.2-8.8,8.3-13.7,12.3l-18.3-30.4c4-3.1,8.8-7.6,8.8-12.9c0-5.1-4.8-7.5-6.5-7.5h-3.7v49.6
H44V70.6z"/>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#E2001A" points="134.6,131.2 134.6,84.6 117.8,85 117.8,69.6 169,69.6
169,85 152.3,84.6 152.3,131.2 "/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#E2001A" d="M170.7,70.1V54.8c5.9,0,22.7-0.3,45.9,1l-24.5,45.5
c5.3,0.1,12.8,0.3,23-0.4l0,15.3c0,0-45.9,0-46.7,0l-1.1,0l24.2-46.6C185.9,69.7,179.4,69.7,170.7,70.1z"/>
<polygon fill="#E2001A" points="37.4,64.5 37.4,70 19.2,70 19.2,83.8 35.9,83.7 35.9,97.9 19.4,97.9 19.4,121.8 1.5,121.8 1.5,56
37.4,55.3 "/>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#E2001A" points="223.8,94.9 235.4,95.3 240,65.4 225.6,64.2 "/>
<rect x="222.8" y="99.6" transform="matrix(-0.777 0.6295 -0.6295 -0.777 472.7412 43.5246)" fill="#E2001A" width="11.7" height="11.7"/>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- Created with Sodipodi ("http://www.sodipodi.com/") -->
<svg
id="svg592"
sodipodi:version="0.33"
width="600pt"
height="600pt"
sodipodi:docbase="/home/tobias/Desktop"
sodipodi:docname="/home/tobias/Desktop/Oxidising.svg"
sodipodi:author="Aqua78"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs
id="defs594" />
<sodipodi:namedview
id="base" />
<rect
style="font-size:12.000;fill:#ff6700;fill-rule:evenodd;stroke:#000000;stroke-width:6.250000;"
id="rect633"
width="600.000000"
height="600.000000"
x="84.682228"
y="154.565033"
transform="translate(-4.650838,-74.41330)" />
<g
id="g650"
transform="matrix(4.005551,0,0,4.005551,78.44294,71.31516)">
<path
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:round;fill-opacity:1;"
d="M 76.437500 16.500000 C 76.437498 16.500000 69.300080 21.920720 70.093750 31.312500 C 70.887434 40.704289 72.491460 38.600530 70.375000 44.156250 C 65.480680 38.600612 60.437500 38.187500 60.437500 38.187500 C 60.437501 38.187502 63.209340 42.287100 62.812500 49.562500 C 62.415661 56.837893 59.781250 61.875000 59.781250 61.875000 L 56.875000 62.281250 C 56.875000 62.281251 54.900730 56.968750 51.593750 56.968750 C 53.710221 69.799872 45.882280 80.257300 45.750000 80.125000 C 45.617722 79.992704 42.053970 79.458070 39.937500 76.812500 C 39.276110 78.928895 39.544050 81.570190 42.718750 85.406250 C 41.660521 88.316327 39.397600 103.155260 46.937500 114.531250 C 47.458273 115.262983 48.149456 115.846240 48.843750 116.437500 C 48.312833 114.297503 47.937500 112.084690 47.937500 109.781250 C 47.937500 94.498330 60.342067 82.093750 75.625000 82.093750 C 90.907931 82.093747 103.312500 94.498327 103.312500 109.781250 C 103.312499 111.488763 103.108870 113.158920 102.812500 114.781250 C 103.286579 114.619303 105.021670 114.153740 105.031250 114.125000 C 105.163549 113.860513 108.851050 109.633990 108.718750 106.062500 C 108.586549 102.490908 108.842900 80.649800 110.562500 79.062500 C 112.282199 77.475198 107.651950 80.240550 106.593750 79.843750 C 105.535449 79.446942 108.057850 53.399870 103.031250 51.812500 C 103.163549 58.294202 99.875000 63.718750 99.875000 63.718750 C 99.874999 63.718752 98.289418 51.296360 96.437500 45.343750 C 94.585597 39.391141 89.812500 36.750000 89.812500 36.750000 C 89.812502 36.750002 90.875880 42.685750 89.156250 46.125000 C 87.436622 49.564261 87.964480 40.827920 86.906250 38.843750 C 85.848008 36.859572 79.363450 28.814260 78.437500 25.375000 C 77.511554 21.935751 76.437500 16.500000 76.437500 16.500000 z M 77.781250 57.218750 C 77.781248 57.218749 78.801040 64.167358 79.406250 65.781250 C 80.011456 67.395138 82.831077 73.255204 82.125000 76.281250 C 81.418926 79.307296 76.579864 81.611464 74.562500 77.375000 C 72.545135 73.138536 72.233499 61.455214 77.781250 57.218750 z M 65.375000 67.406250 C 66.484551 67.607982 70.191841 70.115268 69.687500 77.781250 C 68.577950 82.723792 64.052605 81.613027 63.750000 76.468750 C 63.447399 74.249651 65.072396 71.743582 65.375000 67.406250 z M 90.187500 75.156250 C 92.608338 82.418760 90.000000 81.812499 90.000000 81.812500 C 86.267878 81.812500 87.968399 77.577088 90.187500 75.156250 z M 55.468750 78.687500 C 56.467294 79.472070 57.451208 83.361399 55.687500 83.218750 C 53.424520 83.076099 54.428425 79.103210 55.468750 78.687500 z M 98.250000 79.593750 C 100.458966 81.972808 99.718225 86.941545 98.156250 86.656250 C 95.484734 86.875293 96.569854 80.838781 98.250000 79.593750 z M 47.406250 91.687500 C 48.048170 92.543398 50.808083 97.621930 47.718750 97.437500 C 45.342663 97.395720 46.906978 92.430289 47.406250 91.687500 z M 104.593750 91.937500 C 105.734939 92.008828 106.652650 95.831856 104.906250 95.718750 C 103.302496 95.748295 103.850970 92.281886 104.593750 91.937500 z "
id="path649" />
<circle cx="77.82140" cy="111.3967" r="27.31232" transform="matrix(1.013699,0.000000,0.000000,1.013699,-2.446365,-2.904882)"
style="fill-rule:evenodd;stroke:#000000;fill:none;fill-opacity:1;stroke-opacity:1;stroke-width:3.2061;stroke-linejoin:miter;stroke-linecap:butt;stroke-dasharray:none;" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1 @@
<svg id="b96c2bed-161d-4a6a-88f8-007e67c638f7" data-name="Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 283.46 283.46"><defs><style>.bbbce7e6-9f7c-4bc7-b65d-f87c42553021{fill:url(#b5078497-905e-430d-8c08-43e741159356);}.b35d0c34-aac5-4d6b-a247-c101a4f12738{fill:none;stroke:#fff;stroke-miterlimit:10;stroke-width:5px;}</style><linearGradient id="b5078497-905e-430d-8c08-43e741159356" x1="75.44" y1="26.92" x2="208.02" y2="256.55" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#dab1d3"/><stop offset="0.01" stop-color="#d84793"/><stop offset="0.51" stop-color="#d6d900"/><stop offset="0.76" stop-color="#1eb7c8"/><stop offset="1" stop-color="#3c55a2"/></linearGradient></defs><circle class="bbbce7e6-9f7c-4bc7-b65d-f87c42553021" cx="141.73" cy="141.73" r="132.55"/><path id="ad49426f-1fb1-4b02-9f9e-efa82492899f" data-name="Logo Pfad" class="b35d0c34-aac5-4d6b-a247-c101a4f12738" d="M233.41,185.29l-4.62,25.54M40.41,186.13l15.2,15.06M157.05,55.31,55.65,200.75a.11.11,0,0,0,.08.16l172.9,9.91a.1.1,0,0,0,.09-.14L157.23,55.32A.1.1,0,0,0,157.05,55.31ZM136.16,41.24,40,185.93a.13.13,0,0,0,.11.2l192.76-.84a.13.13,0,0,0,.1-.2L136.38,41.24A.13.13,0,0,0,136.16,41.24Zm.12-.16,20.87,14.08"/></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,19 @@
{
"name": "",
"short_name": "",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

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

View File

@ -0,0 +1,117 @@
---
# Additionnal page configuration
# Additionnal configurations are loaded using its file name, minus the extension, as an anchor (https://<mydashboad>#<config>).
# `config.yml` is still used as a base configuration, and all values here will overwrite it, so you don't have to re-defined everything
subtitle: "Management"
# This overwrites message config. Setting it to empty to remove message from this page and keep it only in the main one:
# message: ~
# as we want to include a differente link here (so we can get back to home page), we need to replicate all links or they will be revome when overwriting the links field:
links:
- name: "Homepage"
icon: "fas fa-heartbeat"
url: "http://docker10.grote.lan:333"
- name: "Management"
icon: "fas fa-code-branch"
url: "#mgmt"
services:
- name: "Hardware"
icon: "fas fa-cloud"
items:
- name: "Brother ADS-2700W"
logo: "assets/icons/brother.jpg"
url: "http://192.168.2.48"
target: "_blank"
- name: "Fritzbox 7590"
logo: "assets/icons/fritzbox.svg"
url: "http://192.168.5.1"
target: "_blank"
subtitle: "Modem"
- name: "Infra"
icon: "fas fa-cloud"
items:
- name: "gitea"
logo: "assets/icons/gitea.png"
url: "https://git.mgrote.net"
target: "_blank"
subtitle: "git"
- name: "Traefik"
logo: "assets/icons/traefik.png"
url: "http://docker10.grote.lan:8081"
target: "_blank"
subtitle: "Reverse Proxy"
- name: "Unifi Network Application"
logo: "assets/icons/ubiquiti.png"
url: "https://docker10.grote.lan:8443"
target: "_blank"
subtitle: "WLAN"
- name: "drone.io"
logo: "assets/icons/drone.png"
url: "http://docker10.grote.lan:81"
target: "_blank"
subtitle: "CI/CD"
- name: "httpd"
logo: "assets/icons/roundcube.png"
url: "http://docker10.grote.lan:3344"
target: "_blank"
subtitle: "Package-Registry"
- name: "Container Registry"
logo: "assets/icons/hastebin.png"
url: "https://registry.mgrote.net/ui/index.html"
target: "_blank"
subtitle: "Container-Registry"
- name: "Infra"
icon: "fas fa-cloud"
items:
- name: "ProxMox Virtual Environment - Production"
logo: "assets/icons/pve.png"
url: "https://pve5.grote.lan:8006"
target: "_blank"
subtitle: "Selbstbau"
- name: "ProxMox Virtual Environment - Test"
logo: "assets/icons/pve.png"
url: "https://pve5-test.grote.lan:8006"
target: "_blank"
subtitle: "Test - VM"
- name: "Internet-MGMT"
icon: "fas fa-cloud"
items:
- name: "Strato - DNS"
logo: "assets/icons/strato.jpg"
url: "https://www.strato.de/apps/CustomerService#/skl"
target: "_blank"
subtitle: "Domainverwaltung"
- name: "Extern - Südring"
icon: "fas fa-cloud"
items:
- name: "QNAP TS-251+"
logo: "assets/icons/qnap.png"
url: "http://192.168.3.108:8080"
target: "_blank"
- name: "Speedport Smart 3"
logo: "assets/icons/speedport.png"
url: "http://192.168.3.1"
target: "_blank"
- name: "Netgear GS308E"
logo: "assets/icons/switch.png"
url: "http://192.168.3.147"
target: "_blank"
- name: "Proxmox Backup Server"
logo: "assets/icons/pve.png"
url: "https://pbs.grote.lan:8007"
target: "_blank"
subtitle: "M93 Tiny"
- name: "Proxmox Backup Server - Test"
logo: "assets/icons/pve.png"
url: "https://pbs-test.grote.lan:8007"
target: "_blank"
subtitle: "Test"

View File

@ -0,0 +1,25 @@
version: '3'
services:
######## homer ########
homer:
image: b4bz/homer:latest
container_name: homer-dashboard
restart: always
environment:
TZ: Europe/Berlin
UID: 1000
GID: 1000
INIT_ASSETS: 0
volumes:
- ./assets/:/www/assets
ports:
- 333:8080
networks:
- traefik
labels:
com.centurylinklabs.watchtower.enable: true
######## Networks ########
networks:
traefik:
external: true

View File

@ -2,22 +2,19 @@ version: '3'
services:
httpd-registry:
container_name: "httpd-registry"
image: "registry.mgrote.net/httpd:latest"
image: httpd:bullseye
restart: always
volumes:
- uploads:/usr/local/apache2/htdocs/
- "{{ compose_dest_basedir }}/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf:ro"
ports:
- 3344:80
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
labels:
com.centurylinklabs.watchtower.enable: true
python-api-server:
container_name: httpd-api
image: "registry.mgrote.net/python-api-server:latest"
image: registry.mgrote.net/python-api-server:latest
restart: always
ports:
- "5040:5000"
@ -28,8 +25,10 @@ services:
# FLASK_APP: app # for debugging
MAX_CONTENT_LENGTH: 500
UPLOAD_DIRECTORY: /uploads
AUTH_TOKEN: "{{ lookup('keepass', 'httpd-api-server-token', 'password') }}"
AUTH_TOKEN: {{ lookup('keepass', 'httpd-api-server-token', 'password') }}
ENABLE_WEBSERVER: false
labels:
com.centurylinklabs.watchtower.enable: true
volumes:
uploads:

View File

@ -1,33 +1,25 @@
version: '3.3'
services:
postfix:
image: "registry.mgrote.net/postfix:latest"
container_name: mail-relay
restart: always
ports:
- 1025:25
environment:
SMTP_SERVER: smtp.strato.de
SMTP_USERNAME: info@mgrote.net
SMTP_PASSWORD: "{{ lookup('keepass', 'strato_smtp_password', 'password') }}"
SERVER_HOSTNAME: mgrote.net
# DEBUG: "yes" # as string not boolean
ALWAYS_ADD_MISSING_HEADERS: "no" # as string not boolean
# LOG_SUBJECT: "yes" # as string not boolean
INET_PROTOCOL: ipv4
SMTP_GENERIC_MAP: |
/nobody@lldap/ lldap@mgrote.net
/mg@pbs.localdomain/ pbs@mgrote.net
/root@pbs.localdomain/ pbs@mgrote.net
# rewrite FROM "nobody@lldap" to "lldap@mgrote.net"
# /.*/ würde alle absender adressen ersetzen
networks:
- mail-relay
healthcheck:
test: ["CMD", "sh", "-c", "echo 'EHLO localhost' | nc -w 1 127.0.0.1 25 | grep -q '220 '"]
interval: 30s
timeout: 10s
retries: 3
postfix:
image: registry.mgrote.net/postfix:master
container_name: mail-relay
restart: always
labels:
com.centurylinklabs.watchtower.enable: true
ports:
- 1025:25
environment:
SMTP_SERVER: smtp.strato.de
SMTP_USERNAME: info@mgrote.net
SMTP_PASSWORD: {{ lookup('keepass', 'strato_smtp_password', 'password') }}
SERVER_HOSTNAME: mgrote.net
# DEBUG: "yes" # literal
ALWAYS_ADD_MISSING_HEADERS: "no" # literal
# LOG_SUBJECT: "yes" # literal
INET_PROTOCOL: ipv4
SMTP_GENERIC_MAP: "/.*/ info@mgrote.net"
networks:
- mail-relay
######## Networks ########
networks:

View File

@ -3,16 +3,16 @@ services:
######## Miniflux ########
miniflux:
container_name: "mf-frontend"
image: "ghcr.io/miniflux/miniflux:2.1.3"
image: miniflux/miniflux:latest
restart: always
depends_on:
- mf-db16
- db
environment:
DATABASE_URL: "postgres://miniflux:{{ lookup('keepass', 'miniflux_postgres_password', 'password') }}@mf-db16/miniflux?sslmode=disable"
DATABASE_URL: postgres://miniflux:{{ lookup('keepass', 'miniflux_postgres_password', 'password') }}@mf-db/miniflux?sslmode=disable
RUN_MIGRATIONS: 1
# CREATE_ADMIN: 1
# ADMIN_USERNAME: adminmf
# ADMIN_PASSWORD: "{{ lookup('keepass', 'miniflux_admin_password', 'password') }}"
# ADMIN_PASSWORD: {{ lookup('keepass', 'miniflux_admin_password', 'password') }}
WORKER_POOL_SIZE: 10
POLLING_FREQUENCY: 10
CLEANUP_ARCHIVE_UNREAD_DAYS: -1
@ -21,8 +21,6 @@ services:
networks:
- intern
- traefik
healthcheck:
test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]
labels:
traefik.http.routers.miniflux.rule: Host(`miniflux.mgrote.net`)
traefik.enable: true
@ -31,24 +29,26 @@ services:
traefik.http.routers.miniflux.entrypoints: entry_https
traefik.http.services.miniflux.loadbalancer.server.port: 8080
######## Postgres ########
mf-db16:
container_name: "mf-db16"
image: "postgres:16.3"
com.centurylinklabs.watchtower.enable: true
com.centurylinklabs.watchtower.depends-on: mf-db
######## PostGreSQL ########
db:
container_name: "mf-db"
image: postgres:13
restart: always
environment:
POSTGRES_USER: miniflux
POSTGRES_PASSWORD: "{{ lookup('keepass', 'miniflux_postgres_password', 'password') }}"
POSTGRES_PASSWORD: {{ lookup('keepass', 'miniflux_postgres_password', 'password') }}
TZ: Europe/Berlin
POSTGRES_HOST_AUTH_METHOD: "md5" # Workaround beim Migration von 13 -> 16; https://eelkevdbos.medium.com/upgrade-postgresql-with-docker-compose-99d995e464 ;
volumes:
- db16:/var/lib/postgresql/data
- db:/var/lib/postgresql/data
networks:
- intern
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
labels:
com.centurylinklabs.watchtower.enable: false
com.centurylinklabs.watchtower.monitor-only: true
######## Miniflux-Filter ########
mf-filter:
@ -58,19 +58,57 @@ services:
restart: always
environment:
TZ: Europe/Berlin
MF_AUTH_TOKEN: "{{ lookup('keepass', 'miniflux_auth_token', 'password') }}"
MF_AUTH_TOKEN: {{ lookup('keepass', 'miniflux_auth_token', 'password') }}
MF_API_URL: https://miniflux.mgrote.net/v1
MF_SLEEP: 600
#MF_DEBUG: 1
image: "registry.mgrote.net/miniflux-filter:latest"
image: registry.mgrote.net/miniflux-filter:latest
volumes:
- ./filter.txt:/data/filter.txt
networks:
- intern
labels:
com.centurylinklabs.watchtower.enable: true
com.centurylinklabs.watchtower.depends-on: mf-frontend
######## RSS-Bridge ########
rssbridge:
container_name: "mf-bridge"
image: rssbridge/rss-bridge:latest
restart: always
environment:
TZ: Europe/Berlin
volumes:
- ./whitelist.txt:/app/whitelist.txt
networks:
- intern
ports: #um neue Feeds einzufügen
- 3001:80
labels:
com.centurylinklabs.watchtower.enable: true
######## changedetection ########
changedetection.io:
image: ghcr.io/dgtlmoon/changedetection.io
container_name: mf-changedetection.io
hostname: changedetection.io
volumes:
- changedetection-data:/datastore
environment:
PORT: 5000
BASE_URL: http://docker10.grote.lan:5000
ports:
- 5000:5000
restart: always
networks:
- intern
labels:
com.centurylinklabs.watchtower.enable: true
######## Volumes ########
volumes:
db16:
db:
changedetection-data:
######## Networks ########
networks:
traefik:

View File

@ -1,18 +1,16 @@
9to5linux.com::9to5Linux Weekly Roundup:
apnic.net::Podcast
apnic.net::Event Wrap
astralcodexten.substack.com::Open Thread
astralcodexten.substack.com::Book Review Contest
augengeradeaus.net::Sicherheitshalber der Podcast
axios.com::Axios on HBO
axios.com::football
axios.com::PGA
axios.com::football
computerbase.de::Adrenalin 2020 Edition
computerbase.de::Adrenalin 2021 Edition
computerbase.de::CB-Funk
computerbase.de::CB-Funk-Podcast
computerbase.de::Community: Fotowettbewerb
computerbase.de::Community-Umfrage
computerbase.de::Community: Fotowettbewerb
computerbase.de::Elon Musk
computerbase.de::Fotowettbewerb:
computerbase.de::Fussball
@ -20,98 +18,94 @@ computerbase.de::Fußball
computerbase.de::Screenshot-Wettbewerb
computerbase.de::Sonntagsfrage:
computerbase.de::Twitter
computerbase.de::wettbewerb
computerbase.de::WM
computerbase.de::Wochenrück- und Ausblick:
computerbase.de::Xbox Game Pass
computerbase.de::GeForce
computerbase.de::wettbewerb
facebook.com::Bridge returned error
golem.de::(g+)
golem.de::Anzeige
golem.de::Aus dem Verlag:
golem.de::Elon Musk
golem.de::Fifa
golem.de::Fussball
golem.de::Fußball
golem.de::(g+)
golem.de::Golem Karrierewelt
www.thedrive.com::Bunker Talk:
golem.de::in aller Kürze
golem.de::In eigener Sache
golem.de::kurznews
golem.de::Marvel
golem.de::Podcast
golem.de::PODCAST BESSER WISSEN:
golem.de::Podcast
golem.de::Sonst noch was?
golem.de::Star Trek:
golem.de::Tech Talks:
golem.de::Twitter
golem.de::Wochenrückblick
golem.de::in aller Kürze
golem.de::kurznews
hardwareluxx.de::Der Hardwareluxx-Webwatch:
hardwareluxx.de::Die Artikel unserer Partner
hardwareluxx.de::Shopping Club
hardwareluxx.de::KW
hardwareluxx.de::Unsere Artikel der letzten Woche
heise.de::#TGIQF
heise.de::#heiseshow
heise.de::Anzeige
heise.de::Auslegungssache
heise.de::Bit-Rauschen
heise.de::Bit-Rauschen, der Prozessor-Podcast
heise.de::c't <webdev>
heise.de::ct-Webinar:
heise.de::Desinfec
heise.de::Die Bilder der Woche
heise.de::Die Bilder der Woche (KW
heise.de::Die Highlights bei
heise.de::Die Produktwerker
heise.de::Dienstag
heise.de::Dienstag:
heise.de::Die Produktwerker
heise.de::Elon Musk
heise.de::Ferris Talk
heise.de::FIFA
heise.de::Ferris Talk
heise.de::Freitag
heise.de::Fußball-WM
heise.de::heise+
heise.de::heise-Angebot:
heise.de::heise Jobs IT Tag
heise.de::Heise-Konferenz
heise.de::heise meets
heise.de::heise meets…
heise.de::#heiseshow
heise.de::heiseshow
heise.de::Heise spielt
heise.de::iX-Workshop
heise.de::Heise-Konferenz
heise.de::Kurz informiert:
heise.de::Mac & i Extra:
heise.de::Missing Link
heise.de::Mittwoch
heise.de::Montag
heise.de::Die Bilder der Woche
heise.de::Podcast
heise.de::Podcast "Die Hupe"
heise.de::Podcast "Die Produktwerker"
heise.de::samstag
heise.de::SoftwareArchitekTOUR
heise.de::Sonderheft
heise.de::sonntag
heise.de::t 3003
heise.de::TGIQF
heise.de::Tech2go-Podcast:
heise.de::TechStage
heise.de::TechStage |
heise.de::Twitter
heise.de::WM 2022
heise.de::Was war. Was wird.
heise.de::Zugriff auf alle Inhalte von heise+
heise.de::c't <webdev>
heise.de::ct-Webinar:
heise.de::heise Jobs IT Tag
heise.de::heise meets
heise.de::heise meets…
heise.de::heise+
heise.de::heise-Angebot:
heise.de::heiseshow
heise.de::iX-Workshop
heise.de::samstag
heise.de::sonntag
heise.de::t 3003
heise.de::t Fotografie
heise.de::t Fotografie-Wettbewerb
heise.de::#TGIQF
heise.de::TGIQF
heise.de::t uplink
heise.de::Twitter
heise.de::t zockt
heise.de::uplink
heise.de::Was war. Was wird.
heise.de::WM 2022
heise.de::zockt
heise.de::Zugriff auf alle Inhalte von heise+
instagram.com::Bridge returned error
ipspace.net::Built.fm
ipspace.net::Podcast
mdr.de::Schwimm-WM
mdr.de::DSV
mdr.de::#MDRklärt:
mdr.de::Basketball
mdr.de::Volleyball
mdr.de::DFB
mdr.de::DFB-Pokal
mdr.de::Fussball
@ -121,15 +115,15 @@ mdr.de::Leichtathletik:
mdr.de::Link des Audios
mdr.de::Link des Videos
mdr.de::Livestream
mdr.de::#MDRklärt:
mdr.de::Para-WM
mdr.de::Pferdesport:
mdr.de::Podcast:
mdr.de::Podcast "digital Leben"
mdr.de::Podcast "digital Leben":
mdr.de::Podcast:
mdr.de::Podcastserie
mdr.de::Schwimmen:
falseknees.tumblr.com::Kneesvember
mf-bridge::Bridge encountered an unexpected situation
mf-bridge::Bridge returned error 401
monkeyuser.com::AdLitteram
netzpolitik.org::KW
netzpolitik.org::NPP
@ -148,11 +142,10 @@ planet3dnow.de::KiTTY
planet3dnow.de::LibreOffice 7
planet3dnow.de::MC Extractor
planet3dnow.de::Media Player Classic
planet3dnow.de::NVCleanstall v
planet3dnow.de::Neue Downloads der KW
planet3dnow.de::Notepad++
planet3dnow.de::NVCleanstall v
planet3dnow.de::Nvidia GeForce-Treiber
planet3dnow.de::paint.net
planet3dnow.de::PowerToys v
planet3dnow.de::Prime95
planet3dnow.de::Process Lasso
@ -168,16 +161,355 @@ planet3dnow.de::Universal Media Server
planet3dnow.de::WinRAR
planet3dnow.de::WinSCP
planet3dnow.de::ZenTimings
planet3dnow.de::paint.net
portuguesegeese.com::portuguesegeese.com
reddit.com::UEFA
stackoverflow.blog::Podcast
stackoverflow.blog::The Overflow
stadt-bremerhaven.de::(Werbung)
stadt-bremerhaven.de::Basketball-WM
stadt-bremerhaven.de::Bundesliga
stadt-bremerhaven.de::Cloud-Gaming-Rückblick
stadt-bremerhaven.de::DAZN
stadt-bremerhaven.de::Disney+
stadt-bremerhaven.de::Eishockey
stadt-bremerhaven.de::Elon Musk
stadt-bremerhaven.de::FIFA
stadt-bremerhaven.de::FUSSBALL
stadt-bremerhaven.de::Formel 1
stadt-bremerhaven.de::Immer wieder sonntags KW
stadt-bremerhaven.de::MagentaSport
stadt-bremerhaven.de::Podcast
stadt-bremerhaven.de::Rückblick
stadt-bremerhaven.de::Sky Ticket
stadt-bremerhaven.de::Twitter
stadt-bremerhaven.de::WM 2022
stadt-bremerhaven.de::eFootball
sueddeutsche.de::Ajax
sueddeutsche.de::DFB-
sueddeutsche.de::St. Pauli
sueddeutsche.de::Hoeneß:
sueddeutsche.de::2. Liga:
sueddeutsche.de::Schalke
sueddeutsche.de::CB-Funk-Podcast
sueddeutsche.de::Kinderfußball
sueddeutsche.de::Podcast "Lanz & Precht"
sueddeutsche.de::NBA:
sueddeutsche.de::"Ich bin ein Star"
sueddeutsche.de::"Tatort"
sueddeutsche.de::-Spiel
sueddeutsche.de::1. FC Kaiserslautern:
sueddeutsche.de::1. FC Köln
sueddeutsche.de::1. FC Nürnberg
sueddeutsche.de::1. FC Union
sueddeutsche.de::1860 München
sueddeutsche.de::1:1
sueddeutsche.de::2. Liga
sueddeutsche.de::3. Liga
sueddeutsche.de::ATP Finals
sueddeutsche.de::ATP-
sueddeutsche.de::Achtelfinale
sueddeutsche.de::Afrika-Cup:
sueddeutsche.de::Alonso:
sueddeutsche.de::Alphonso Davies
sueddeutsche.de::American Football:
sueddeutsche.de::Amos Pieper
sueddeutsche.de::Arminia Bielefeld:
sueddeutsche.de::Athlet
sueddeutsche.de::Australian Open
sueddeutsche.de::Australian Open:
sueddeutsche.de::Auswärtstor
sueddeutsche.de::BVB
sueddeutsche.de::Barça
sueddeutsche.de::Baseball
sueddeutsche.de::Basketball
sueddeutsche.de::Basketball-WM
sueddeutsche.de::Bayern
sueddeutsche.de::Belenenses
sueddeutsche.de::Berlinale
sueddeutsche.de::Biathlon
sueddeutsche.de::Boateng
sueddeutsche.de::Bobfahr
sueddeutsche.de::Borussia
sueddeutsche.de::Borussia Dortmund
sueddeutsche.de::Borussia Dortmund:
sueddeutsche.de::Bundesliga
sueddeutsche.de::Bundestrainer
sueddeutsche.de::Carlos Alcaraz
sueddeutsche.de::Champions League:
sueddeutsche.de::Champions-League
sueddeutsche.de::Chelsea
sueddeutsche.de::Claudio Pizarro
sueddeutsche.de::Claudio Pizarro:
sueddeutsche.de::Conference League
sueddeutsche.de::Conference-League
sueddeutsche.de::DFB
sueddeutsche.de::DFB-Elf
sueddeutsche.de::DFB-Frauen:
sueddeutsche.de::DFB-Pokal
sueddeutsche.de::DFB:
sueddeutsche.de::DFL
sueddeutsche.de::DFL-Supercup
sueddeutsche.de::Daniil Medwedew
sueddeutsche.de::Darts
sueddeutsche.de::Darts-WM:
sueddeutsche.de::Davis Cup
sueddeutsche.de::Derby
sueddeutsche.de::Deutsche Fußball Liga
sueddeutsche.de::Deutsche Nationalmannschaft
sueddeutsche.de::Deutsche U21:
sueddeutsche.de::Djokovic
sueddeutsche.de::Dressur-Weltmeister
sueddeutsche.de::Dritte Liga:
sueddeutsche.de::Drittliga
sueddeutsche.de::Dschungelcamp
sueddeutsche.de::EM-Aus
sueddeutsche.de::EM:
sueddeutsche.de::ESC-Finale
sueddeutsche.de::ESC-Vorentscheid
sueddeutsche.de::Eintracht
sueddeutsche.de::Eintracht Frankfurt
sueddeutsche.de::Eisbären Berlin
sueddeutsche.de::Eishockey
sueddeutsche.de::Eishockey-WM:
sueddeutsche.de::Eishockey:
sueddeutsche.de::Eiskunstl
sueddeutsche.de::Eisschnelllauf
sueddeutsche.de::Elfmeter
sueddeutsche.de::Emil Forsberg
sueddeutsche.de::Englisches Nationalteam:
sueddeutsche.de::Eröffnungsspiel
sueddeutsche.de::Euroleague
sueddeutsche.de::Europa League
sueddeutsche.de::Europa-League
sueddeutsche.de::Europameister
sueddeutsche.de::Europapokal
sueddeutsche.de::European Championships
sueddeutsche.de::Eurovision Song Contest
sueddeutsche.de::Eurovision Song Contest:
sueddeutsche.de::FC Augsburg
sueddeutsche.de::FC Barcelona
sueddeutsche.de::FC Chelsea:
sueddeutsche.de::FC Sevilla
sueddeutsche.de::Fifa
sueddeutsche.de::Fifa:
sueddeutsche.de::Formel 1
sueddeutsche.de::Frankfurt
sueddeutsche.de::French Open
sueddeutsche.de::Fussball
sueddeutsche.de::Fußball in England:
sueddeutsche.de::Fußball-EM
sueddeutsche.de::Fußball-Verband
sueddeutsche.de::Fußball-WM
sueddeutsche.de::Fußball-Weltmeister
sueddeutsche.de::Fußball-Weltmeister
sueddeutsche.de::Fußball-Weltmeisterschaft
sueddeutsche.de::Fußball:
sueddeutsche.de::Fußballerinnen
sueddeutsche.de::Fußballern
sueddeutsche.de::Fußballtorwart
sueddeutsche.de::Fußballverband
sueddeutsche.de::Galopp
sueddeutsche.de::Gerard López
sueddeutsche.de::Gladbach
sueddeutsche.de::Glasgow Rangers
sueddeutsche.de::Golf:
sueddeutsche.de::Guardiola
sueddeutsche.de::HSV-Verteidiger
sueddeutsche.de::Hamburger SV
sueddeutsche.de::Handball-EM:
sueddeutsche.de::Handball-WM
sueddeutsche.de::Hannover 96:
sueddeutsche.de::Heldenfußball
sueddeutsche.de::Hertha BSC
sueddeutsche.de::Hertha BSC:
sueddeutsche.de::Hinspiel
sueddeutsche.de::Hochspring
sueddeutsche.de::Hockey
sueddeutsche.de::Hockey-EM
sueddeutsche.de::Hockey-WM
sueddeutsche.de::Ibrahimović
sueddeutsche.de::Infantino
sueddeutsche.de::Inter Mailand
sueddeutsche.de::Joachim Löw
sueddeutsche.de::Jugendwort des Jahres
sueddeutsche.de::Julian Nagelsmann
sueddeutsche.de::Juve
sueddeutsche.de::Kevin Trapp
sueddeutsche.de::Klopp
sueddeutsche.de::Klosterhalfen
sueddeutsche.de::Kolumne
sueddeutsche.de::Kroos
sueddeutsche.de::LIV Tour
sueddeutsche.de::La Boum:
sueddeutsche.de::La Liga
sueddeutsche.de::Lazio Rom
sueddeutsche.de::Leichtathletik
sueddeutsche.de::Leichtathletik
sueddeutsche.de::Leichtathletik-WM
sueddeutsche.de::Leichtathletik-WM:
sueddeutsche.de::Leichtathletik-Weltmeisterschaft
sueddeutsche.de::Leichtathletik:
sueddeutsche.de::Leon Draisaitl
sueddeutsche.de::Leverkusen
sueddeutsche.de::Lewandowski
sueddeutsche.de::Lewis Hamilton
sueddeutsche.de::Linda Dallmann
sueddeutsche.de::Los Angeles Lakers
sueddeutsche.de::Länderspiel
sueddeutsche.de::ManCity
sueddeutsche.de::ManUnited
sueddeutsche.de::Manchester City
sueddeutsche.de::Manchester United
sueddeutsche.de::Mancini
sueddeutsche.de::Markus Weinzierl
sueddeutsche.de::Mbappé
sueddeutsche.de::Messi
sueddeutsche.de::Miroslav Klose
sueddeutsche.de::Monza
sueddeutsche.de::Mourinho
sueddeutsche.de::Musiala
sueddeutsche.de::NBA
sueddeutsche.de::NFL
sueddeutsche.de::Nadal
sueddeutsche.de::Nationalmannschaft
sueddeutsche.de::Nationalspieler
sueddeutsche.de::Nationalteam
sueddeutsche.de::Nations League
sueddeutsche.de::Netzkolumne
sueddeutsche.de::Neujahrsspringen
sueddeutsche.de::Neymar
sueddeutsche.de::Niklas Süle:
sueddeutsche.de::Nordische Ski-WM
sueddeutsche.de::OSC Lille
sueddeutsche.de::Olympia
sueddeutsche.de::Olympia 2022:
sueddeutsche.de::Olympia-Ticker:
sueddeutsche.de::Olympia:
sueddeutsche.de::Olympische Spiele:
sueddeutsche.de::Olympische Winterspiele:
sueddeutsche.de::Olympischen Spielen:
sueddeutsche.de::PSV Eindhoven
sueddeutsche.de::Paralympics:
sueddeutsche.de::Paris Saint-Germain
sueddeutsche.de::Pep Guardiola
sueddeutsche.de::Pferdesport
sueddeutsche.de::Playoffs
sueddeutsche.de::Podcast-Tipps
sueddeutsche.de::Podcasts-Tipps im
sueddeutsche.de::Pokal-Sieg
sueddeutsche.de::Pokalspiel
sueddeutsche.de::Polizeiruf 110
sueddeutsche.de::Prantls Blick:
sueddeutsche.de::Premier
sueddeutsche.de::Qualifikationsspiel
sueddeutsche.de::RB Leipzig
sueddeutsche.de::RB Leipzig:
sueddeutsche.de::Raducanu
sueddeutsche.de::Rangnick
sueddeutsche.de::Real Madrid
sueddeutsche.de::Reit-WM
sueddeutsche.de::Reiten
sueddeutsche.de::Relegation
sueddeutsche.de::Rennrodl
sueddeutsche.de::Robin Gosens
sueddeutsche.de::Rodel-
sueddeutsche.de::Rodeln:
sueddeutsche.de::Ronaldo
sueddeutsche.de::Rudern
sueddeutsche.de::SC Freiburg
sueddeutsche.de::ST. Pauli
sueddeutsche.de::SZ-Audioreihe
sueddeutsche.de::SZ-Kolumne "Bester Dinge":
sueddeutsche.de::SZ-Kolumne "Mitten in ...":
sueddeutsche.de::SZ-Plus-Abonnenten lesen auch
sueddeutsche.de::SZ-Podcast
sueddeutsche.de::SZ-Podcast "Und nun zum Sport":
sueddeutsche.de::Schach-WM
sueddeutsche.de::Schalke
sueddeutsche.de::Schiedsrichter
sueddeutsche.de::Schwimm-WM
sueddeutsche.de::Schwimmen:
sueddeutsche.de::Serien des Monats
sueddeutsche.de::Ski alpin
sueddeutsche.de::Ski alpin:
sueddeutsche.de::Ski-WM
sueddeutsche.de::Ski-Weltcup
sueddeutsche.de::Ski-Weltverband
sueddeutsche.de::Ski-nordisch-WM:
sueddeutsche.de::Skilanglauf
sueddeutsche.de::Skirenn
sueddeutsche.de::Skispringen
sueddeutsche.de::Slalomfahr
sueddeutsche.de::Stanley Cup
sueddeutsche.de::Stimmen zum Spiel
sueddeutsche.de::Stürmer
sueddeutsche.de::Super Bowl
sueddeutsche.de::Super Bowl Sunday:
sueddeutsche.de::Super League
sueddeutsche.de::Supercup
sueddeutsche.de::Supercup live
sueddeutsche.de::TSG Hoffenheim
sueddeutsche.de::Tabellenspitze
sueddeutsche.de::Tatort München:
sueddeutsche.de::Tatort aus
sueddeutsche.de::Team-WM
sueddeutsche.de::Teamspringen
sueddeutsche.de::Tennis
sueddeutsche.de::Tennis:
sueddeutsche.de::Thomas Müller
sueddeutsche.de::Three Lions:
sueddeutsche.de::Timo Boll
sueddeutsche.de::Tischtennis WM:
sueddeutsche.de::Toni Kroos
sueddeutsche.de::Tore
sueddeutsche.de::Torhüter
sueddeutsche.de::Tottenham
sueddeutsche.de::Transfermarkt
sueddeutsche.de::Trikots
sueddeutsche.de::Tuchel
sueddeutsche.de::Turn-WM
sueddeutsche.de::Türkgücü München
sueddeutsche.de::U21-Europameisterschaft
sueddeutsche.de::US Open
sueddeutsche.de::Ukrainisches Tagebuch
sueddeutsche.de::Uli Hoeneß
sueddeutsche.de::Union Berlin
sueddeutsche.de::Urs Fischer
sueddeutsche.de::VfB
sueddeutsche.de::VfB Stuttgart
sueddeutsche.de::VfL
sueddeutsche.de::VfL Wolfsburg
sueddeutsche.de::Vierschanzentournee
sueddeutsche.de::Viertelfinal
sueddeutsche.de::Viertelfinale
sueddeutsche.de::Volleyball-WM:
sueddeutsche.de::Vuskovic
sueddeutsche.de::WM-
sueddeutsche.de::WM-Kader
sueddeutsche.de::WM-Qualifikation
sueddeutsche.de::WM-Silber
sueddeutsche.de::WM-Ticket
sueddeutsche.de::WM-Titel
sueddeutsche.de::WM:
sueddeutsche.de::Weitspr
sueddeutsche.de::Werder
sueddeutsche.de::Wiegman
sueddeutsche.de::Wimbledon
sueddeutsche.de::Wintersport:
sueddeutsche.de::Zlatan
sueddeutsche.de::leute:
sueddeutsche.de::quoted.
sueddeutsche.de::torwart
sueddeutsche.de::zweite Liga
sueddeutsche.de::zweiten Liga
sueddeutsche.de::ückenkemper
tagesschau.de::11KM
tagesschau.de::11KM-Podcast
tagesschau.de::Achtelfinale
tagesschau.de::Alpine-Super-Kombination:
tagesschau.de::American Football:
tagesschau.de::Auslandspodcast
tagesschau.de::BVB
tagesschau.de::Bahnrad
tagesschau.de::Basketball
tagesschau.de::Bayern München
@ -186,19 +518,18 @@ tagesschau.de::Boateng
tagesschau.de::Bremer SV
tagesschau.de::Bundesliga
tagesschau.de::Bundesliga:
tagesschau.de::BVB
tagesschau.de::Carlsen
tagesschau.de::Champions League
tagesschau.de::Darts-
tagesschau.de::Darts-WM:
tagesschau.de::DFB
tagesschau.de::DFB-Bundesgericht
tagesschau.de::Darts-
tagesschau.de::Darts-WM:
tagesschau.de::Dressurreit
tagesschau.de::Eintracht
tagesschau.de::Eishockey:
tagesschau.de::Eishockey-WM:
tagesschau.de::EM:
tagesschau.de::ESC-Finale
tagesschau.de::Eintracht
tagesschau.de::Eishockey-WM:
tagesschau.de::Eishockey:
tagesschau.de::European Championships
tagesschau.de::Eurovision Song Contest
tagesschau.de::Fashion Week
@ -211,8 +542,8 @@ tagesschau.de::Fußball-Bundesliga
tagesschau.de::Fußball-EM
tagesschau.de::Gladbach
tagesschau.de::Halbfinale
tagesschau.de::Handball:
tagesschau.de::Handball-EM:
tagesschau.de::Handball:
tagesschau.de::Hertha BSC
tagesschau.de::Hockey
tagesschau.de::Hoffenheim
@ -234,23 +565,23 @@ tagesschau.de::Neymar
tagesschau.de::Nordische Kombination:
tagesschau.de::Olympia-
tagesschau.de::Olympia:
tagesschau.de::Olympischen Winterspiele:
tagesschau.de::Olympische Winterspiele:
tagesschau.de::Olympischen Winterspiele:
tagesschau.de::Paralympics
tagesschau.de::Podcast
tagesschau.de::Podcast 11KM
tagesschau.de::Profisport
tagesschau.de::RKI meldet
tagesschau.de::Remis
tagesschau.de::Riesenslalom:
tagesschau.de::RKI meldet
tagesschau.de::Rodel-
tagesschau.de::Schach-WM:
tagesschau.de::Schalke
tagesschau.de::Schwimm-EM
tagesschau.de::Schwimm-WM:
tagesschau.de::Ski Alpin:
tagesschau.de::Skispring
tagesschau.de::Ski-WM
tagesschau.de::Skispring
tagesschau.de::Sondersendung:
tagesschau.de::Springreiter
tagesschau.de::Sprintstaffel
@ -265,25 +596,20 @@ tagesschau.de::Viererbob
tagesschau.de::Vierschanzentournee
tagesschau.de::Viertelfinale
tagesschau.de::Volleyball-WM
tagesschau.de::WM-Auftakt
tagesschau.de::WM-Finale:
tagesschau.de::WM-Gold
tagesschau.de::WM-Qualifikation
tagesschau.de::WM-Viertelfinale
tagesschau.de::Wasserspringen:
tagesschau.de::Weitsprung
tagesschau.de::Weltcup
tagesschau.de::Weltcup-Sieg
tagesschau.de::Weltmeister
tagesschau.de::Werders
tagesschau.de::WM-Auftakt
tagesschau.de::WM-Finale:
tagesschau.de::WM-Gold
tagesschau.de::WM-Qualifikation
tagesschau.de::WM-Viertelfinale
tagesschau.de::Zukunftspodcast
tagesschau.de::Zweierbob:
theguardian.com::Guardiola
theguardian.com::Manchester United
theycantalk.com::Tinyview
toonhole.com::Bernai
www.army-technology.com::who are the leaders
www.army-technology.com::files patent
www.army-technology.com::sees highest patent filings
www.army-technology.com::theme innovation strategy
www.army-technology.com::gets grant

View File

@ -0,0 +1,5 @@
TwitterBridge
WikipediaBridge
YoutubeBridge
FacebookBridge
InstagramBridge

View File

@ -1,43 +0,0 @@
version: '3'
services:
munin:
container_name: "munin-master"
image: registry.mgrote.net/munin-server:latest
restart: always
environment:
MAILCONTACT: michael.grote@posteo.de
MAILSERVER: mail-relay
MAILPORT: 25
MAILFROM: munin@mgrote.net
MAILUSER: munin@mgrote.net
MAILNAME: Munin
MAILDOMAIN: mgrote.net
TZ: Europe/Berlin
CRONDELAY: 5
NODES: |
fileserver3.mgrote.net:fileserver3.mgrote.net
ansible2.mgrote.net:ansible2.mgrote.net
pve5.mgrote.net:pve5.mgrote.net
forgejo.mgrote.net:forgejo.mgrote.net
docker10.mgrote.net:docker10.mgrote.net
pbs.mgrote.net:pbs.mgrote.net
blocky.mgrote.net:blocky.mgrote.net
ldap.mgrote.net:ldap.mgrote.net
# z.B.
# computer-test.mgrote.net.test:192.68.2.4
# computer.mgrote.net:computer.mgrote.net
volumes:
- db:/var/lib/munin
- logs:/var/log/munin
- cache:/var/cache/munin
ports:
- 1234:80
volumes:
db:
logs:
cache:
networks:
mail-relay:
external: true

View File

@ -3,7 +3,7 @@ services:
######## navidrome-mg ########
navidrome-mg:
container_name: "navidrome-mg"
image: "deluan/navidrome:0.52.5"
image: deluan/navidrome:latest
restart: always
environment:
ND_LOGLEVEL: info
@ -35,6 +35,8 @@ services:
traefik.http.routers.navidrome-mg.tls.certresolver: resolver_letsencrypt
traefik.http.routers.navidrome-mg.entrypoints: entry_https
traefik.http.services.navidrome-mg.loadbalancer.server.port: 4533
com.centurylinklabs.watchtower.enable: true
ports:
- "4533:4533"

View File

@ -2,7 +2,7 @@ version: '3.3'
services:
######## Datenbank ########
nextcloud-db:
image: "mariadb:11.3.2"
image: mariadb:10
container_name: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=ROW --innodb_read_only_compressed=OFF
restart: unless-stopped
@ -11,75 +11,59 @@ services:
- /etc/timezone:/etc/timezone:ro
- db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_root_password', 'password') }}"
MYSQL_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}"
MYSQL_ROOT_PASSWORD: {{ lookup('keepass', 'nextcloud_mysql_root_password', 'password') }}
MYSQL_PASSWORD: {{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_INITDB_SKIP_TZINFO: 1
networks:
networks:dfgd
- intern
healthcheck:
interval: 30s
retries: 3
test:
[
"CMD",
"healthcheck.sh",
"--su-mysql",
"--connect"
]
timeout: 30s
# Error
## [ERROR] Incorrect definition of table mysql.column_stats: expected column 'histogram' at position 10 to have type longblob, found type varbinary(255).
## [ERROR] Incorrect definition of table mysql.column_stats: expected column 'hist_type' at position 9 to have type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB'), found type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB').
# Fix
## docker exec nextcloud-db mysql nextcloud -p<MySQL-Root-Pw> -e "ALTER TABLE mysql.column_stats MODIFY histogram longblob;"
## docker exec nextcloud-db mysql nextcloud -p<MySQL-Root-Pw> -e "ALTER TABLE mysql.column_stats MODIFY hist_type enum('SINGLE_PREC_HB','DOUBLE_PREC_HB','JSON_HB');"
labels:
com.centurylinklabs.watchtower.enable: true
######## Redis ########
nextcloud-redis:
image: "redis:7.2.4"
image: redis:7-alpine
container_name: nextcloud-redis
hostname: nextcloud-redis
networks:
- intern
restart: unless-stopped
command: "redis-server --requirepass {{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}"
healthcheck:
test: ["CMD", "redis-cli", "--pass", "{{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}", "--no-auth-warning", "ping"]
interval: 5s
timeout: 2s
retries: 3
command: redis-server --requirepass {{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}
labels:
com.centurylinklabs.watchtower.enable: true
######## cron ########
nextcloud-cron:
container_name: nextcloud-cron
image: "registry.mgrote.net/nextcloud-cronjob:latest"
image: registry.mgrote.net/nextcloud-cronjob:master
restart: unless-stopped
network_mode: none
depends_on:
- nextcloud-app
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
environment:
NEXTCLOUD_CONTAINER_NAME: nextcloud-app
NEXTCLOUD_CRON_MINUTE_INTERVAL: 1
labels:
com.centurylinklabs.watchtower.enable: true
######## Nextcloud ########
nextcloud-app:
image: "nextcloud:29.0.0"
image: nextcloud:27
container_name: nextcloud-app
restart: unless-stopped
depends_on:
- nextcloud-db
- nextcloud-redis
- nextcloud-cron
environment:
REDIS_HOST: nextcloud-redis
REDIS_HOST_PASSWORD: "{{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}"
REDIS_HOST_PASSWORD: {{ lookup('keepass', 'nextcloud_redis_host_password', 'password') }}
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: "{{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}"
MYSQL_PASSWORD: {{ lookup('keepass', 'nextcloud_mysql_password', 'password') }}
MYSQL_HOST: nextcloud-db
NEXTCLOUD_TRUSTED_DOMAINS: "nextcloud.mgrote.net"
SMTP_HOST: mail-relay
@ -87,28 +71,27 @@ services:
SMTP_PORT: 25
#SMTP_AUTHTYPE: LOGIN
SMTP_NAME: info@mgrote.net
#SMTP_PASSWORD: "{{ lookup('keepass', 'strato_smtp_password', 'password') }}"
#SMTP_PASSWORD: {{ lookup('keepass', 'strato_smtp_password', 'password') }}
MAIL_FROM_ADDRESS: info@mgrote.net
PHP_MEMORY_LIMIT: 1024M
PHP_UPLOAD_LIMIT: 10G
APACHE_DISABLE_REWRITE_IP: 1
TRUSTED_PROXIES: "192.168.48.0/24" # Subnetz in dem sich traefik befindet
NEXTCLOUD_UPLOAD_LIMIT: 10G
NEXTCLOUD_MAX_TIME: 3600
APACHE_BODY_LIMIT: 0 # unlimited, https://github.com/nextcloud/docker/issues/1796
volumes:
- app:/var/www/html
- data:/var/www/html/data
networks:
- intern
# ports:
# - 80:80
networks:
- intern
- traefik
- mail-relay
healthcheck:
test: ["CMD", "curl", "-f", "--insecure", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 3
labels:
com.centurylinklabs.watchtower.enable: true
com.centurylinklabs.watchtower.depends-on: nextcloud-redis,nextcloud-db
traefik.http.routers.nextcloud.rule: Host(`nextcloud.mgrote.net`)
traefik.enable: true
traefik.http.routers.nextcloud.tls: true
@ -143,6 +126,3 @@ volumes:
######## Doku ########
# Telefonregion
# docker exec --user www-data nextcloud-app php occ config:system:set default_phone_region --value="DE"
# https://help.nextcloud.com/t/nextcloud-wont-load-any-mixed-content/13565/3
# docker exec --user www-data nextcloud-app php occ config:system:set overwriteprotocol --value="https"
# docker exec --user www-data nextcloud-app php occ config:system:set overwrite.cli.url --value="http://nextcloud.mgrote.net"

View File

@ -3,7 +3,7 @@ services:
oci-registry:
restart: always
container_name: oci-registry
image: "registry:2.8.3"
image: registry:2
volumes:
- oci:/var/lib/registry
- ./htpasswd:/auth/htpasswd
@ -11,25 +11,15 @@ services:
- traefik
- intern
depends_on:
- oci-registry-ui
- oci-registry-redis
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:5000/v2/"]
interval: 30s
timeout: 10s
retries: 3
environment:
TZ: Europe/Berlin
REGISTRY_AUTH: none
REGISTRY_REDIS_ADDR: oci-registry-redis:6379
REGISTRY_REDIS_PASSWORD: "{{ lookup('keepass', 'oci-registry-redis-pw', 'password') }}"
REGISTRY_REDIS_PASSWORD: {{ lookup('keepass', 'oci-registry-redis-pw', 'password') }}
REGISTRY_STORAGE_DELETE_ENABLED: true
REGISTRY_CATALOG_MAXENTRIES: 100000 # https://github.com/Joxit/docker-registry-ui/issues/306
# https://joxit.dev/docker-registry-ui/#using-cors
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin: '[https://registry.mgrote.net/ui/]'
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: '[HEAD,GET,OPTIONS,DELETE]'
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials: '[true]'
REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: '[Authorization,Accept,Cache-Control]'
REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: '[Docker-Content-Digest]'
labels:
traefik.http.routers.registry.rule: Host(`registry.mgrote.net`)
traefik.enable: true
@ -38,12 +28,15 @@ services:
traefik.http.routers.registry.entrypoints: entry_https
traefik.http.services.registry.loadbalancer.server.port: 5000
traefik.http.routers.registry.middlewares: registry-ipallowlist
traefik.http.routers.registry.middlewares: registry-ipwhitelist
traefik.http.middlewares.registry-ipallowlist.ipallowlist.sourcerange: 192.168.2.0/24,10.25.25.0/24,192.168.48.0/24,172.18.0.0/16 # .48. ist Docker
traefik.http.middlewares.registry-ipallowlist.ipallowlist.ipstrategy.depth: 0 # https://doc.traefik.io/traefik/middlewares/http/ipallowlist/#ipstrategydepth
traefik.http.middlewares.registry-ipwhitelist.ipwhitelist.sourcerange: 192.168.2.0/24,10.25.25.0/24,192.168.48.0/24 # .48. ist Docker
traefik.http.middlewares.registry-ipwhitelist.ipwhitelist.ipstrategy.depth: 0 # https://doc.traefik.io/traefik/middlewares/http/ipwhitelist/#ipstrategydepth
# registry aufräumen: docker exec -it oci-registry /bin/registry garbage-collect --delete-untagged=true /etc/docker/registry/config.yml
com.centurylinklabs.watchtower.depends-on: oci-registry-redis
com.centurylinklabs.watchtower.enable: true
# registry aufräumen: docker exec -it oci-registry /bin/registry garbage-collect [--dry-run] --delete-untagged=true /etc/docker/registry/config.yml
# testen mit:
# docker pull ubuntu
@ -52,24 +45,21 @@ services:
# docker pull registry.mgrote.net/myfirstimage
oci-registry-redis:
image: "redis:7.2.4"
image: redis:7
container_name: oci-registry-redis
networks:
- intern
restart: always
environment:
REDIS_PASSWORD: "{{ lookup('keepass', 'oci-registry-redis-pw', 'password') }}"
REDIS_PASSWORD: {{ lookup('keepass', 'oci-registry-redis-pw', 'password') }}
MAXMEMORY POLICY: allkeys-lru
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 30s
timeout: 10s
retries: 3
labels:
com.centurylinklabs.watchtower.enable: true
oci-registry-ui:
restart: always
# url: registry.mgrote.net/ui/index.html
image: "joxit/docker-registry-ui:2.5.7"
image: joxit/docker-registry-ui:latest
container_name: oci-registry-ui
environment:
DELETE_IMAGES: true
@ -77,20 +67,12 @@ services:
NGINX_PROXY_PASS_URL: http://oci-registry:5000
SHOW_CONTENT_DIGEST: true # https://github.com/Joxit/docker-registry-ui/issues/297
SHOW_CATALOG_NB_TAGS: true
PULL_URL: registry.mgrote.net
depends_on:
- oci-registry
networks:
- traefik
- intern
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://127.0.0.1"]
interval: 30s
timeout: 10s
retries: 3
labels:
traefik.http.routers.registry-ui.rule: Host(`registry.mgrote.net`)&&PathPrefix(`/ui`) # mache unter /ui erreichbar, damit wird demPfad dieser Prefix hinzugefügt, die Anwendung "hört" dort abrer nicht
traefik.http.routers.registry-ui.middlewares: registry-ui-strip-prefix,registry-ui-ipallowlist # also entferne den Prefix danach wieder
traefik.http.routers.registry-ui.middlewares: registry-ui-strip-prefix,registry-ui-ipwhitelist # also entferne den Prefix danach wieder
traefik.http.middlewares.registry-ui-strip-prefix.stripprefix.prefixes: /ui # hier ist die Middleware definiert
traefik.enable: true
traefik.http.routers.registry-ui.tls: true
@ -98,8 +80,13 @@ services:
traefik.http.routers.registry-ui.entrypoints: entry_https
traefik.http.services.registry-ui.loadbalancer.server.port: 80
traefik.http.middlewares.registry-ui-ipallowlist.ipallowlist.sourcerange: 192.168.2.0/24,10.25.25.0/24 # .48. ist Docker
traefik.http.middlewares.registry-ui-ipallowlist.ipallowlist.ipstrategy.depth: 0 # https://doc.traefik.io/traefik/middlewares/http/ipallowlist/#ipstrategydepth
traefik.http.middlewares.registry-ui-ipwhitelist.ipwhitelist.sourcerange: 192.168.2.0/24,10.25.25.0/24,192.168.48.0/24 # .48. ist Docker
traefik.http.middlewares.registry-ui-ipwhitelist.ipwhitelist.ipstrategy.depth: 0 # https://doc.traefik.io/traefik/middlewares/http/ipwhitelist/#ipstrategydepth
com.centurylinklabs.watchtower.depends-on: oci-registry-redis,oci-registry
com.centurylinklabs.watchtower.enable: true
######## Networks ########
networks:

View File

@ -3,7 +3,7 @@ services:
routeros-config-export:
container_name: routeros-config-export
restart: always
image: "registry.mgrote.net/routeros-config-export:latest"
image: registry.mgrote.net/oxidized-selfmade:master
volumes:
- ./key_rb5009:/key_rb5009:ro
- ./key_hex:/key_hex:ro
@ -11,11 +11,11 @@ services:
- ./deploy_token:/deploy_token:ro
environment:
DEVICES: |-
rb5009.mgrote.net,routeros-config-backup,/key_rb5009
hex.mgrote.net,routeros-config-backup,/key_hex
crs305.mgrote.net,routeros-config-backup,/key_crs305
rb5009.grote.lan,routeros-config-backup,/key_rb5009
hex.grote.lan,routeros-config-backup,/key_hex
crs305.grote.lan,routeros-config-backup,/key_crs305
GIT_REPO_BRANCH: "master"
GIT_REPO_URL: "ssh://gitea@forgejo.mgrote.net:2222/mg/routeros-configs.git"
GIT_REPO_URL: "ssh://gitea@gitea.grote.lan:2222/mg/routeros-configs.git"
GIT_REPO_DEPLOY_KEY: "/deploy_token"
GIT_USERNAME: oxidized-selfmade
GIT_USER_MAIL: michael.grote@posteo.de

View File

@ -2,8 +2,8 @@ version: '3'
services:
######## traefik ########
traefik:
container_name: traefik
image: "traefik:v3.0.0"
container_name: "traefik"
image: traefik:latest
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
@ -19,48 +19,21 @@ services:
- "2222:2222" # SSH
environment:
TZ: Europe/Berlin
healthcheck:
test: ["CMD", "traefik", "healthcheck", "--ping"]
interval: 30s
timeout: 10s
retries: 3
######## nforwardauth ########
nforwardauth:
restart: always
image: "nosduco/nforwardauth:v1.4.0"
container_name: traefik-nforwardauth
environment:
TOKEN_SECRET: "{{ lookup('keepass', 'nforwardauth_token_secret', 'password') }}"
AUTH_HOST: auth.mgrote.net
labels:
traefik.enable: true
traefik.http.routers.nforwardauth.rule: Host(`auth.mgrote.net`)
traefik.http.middlewares.nforwardauth.forwardauth.address: http://nforwardauth:3000
traefik.http.services.nforwardauth.loadbalancer.server.port: 3000
traefik.http.routers.nforwardauth.tls: true
traefik.http.routers.nforwardauth.tls.certresolver: resolver_letsencrypt
traefik.http.routers.nforwardauth.entrypoints: entry_https
volumes:
- "./passwd:/passwd:ro" # Mount local passwd file at /passwd as read only
networks:
- traefik
healthcheck:
test: ["CMD", "wget", "--quiet", "--spider", "--tries=1", "http://127.0.0.1:3000/login"]
interval: 30s
timeout: 10s
retries: 3
com.centurylinklabs.watchtower.enable: true
# hier sind gemeinsame middlewares defniert und zu einer chain zusammengefasst
# CAVE: die Reihenfolge innerhalb von Chains/von Middlewares ist wichtig
# Aufbau: traefik.http.middlewares.<NAME>.chain.middlewares: middleware1,middleware2,middleware3
# diese kann dann direkt eingebunden werden:
# Beispiel: XXXXX
# beim Einsatz von nforwardauth:
# Beispiel: YYYYY
######## Networks ########
networks:
traefik:
external: true
######## Volumes ########
volumes:
acme_data:
# passwd
# echo "<user>:$(mkpasswd -m sha-512 <password>)"

View File

@ -2,6 +2,13 @@
http:
###### router #####
routers:
router_dokuwiki:
rule: "Host(`dokuwiki.mgrote.net`,`wiki.mgrote.net`)"
service: "service_dokuwiki"
entrypoints:
- entry_https
tls:
certresolver: resolver_letsencrypt
router_gitea:
rule: "Host(`git.mgrote.net`)"
service: "service_gitea"
@ -11,7 +18,11 @@ http:
certresolver: resolver_letsencrypt
###### services #####
services:
service_dokuwiki:
loadBalancer:
servers:
- url: "http://dokuwiki2.grote.lan/"
service_gitea:
loadBalancer:
servers:
- url: "http://forgejo.mgrote.net:3000/"
- url: "http://gitea.grote.lan:3000/"

View File

@ -1 +0,0 @@
{{ lookup('keepass', 'nforwardauth-mg-hash', 'password') }}

View File

@ -31,16 +31,8 @@ certificatesResolvers:
tlsChallenge: true
log:
level: INFO
level: DEBUG
api:
insecure: true
dashboard: true # unter Port 8081 erreichbar
ping: {} # für healthcheck
#experimental:
# plugins:
# ldapAuth:
# moduleName: "github.com/wiltonsr/ldapAuth"
# version: "v0.1.4"

View File

@ -2,14 +2,14 @@
version: "2.1"
services:
unifi-network-application:
image: "lscr.io/linuxserver/unifi-network-application:8.0.28-ls27"
image: lscr.io/linuxserver/unifi-network-application:latest
container_name: unifi-network-application
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
MONGO_USER: unifiuser
MONGO_PASS: "{{ lookup('keepass', 'unifi-mongodb-pass', 'password') }}"
MONGO_PASS: {{ lookup('keepass', 'unifi-mongodb-pass', 'password') }}
MONGO_HOST: unifi-db
MONGO_PORT: 27017
MONGO_DBNAME: unifidb
@ -28,37 +28,29 @@ services:
- 6789:6789 #optional
- 5514:5514/udp #optional
restart: always
labels:
com.centurylinklabs.watchtower.enable: false
com.centurylinklabs.watchtower.monitor-only: true
com.centurylinklabs.watchtower.depends-on: unifi-db
networks:
- mail-relay
- unifi-internal
healthcheck:
test: ["CMD", "curl", "-f", "--insecure", "https://localhost:8443"]
interval: 30s
timeout: 10s
retries: 3
depends_on:
- unifi-db
unifi-db:
# Starte Container OHNE init-script
# In Container
# 1. mongosh
# IN Container
# 1. mongo
# 2. db.getSiblingDB("unifidb").createUser({user: "unifiuser", pwd: "GEHEIM", roles: [{role: "dbOwner", db: "unifidb"}, {role: "dbOwner", db: "unifidb_stat"}]});
# https://discourse.linuxserver.io/t/cant-connect-to-mongodb-for-unifi-network-application/8166
image: "docker.io/mongo:7.0.9"
image: docker.io/mongo:4
container_name: unifi-db
volumes:
- db-data:/data/db
restart: always
environment:
MARIADB_AUTO_UPGRADE: "1"
labels:
com.centurylinklabs.watchtower.enable: true
networks:
- unifi-internal
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.stats().ok"]
interval: 30s
timeout: 10s
retries: 3
######## Volumes ########
volumes:

View File

@ -0,0 +1,42 @@
version: "3"
services:
watchtower:
restart: always
container_name: watchtower
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
TZ: Europe/Berlin
WATCHTOWER_CLEANUP: true
WATCHTOWER_INCLUDE_RESTARTING: true
WATCHTOWER_INCLUDE_STOPPED: true
WATCHTOWER_REVIVE_STOPPED: false
WATCHTOWER_SCHEDULE: "0 20 3 * * *" # jeden Tag um 03:20
WATCHTOWER_LABEL_ENABLE: true
WATCHTOWER_NOTIFICATIONS: email
WATCHTOWER_NOTIFICATION_EMAIL_FROM: info@mgrote.net
WATCHTOWER_NOTIFICATION_EMAIL_TO: info@mgrote.net
WATCHTOWER_NOTIFICATION_EMAIL_SERVER: mail-relay # "container_name" des Relays
# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT: 25 # nicht benötigt, nur als Referenz stehen gelassen
# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER: "" # nicht benötigt, nur als Referenz stehen gelassen
# WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD: "" # nicht benötigt, nur als Referenz stehen gelassen
WATCHTOWER_NOTIFICATION_EMAIL_DELAY: 2
WATCHTOWER_NO_STARTUP_MESSAGE: true
labels:
com.centurylinklabs.watchtower.enable: true
networks:
- mail-relay # binde externe Netzwerk an Container
# monitore diesen Container nur
# labels:
# com.centurylinklabs.watchtower.monitor-only: true
# dieser container hängt von x ab
# com.centurylinklabs.watchtower.depends-on: mf-db
# aktualisiere container
# com.centurylinklabs.watchtower.enable: true
######## Networks ########
networks:
mail-relay: # damit das mail-relaay im anderen Container erreicht werden kann
external: true

View File

@ -0,0 +1,25 @@
version: '3'
services:
# here it works as expected
whoami:
image: traefik/whoami
container_name: whoami
restart: always
networks:
- traefik
labels:
traefik.http.routers.whoami.rule: Host(`whoami.mgrote.net`)
traefik.http.routers.whoami.middlewares: whoami-ipwhitelist
traefik.http.middlewares.whoami-ipwhitelist.ipwhitelist.sourcerange: 192.168.2.0/24,10.25.25.0/24,192.168.48.0/24 # .48. ist Docker
traefik.http.middlewares.whoami-ipwhitelist.ipwhitelist.ipstrategy.depth: 0 # https://doc.traefik.io/traefik/middlewares/http/ipwhitelist/#ipstrategydepth
traefik.enable: true
traefik.http.routers.whoami.tls: true
traefik.http.routers.whoami.tls.certresolver: resolver_letsencrypt
traefik.http.routers.whoami.entrypoints: entry_https
traefik.http.services.whoami.loadbalancer.server.port: 80
networks:
traefik:
external: true

View File

@ -1,34 +0,0 @@
version: '3'
services:
wiki-webserver:
container_name: wiki-webserver
image: "registry.mgrote.net/httpd:latest"
restart: always
networks:
- traefik
ports:
- 8087:80
volumes:
- /docker/wiki/site:/usr/local/apache2/htdocs/
# /docker/wiki/site ist ein lokales Verzeichnis auf docker10
# dieser Verzeichnis wird direkt in der wiki ci gemountet
# und die daten werden dort reingeschrieben
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 3
labels:
traefik.http.routers.wiki.rule: Host(`wiki.mgrote.net`)
traefik.enable: true
traefik.http.routers.wiki.tls: true
traefik.http.routers.wiki.tls.certresolver: resolver_letsencrypt
traefik.http.routers.wiki.entrypoints: entry_https
traefik.http.services.wiki.loadbalancer.server.port: 80
traefik.http.routers.wiki.middlewares: nforwardauth
######## Networks ########
networks:
traefik:
external: true

View File

@ -1,80 +0,0 @@
# https://woodpecker-ci.org/docs/administration/setup
version: '3'
services:
woodpecker-server:
restart: always
container_name: woodpecker-server
image: "woodpeckerci/woodpecker-server:v2.4.1"
ports:
- 8000:8000
volumes:
- server-data:/var/lib/woodpecker/
environment:
WOODPECKER_OPEN: false
WOODPECKER_HOST: https://ci.mgrote.net
WOODPECKER_WEBHOOK_HOST: http://docker10.mgrote.net:8000
WOODPECKER_GITEA: true
WOODPECKER_GITEA_URL: https://git.mgrote.net
WOODPECKER_GITEA_CLIENT: "{{ lookup('keepass', 'woodpecker-oauth2-client-id', 'password') }}"
WOODPECKER_GITEA_SECRET: "{{ lookup('keepass', 'woodpecker-oauth2-client-secret', 'password') }}"
WOODPECKER_AGENT_SECRET: "{{ lookup('keepass', 'woodpecker-agent-secret', 'password') }}"
WOODPECKER_ADMIN: mg
WOODPECKER_LOG_LEVEL: info
WOODPECKER_DEBUG_PRETTY: true
networks:
- intern
- traefik
labels:
traefik.http.routers.woodpecker.rule: Host(`ci.mgrote.net`)
traefik.enable: true
traefik.http.routers.woodpecker.tls: true
traefik.http.routers.woodpecker.tls.certresolver: resolver_letsencrypt
traefik.http.routers.woodpecker.entrypoints: entry_https
traefik.http.services.woodpecker.loadbalancer.server.port: 8000
traefik.http.routers.woodpecker.middlewares: woodpecker-ipallowlist
traefik.http.middlewares.woodpecker-ipallowlist.ipallowlist.sourcerange: "192.168.2.0/24,10.25.25.0/24"
traefik.http.middlewares.woodpecker-ipallowlist.ipallowlist.ipstrategy.depth: 0 # https://doc.traefik.io/traefik/middlewares/http/ipallowlist/#ipstrategydepth
woodpecker-agent:
container_name: woodpecker-agent
image: "woodpeckerci/woodpecker-agent:v2.4.1"
command: agent
restart: always
depends_on:
- woodpecker-server
ports:
- 3032:3000
volumes:
- agent-config:/etc/woodpecker
- /var/run/docker.sock:/var/run/docker.sock
environment:
WOODPECKER_SERVER: woodpecker-server:9000
WOODPECKER_AGENT_SECRET: "{{ lookup('keepass', 'woodpecker-agent-secret', 'password') }}"
WOODPECKER_MAX_WORKFLOWS: 20
WOODPECKER_DEBUG_PRETTY: true
WOODPECKER_LOG_LEVEL: info
WOODPECKER_HEALTHCHECK: true
WOODPECKER_BACKEND: docker
networks:
- intern
volumes:
server-data:
agent-config:
# git.mgrote.net -> Settings -> Applications -> woodpecker
# WOODPECKER_GITEA_CLIENT: "{{ lookup('keepass', 'woodpecker-oauth2-client-id', 'password') }}"
# WOODPECKER_GITEA_SECRET: "{{ lookup('keepass', 'woodpecker-oauth2-client-secret', 'password') }}"
# Redirect URL: https://ci.mgrote.net/authorize
######## Networks ########
networks:
traefik:
external: true
intern:
driver: bridge

View File

@ -1,73 +0,0 @@
version: "3"
services:
######## App ########
lldap:
image: nitnelave/lldap:stable
container_name: lldap-app
restart: always
ports:
# For LDAP
- "3890:3890"
# For the web front-end
- "17170:17170"
networks:
- intern
- traefik
- mail-relay
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- "lldap:/data"
environment:
UID: 1000
GID: 1000
LLDAP_HTTP_PORT: 17170
LLDAP_HTTP_URL: http://docker10.grote.lan:17170
LLDAP_KEY_SEED: ganz_lang
LLDAP_VERBOSE: true
LLDAP_JWT_SECRET: jwt_secret
LLDAP_LDAP_BASE_DN: dc=grote,dc=lan
LLDAP_USER_DN: admin
LLDAP_LDAP_USER_PASS: user_pass_geheim
LLDAP_DATABASE_URL: mysql://lldap-db-user:mysql_password@lldap-db/lldap
LLDAP_SMTP_OPTIONS__ENABLE_PASSWORD_reset: true
LLDAP_SMTP_OPTIONS__FROM: "LLDAP Admin <info@mgrote.net>"
LLDAP_SMTP_OPTIONS__REPLY_TO: "Do not reply <info@mgrote.net>"
LLDAP_SMTP_OPTIONS__SERVER: mail-relay
LLDAP_SMTP_OPTIONS__PORT: 25
LLDAP_SMTP_OPTIONS__SMTP_ENCRYPTION: NONE
LLDAP_SMTP_OPTIONS__USER: info@mgrote.net
labels:
- com.centurylinklabs.watchtower.enable=true
- com.centurylinklabs.watchtower.depends-on=lldap-db
######## DB ########
lldap-db:
image: mariadb:10.6.14
container_name: lldap-db
restart: always
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=mysql_root_password
- MYSQL_PASSWORD=mysql_password
- MYSQL_DATABASE=lldap
- MYSQL_USER=lldap-db-user
- MYSQL_INITDB_SKIP_TZINFO=1
networks:
- intern
labels:
- com.centurylinklabs.watchtower.enable=true
######## Volumes ########
volumes:
lldap:
db:
######## Networks ########
networks:
intern:
traefik:
external: true
mail-relay:
external: true

View File

@ -1,40 +0,0 @@
version: '3'
services:
wiki-webserver:
container_name: wiki-webserver
image: httpd:2.4@sha256:ba846154ade27292d216cce2d21f1c7e589f3b66a4a643bff0cdd348efd17aa3
restart: always
networks:
- traefik
ports:
- 8087:80
volumes:
- /docker/wiki/site:/usr/local/apache2/htdocs/
# /docker/wiki/site ist ein lokales Verzeichnis auf docker10
# dieser Verzeichnis wird direkt in der wiki ci gemountet
# und die daten werden dort reingeschrieben
labels:
traefik.http.routers.wiki.rule: Host(`wiki2.mgrote.net`)
traefik.enable: true
traefik.http.routers.wiki.tls: true
traefik.http.routers.wiki.tls.certresolver: resolver_letsencrypt
traefik.http.routers.wiki.entrypoints: entry_https
traefik.http.services.wiki.loadbalancer.server.port: 80
traefik.http.routers.wiki.middlewares: nforwardauth
# traefik.http.routers.wiki.middlewares: ldap_auth
#
# # ldapAuth Options
# traefik.http.middlewares.ldap_auth.plugin.ldapAuth.enabled: true
# traefik.http.middlewares.ldap_auth.plugin.ldapAuth.logLevel: DEBUG
# traefik.http.middlewares.ldap_auth.plugin.ldapAuth.url: ldap://lldap-app
# traefik.http.middlewares.ldap_auth.plugin.ldapAuth.port: 3890
# traefik.http.middlewares.ldap_auth.plugin.ldapAuth.baseDN: "ou=people,dc=grote,dc=lan"
# traefik.http.middlewares.ldap_auth.plugin.ldapAuth.attribute: uid
com.centurylinklabs.watchtower.enable: true
######## Networks ########
networks:
traefik:
external: true

View File

@ -22,7 +22,7 @@ munin_plugin_dest_path: /etc/munin/plugins/
munin_plugin_conf_dest_path: /etc/munin/plugin-conf.d/
# munin_node_plugins: #plugins to install
# - name: docker_volumes # name
# src: https://git.mgrote.net/mirrors/munin-contrib/raw/branch/master/plugins/docker/docker_ #src
# src: https://git.mgrote.net/mg/mirror-munin-contrib/raw/branch/master/plugins/docker/docker_ #src
# config_file_name: /etc/munin/plugin-conf.d/docker # where to put plugin config
# content of config
# config: |

Some files were not shown because too many files have changed in this diff Show More