diff --git a/README.md b/README.md index 5d3e294..93c13e4 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,108 @@ + +[cookbookurl]: https://geek-cookbook.funkypenguin.co.nz +[discourseurl]: https://discourse.geek-kitchen.funkypenguin.co.nz +[discordurl]: http://chat.funkypenguin.co.nz +[patreonurl]: https://patreon.com/funkypenguin +[blogurl]: https://www.funkypenguin.co.nz +[twitchurl]: https://www.twitch.tv/funkypenguinz +[twitterurl]: https://twitter.com/funkypenguin +[dockerurl]: https://geek-cookbook.funkypenguin.co.nz/ha-docker-swarm/design +[k8surl]: https://geek-cookbook.funkypenguin.co.nz/kubernetes/start + +
+ +[![geek-cookbook](https://raw.githubusercontent.com/geek-cookbook/autopenguin/master/images/readme_header.png)][cookbookurl] +[![Discord](https://img.shields.io/discord/396055506072109067?color=black&label=Hot%20Sweaty%20Geeks&logo=discord&logoColor=white&style=for-the-badge)][discordurl] +[![Forums](https://img.shields.io/discourse/topics?color=black&label=Forums&logo=discourse&logoColor=white&server=https%3A%2F%2Fdiscourse.geek-kitchen.funkypenguin.co.nz&style=for-the-badge)][discourseurl] +[![Cookbook](https://img.shields.io/badge/Recipes-44-black?style=for-the-badge&color=black)][cookbookurl] +[![Twitch Status](https://img.shields.io/twitch/status/funkypenguinnz?style=for-the-badge&label=LiveGeeking&logoColor=white&logo=twitch)][twitchurl] + +:wave: Welcome, traveller! +> The [Geek Cookbook][cookbookurl] is a collection of geek-friendly "recipes" to run popular applications on [Docker Swarm][dockerurl] or [Kubernetes][k8surl], in a progressive, easy-to-follow format. ***Come and [join us][discordurl], fellow geeks!*** :neckbeard: +
+ +- [What is this?](#what-is-this) + - [Who is this for?](#who-is-this-for) + - [Why should I read this?](#why-should-i-read-this) + - [What have you done for me lately? (CHANGELOG)](#what-have-you-done-for-me-lately-changelog) + - [What do you want from me?](#what-do-you-want-from-me) + - [Get in touch 👋](#get-in-touch-) + - [Buy my book 📖](#buy-my-book-) + - [Sponsor me ❤️](#sponsor--patronize-me-️) + - [Work with me 🤝](#work-with-me-) + # What is this? -Funky Penguin's "**[Geek's Cookbook](https://geek-cookbook.funkypenguin.co.nz)**" is a collection of how-to guides for establishing your own container-based self-hosting platform, using either Docker Swarm or Kubernetes. Container orchestration enables you to run self-hosted services such as [GitLab](https://gitlab.com/), [Plex](https://www.plex.tv/), [NextCloud](https://nextcloud.com), etc. +Funky Penguin's "**[Geek Cookbook](https://geek-cookbook.funkypenguin.co.nz)**" is a collection of how-to guides for establishing your own container-based self-hosting platform, using either [Docker Swarm](/ha-docker-swarm/design/) or [Kubernetes](/kubernetes/start/). +Running such a platform enables you to run self-hosted tools such as [AutoPirate](/recipes/autopirate/) (*Radarr, Sonarr, NZBGet and friends*), [Plex][plex], [NextCloud][nextcloud], and includes elements such as: + +* [Automatic SSL-secured access](/ha-docker-swarm/traefik/) to all services (*with LetsEncrypt*) +* [SSO / authentication layer](/ha-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](/CHANGELOG/), and there's a friendly community of like-minded geeks in the [Discord server](http://chat.funkypenguin.co.nz). ## Who is this for? -You already have a familiarity with concepts such as [virtual](https://libvirt.org/) [machines](https://www.virtualbox.org/), [Docker](https://www.docker.com/) containers, [LetsEncrypt SSL certificates](https://letsencrypt.org/), databases, and command-line interfaces. +You already have a familiarity with concepts such as virtual machines, [Docker](https://www.docker.com/) containers, [LetsEncrypt SSL certificates](https://letsencrypt.org/), databases, and command-line interfaces. -You've probably played with self-hosting some mainstream apps yourself, like [Plex](https://www.plex.tv/), [OwnCloud](https://owncloud.org/), [Wordpress](https://wordpress.org/) or even [SandStorm](https://sandstorm.io/). +You've probably played with self-hosting some mainstream apps yourself, like [Plex][plex], [NextCloud][nextcloud], [Wordpress][wordpress] or [Ghost][ghost]. ## Why should I read this? -So if you're familiar enough with the tools, and you've done self-hosting before, why would you read this book? +So if you're familiar enough with the concepts above, and you've done self-hosting before, why would you read any further? -1. You want to upskill. You want to do container orchestration, LetsEncrypt certificates, git collaboration. +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 host and restart the webserver_" doesn't cut it when your wife wants to know why her phone won't sync! +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. + +## What have you done for me lately? (CHANGELOG) + +Check out recent change at [CHANGELOG](/CHANGELOG/) ## What do you want from me? -I want your money. +I want your [support][github_sponsor], either in the [financial][github_sponsor] sense, or as a member of our [friendly geek community][discord] (*or both!*) -No, seriously (_but yes, I do want your money - see below_), If the above applies to you, then you're like me. I want everything I wrote above, so I ended up learning all this as I went along. I enjoy it, and I'm good at it. So I created this website, partly to make sure I documented my own setup properly. +### Get in touch 👋 -## How can I support you? +* Come and say hi to me and the friendly geeks in the [Discord][discord] chat or the [Discourse][discourse] forums - say hi, ask a question, or suggest a new recipe! +* Tweet me up, I'm [@funkypenguin][twitter]! 🐦 +* [Contact me][contact] by a variety of channels ### Buy my book 📖 -I'm also writing it as a formal book, on Leanpub (https://leanpub.com/geeks-cookbook). Buy it for $0.99 (which is really just a token gesture of support) - you can get it for free (in PDF, mobi, or epub format), or pay me what you think it's worth! +I'm also publishing the Geek Cookbook as a formal eBook (*PDF, mobi, epub*), on Leanpub (https://leanpub.com/geek-cookbook). Buy it for as little as $5 (_which is really just a token gesture of support, since all the content is available online anyway!_) or pay what you think it's worth! -### Patreonize me 💰 +### [Sponsor][github_sponsor] / [Patronize][patreon] me ❤️ -See [my Patreon page](https://www.patreon.com/funkypenguin) for details! +The best way to support this work is to become a [GitHub Sponsor](https://github.com/sponsors/funkypenguin) / [Patreon patron][patreon] (_for as little as $1/month!_) - 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 + +.. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! 🍷 💰 + +Impulsively **[click here (NOW quick do it!)][github_sponsor]** to [sponsor me][github_sponsor] via GitHub, or [patronize me via Patreon][patreon]! -### Hire me 🏢 +### Work with me 🤝 -Need some system design work done? I do freelance consulting - [contact](mailto:davidy@funypenguin.co.nz) me for details. +Need some Cloud / Microservices / DevOps / Infrastructure design work done? I'm a full-time [AWS-certified][aws_cert] consultant, this stuff is my bread and butter! :bread: :fork_and_knife: [Get in touch][contact], and let's talk business! + +[plex]: https://www.plex.tv/ +[nextcloud]: https://nextcloud.com/ +[wordpress]: https://wordpress.org/ +[ghost]: https://ghost.io/ +[discord]: http://chat.funkypenguin.co.nz +[patreon]: https://www.patreon.com/bePatron?u=6982506 +[github_sponsor]: https://github.com/sponsors/funkypenguin +[github]: https://github.com/sponsors/funkypenguin +[discourse]: https://discourse.geek-kitchen.funkypenguin.co.nz/ +[twitter]: https://twitter.com/funkypenguin +[contact]: https://www.funkypenguin.co.nz +[aws_cert]: https://www.certmetrics.com/amazon/public/badge.aspx?i=4&t=c&d=2019-02-22&ci=AWS00794574 \ No newline at end of file diff --git a/manuscript/index.md b/manuscript/index.md index 2da327c..2e06997 100644 --- a/manuscript/index.md +++ b/manuscript/index.md @@ -31,7 +31,7 @@ Check out recent change at [CHANGELOG](/CHANGELOG/) ## What do you want from me? -I want your [patronage][patreon], either in the financial sense, or as a member of our [friendly geek community][discord] (*or both!*) +I want your [support][github_sponsor], either in the [financial][github_sponsor] sense, or as a member of our [friendly geek community][discord] (*or both!*) ### Get in touch 👋 @@ -43,7 +43,7 @@ I want your [patronage][patreon], either in the financial sense, or as a member I'm also publishing the Geek Cookbook as a formal eBook (*PDF, mobi, epub*), on Leanpub (https://leanpub.com/geek-cookbook). Buy it for as little as $5 (_which is really just a token gesture of support, since all the content is available online anyway!_) or pay what you think it's worth! -### [Patronize][patreon] / [Sponsor][github_sponsor] me ❤️ +### [Sponsor][github_sponsor] / [Patronize][patreon] me ❤️ The best way to support this work is to become a [GitHub Sponsor](https://github.com/sponsors/funkypenguin) / [Patreon patron][patreon] (_for as little as $1/month!_) - You get : @@ -54,7 +54,7 @@ The best way to support this work is to become a [GitHub Sponsor](https://github .. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! 🍷 💰 -Impulsively **[click here (NOW quick do it!)][patreon]** to patronize me, or instead thoughtfully and analytically review my GitHub page **[here][github_sponsor]** and make up your own mind. +Impulsively **[click here (NOW quick do it!)][github_sponsor]** to [sponsor me][github_sponsor] via GitHub, or [patronize me via Patreon][patreon]! ### Work with me 🤝 @@ -62,12 +62,13 @@ Impulsively **[click here (NOW quick do it!)][patreon]** to patronize me, or ins Need some Cloud / Microservices / DevOps / Infrastructure design work done? I'm a full-time [AWS-certified][aws_cert] consultant, this stuff is my bread and butter! :bread: :fork_and_knife: [Get in touch][contact], and let's talk business! [plex]: https://www.plex.tv/ -[owncloud]: https://owncloud.org/ +[nextcloud]: https://nextcloud.com/ [wordpress]: https://wordpress.org/ [ghost]: https://ghost.io/ [discord]: http://chat.funkypenguin.co.nz [patreon]: https://www.patreon.com/bePatron?u=6982506 [github_sponsor]: https://github.com/sponsors/funkypenguin +[github]: https://github.com/sponsors/funkypenguin [discourse]: https://discourse.geek-kitchen.funkypenguin.co.nz/ [twitter]: https://twitter.com/funkypenguin [contact]: https://www.funkypenguin.co.nz diff --git a/scripts/build.sh b/scripts/build.sh index 854170f..4279aec 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -2,27 +2,33 @@ # This script prepares mkdocs for a build (there are some adjustments to be made to the recipes before publishing) # Copy the contents of "manuscript" to a new "publish" folder -mkdir -p publish -mkdir -p publish/overrides -cp -pr {manuscript,overrides} publish/ -cp mkdocs.yml publish/ +# mkdir -p publish +# mkdir -p publish/overrides +# cp -pr {manuscript,overrides} publish/ +# cp mkdocs.yml publish/ -# # Append a common footer to all recipes/swarm docs -# for i in `find publish/manuscript/ -name "*.md" | grep -v index.md` -# do -# # Does this recipe already have a "tip your waiter" section? -# grep -q "Tip your waiter" $i -# if [ $? -eq 1 ] -# then -# echo -e "\n" >> $i -# cat scripts/recipe-footer.md >> $i -# else -# echo "WARNING - hard-coded footer exists in $i" -# fi -# done +# Append a common footer to all recipes/swarm docs +for i in `find manuscript/ -name "*.md" | grep -v index.md` +do + # Does this recipe already have a "tip your waiter" section? + grep -q "Tip your waiter" $i + if [ $? -eq 1 ] + then + echo -e "\n" >> $i + cat scripts/recipe-footer.md >> $i + else + echo "WARNING - hard-coded footer exists in $i" + fi +done + +# Fetch git history so that we get last-updated timestamps +git fetch --unshallow # Now build the docs for publishing -mkdocs build -f publish/mkdocs.yml +# mkdocs build -f publish/mkdocs.yml +mkdocs build + # Setup any necessary netlify redirects -cp netlify_redirects.txt publish/site/_redirects +# cp netlify_redirects.txt publish/site/_redirects +cp netlify_redirects.txt site/_redirects