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:
26
Dockerfile
26
Dockerfile
@@ -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
37
Dockerfile-pdf-build
Normal 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
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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*).
|
||||||
|
|
||||||
|
{ 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:
|
||||||
|
|
||||||
|
{ 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).
|
||||||
|
|||||||
@@ -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!
|
||||||
@@ -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.
|
||||||
|
|
||||||
|
{ 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"
|
||||||
|
|||||||
@@ -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!
|
||||||
|
|
||||||
|
{ 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:
|
||||||
|
|
||||||
{ loading=lazy }
|
{ 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).
|
||||||
|
|||||||
@@ -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!)
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
BIN
docs/images/discourse-flag.png
Normal file
BIN
docs/images/discourse-flag.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 89 KiB |
BIN
docs/images/discourse.png
Normal file
BIN
docs/images/discourse.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
BIN
docs/images/reddit.png
Normal file
BIN
docs/images/reddit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 146 KiB |
@@ -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)!
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
11
mkdocs.yml
11
mkdocs.yml
@@ -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/'
|
||||||
|
|||||||
@@ -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}/
|
||||||
|
|||||||
Reference in New Issue
Block a user