diff --git a/Dockerfile b/Dockerfile index 27d99bd..c7d1ebb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,22 +16,22 @@ RUN pip install \ 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 +# # 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 +# RUN apk --update --upgrade --no-cache add fontconfig ttf-freefont font-noto terminus-font \ +# && fc-cache -f \ +# && fc-list | sort diff --git a/Dockerfile-pdf-build b/Dockerfile-pdf-build new file mode 100644 index 0000000..27d99bd --- /dev/null +++ b/Dockerfile-pdf-build @@ -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 diff --git a/README.md b/README.md index a5aec91..472ad13 100644 --- a/README.md +++ b/README.md @@ -100,4 +100,3 @@ Impulsively **[click here (NOW quick do it!)][github_sponsor]** to [sponsor me][ [discourse]: https://forum.funkypenguin.co.nz/ [twitter]: https://twitter.com/funkypenguin [contact]: https://www.funkypenguin.co.nz - diff --git a/docs/community/discord.md b/docs/community/discord.md index 86d6e6b..3ea7853 100644 --- a/docs/community/discord.md +++ b/docs/community/discord.md @@ -1,7 +1,7 @@ --- 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! -icon: material/discord +icon: fontawesome/brands/discord --- # Discord diff --git a/docs/community/discourse.md b/docs/community/discourse.md index 0e39967..171ced5 100644 --- a/docs/community/discourse.md +++ b/docs/community/discourse.md @@ -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. +icon: fontawesome/brands/discourse +status: new --- # 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*). +![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). diff --git a/docs/community/index.md b/docs/community/index.md index 1cc4a3e..837e31d 100644 --- a/docs/community/index.md +++ b/docs/community/index.md @@ -12,6 +12,6 @@ Find details about our communities below: * [Discord](/community/discord/) - Realtime chat, multiple channels * [Reddit](/community/reddit/) - Geek out old-skool * [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 -* [Facebook](https://www.facebook.com/funkypenguinnz/) - Social networking for old-timers! \ No newline at end of file +* [Facebook](https://www.facebook.com/funkypenguinnz/) - Social networking for old-timers! diff --git a/docs/community/mastodon.md b/docs/community/mastodon.md index 331804c..b89a14a 100644 --- a/docs/community/mastodon.md +++ b/docs/community/mastodon.md @@ -1,12 +1,15 @@ --- title: Join our geeky, Docker/Kubernetes-flavored Mastdon 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! 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! !!! question "This is dumb, there's nobody here" diff --git a/docs/community/reddit.md b/docs/community/reddit.md index 6717e31..afb216e 100644 --- a/docs/community/reddit.md +++ b/docs/community/reddit.md @@ -1,13 +1,15 @@ --- 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! -icon: material/reddit +icon: fontawesome/brands/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! +![Reddit Screenshot](/images/reddit.png){ loading=lazy } + ## How do I join the subreddit? 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: -![](/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). diff --git a/docs/docker-swarm/authelia.md b/docs/docker-swarm/authelia.md index 3dac9d8..60d9cc6 100644 --- a/docs/docker-swarm/authelia.md +++ b/docs/docker-swarm/authelia.md @@ -242,8 +242,6 @@ services: 1. Optionally used to test 1FA authentication 2. Optionally used to test 2FA authentication - - !!! 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. @@ -253,15 +251,15 @@ Launch the Authelia stack by running ```docker stack deploy authelia -c -- __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. -- __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! -- __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! -- __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: - ## 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/). 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*) -* [SSO / authentication layer](/docker-swarm/traefik-forward-auth/) to protect unsecured / vulnerable services -* [Automated backup](/recipes/elkarbackup/) of configuration and data -* [Monitoring and metrics](/recipes/swarmprom/) collection, graphing and alerting +- [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 +- [Automated backup](/recipes/elkarbackup/) of configuration and data +- [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). @@ -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 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 @@ -94,18 +93,18 @@ I want your [support](https://github.com/sponsors/funkypenguin), either in the [ #### 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! -* Tweet me up, I'm [@funkypenguin](https://twitter.com/funkypenguin)! 🐦 -* [Contact me](https://www.funkypenguin.co.nz/contact/) by a variety of channels +- 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)! 🐦 +- [Contact me](https://www.funkypenguin.co.nz/contact/) by a variety of channels #### [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: -* warm fuzzies, -* access to the pre-mix repo, -* an anonymous plug you can pull at any time, -* and a bunch more loot based on tier +- warm fuzzies, +- access to the pre-mix repo, +- an anonymous plug you can pull at any time, +- and a bunch more loot based on tier .. 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! - - #### 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)! @@ -136,4 +133,4 @@ I regularly donate to / sponsor the following projects. **Join me** in supportin | [WidgetBot's Discord Widget](https://widgetbot.io/) | [Patreon](https://www.patreon.com/widgetbot/overview) | [Carl-bot](https://carl.gg/) | [Patreon](https://www.patreon.com/carlbot) ---8<-- "common-links.md" \ No newline at end of file +--8<-- "common-links.md" diff --git a/docs/kubernetes/cluster/k3s.md b/docs/kubernetes/cluster/k3s.md index e2b1fa3..d7a559d 100644 --- a/docs/kubernetes/cluster/k3s.md +++ b/docs/kubernetes/cluster/k3s.md @@ -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! - ## k3s single node setup 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 [^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" diff --git a/docs/kubernetes/deployment/flux/index.md b/docs/kubernetes/deployment/flux/index.md index a3d2b05..00ab7fd 100644 --- a/docs/kubernetes/deployment/flux/index.md +++ b/docs/kubernetes/deployment/flux/index.md @@ -8,4 +8,4 @@ In a break from tradition, the flux design is best understood *after* installing 1. [Install](/kubernetes/deployment/flux/install/) 2. [Design](/kubernetes/deployment/flux/design/) -3. [Operate](/kubernetes/deployment/flux/operate/) \ No newline at end of file +3. [Operate](/kubernetes/deployment/flux/operate/) diff --git a/docs/kubernetes/ssl-certificates/wildcard-certificate.md b/docs/kubernetes/ssl-certificates/wildcard-certificate.md index 10347a7..f205d74 100644 --- a/docs/kubernetes/ssl-certificates/wildcard-certificate.md +++ b/docs/kubernetes/ssl-certificates/wildcard-certificate.md @@ -16,8 +16,8 @@ This behaviour can be prohibitive, because (a) we don't want to have to request/ To take advantage of the various workarounds available, I find it best to put the certificates into a dedicated namespace, which I name.. `letsencrypt-wildcard-cert`. !!! question "Why not the cert-manager namespace?" - Because cert-manager is a _controller_, whose job it is to act on resources. I should be able to remove cert-manager entirely (even its namespace) from my cluster, and re-add it, without impacting the resources it acts upon. If the certificates lived in the `cert-manager` namespace, then I wouldn't be able to remove the namespace without also destroying the certificates. - + Because cert-manager is a _controller_, whose job it is to act on resources. I should be able to remove cert-manager entirely (even its namespace) from my cluster, and re-add it, without impacting the resources it acts upon. If the certificates lived in the `cert-manager` namespace, then I wouldn't be able to remove the namespace without also destroying the certificates. + Furthermore, we can't deploy ClusterIssuers (a CRD) in the same kustomization which deploys the helmrelease which creates those CRDs in the first place. Flux won't be able to apply the ClusterIssuers until the CRD is created, and so will fail to reconcile. ## Preparation diff --git a/docs/premix/index.md b/docs/premix/index.md index 30e8fc9..3fb8978 100644 --- a/docs/premix/index.md +++ b/docs/premix/index.md @@ -15,9 +15,9 @@ Recipes are usually "baked" in premix first, before they are published on the we ### ⛳️ Eliminate toil -Building hosts, installing OS and deploying tooling is all "prep" for the really fun stuff - deploying and using recipes! +Building hosts, installing OS and deploying tooling is all "prep" for the really fun stuff - deploying and using recipes! -Premix [eliminates TOIL](https://sre.google/sre-book/eliminating-toil/) with an ansible playbook to deploy a fresh cluster automatically, or apply individual recipes to an existing cluster. +Premix [eliminates TOIL](https://sre.google/sre-book/eliminating-toil/) with an ansible playbook to deploy a fresh cluster automatically, or apply individual recipes to an existing cluster. (*You still have to "feed" the playbook your configuration, but it's centralized, repeatable, and versionable*.) diff --git a/docs/recipes/immich.md b/docs/recipes/immich.md index e9e192d..567d295 100644 --- a/docs/recipes/immich.md +++ b/docs/recipes/immich.md @@ -1,6 +1,7 @@ --- title: Run Immich in Docker Swarm description: How to install your own immich instance using Docker Swarm +status: new --- # Immich in Docker Swarm @@ -229,7 +230,7 @@ networks: ## Launch Immich! -Launch the Immich stack by running +Launch the Immich stack by running ```bash docker stack deploy immich -c /var/data/config/immich/immich.yml @@ -237,7 +238,7 @@ docker stack deploy immich -c /var/data/config/immich/immich.yml Now hit the URL you defined in your config, and you should be prompted to create your first (admin) account, after which you can login (*with the details you just created*), and start admin-ing. Install a mobile app, connect using the same credentials, and start backing up all your photos! -## Summary +## Summary What have we achieved? We have an HTTPS-protected endpoint to target with the native mobile apps, allowing us to backup photos from mobile devices and have them become searchable, shareable, and browseable via a beautiful, Google Photos-esque interface! @@ -254,4 +255,4 @@ Sponsors have access to a [Premix](/premix/) playbook, which will set up Immich --8<-- "recipe-footer.md" [^1]: "wife-insurance": When the developer's wife is a primary user of the platform, you can bet he'll be writing quality code! :woman: :material-karate: :man: :bed: :cry: -[^2]: There's a [friendly Discord server](https://discord.com/invite/D8JsnBEuKb) for Immich too! \ No newline at end of file +[^2]: There's a [friendly Discord server](https://discord.com/invite/D8JsnBEuKb) for Immich too! diff --git a/docs/recipes/kavita.md b/docs/recipes/kavita.md index 745421b..0397051 100644 --- a/docs/recipes/kavita.md +++ b/docs/recipes/kavita.md @@ -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! --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 diff --git a/docs/recipes/keycloak/index.md b/docs/recipes/keycloak/index.md index 33745b7..c1fccd4 100644 --- a/docs/recipes/keycloak/index.md +++ b/docs/recipes/keycloak/index.md @@ -164,7 +164,7 @@ Once your user is created, to set their password, click on the "**Credentials**" Keycloak can be used with Traefik in two ways.. -#### Keycloak behind Traefik +#### Keycloak behind Traefik You'll notice that the docker compose example above includes labels for both Traefik v2 and Traefik v2. You obviously don't need both (*although it wont't hurt*), but make sure you update the example domain in the Traefik labels. Keycloak should work behind Traefik without any further customization. diff --git a/docs/recipes/kubernetes/harbor/index.md b/docs/recipes/kubernetes/harbor/index.md index 2466cc2..1067b31 100644 --- a/docs/recipes/kubernetes/harbor/index.md +++ b/docs/recipes/kubernetes/harbor/index.md @@ -1,3 +1,3 @@ # Harbor -harbor \ No newline at end of file +harbor diff --git a/docs/recipes/kubernetes/harbor/istio.md b/docs/recipes/kubernetes/harbor/istio.md index d3f9885..33df9be 100644 --- a/docs/recipes/kubernetes/harbor/istio.md +++ b/docs/recipes/kubernetes/harbor/istio.md @@ -1 +1 @@ -# Istio with Harbor \ No newline at end of file +# Istio with Harbor diff --git a/docs/recipes/kubernetes/mastodon.md b/docs/recipes/kubernetes/mastodon.md index 73acfc7..d72b2aa 100644 --- a/docs/recipes/kubernetes/mastodon.md +++ b/docs/recipes/kubernetes/mastodon.md @@ -1,6 +1,7 @@ --- title: Install Mastodon in Kubernetes description: How to install your own Mastodon instance using Kubernetes +status: new --- # Install Mastodon in Kubernetes diff --git a/docs/review/immich.md b/docs/review/immich.md index 6c65435..43442c9 100644 --- a/docs/review/immich.md +++ b/docs/review/immich.md @@ -74,7 +74,6 @@ The Mobile app seems very polished, and based on my testing, works better than t
Apparently this was 4000+ photos!
- ### Other Here's what the filesystem where photos are stored looks like: @@ -100,7 +99,7 @@ Here's what the filesystem where photos are stored looks like: /var/data/immich/upload/cae22784-474c-4527-825c-46d7f324e8e8/thumb/WEB/2245d33b-fbc5-40ee-a50b-2a234f73e3d9.jpeg ``` -As you'll note, while it's true that files are stored locally, there's no filesystem-level metadata easily parsable, like yearly or album-based folders. While the files are stored locally, and *technically* you could move them elsewhere, it certainly wouldn't be easy. +As you'll note, while it's true that files are stored locally, there's no filesystem-level metadata easily parsable, like yearly or album-based folders. While the files are stored locally, and *technically* you could move them elsewhere, it certainly wouldn't be easy. It's also not easy to access the files via any sort of sharing (*NFS, SMB, etc*), other than using the Immich UI. Par for the course though, I expect, if we want to be able to rely on the database for metadata without requiring intensive filesystem interaction. diff --git a/docs/review/index.md b/docs/review/index.md index efd80df..017d650 100644 --- a/docs/review/index.md +++ b/docs/review/index.md @@ -8,10 +8,9 @@ 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: - App | Description | Date ---------|----------| --------- [Immich][review/immich] | Google Photos replacement | 3 Aug 2022 [Mastodon][review/mastodon] | Federated microblogging social network | 9 Aug 2022 - --8<-- "common-links.md" \ No newline at end of file + --8<-- "common-links.md" diff --git a/docs/support.md b/docs/support.md index a6b375a..9795389 100644 --- a/docs/support.md +++ b/docs/support.md @@ -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 [14]: https://www.funkypenguin.co.nz - ---8<-- "common-links.md" \ No newline at end of file +--8<-- "common-links.md" diff --git a/mkdocs.yml b/mkdocs.yml index a5bd6c9..13c92a3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -32,9 +32,9 @@ plugins: # 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 + # git-committers: # This seems to create double-ups + # 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/) with-pdf: #author: David Young @@ -289,7 +289,7 @@ nav: - Discord: community/discord.md - Reddit: community/reddit.md - Mastodon: community/mastodon.md - # - Forums: community/discourse.md + - Forum: community/discourse.md - Support: support.md - Contribute: community/contribute.md - Code of Conduct: community/code-of-conduct.md @@ -351,6 +351,9 @@ theme: code: 'Ubuntu Mono' extra: + status: + new: Recently added + deprecated: Deprecated social: - icon: 'fontawesome/brands/mastodon' link: 'https://so.fnky.nz/' diff --git a/scripts/build.sh b/scripts/build.sh index 7c53e1f..6cb2e92 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -11,17 +11,17 @@ if [ -z "$GH_TOKEN" ] then pip install mkdocs-material - ENABLE_PDF_EXPORT=1 mkdocs build -f mkdocs.yml + ENABLE_PDF_EXPORT=0 mkdocs build -f mkdocs.yml else # 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 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 # Setup any necessary netlify redirects cp netlify_redirects.txt site/_redirects # Put the PDF into secret location -mkdir -p site/${PDF_PATH} -mv site/funkypenguins-geek-cookbook.pdf site/${PDF_PATH}/ +# mkdir -p site/${PDF_PATH} +# mv site/funkypenguins-geek-cookbook.pdf site/${PDF_PATH}/