1
0
mirror of https://github.com/funkypenguin/geek-cookbook/ synced 2025-12-13 17:56:26 +00:00

Fix markdownlint, add Discourse page

Signed-off-by: David Young <davidy@funkypenguin.co.nz>
This commit is contained in:
David Young
2022-08-23 10:47:09 +12:00
parent 956ebe8c38
commit 45a851df7a
30 changed files with 132 additions and 79 deletions

View File

@@ -16,22 +16,22 @@ RUN pip install \
qrcode \ qrcode \
livereload livereload
# Theoretically this could add support for headless chrome # # Theoretically this could add support for headless chrome
RUN apk add --no-cache \ # RUN apk add --no-cache \
chromium \ # chromium \
nss \ # nss \
freetype \ # freetype \
harfbuzz \ # harfbuzz \
ca-certificates \ # ca-certificates \
ttf-freefont \ # ttf-freefont \
nodejs \ # nodejs \
yarn ttf-ubuntu-font-family dbus yarn # yarn ttf-ubuntu-font-family dbus yarn
RUN git config --global --add safe.directory /docs RUN git config --global --add safe.directory /docs
# Additional font # Additional font
# COPY fonts /usr/share/fonts/Additional # COPY fonts /usr/share/fonts/Additional
RUN apk --update --upgrade --no-cache add fontconfig ttf-freefont font-noto terminus-font \ # RUN apk --update --upgrade --no-cache add fontconfig ttf-freefont font-noto terminus-font \
&& fc-cache -f \ # && fc-cache -f \
&& fc-list | sort # && fc-list | sort

37
Dockerfile-pdf-build Normal file
View File

@@ -0,0 +1,37 @@
ARG FROM_SOURCE=squidfunk/mkdocs-material
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 \
mkdocs-macros-plugin \
mkdocs-git-committers-plugin-2 \
mkdocs-meta-descriptions-plugin \
mkdocs-with-pdf \
mkdocs-extra-sass-plugin \
qrcode \
livereload
# Theoretically this could add support for headless chrome
RUN apk add --no-cache \
chromium \
nss \
freetype \
harfbuzz \
ca-certificates \
ttf-freefont \
nodejs \
yarn ttf-ubuntu-font-family dbus yarn
RUN git config --global --add safe.directory /docs
# Additional font
# COPY fonts /usr/share/fonts/Additional
RUN apk --update --upgrade --no-cache add fontconfig ttf-freefont font-noto terminus-font \
&& fc-cache -f \
&& fc-list | sort

View File

@@ -100,4 +100,3 @@ Impulsively **[click here (NOW quick do it!)][github_sponsor]** to [sponsor me][
[discourse]: https://forum.funkypenguin.co.nz/ [discourse]: https://forum.funkypenguin.co.nz/
[twitter]: https://twitter.com/funkypenguin [twitter]: https://twitter.com/funkypenguin
[contact]: https://www.funkypenguin.co.nz [contact]: https://www.funkypenguin.co.nz

View File

@@ -1,7 +1,7 @@
--- ---
title: Geek out with Funky Penguin's Discord Server title: Geek out with Funky Penguin's Discord Server
description: The most realtime and exciting way engage with our geeky community is in our Discord server! description: The most realtime and exciting way engage with our geeky community is in our Discord server!
icon: material/discord icon: fontawesome/brands/discord
--- ---
# Discord # Discord

View File

@@ -1,8 +1,27 @@
--- ---
title: Let's discourse together about geeky subjects title: Let us discourse together regarding geeky topics. Tally ho.
description: Funky Penguin's Discourse Forums serve our geeky communtiy, and consolidate comments and discussion from either the Geek Cookbook or the blog. description: Funky Penguin's Discourse Forums serve our geeky communtiy, and consolidate comments and discussion from either the Geek Cookbook or the blog.
icon: fontawesome/brands/discourse
status: new
--- ---
# Discourse # Discourse
If you're not into the new-fangled microblogging of Mastodon, or realtime chatting of Discord, can still party with us like it's 2001, using our Discourse forums (*this is also how all the recipe comments work*). If you're not into the new-fangled microblogging of Mastodon, or realtime chatting of Discord, can still party with us like it's 2001, using our Discourse forums (*this is also how all the recipe comments work*).
![Discourse Screenshot](/images/discourse.png){ loading=lazy }
## How to post
To post on the forum, first [sign up](https://forum.funkypenguin.co.nz) using either social signons (*Twitter, Discord, Google, etc*), or by (*old-skool cool!*) creating a unique username / password.
## Code of Conduct
With the goal of creating a safe and inclusive community, we've adopted the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/), as described [here](/community/code-of-conduct/).
### Reporting abuse
To report either a topic or a post as a violation of our code of conduct, use the "Flag" button as illustrated below:
![Reporting abuse in Discourse](/images/discourse-flag.png){ loading=lazy }
The topic / post will be highlighted to moderators, who will address the issue as detailed in the [enforcement guidelines](/community/code-of-conduct/#enforcement-guidelines).

View File

@@ -12,6 +12,6 @@ Find details about our communities below:
* [Discord](/community/discord/) - Realtime chat, multiple channels * [Discord](/community/discord/) - Realtime chat, multiple channels
* [Reddit](/community/reddit/) - Geek out old-skool * [Reddit](/community/reddit/) - Geek out old-skool
* [Mastodon](/community/mastodon/) - Federated, open-source microblogging platform * [Mastodon](/community/mastodon/) - Federated, open-source microblogging platform
* [Discourse](https://forum.funkypenguin.co.nz) - Forums - asyncronous communition * [Discourse](/community/discourse/) - Forums - asyncronous communition
* [GitHub](https://github.com/funkypenguin/) - Issues and PRs * [GitHub](https://github.com/funkypenguin/) - Issues and PRs
* [Facebook](https://www.facebook.com/funkypenguinnz/) - Social networking for old-timers! * [Facebook](https://www.facebook.com/funkypenguinnz/) - Social networking for old-timers!

View File

@@ -1,12 +1,15 @@
--- ---
title: Join our geeky, Docker/Kubernetes-flavored Mastdon instance title: Join our geeky, Docker/Kubernetes-flavored Mastdon instance
description: Looking for your geeky niche in the "fediverse"? Join our Mastodon instance! description: Looking for your geeky niche in the "fediverse"? Join our Mastodon instance!
icon: material/mastodon icon: fontawesome/brands/mastodon
status: new
--- ---
# Toot me up, buttercup! # Toot me up, buttercup!
Mastondon is a self-hosted / open-source microblogging platform (*heavily inspired by Twitter*), which supports federation, rather than centralization. Like email, any user on any Mastodon instance can follow, "toot" (*not tweet!*), and reply to any user on any *other* instance. Mastondon is a self-hosted / open-source microblogging platform (*heavily inspired by Twitter*), which supports federation, rather than centralization. Like email, any user on any Mastodon instance can follow, "toot" (*not tweet!*), and reply to any user on any *other* instance.
![Mastodon Screenshot](/images/mastodon.png){ loading=lazy }
Our community Mastodon server is sooo [FKNY](https://so.fnky.nz/web/directory), but if you're already using Mastodon on another server (*or your [own instance][mastodon]*), you can seamlessly interact with us from there too, thanks to the magic of federation! Our community Mastodon server is sooo [FKNY](https://so.fnky.nz/web/directory), but if you're already using Mastodon on another server (*or your [own instance][mastodon]*), you can seamlessly interact with us from there too, thanks to the magic of federation!
!!! question "This is dumb, there's nobody here" !!! question "This is dumb, there's nobody here"

View File

@@ -1,13 +1,15 @@
--- ---
title: Funky Penguin's Subreddit title: Funky Penguin's Subreddit
description: If you're a redditor, jump on over to our subreddit at https://www.reddit.com/r/funkypenguin to engage / share the latest! description: If you're a redditor, jump on over to our subreddit at https://www.reddit.com/r/funkypenguin to engage / share the latest!
icon: material/reddit icon: fontawesome/brands/reddit
--- ---
# Reddit # Reddit
If you're a redditor, jump on over to our subreddit ([r/funkypenguin](https://www.reddit.com/r/funkypenguin/)), to engage / share the latest! If you're a redditor, jump on over to our subreddit ([r/funkypenguin](https://www.reddit.com/r/funkypenguin/)), to engage / share the latest!
![Reddit Screenshot](/images/reddit.png){ loading=lazy }
## How do I join the subreddit? ## How do I join the subreddit?
1. If you're not already a member, [create](https://www.reddit.com/register/) a Reddit account 1. If you're not already a member, [create](https://www.reddit.com/register/) a Reddit account
@@ -21,6 +23,6 @@ With the goal of creating a safe and inclusive community, we've adopted the [Con
To report a violation of our code of conduct in our subreddit, use the "Report" button as illustrated below: To report a violation of our code of conduct in our subreddit, use the "Report" button as illustrated below:
![](/images/reddit-report.png){ loading=lazy } ![Report violation of code of conduct on Reddit](/images/reddit-report.png){ loading=lazy }
The reported message will be highlighted to moderators, who will address the issue as detailed in the [enforcement guidelines](/community/code-of-conduct/#enforcement-guidelines). The reported message will be highlighted to moderators, who will address the issue as detailed in the [enforcement guidelines](/community/code-of-conduct/#enforcement-guidelines).

View File

@@ -242,8 +242,6 @@ services:
1. Optionally used to test 1FA authentication 1. Optionally used to test 1FA authentication
2. Optionally used to test 2FA authentication 2. Optionally used to test 2FA authentication
!!! question "Why not just use Traefik Forward Auth?" !!! question "Why not just use Traefik Forward Auth?"
While [Traefik Forward Auth][tfa] is a very lightweight, minimal authentication layer, which provides OIDC-based authentication, Authelia provides more features such as multiple methods of authentication (*Hardware, OTP, Email*), advanced rules, and push notifications. While [Traefik Forward Auth][tfa] is a very lightweight, minimal authentication layer, which provides OIDC-based authentication, Authelia provides more features such as multiple methods of authentication (*Hardware, OTP, Email*), advanced rules, and push notifications.
@@ -259,7 +257,7 @@ You'll notice that upon successful login, you're requested to setup 2FA. If (*li
Now you're ready to test 1FA and 2FA auth, against the two "whoami" services defined in the docker-compose file. Now you're ready to test 1FA and 2FA auth, against the two "whoami" services defined in the docker-compose file.
Try to access each in turn, and confirm that you're _not_ prompted for 2FA on whoami-authelia-1fa, but you _are_ prompted for 2FA on whoami-authelia-2fa! :thumbsup: Try to access each in turn, and confirm that you're *not* prompted for 2FA on whoami-authelia-1fa, but you *are* prompted for 2FA on whoami-authelia-2fa! :thumbsup:
## Summary ## Summary
@@ -272,8 +270,7 @@ What have we achieved? By adding a simple label to any service, we can secure an
### Authelia vs Keycloak ### Authelia vs Keycloak
[KeyCloak][keycloak] is the "big daddy" of self-hosted authentication platforms - it has a beautiful GUI, and a very advanced and mature featureset. Like Authelia, KeyCloak can [use an LDAP server](/recipes/keycloak/authenticate-against-openldap/) as a backend, but _unlike_ Authelia, KeyCloak allows for 2-way sync between that LDAP backend, meaning KeyCloak can be used to _create_ and _update_ the LDAP entries (*Authelia's is just a one-way LDAP lookup - you'll need another tool to actually administer your LDAP database*). [KeyCloak][keycloak] is the "big daddy" of self-hosted authentication platforms - it has a beautiful GUI, and a very advanced and mature featureset. Like Authelia, KeyCloak can [use an LDAP server](/recipes/keycloak/authenticate-against-openldap/) as a backend, but *unlike* Authelia, KeyCloak allows for 2-way sync between that LDAP backend, meaning KeyCloak can be used to *create* and *update* the LDAP entries (*Authelia's is just a one-way LDAP lookup - you'll need another tool to actually administer your LDAP database*).
[^1]: The initial inclusion of Authelia was due to the efforts of @bencey in Discord (Thanks Ben!) [^1]: The initial inclusion of Authelia was due to the efforts of @bencey in Discord (Thanks Ben!)

View File

@@ -15,7 +15,7 @@ You too, action-geek, can save the day, by...
2. Store your swarm configuration and application data in an [orderly and consistent structure](/reference/data_layout/) 2. Store your swarm configuration and application data in an [orderly and consistent structure](/reference/data_layout/)
3. Expose all your services consistently using [Traefik](/docker-swarm/traefik/) with optional [additional per-service authentication][tfa] 3. Expose all your services consistently using [Traefik](/docker-swarm/traefik/) with optional [additional per-service authentication][tfa]
Then you can really level-up your geek-fu, by: Then you can really level-up your geek-fu, by:
4. Making your Docker Swarm highly with [keepalived](/docker-swarm/keepalived/) 4. Making your Docker Swarm highly with [keepalived](/docker-swarm/keepalived/)
5. Setup [shared storage](/docker-swarm/shared-storage-ceph/) to eliminate SPOFs 5. Setup [shared storage](/docker-swarm/shared-storage-ceph/) to eliminate SPOFs

View File

@@ -100,5 +100,4 @@ What have we achieved? By adding an additional three simple labels to any servic
[KeyCloak][keycloak] is the "big daddy" of self-hosted authentication platforms - it has a beautiful GUI, and a very advanced and mature featureset. Like Authelia, KeyCloak can [use an LDAP server](/recipes/keycloak/authenticate-against-openldap/) as a backend, but _unlike_ Authelia, KeyCloak allows for 2-way sync between that LDAP backend, meaning KeyCloak can be used to _create_ and _update_ the LDAP entries (*Authelia's is just a one-way LDAP lookup - you'll need another tool to actually administer your LDAP database*). [KeyCloak][keycloak] is the "big daddy" of self-hosted authentication platforms - it has a beautiful GUI, and a very advanced and mature featureset. Like Authelia, KeyCloak can [use an LDAP server](/recipes/keycloak/authenticate-against-openldap/) as a backend, but _unlike_ Authelia, KeyCloak allows for 2-way sync between that LDAP backend, meaning KeyCloak can be used to _create_ and _update_ the LDAP entries (*Authelia's is just a one-way LDAP lookup - you'll need another tool to actually administer your LDAP database*).
--8<-- "recipe-footer.md" --8<-- "recipe-footer.md"

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
docs/images/discourse.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

BIN
docs/images/reddit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

View File

@@ -12,25 +12,25 @@ Welcome, fellow geek :wave: If you're impatient, just start here :point_down:
<div class="grid cards" markdown> <div class="grid cards" markdown>
- __Dive into :material-docker:{ .docker .lg .middle } [Docker Swarm](/docker-swarm/design/)__ - **Dive into :material-docker:{ .docker .lg .middle } [Docker Swarm](/docker-swarm/design/)**
--- ---
The quickest way to get started, and to get your head around the basics. The quickest way to get started, and to get your head around the basics.
- __Kick it with :material-kubernetes:{ .kubernetes .lg .middle } [Kubernetes](/kubernetes/)__ - **Kick it with :material-kubernetes:{ .kubernetes .lg .middle } [Kubernetes](/kubernetes/)**
--- ---
Been around for a while? Got a high pain threshold? Jump in! Been around for a while? Got a high pain threshold? Jump in!
- __Geek out in :fontawesome-brands-discord:{ .discord .lg .middle } [Discord](http://chat.funkypenguin.co.nz)__ - **Geek out in :fontawesome-brands-discord:{ .discord .lg .middle } [Discord](http://chat.funkypenguin.co.nz)**
--- ---
Join the fun, chat with fellow geeks in realtime! Join the fun, chat with fellow geeks in realtime!
- __Fast-track with 🚀 [Premix](/premix/)!__ - **Fast-track with 🚀 [Premix](/premix/)!**
--- ---
@@ -38,17 +38,16 @@ Welcome, fellow geek :wave: If you're impatient, just start here :point_down:
</div> </div>
## What to expect ## What to expect
The "*Geek Cookbook*" is a collection of how-to guides for establishing your own container-based awesome selfhosted platform, using either [Docker Swarm](/docker-swarm/design/) or [Kubernetes](/kubernetes/). The "*Geek Cookbook*" is a collection of how-to guides for establishing your own container-based awesome selfhosted platform, using either [Docker Swarm](/docker-swarm/design/) or [Kubernetes](/kubernetes/).
Running such a platform enables you to run selfhosted services such as the [AutoPirate](/recipes/autopirate/) (*Radarr, Sonarr, NZBGet and friends*) stack, [Plex](https://www.plex.tv/), [NextCloud](https://nextcloud.com/) etc, and includes elements such as: Running such a platform enables you to run selfhosted services such as the [AutoPirate](/recipes/autopirate/) (*Radarr, Sonarr, NZBGet and friends*) stack, [Plex](https://www.plex.tv/), [NextCloud](https://nextcloud.com/) etc, and includes elements such as:
* [Automatic SSL-secured access](/docker-swarm/traefik/) to all services (*with LetsEncrypt*) - [Automatic SSL-secured access](/docker-swarm/traefik/) to all services (*with LetsEncrypt*)
* [SSO / authentication layer](/docker-swarm/traefik-forward-auth/) to protect unsecured / vulnerable services - [SSO / authentication layer](/docker-swarm/traefik-forward-auth/) to protect unsecured / vulnerable services
* [Automated backup](/recipes/elkarbackup/) of configuration and data - [Automated backup](/recipes/elkarbackup/) of configuration and data
* [Monitoring and metrics](/recipes/swarmprom/) collection, graphing and alerting - [Monitoring and metrics](/recipes/swarmprom/) collection, graphing and alerting
Recent updates and additions are posted on the [CHANGELOG](/recent-changes/), and there's a friendly community of like-minded geeks in the [Discord server](http://chat.funkypenguin.co.nz). Recent updates and additions are posted on the [CHANGELOG](/recent-changes/), and there's a friendly community of like-minded geeks in the [Discord server](http://chat.funkypenguin.co.nz).
@@ -62,7 +61,7 @@ So if you're familiar enough with the concepts above, and you've done self-hosti
1. You want to upskill. You want to work with container orchestration, Prometheus and Grafana, Kubernetes 1. You want to upskill. You want to work with container orchestration, Prometheus and Grafana, Kubernetes
2. You want to play. You want a safe sandbox to test new tools, keeping the ones you want and tossing the ones you don't. 2. You want to play. You want a safe sandbox to test new tools, keeping the ones you want and tossing the ones you don't.
3. You want reliability. Once you go from __playing__ with a tool to actually __using__ it, you want it to be available when you need it. Having to "*quickly ssh into the basement server and restart plex*" doesn't cut it when you finally convince your wife to sit down with you to watch sci-fi :robot: 3. You want reliability. Once you go from **playing** with a tool to actually **using** it, you want it to be available when you need it. Having to "*quickly ssh into the basement server and restart plex*" doesn't cut it when you finally convince your wife to sit down with you to watch sci-fi :robot:
## Testimonials ## Testimonials
@@ -94,18 +93,18 @@ I want your [support](https://github.com/sponsors/funkypenguin), either in the [
#### Get in touch 💬 #### Get in touch 💬
* Come and say hi to me and the friendly geeks in the [Discord](http://chat.funkypenguin.co.nz) chat or the [Discourse](https://forum.funkypenguin.co.nz/) forums - say hi, ask a question, or suggest a new recipe! - Come and say hi to me and the friendly geeks in the [Discord](http://chat.funkypenguin.co.nz) chat or the [Discourse](https://forum.funkypenguin.co.nz/) forums - say hi, ask a question, or suggest a new recipe!
* Tweet me up, I'm [@funkypenguin](https://twitter.com/funkypenguin)! 🐦 - Tweet me up, I'm [@funkypenguin](https://twitter.com/funkypenguin)! 🐦
* [Contact me](https://www.funkypenguin.co.nz/contact/) by a variety of channels - [Contact me](https://www.funkypenguin.co.nz/contact/) by a variety of channels
#### [Sponsor](https://github.com/sponsors/funkypenguin) me ❤️ #### [Sponsor](https://github.com/sponsors/funkypenguin) me ❤️
The best way to support this work is to become a [GitHub Sponsor](https://github.com/sponsors/funkypenguin) / [Patreon patron](https://www.patreon.com/bePatron?u=6982506). You get: The best way to support this work is to become a [GitHub Sponsor](https://github.com/sponsors/funkypenguin) / [Patreon patron](https://www.patreon.com/bePatron?u=6982506). You get:
* warm fuzzies, - warm fuzzies,
* access to the pre-mix repo, - access to the pre-mix repo,
* an anonymous plug you can pull at any time, - an anonymous plug you can pull at any time,
* and a bunch more loot based on tier - and a bunch more loot based on tier
.. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! 🍷 💰 .. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! 🍷 💰
@@ -115,8 +114,6 @@ Impulsively **[click here (NOW quick do it!)](https://github.com/sponsors/funkyp
Need some Cloud / Microservices / DevOps / Infrastructure design work done? This stuff is my bread and butter! :bread: :fork_and_knife: [Get in touch][contact], and let's talk! Need some Cloud / Microservices / DevOps / Infrastructure design work done? This stuff is my bread and butter! :bread: :fork_and_knife: [Get in touch][contact], and let's talk!
#### Buy me a coffee ☕️ #### Buy me a coffee ☕️
A sponsorship is too much commitment, and a book is TL;DR? Hit me up with a [one-time caffine shot](https://www.buymeacoffee.com/funkypenguin)! A sponsorship is too much commitment, and a book is TL;DR? Hit me up with a [one-time caffine shot](https://www.buymeacoffee.com/funkypenguin)!

View File

@@ -35,7 +35,6 @@ Some of the "let's-just-get-started" advantages to k3s are:
Strictly, it doesn't matter. I prefer the latest Ubuntu LTS server version, but that's because I like to standardize my toolset across different clusters / platforms - I find this makes it easier to manage the "cattle" :cow: over time! Strictly, it doesn't matter. I prefer the latest Ubuntu LTS server version, but that's because I like to standardize my toolset across different clusters / platforms - I find this makes it easier to manage the "cattle" :cow: over time!
## k3s single node setup ## k3s single node setup
If you only want a single-node k3s cluster, then simply run the following to do the deployment: If you only want a single-node k3s cluster, then simply run the following to do the deployment:
@@ -157,5 +156,4 @@ Cuddle your beautiful new cluster by running `kubectl cluster-info` [^1] - if th
[^2]: Looking for your k3s logs? Under Ubuntu LTS, run `journalctl -u k3s` to show your logs [^2]: Looking for your k3s logs? Under Ubuntu LTS, run `journalctl -u k3s` to show your logs
[^3]: k3s is not the only "lightweight kubernetes" game in town. Minikube (*virtualization-based*) and mikrok8s (*possibly better for Ubuntu users since it's installed in a "snap" - haha*) are also popular options. One day I'll write a "mikrok8s vs k3s" review, but it doesn't really matter for our cluster operations - as I understand it, microk8s makes HA clustering slightly easire than k3s, but you get slightly less "out-of-the-box" in return, so mikrok8s may be more suitable for experience users / production edge deployments. [^3]: k3s is not the only "lightweight kubernetes" game in town. Minikube (*virtualization-based*) and mikrok8s (*possibly better for Ubuntu users since it's installed in a "snap" - haha*) are also popular options. One day I'll write a "mikrok8s vs k3s" review, but it doesn't really matter for our cluster operations - as I understand it, microk8s makes HA clustering slightly easire than k3s, but you get slightly less "out-of-the-box" in return, so mikrok8s may be more suitable for experience users / production edge deployments.
--8<-- "recipe-footer.md" --8<-- "recipe-footer.md"

View File

@@ -1,6 +1,7 @@
--- ---
title: Run Immich in Docker Swarm title: Run Immich in Docker Swarm
description: How to install your own immich instance using Docker Swarm description: How to install your own immich instance using Docker Swarm
status: new
--- ---
# Immich in Docker Swarm # Immich in Docker Swarm

View File

@@ -14,7 +14,7 @@ So you've just watched a bunch of superhero movies, and you're suddenly inspired
There's a [public demo available](https://www.kavitareader.com/#demo) too! There's a [public demo available](https://www.kavitareader.com/#demo) too!
--8<-- "recipe-standard-ingredients.md" --8<-- "recipe-standard-ingredients.md"
* [X] [AutoPirate](/recipes/autopirate/) components (*specifically [Mylar](/recipes/autopirate/mylar/)*), for searching for, downloading, and managing comic books *[X] [AutoPirate](/recipes/autopirate/) components (*specifically [Mylar](/recipes/autopirate/mylar/)*), for searching for, downloading, and managing comic books
## Preparation ## Preparation

View File

@@ -1,6 +1,7 @@
--- ---
title: Install Mastodon in Kubernetes title: Install Mastodon in Kubernetes
description: How to install your own Mastodon instance using Kubernetes description: How to install your own Mastodon instance using Kubernetes
status: new
--- ---
# Install Mastodon in Kubernetes # Install Mastodon in Kubernetes

View File

@@ -74,7 +74,6 @@ The Mobile app seems very polished, and based on my testing, works better than t
<figcaption>Apparently this was 4000+ photos!</figcaption> <figcaption>Apparently this was 4000+ photos!</figcaption>
</figure> </figure>
### Other ### Other
Here's what the filesystem where photos are stored looks like: Here's what the filesystem where photos are stored looks like:

View File

@@ -8,7 +8,6 @@ Unlike the [Docker Swarm](/docker-swarm/) or [Kubernetes](/kubernetes/) sections
What you'll find here are opinions and notes about various self-hosted applications, which will be updated from time-to-time to keep them "fresh" :leafy_green: What you'll find here are opinions and notes about various self-hosted applications, which will be updated from time-to-time to keep them "fresh" :leafy_green:
App | Description | Date App | Description | Date
---------|----------| --------- ---------|----------| ---------
[Immich][review/immich] | Google Photos replacement | 3 Aug 2022 [Immich][review/immich] | Google Photos replacement | 3 Aug 2022

View File

@@ -83,5 +83,4 @@ A sponsorship is too much commitment, and a book is TL;DR? Hit me up with a [one
[13]: https://www.youracclaim.com/badges/a0c4a196-55ab-4472-b46b-b610b44dc00f/public_url [13]: https://www.youracclaim.com/badges/a0c4a196-55ab-4472-b46b-b610b44dc00f/public_url
[14]: https://www.funkypenguin.co.nz [14]: https://www.funkypenguin.co.nz
--8<-- "common-links.md" --8<-- "common-links.md"

View File

@@ -32,9 +32,9 @@ plugins:
# 504: ['https://www.mkdocs.org/'] # 504: ['https://www.mkdocs.org/']
# 404: ['https://github.com/manuzhang/mkdocs-htmlproofer-plugin'] # 404: ['https://github.com/manuzhang/mkdocs-htmlproofer-plugin']
# 400: ['*'] # 400: ['*']
git-committers: # git-committers: # This seems to create double-ups
repository: geek-cookbook/geek-cookbook # repository: geek-cookbook/geek-cookbook
token: !ENV GH_TOKEN # token: !ENV GH_TOKEN
meta-descriptions: # If not provided, auto-generate a description (https://pypi.org/project/mkdocs-meta-descriptions-plugin/) meta-descriptions: # If not provided, auto-generate a description (https://pypi.org/project/mkdocs-meta-descriptions-plugin/)
with-pdf: with-pdf:
#author: David Young #author: David Young
@@ -289,7 +289,7 @@ nav:
- Discord: community/discord.md - Discord: community/discord.md
- Reddit: community/reddit.md - Reddit: community/reddit.md
- Mastodon: community/mastodon.md - Mastodon: community/mastodon.md
# - Forums: community/discourse.md - Forum: community/discourse.md
- Support: support.md - Support: support.md
- Contribute: community/contribute.md - Contribute: community/contribute.md
- Code of Conduct: community/code-of-conduct.md - Code of Conduct: community/code-of-conduct.md
@@ -351,6 +351,9 @@ theme:
code: 'Ubuntu Mono' code: 'Ubuntu Mono'
extra: extra:
status:
new: Recently added
deprecated: Deprecated
social: social:
- icon: 'fontawesome/brands/mastodon' - icon: 'fontawesome/brands/mastodon'
link: 'https://so.fnky.nz/' link: 'https://so.fnky.nz/'

View File

@@ -11,17 +11,17 @@
if [ -z "$GH_TOKEN" ] if [ -z "$GH_TOKEN" ]
then then
pip install mkdocs-material pip install mkdocs-material
ENABLE_PDF_EXPORT=1 mkdocs build -f mkdocs.yml ENABLE_PDF_EXPORT=0 mkdocs build -f mkdocs.yml
else else
# Bypass search issue described at https://github.com/squidfunk/mkdocs-material/issues/3053 # Bypass search issue described at https://github.com/squidfunk/mkdocs-material/issues/3053
# git clone --depth 1 https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git # git clone --depth 1 https://${GH_TOKEN}@github.com/squidfunk/mkdocs-material-insiders.git
pip install -e mkdocs-material-insiders pip install -e mkdocs-material-insiders
ENABLE_PDF_EXPORT=1 mkdocs build -f mkdocs-insiders.yml ENABLE_PDF_EXPORT=0 mkdocs build -f mkdocs-insiders.yml
fi fi
# Setup any necessary netlify redirects # Setup any necessary netlify redirects
cp netlify_redirects.txt site/_redirects cp netlify_redirects.txt site/_redirects
# Put the PDF into secret location # Put the PDF into secret location
mkdir -p site/${PDF_PATH} # mkdir -p site/${PDF_PATH}
mv site/funkypenguins-geek-cookbook.pdf site/${PDF_PATH}/ # mv site/funkypenguins-geek-cookbook.pdf site/${PDF_PATH}/