mirror of
https://github.com/funkypenguin/geek-cookbook/
synced 2025-12-13 17:56:26 +00:00
Improve title on recipes
This commit is contained in:
@@ -4,6 +4,7 @@ FROM ${FROM_SOURCE}
|
||||
RUN apk add --no-cache py3-pip py3-pillow py3-cffi py3-brotli gcc musl-dev python3-dev pango build-base libffi-dev jpeg-dev libxslt-dev
|
||||
|
||||
RUN pip install \
|
||||
beautifulsoup4==4.9.3 \
|
||||
mkdocs-autolinks-plugin \
|
||||
mkdocs-htmlproofer-plugin \
|
||||
mkdocs-git-revision-date-localized-plugin \
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
---
|
||||
title: Pre-made ansible playbooks to deploy our self-hosted recipes
|
||||
---
|
||||
# Premix Repository
|
||||
|
||||
"Premix" is a private repository shared with [GitHub sponsors](https://github.com/sponsors/funkypenguin), which contains the necessary files and automation to quickly deploy any recipe, or even an entire [swarm](/docker-swarm/) / [cluster](/kubernetes/)! :muscle:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: A self-hosted internet archiving solution
|
||||
title: Archivebox - bookmark manager for your self-hosted stack
|
||||
---
|
||||
# Archivebox
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Run linuxserver bookstack in Docker
|
||||
title: How to run BookStack in Docker
|
||||
description: BookStack is a simple, self-hosted, easy-to-use platform for organising and storing information. Here's how to integrate linuxserver's bookstack image into your Docker Swarm stack.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Duplicati - Yet another option to backup your exciting stuff. It's good to have options.
|
||||
title: Use Duplicati in Docker to backup to backblaze / b2 and friends
|
||||
description: Duplicati - Yet another boring option to backup your exciting stuff, especially to Backblaze / B2 - It's good to have options.
|
||||
---
|
||||
|
||||
# Duplicati
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
---
|
||||
title: Use Duplicity in Docker to backup to backblaze / b2 and friends
|
||||
description: A boring recipe to backup your exciting stuff. Boring is good.
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Real heroes backup their shizz!
|
||||
title: Use elkarbackup in Docker to backup to backblaze / b2 and friends
|
||||
description: ElkarBackup is a free open-source backup solution based on RSync/RSnapshot. It's basically a web wrapper around rsync/rsnapshot, which means that your backups are just files on a filesystem, utilising hardlinks for tracking incremental changes.
|
||||
---
|
||||
|
||||
# Elkar Backup
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Ghost - Beautiful online publicatio (who you gonna call?)
|
||||
title: Blog with Ghost in Docker
|
||||
description: How to run the beautiful, publication-focused blogging engine "Ghost" using Docker
|
||||
---
|
||||
|
||||
# Ghost
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: Gitlab Runner - A gopher for GitLab
|
||||
title: How to run Gitlab Runner in Docker
|
||||
---
|
||||
|
||||
# Gitlab Runner
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
---
|
||||
title: How to run Gitlab in Docker
|
||||
---
|
||||
# GitLab
|
||||
|
||||
GitLab is a self-hosted [alternative to GitHub](https://about.gitlab.com/pricing/self-managed/feature-comparison/). The most common use case is (a set of) developers with the desire for the rich feature-set of GitHub, but with unlimited private repositories.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: Gollum - A recipe for your own git-based wiki. My preciousssss
|
||||
title: Run Gollum in Docker
|
||||
---
|
||||
|
||||
# Gollum
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: A self-hosted, hackable version of IFFTT / Zapier
|
||||
title: Run Huggin in Docker
|
||||
---
|
||||
|
||||
# Huginn
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Automate your fake Instagram life with automated fakery!
|
||||
title: How to run InstaPy in Docker
|
||||
description: Automate your fake Instagram life with automated fakery using InstaPy in Docker
|
||||
---
|
||||
|
||||
# InstaPy
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
title: How to build an IPFS cluster in Docker
|
||||
description: IPFS is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. In some ways, IPFS is similar to the World Wide Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Git repository.
|
||||
---
|
||||
# IPFS
|
||||
|
||||
!!! danger "This recipe is a work in progress"
|
||||
@@ -8,7 +12,7 @@ The intention of this recipe is to provide a local IPFS cluster for the purpose
|
||||
|
||||
{ loading=lazy }
|
||||
|
||||
Description. IPFS is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. In some ways, IPFS is similar to the World Wide Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Git repository.
|
||||
IPFS is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. In some ways, IPFS is similar to the World Wide Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Git repository.
|
||||
|
||||
## Ingredients
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Get your personal kanban on!
|
||||
title: How to run Kanboard using Docker
|
||||
description: Run Kanboard with Docker to get your personal kanban on!
|
||||
---
|
||||
|
||||
# Kanboard
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
title: Integrate LDAP server with Keycloak for user federation
|
||||
description: Here's how we'll add an LDAP provider to our KeyCloak server for user federation.
|
||||
---
|
||||
# Authenticate KeyCloak against OpenLDAP
|
||||
|
||||
!!! warning
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
# Create KeyCloak Users
|
||||
---
|
||||
title: Create users in Keycloak
|
||||
description: Unless you plan to authenticate against an outside provider (OpenLDAP, below, for example_), you'll want to create some local users..
|
||||
---
|
||||
# Create Keycloak Users
|
||||
|
||||
!!! warning
|
||||
This is not a complete recipe - it's an optional component of the [Keycloak recipe](/recipes/keycloak/), but has been split into its own page to reduce complexity.
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
---
|
||||
title: How to setup OIDC server in Docker with KeyCloak
|
||||
description: Kick-ass OIDC and identity management
|
||||
---
|
||||
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
---
|
||||
title: How to setup OIDC provider in KeyCloak
|
||||
description: Having an authentication provider is not much use until you start authenticating things against it! In order to authenticate against KeyCloak using OpenID Connect (OIDC), which is required for Traefik Forward Auth, we'll setup a client in KeyCloak...
|
||||
---
|
||||
# Add OIDC Provider to KeyCloak
|
||||
|
||||
!!! warning
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Bazinga! Comic book management FTW!
|
||||
title: How to run Komga with Docker
|
||||
description: Run Komga under Docker Swarm in docker-compose syntax
|
||||
---
|
||||
|
||||
# Komga
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: A self-contained mailserver with spam-fighting friends
|
||||
title: Run postfix / dovecot with docker-mailserver
|
||||
description: A self-contained mailserver (postfix, dovecot) in Docker with spam-fighting friends (spamassassin, clamav)
|
||||
---
|
||||
|
||||
# Mail Server
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: A lightweight minimalist RSS reader
|
||||
title: Read RSS in peace with miniflux on Docker
|
||||
---
|
||||
|
||||
# Miniflux
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Self-hosted S3-compatible object storage
|
||||
title: Run Minio on Docker (using compose format in swarm)
|
||||
description: How to run Minio's self-hosted S3-compatible object storage under Docker Swarm, using docker-compose v3 syntax
|
||||
---
|
||||
|
||||
# Minio
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Share docs. Backup files. Share stuff.
|
||||
title: How to run Nextcloud in Docker (behind Traefik)
|
||||
description: We can now run Nextcloud in our Docker Swarm, with LetsEncrypt SSL termination handled by Traefik
|
||||
---
|
||||
|
||||
# NextCloud
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Authenticate like it's 1990!
|
||||
title: Run OpenLDAP in Docker
|
||||
description: How to run an OpenLDAP server in Docker Swarm, with LDAP Account Manager. Authenticate like it's 1990!
|
||||
---
|
||||
|
||||
# OpenLDAP
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: Spy on yourself.
|
||||
title: Run OwnTracks under Docker
|
||||
---
|
||||
|
||||
# OwnTracks
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
---
|
||||
description: Easily index, search, and view archive all of your scanned dead-tree documents
|
||||
title: Run paperless-ngx under Docker
|
||||
description: Easily index, search, and view archive all of your scanned dead-tree documents with Paperless NGX, under Docker
|
||||
---
|
||||
|
||||
# Paperless NG
|
||||
# Paperless NGX
|
||||
|
||||
Paper is a nightmare. Environmental issues aside, there’s no excuse for it in the 21st century. It takes up space, collects dust, doesn’t support any form of a search feature, indexing is tedious, it’s heavy and prone to damage & loss. [^1] Paperless NG will OCR, index, and store data about your documents so they are easy to search and view, unlike that hulking metal file cabinet you have in your office.
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Is that IP address in use?
|
||||
title: Run phpIPAM under Docker
|
||||
description: Is that IP address in use? Do some DHP / Discovery with phpIPAM under Docker
|
||||
---
|
||||
|
||||
# phpIPAM
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: A UI to make Docker less geeky
|
||||
title: Run Portainer in Docker Swarm (now with Dark Mode!)
|
||||
description: Portainer is a UI to make Docker less geeky, runs under Docker Swarm (and Kubernetes!) and most importantly, now supports dark mode!
|
||||
---
|
||||
|
||||
# Portainer
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
---
|
||||
title: Realms is a git-based wiki, and it runs under Docker!
|
||||
description: A git-based wiki with auth and registration
|
||||
---
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: Read-it-later, mate!
|
||||
title: Run Wallabag under Docker (compose), mate!
|
||||
---
|
||||
|
||||
# Wallabag
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
description: A self-hosted Trello
|
||||
title: Run Wekan under Docker
|
||||
---
|
||||
|
||||
# Wekan
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
description: Terminal in a browser, baby!
|
||||
title: Use wetty under Docker for SSH in the browser
|
||||
description: Use weTTY to run a terminal in a browser, baby!
|
||||
---
|
||||
|
||||
# Wetty
|
||||
|
||||
405
mkdocs copy.yml
Normal file
405
mkdocs copy.yml
Normal file
@@ -0,0 +1,405 @@
|
||||
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:
|
||||
privacy:
|
||||
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
|
||||
meta-descriptions: # If not provided, auto-generate a description (https://pypi.org/project/mkdocs-meta-descriptions-plugin/)
|
||||
|
||||
#theme_dir: mkdocs-material
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Docker Swarm:
|
||||
- docker-swarm/index.md
|
||||
- Preparation:
|
||||
- Design: docker-swarm/design.md
|
||||
- Nodes: docker-swarm/nodes.md
|
||||
- Shared Storage (Ceph): docker-swarm/shared-storage-ceph.md
|
||||
- Shared Storage (GlusterFS): docker-swarm/shared-storage-gluster.md
|
||||
- Keepalived: docker-swarm/keepalived.md
|
||||
- Docker Swarm Mode: docker-swarm/docker-swarm-mode.md
|
||||
- Traefik: docker-swarm/traefik.md
|
||||
- Traefik Forward Auth:
|
||||
- docker-swarm/traefik-forward-auth/index.md
|
||||
- Dex (static): docker-swarm/traefik-forward-auth/dex-static.md
|
||||
- Google: docker-swarm/traefik-forward-auth/google.md
|
||||
- KeyCloak: docker-swarm/traefik-forward-auth/keycloak.md
|
||||
- Authelia: docker-swarm/authelia.md
|
||||
- Registry: 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: docker-swarm/traefik.md
|
||||
- Traefik Forward Auth:
|
||||
- docker-swarm/traefik-forward-auth/index.md
|
||||
- Dex (static): docker-swarm/traefik-forward-auth/dex-static.md
|
||||
- Google: docker-swarm/traefik-forward-auth/google.md
|
||||
- KeyCloak: 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:
|
||||
- kubernetes/deployment/flux/index.md
|
||||
- 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
|
||||
@@ -13,7 +13,7 @@ plugins:
|
||||
back_cover: true
|
||||
#cover_title: TITLE TEXT
|
||||
#cover_subtitle: SUBTITLE TEXT
|
||||
#custom_template_path: TEMPLATES PATH
|
||||
# custom_template_path: pdf_templates
|
||||
#toc_title: TOC TITLE TEXT
|
||||
#heading_shift: true
|
||||
toc_level: 3
|
||||
@@ -30,10 +30,16 @@ plugins:
|
||||
text: ALTERNATE TEXT
|
||||
- src: ...
|
||||
# two_columns_level: 3
|
||||
render_js: true
|
||||
# headless_chrome_path: headless-chromium
|
||||
render_js: false
|
||||
headless_chrome_path: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
|
||||
|
||||
output_path: funky-penguins-geek-cookbook.pdf
|
||||
debug_html: true
|
||||
show_anchors: true
|
||||
verbose: true
|
||||
|
||||
extra_css: []
|
||||
extra_javascript: []
|
||||
|
||||
theme:
|
||||
font: false
|
||||
BIN
pdf_event_hook/__pycache__/__init__.cpython-39.pyc
Normal file
BIN
pdf_event_hook/__pycache__/__init__.cpython-39.pyc
Normal file
Binary file not shown.
528
print-preview.html
Normal file
528
print-preview.html
Normal file
File diff suppressed because one or more lines are too long
1
sample
Submodule
1
sample
Submodule
Submodule sample added at ccf20e5a12
@@ -2,9 +2,9 @@
|
||||
set -e
|
||||
# docker build --build-arg FROM_SOURCE=ghcr.io/geek-cookbook/mkdocs-material-insiders . -t funkypenguin/mkdocs-material --platform amd64
|
||||
|
||||
# Prepare slimmed-down versions for PDFing
|
||||
# Prepare slimmed-down versions for PDFing (replace gsed with sed for linux)
|
||||
cp -rf manuscript docs_to_pdf
|
||||
find docs_to_pdf -type f -exec sed -i -e 's/recipe-footer.md/common-links.md/g' {} \;
|
||||
find docs_to_pdf -type f -exec gsed -i -e 's/recipe-footer.md/common-links.md/g' {} \;
|
||||
|
||||
# Build PDF from slimmed recipes
|
||||
docker run --rm --name mkdocs-material -e ENABLE_PDF_EXPORT=1 -v ${PWD}/docs_to_pdf:/docs funkypenguin/mkdocs-material build -f mkdocs-pdf-print.yml
|
||||
|
||||
1
templates/cover.html
Normal file
1
templates/cover.html
Normal file
@@ -0,0 +1 @@
|
||||
I am a cover!
|
||||
45
templates/styles.scss
Normal file
45
templates/styles.scss
Normal file
@@ -0,0 +1,45 @@
|
||||
@media print {
|
||||
html {
|
||||
font-size: 95%;
|
||||
font-family: 'Ubuntu';
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 11.5pt;
|
||||
font-family: 'Ubuntu';
|
||||
}
|
||||
|
||||
article {
|
||||
font-size: 0.8rem;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6,
|
||||
label {
|
||||
font-family: 'Gentium Book Basic', 'Helvetica Neue', Helvetica, Arial, 'Noto Sans JP', 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
pre,
|
||||
code,
|
||||
var,
|
||||
samp,
|
||||
kbd,
|
||||
tt {
|
||||
font-family: 'Noto Sans Mono CJK JP', 'Courier New', monospace, serif;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
pre code,
|
||||
pre var,
|
||||
pre samp,
|
||||
pre kbd,
|
||||
pre tt {
|
||||
font-size: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user