mirror of
https://github.com/funkypenguin/geek-cookbook/
synced 2025-12-13 01:36:23 +00:00
402 lines
15 KiB
YAML
402 lines
15 KiB
YAML
site_name: Funky Penguin's Geek Cookbook
|
|
site_description: 'The Geek Cookbook is a collection of guides for establishing your own highly-available docker container cluster (swarm). This swarm enables you to run self-hosted services such as GitLab, Plex, NextCloud, etc.'
|
|
site_author: 'David Young'
|
|
site_url: 'https://geek-cookbook.funkypenguin.co.nz'
|
|
edit_uri: 'edit/master/manuscript/'
|
|
|
|
# Fail to build if we have broken links
|
|
# strict: true
|
|
|
|
# Repository
|
|
repo_name: 'geek-cookbook'
|
|
repo_url: 'https://github.com/geek-cookbook/geek-cookbook'
|
|
|
|
# Set this to "manuscript" so that we can produce leanpub content
|
|
docs_dir: 'manuscript'
|
|
|
|
# Copyright
|
|
copyright: 'Copyright © 2016 - 2021 David Young, Funky Penguin Limited'
|
|
|
|
# Plugins
|
|
plugins:
|
|
search:
|
|
minify:
|
|
minify_html: true
|
|
git-revision-date-localized:
|
|
type: date
|
|
autolinks:
|
|
macros:
|
|
verbose: true
|
|
# htmlproofer:
|
|
# raise_error: True
|
|
# raise_error_excludes:
|
|
# 504: ['https://www.mkdocs.org/']
|
|
# 404: ['https://github.com/manuzhang/mkdocs-htmlproofer-plugin']
|
|
# 400: ['*']
|
|
git-committers:
|
|
repository: geek-cookbook/geek-cookbook
|
|
token: !ENV GH_TOKEN
|
|
|
|
#theme_dir: mkdocs-material
|
|
nav:
|
|
- Home: index.md
|
|
- Docker Swarm:
|
|
- Preparation:
|
|
- Design: ha-docker-swarm/design.md
|
|
- Nodes: ha-docker-swarm/nodes.md
|
|
- Shared Storage (Ceph): ha-docker-swarm/shared-storage-ceph.md
|
|
- Shared Storage (GlusterFS): ha-docker-swarm/shared-storage-gluster.md
|
|
- Keepalived: ha-docker-swarm/keepalived.md
|
|
- Docker Swarm Mode: ha-docker-swarm/docker-swarm-mode.md
|
|
- Traefik: ha-docker-swarm/traefik.md
|
|
- Traefik Forward Auth:
|
|
- ha-docker-swarm/traefik-forward-auth/index.md
|
|
- Dex (static): ha-docker-swarm/traefik-forward-auth/dex-static.md
|
|
- Google: ha-docker-swarm/traefik-forward-auth/google.md
|
|
- KeyCloak: ha-docker-swarm/traefik-forward-auth/keycloak.md
|
|
- Authelia: ha-docker-swarm/authelia.md
|
|
- Registry: ha-docker-swarm/registry.md
|
|
- Mail Server: recipes/mail.md
|
|
- Duplicity: recipes/duplicity.md
|
|
- Chef's Favorites:
|
|
- Auto Pirate:
|
|
- recipes/autopirate/index.md
|
|
- Headphones: recipes/autopirate/headphones.md
|
|
- Heimdall: recipes/autopirate/heimdall.md
|
|
- Jackett: recipes/autopirate/jackett.md
|
|
- Lazy Librarian: recipes/autopirate/lazylibrarian.md
|
|
- Lidarr: recipes/autopirate/lidarr.md
|
|
- Mylar: recipes/autopirate/mylar.md
|
|
- NZBGet: recipes/autopirate/nzbget.md
|
|
- NZBHydra: recipes/autopirate/nzbhydra.md
|
|
- Prowlarr: recipes/autopirate/prowlarr.md
|
|
- Ombi: recipes/autopirate/ombi.md
|
|
- Radarr: recipes/autopirate/radarr.md
|
|
- Readarr: recipes/autopirate/readarr.md
|
|
- Rtorrent: recipes/autopirate/rtorrent.md
|
|
- SABnzbd: recipes/autopirate/sabnzbd.md
|
|
- Sonarr: recipes/autopirate/sonarr.md
|
|
- End: recipes/autopirate/end.md
|
|
- Emby: recipes/emby.md
|
|
- Home Assistant: recipes/homeassistant.md
|
|
- Huginn: recipes/huginn.md
|
|
- Jellyfin: recipes/jellyfin.md
|
|
- Kanboard: recipes/kanboard.md
|
|
- KeyCloak:
|
|
- recipes/keycloak/index.md
|
|
- Users: recipes/keycloak/create-user.md
|
|
- OIDC Provider: recipes/keycloak/setup-oidc-provider.md
|
|
- OpenLDAP: recipes/keycloak/authenticate-against-openldap.md
|
|
- Miniflux: recipes/miniflux.md
|
|
- Munin: recipes/munin.md
|
|
- NextCloud: recipes/nextcloud.md
|
|
- phpIPAM: recipes/phpipam.md
|
|
- Plex: recipes/plex.md
|
|
- Portainer: recipes/portainer.md
|
|
- PrivateBin: recipes/privatebin.md
|
|
- Restic: recipes/restic.md
|
|
- Swarmprom: recipes/swarmprom.md
|
|
- Recipes:
|
|
- Archive Box: recipes/archivebox.md
|
|
- Bitwarden: recipes/bitwarden.md
|
|
- Bookstack: recipes/bookstack.md
|
|
- Calibre-Web: recipes/calibre-web.md
|
|
- Collabora Online: recipes/collabora-online.md
|
|
- CyberChef: recipes/cyberchef.md
|
|
- Duplicati: recipes/duplicati.md
|
|
- ElkarBackup: recipes/elkarbackup.md
|
|
- Funkwhale: recipes/funkwhale.md
|
|
- Ghost: recipes/ghost.md
|
|
- GitLab: recipes/gitlab.md
|
|
- GitLab Runner: recipes/gitlab-runner.md
|
|
- Gollum: recipes/gollum.md
|
|
- InstaPy: recipes/instapy.md
|
|
- KeyCloak:
|
|
- recipes/keycloak/index.md
|
|
- Users: recipes/keycloak/create-user.md
|
|
- OIDC Provider: recipes/keycloak/setup-oidc-provider.md
|
|
- OpenLDAP: recipes/keycloak/authenticate-against-openldap.md
|
|
- Komga: recipes/komga.md
|
|
- Linx: recipes/linx.md
|
|
- Mealie: recipes/mealie.md
|
|
- Minio: recipes/minio.md
|
|
- NightScout: recipes/nightscout.md
|
|
- OpenLDAP: recipes/openldap.md
|
|
- OwnTracks: recipes/owntracks.md
|
|
- Photoprism: recipes/photoprism.md
|
|
- Paperless NG: recipes/paperless-ng.md
|
|
- Portainer: recipes/portainer.md
|
|
- Realms: recipes/realms.md
|
|
- Restic: recipes/restic.md
|
|
- RSS Bridge: recipes/rss-bridge.md
|
|
- Tiny Tiny RSS: recipes/tiny-tiny-rss.md
|
|
- Traefik: ha-docker-swarm/traefik.md
|
|
- Traefik Forward Auth:
|
|
- ha-docker-swarm/traefik-forward-auth/index.md
|
|
- Dex (static): ha-docker-swarm/traefik-forward-auth/dex-static.md
|
|
- Google: ha-docker-swarm/traefik-forward-auth/google.md
|
|
- KeyCloak: ha-docker-swarm/traefik-forward-auth/keycloak.md
|
|
- Wallabag: recipes/wallabag.md
|
|
- Wekan: recipes/wekan.md
|
|
- Wetty: recipes/wetty.md
|
|
- Reference:
|
|
- OAuth Proxy: reference/oauth_proxy.md
|
|
- Data Layout: reference/data_layout.md
|
|
- Networks: reference/networks.md
|
|
- OpenVPN : reference/openvpn.md
|
|
- Troubleshooting: reference/troubleshooting.md
|
|
- ⛴ Kubernetes:
|
|
- Preparation:
|
|
- kubernetes/index.md
|
|
- Introduction: kubernetes/index.md
|
|
- Cluster:
|
|
- kubernetes/cluster/index.md
|
|
- Digital Ocean: kubernetes/cluster/digitalocean.md
|
|
# - Bare Metal: kubernetes/cluster/baremetal.md
|
|
# - Home Lab: kubernetes/cluster/baremetal.md
|
|
- k3s: kubernetes/cluster/k3s.md
|
|
# - The Hard Way: kubernetes/cluster/the-hard-way.md
|
|
- Deployment:
|
|
- kubernetes/deployment/index.md
|
|
# - YAML: kubernetes/wip.md
|
|
# - Helm: kubernetes/wip.md
|
|
# - GitHub Actions: kubernetes/wip.md
|
|
- Flux:
|
|
- Install: kubernetes/deployment/flux/install.md
|
|
- Design: kubernetes/deployment/flux/design.md
|
|
- Operate: kubernetes/deployment/flux/operate.md
|
|
- Essentials:
|
|
- Load Balancer:
|
|
- kubernetes/loadbalancer/index.md
|
|
- k3s: kubernetes/loadbalancer/k3s.md
|
|
- MetalLB:
|
|
- kubernetes/loadbalancer/metallb/index.md
|
|
- pfSense: kubernetes/loadbalancer/metallb/pfsense.md
|
|
- Sealed Secrets: kubernetes/sealed-secrets.md
|
|
- External DNS: kubernetes/external-dns.md
|
|
- SSL Certificates:
|
|
- kubernetes/ssl-certificates/index.md
|
|
- Cert-Manager: kubernetes/ssl-certificates/cert-manager.md
|
|
- LetsEncrypt Issuers: kubernetes/ssl-certificates/letsencrypt-issuers.md
|
|
- Wildcard Certificate: kubernetes/ssl-certificates/wildcard-certificate.md
|
|
- Secret Replicator: kubernetes/ssl-certificates/secret-replicator.md
|
|
- Ingress:
|
|
- kubernetes/ingress/index.md
|
|
- Traefik:
|
|
- kubernetes/ingress/traefik/index.md
|
|
# - Dashboard: kubernetes/ingress/traefik/dashboard.md
|
|
- Nginx: kubernetes/ingress/nginx.md
|
|
- Persistence:
|
|
- kubernetes/persistence/index.md
|
|
- Local Path Provisioner: kubernetes/persistence/local-path-provisioner.md
|
|
- TopoLVM: kubernetes/persistence/topolvm.md
|
|
# - Rook Ceph: kubernetes/persistence/rook-ceph.md
|
|
# - OpenEBS: kubernetes/persistence/openebs.md
|
|
# - LongHorn: kubernetes/persistence/longhorn.md
|
|
# - Backup:
|
|
# - kubernetes/backup/index.md
|
|
# - kubernetes/wip.md
|
|
# - Logging:
|
|
# - fluent-bit, graylog, etc.
|
|
|
|
|
|
# - Monitoring:
|
|
# - kubernetes/monitoring/index.md
|
|
# - Prometheus: kubernetes/wip.md
|
|
# - Grafana: kubernetes/wip.md
|
|
# - AlertManager: kubernetes/wip.md
|
|
# - Goldilocks: kubernetes/wip.md
|
|
# - Reloader: kubernetes/wip.md
|
|
# - Dashboard: kubernetes/wip.md
|
|
# - Kured: kubernetes/wip.md
|
|
# - KeyCloak: kubernetes/wip.md
|
|
# - Recipes:
|
|
# - Harbor:
|
|
# - recipes/kubernetes/harbor/index.md
|
|
# Istio: recipes/kubernetes/harbor/istio.md
|
|
# - GitHub Actions Runners: kubernetes/wip.md
|
|
# - Cilium: kubernetes/wip.md
|
|
# - Concourse: kubernetes/wip.md
|
|
# - Flagger: kubernetes/wip.md
|
|
# - Flagger: kubernetes/wip.md
|
|
# - Flux: recipes/kubernetes/wip.md
|
|
# - FoundationDB: kubernetes/wip.md
|
|
# - Istio: recipes/kubernetes/wip.md
|
|
# - Jaeger: kubernetes/wip.md
|
|
# - Kiali: kubernetes/wip.md
|
|
# - Minio: kubernetes/wip.md
|
|
# - NGINX Ingress: kubernetes/wip.md
|
|
# - Polaris: kubernetes/wip.md
|
|
# - Portainer: kubernetes/wip.md
|
|
# - Prometheus: kubernetes/wip.md
|
|
# - Traefik: kubernetes/wip.md
|
|
# - Vault: kubernetes/wip.md
|
|
# - Webook Receiver: kubernetes/wip.md
|
|
- 🚀 Get Premix!:
|
|
- premix/index.md
|
|
- Operation: premix/ansible/operation.md
|
|
- Design: premix/ansible/design.md
|
|
# - Swarm: premix/swarm.md
|
|
# - Kubernetes: premix/kubernetes.md
|
|
- CHANGELOG: CHANGELOG.md
|
|
- Support: support.md
|
|
- Contribute: community/contribute.md
|
|
- Community:
|
|
- Discord: community/discord.md
|
|
- Reddit: community/reddit.md
|
|
- Support: support.md
|
|
- Contribute: community/contribute.md
|
|
- Code of Conduct: community/code-of-conduct.md
|
|
|
|
# # - Discourse: community/discourse.md
|
|
# # - GitHub: community/github.md
|
|
|
|
theme:
|
|
name: 'material'
|
|
custom_dir: 'overrides'
|
|
# disqus: 'geeks-cookbook'
|
|
logo: 'images/site-logo.svg'
|
|
favicon: 'images/site-logo.svg'
|
|
features:
|
|
- navigation.tabs
|
|
- navigation.tabs.sticky
|
|
- navigation.instant
|
|
- navigation.sections
|
|
- navigation.indexes
|
|
- navigation.top
|
|
- navigation.pruning
|
|
- search.suggest
|
|
- search.share
|
|
- content.code.annotate
|
|
- header.autohide
|
|
- announce.dismiss
|
|
- toc.follow
|
|
icon:
|
|
repo: 'fontawesome/brands/github'
|
|
palette:
|
|
|
|
# Palette toggle for automatic mode
|
|
- media: "(prefers-color-scheme)"
|
|
toggle:
|
|
icon: material/brightness-auto
|
|
name: Switch to light mode
|
|
|
|
# Toggle light mode
|
|
- media: "(prefers-color-scheme: light)"
|
|
scheme: default
|
|
primary: 'black'
|
|
accent: 'orange'
|
|
toggle:
|
|
icon: material/toggle-switch
|
|
name: Burn my eyes!
|
|
|
|
# Toggle dark mode
|
|
- media: "(prefers-color-scheme: dark)"
|
|
scheme: slate
|
|
primary: 'black'
|
|
accent: 'orange'
|
|
toggle:
|
|
icon: material/toggle-switch-off-outline
|
|
name: Love my eyes!
|
|
|
|
font:
|
|
text: 'Ubuntu'
|
|
code: 'Ubuntu Mono'
|
|
|
|
extra:
|
|
social:
|
|
- icon: 'fontawesome/brands/github'
|
|
link: 'https://github.com/funkypenguin'
|
|
- icon: 'fontawesome/brands/twitter'
|
|
link: 'https://twitter.com/funkypenguin'
|
|
- icon: 'fontawesome/brands/stack-overflow'
|
|
link: 'https://stackoverflow.com/cv/funkypenguin'
|
|
- icon: 'material/rss'
|
|
link: 'https://www.funkypenguin.co.nz/'
|
|
- icon: 'fontawesome/brands/linkedin'
|
|
link: 'https://www.linkedin.com/in/funkypenguin'
|
|
- icon: 'material/mailbox'
|
|
link: 'mailto:davidy@funkypenguin.co.nz?Subject=Hello%2C%20from%20a%20geek-cookbook%20reader%20%3B%29'
|
|
generator: false
|
|
# Plausible doesn't use cookies, so no need for this!
|
|
# consent:
|
|
# title: 'Would you like a cookie? 🍪'
|
|
# description: >
|
|
|
|
# I know. cookies suck (<I>except the fresh, warm, choc-chip ones!</I>), and so does invasive tracking. Thing is, without cookies,
|
|
# analytics can't record your visit, and I can't work out where/how to invest time to make the cookbook better.
|
|
|
|
# <p>So, with your consent, I'd like to record what you look at and where you're from, so that I can make the
|
|
# cookbook even better. My analytics are public - here's <A HREF='https://plausible.io/geek-cookbook.funkypenguin.co.nz' target="_blank">all</A> I know about you! - David</p>
|
|
# cookies:
|
|
# custom: Plausible Analytics
|
|
analytics:
|
|
provider: plausible
|
|
data_domain: geek-cookbook.funkypenguin.co.nz
|
|
feedback:
|
|
title: Was this page helpful?
|
|
ratings:
|
|
- icon: material/emoticon-happy-outline
|
|
name: This page was helpful
|
|
data: 1
|
|
note: >-
|
|
Thanks for your feedback!
|
|
- icon: material/emoticon-sad-outline
|
|
name: This page could be improved
|
|
data: 0
|
|
note: >-
|
|
Thanks for your feedback!
|
|
|
|
# Help us improve this page by
|
|
# using our <a href="..." target=_blank>feedback form</a>.
|
|
|
|
extra_css:
|
|
- extras/css/icons.css
|
|
|
|
extra_javascript:
|
|
- extras/javascript/discord.js
|
|
- extras/javascript/sortable-tables.js
|
|
- extras/javascript/feedback.js
|
|
- https://cdnjs.cloudflare.com/ajax/libs/tablesort/5.2.1/tablesort.min.js
|
|
|
|
|
|
# Extensions
|
|
markdown_extensions:
|
|
- attr_list
|
|
- admonition
|
|
- codehilite:
|
|
linenums: true
|
|
- toc:
|
|
permalink: true
|
|
- footnotes
|
|
- pymdownx.critic
|
|
- pymdownx.arithmatex
|
|
- pymdownx.betterem:
|
|
smart_enable: all
|
|
- pymdownx.caret
|
|
- pymdownx.details
|
|
- pymdownx.snippets:
|
|
check_paths: true
|
|
base_path: _snippets
|
|
- pymdownx.emoji:
|
|
emoji_index: !!python/name:materialx.emoji.twemoji
|
|
emoji_generator: !!python/name:materialx.emoji.to_svg
|
|
- pymdownx.inlinehilite
|
|
- pymdownx.magiclink:
|
|
repo_url_shorthand: true
|
|
user: funkypenguin
|
|
repo: geek-cookbook
|
|
- pymdownx.mark
|
|
- pymdownx.smartsymbols
|
|
- pymdownx.superfences:
|
|
custom_fences:
|
|
- name: mermaid
|
|
class: mermaid
|
|
format: !!python/name:pymdownx.superfences.fence_code_format
|
|
- pymdownx.tasklist:
|
|
custom_checkbox: true
|
|
- pymdownx.tilde
|
|
- pymdownx.tabbed
|
|
- meta
|
|
- md_in_html
|