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

Experiment with PDF generation

Signed-off-by: David Young <davidy@funkypenguin.co.nz>
This commit is contained in:
David Young
2022-08-19 16:40:53 +12:00
parent c051e0bdad
commit abf9309cb1
317 changed files with 124 additions and 546 deletions

View File

@@ -0,0 +1,141 @@
---
title: Community Code of Conduct
description: We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
---
# Code of Conduct
Inspired by the leadership of other [great open source projects](https://www.contributor-covenant.org/adopters/), we've adopted the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/) (*below*).
Details re the implementation of the enforcement guidelines outlined below can be found in the pages detailing each of our community environments:
* [Discord](/community/discord/)
* Discourse (coming soon)
* GitHub (coming soon)
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
abuse@funkypenguin.co.nz.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
<https://www.contributor-covenant.org/version/2/0/code_of_conduct.html>.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
<https://www.contributor-covenant.org/faq>. Translations are available at
<https://www.contributor-covenant.org/translations>.

View File

@@ -0,0 +1,70 @@
---
title: How to contribute to Geek Cookbook
description: Loving the geeky recipes, and looking for a way to give back / get involved. It's not all coding - here are some ideas re various ways you can be involved!
---
# Contribute
## Spread the word ❤️
Got nothing to contribute, but want to give back to the community? Here are some ideas:
1. Star :star: the [repo](https://github.com/geek-cookbook/geek-cookbook/)
2. Tweet :bird: the [meat](https://ctt.ac/Vl6mc)!
## Contributing moneyz 💰
Sponsor [your chef](https://github.com/sponsors/funkypenguin) :heart:, or [join us](/#sponsored-projects) in supporting the open-source projects we enjoy!
## Contributing bugfixorz 🐛
Found a typo / error in a recipe? Each recipe includes a link to make the fix, directly on GitHub:
![How to fix a typo directly in GitHub](https://static.funkypenguin.co.nz/Duplicity_-_Funky_Penguins_Geek_Cookbook_2020-06-16_14-45-50.png){ loading=lazy }
Click the link to edit the recipe in Markdown format, and save to create a pull request!
Here's a [113-second video](https://static.funkypenguin.co.nz/how-to-contribute-to-geek-cookbook-quick-pr.mp4) illustrating the process!
## Contributing recipes 🎁
Want to contributing an entirely new recipe? Awesome!
For the best experience, start by [creating an issue](https://github.com/geek-cookbook/geek-cookbook/issues/) in the repo (*check whether an existing issue for this recipe exists too!*). Populating the issue template will flesh out the requirements for the recipe, and having the new recipe pre-approved will avoid wasted effort if the recipe _doesn't_ meet requirements for addition, for some reason (*i.e., if it's been superceded by an existing recipe*)
Once your issue has been reviewed and approved, start working on a PR using either GitHub Codespaces or local dev (below). As soon as you're ready to share your work, create a WIP PR, so that a preview URL will be generated. Iterate on your PR, marking it as ready for review when it's ... ready :grin:
### 🏆 GitPod
GitPod (free up to 50h/month) is by far the smoothest and most slick way to edit the cookbook. Click [here](https://gitpod.io/#https://github.com/geek-cookbook/geek-cookbook) to launch a browser-based editing session! 🥷
### 🥈 GitHub Codespaces
[GitHub Codespaces](https://github.com/features/codespaces) (_no longer free now that it's out of beta_) provides a browser-based VSCode interface, pre-configured for your development environment. For no-hassle contributions to the cookbook with realtime previews, visit the [repo](https://github.com/geek-cookbook/geek-cookbook), and when clicking the download button (*where you're usually get the URL to clone a repo*), click on "**Open with CodeSpaces**" instead:
![How to use GitHub Codespaces](https://static.funkypenguin.co.nz/2021/geek-cookbookgeek-cookbook_The_Geeks_Cookbook_is_a_collection_of_guides_for_establishing_your_own_highly-available_privat_2021-01-07_11-41-25.png){ loading=lazy }
You'll shortly be dropped into the VSCode interface, with mkdocs/material pre-installed and running. Any changes you make are auto-saved (*there's no "Save" button*), and available in the port-forwarded preview within seconds:
![Launching preview in port-forwarded tab](https://static.funkypenguin.co.nz/2021/contribute.md__geek-cookbook_Codespaces__Visual_Studio_Code_-_Insiders__Codespaces_2021-01-07_11-50-25.png){ loading=lazy }
Once happy with your changes, drive VSCode as normal to create a branch, commit, push, and create a pull request. You can also abandon the browser window at any time, and return later to pick up where you left off (*even on a different device!*)
### 🥉 Editing locally
The process is basically:
1. [Fork the repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo)
2. Clone your forked repo locally
3. Make a new branch for your recipe (*not strictly necessary, but it helps to differentiate multiple in-flight recipes*)
4. Create your new recipe as a markdown file within the existing structure of the [manuscript folder](https://github.com/geek-cookbook/geek-cookbook/tree/master/manuscript)
5. Add your recipe to the navigation by editing [mkdocs.yml](https://github.com/geek-cookbook/geek-cookbook/blob/master/mkdocs.yml#L32)
6. Test locally by running `./scripts/serve.sh` in the repo folder (*this launches a preview in Docker*), and navigating to <http://localhost:8123>
7. Rinse and repeat until you're ready to submit a PR
8. Create a pull request via the GitHub UI
9. The pull request will trigger the creation of a preview environment, as illustrated below. Use the deploy preview to confirm that your recipe is as tasty as possible!
![View a deploy preview from PR](https://static.funkypenguin.co.nz/illustrate-pr-with-deploy-preview-for-geek-cookbook.png){ loading=lazy }
## Contributing skillz 💪
Got mad skillz, but neither the time nor inclination for recipe-cooking? [Scan the GitHub contributions page](https://github.com/geek-cookbook/geek-cookbook/contribute), [Discussions](https://github.com/geek-cookbook/geek-cookbook/discussions), or jump into [Discord](/community/discord/) or [Discourse](/community/discourse/), and help your fellow geeks with their questions, or just hang out bump up our member count!

103
docs/community/discord.md Normal file
View File

@@ -0,0 +1,103 @@
---
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
---
# Discord
The most realtime and exciting way engage with our geeky community is in our [Discord server](http://chat.funkypenguin.co.nz)
<!-- markdownlint-disable MD033 -->
<iframe src="https://e.widgetbot.io/channels/396055506072109067/456689991326760973" height="600" width="800"></iframe>
!!! question "Eh? What's a Discord? Get off my lawn, young whippersnappers!!"
Yeah, I know. I also thought Discord was just for the gamer kids, but it turns out it's great for a geeky community. Why? [Let me elucidate ya.](https://www.youtube.com/watch?v=1qHoSWxVqtE)..
1. Native markdown for code blocks
2. Drag-drop screenshots
3. Costs nothing, no ads
4. Mobile notifications are reliable, individual channels mutable, etc
## How do I join the Discord server?
1. Create [an account](https://discordapp.com)
2. [Join the geek party](http://chat.funkypenguin.co.nz)!
## 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 a violation of our code of conduct in our Discord server, type `!report <thing to report>` in any channel.
Your report message will immediately be deleted from the channel, and an alert raised to moderators, who will address the issue as detailed in the [enforcement guidelines](/community/code-of-conduct/#enforcement-guidelines).
## Channels
### 📔 Information
| Channel Name | Channel Use |
|--------------------|------------------------------------------------------------|
| #announcements | Used for important announcements |
| #changelog | Used for major changes to the cookbook (to be deprecated) |
| #cookbook-updates | Updates on all pushes to the master branch of the cookbook |
| #premix-updates | Updates on all pushes to the master branch of the premix |
| #discourse-updates | Updates to Discourse topics |
### 💬 Discussion
| Channel Name | Channel Use |
|----------------|----------------------------------------------------------|
| #introductions | New? Pop in here and say hi :) |
| #general | General chat - anything goes |
| #cookbook | Discussions specifically around the cookbook and recipes |
| #kubernetes | Discussions about Kubernetes |
| #docker-swarm | Discussions about Docker Swarm |
| #today-i-learned | Post tips/tricks you've stumbled across
| #jobs | For seeking / advertising jobs, bounties, projects, etc |
| #advertisements | In here you can advertise your stream, services or websites, at a limit of 2 posts per day |
| #dev | Used for collaboratio around current development. |
### Suggestions
| Channel Name | Channel Use |
|--------------|-------------------------------------|
| #in-flight | A list of all suggestions in-flight |
| #completed | A list of completed suggestions |
### Music
| Channel Name | Channel Use |
|------------------|-----------------------------------|
| #music | DJs go here to control music |
| #listen-to-music | Jump in here to rock out to music |
## How to get help.
If you need assistance at any time there are a few commands that you can run in order to get help.
`!help` Shows help content.
`!faq` Shows frequently asked questions.
## Spread the love (inviting others)
Invite your co-geeks to Discord by:
1. Sending them a link to <http://chat.funkypenguin.co.nz>, or
2. Right-click on the Discord server name and click "Invite People"
## Formatting your message
Discord supports minimal message formatting using [markdown](https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline-).
!!! tip "Editing your most recent message"
You can edit your most-recent message by pushing the up arrow, make your edits, and then push `Enter` to save!
## How do I suggest something?
1. Find the #completed channel (*under the **Suggestions** category*), and confirm that your suggestion hasn't already been voted on.
2. Find the #in-flight channel (*also under **Suggestions***), and confirm that your suggestion isn't already in-flight (*but not completed yet*)
3. In any channel, type `!suggest [your suggestion goes here]`. A post will be created in #in-flight for other users to vote on your suggestion. Suggestions change color as more users vote on them.
4. When your suggestion is completed (*or a decision has been made*), you'll receive a DM from carl-bot

View File

@@ -0,0 +1,8 @@
---
title: Let's discourse together about geeky subjects
description: Funky Penguin's Discourse Forums serve our geeky communtiy, and consolidate comments and discussion from either the Geek Cookbook or the blog.
---
# 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*).

3
docs/community/github.md Normal file
View File

@@ -0,0 +1,3 @@
# GitHub
You've found an intentionally un-linked page! This page is under construction, and will be up shortly. In the meantime, head to <https://github.com/geek-cookbook/geek-cookbook>!

17
docs/community/index.md Normal file
View File

@@ -0,0 +1,17 @@
---
title: Funky Penguin's Geeky Communities
description: Engage with your fellow geeks, wherever they may be!
---
# Geek Community
Looking for friends / compatriates?
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
* [GitHub](https://github.com/funkypenguin/) - Issues and PRs
* [Facebook](https://www.facebook.com/funkypenguinnz/) - Social networking for old-timers!

View File

@@ -0,0 +1,47 @@
---
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
---
# 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.
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"
* Give it time. The first time you get a federated reply from someone on another instance, it just "clicks" (*at least, it did for me*)
* Follow some folks (I'm [funkypenguin@so.fnky.nz](https://so.fnky.nz/@funkypenguin))
* Install [mobile client](https://joinmastodon.org/apps)
## How do I Mastodon?
1. If you're a [sponsor][github_sponsor], check the special `#mastodon` channel in [Discord][discord]. You'll find a super-sekrit invite URL which will get you setup *instantly*
2. If you're *not* a sponsor, go to [FNKY](https://so.fnky.nz), and request an invite (*invites must be approved to prevent abuse*) - mention your [Discord][discord] username in the "Why do you want to join?" question.
3. Start tootin'!
## So who do I follow?
That.. is tricky. There's no big-tech algorithm to suggest friends based on previously-collected browsing / tracking data, you'll have to build your "social graph" from the ground up, one "brick" at a time. Start by following [me](https://so.fnky.nz/@funkypenguin). Here are some more helpful links:
* [A self-curated list of accounts, sorted by theme](https://communitywiki.org/trunk)
* [Reddit thread #1](https://www.reddit.com/r/Mastodon/comments/enr4ud/who_to_follow_on_mastodon/)
* [Reddit thread #2](https://www.reddit.com/r/Mastodon/comments/p6vpvq/wanted_positive_mastodon_accounts_to_follow/)
* [Reddit thread #3](https://www.reddit.com/r/Mastodon/comments/s0ly2r/new_user_how_do_i_find_people_to_follow/)
* [Reddit thread #4](https://www.reddit.com/r/Mastodon/comments/ublg4q/is_it_possible_to_follow_accounts_from_different/)
* [Masto.host's FAQ on finding people to follow](https://masto.host/finding-people-to-follow-on-mastodon/)
## 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/). This code of conduct applies to the Mastodon server.
### Reporting abuse
To report a violation of our code of conduct in our Mastodon server, type use Mastodon's "report" function to report a violation, as illustrated below:
![Reporting abuse in Mastodon](/images/mastodon-report-user.png){ loading=lazy }
Moderators will be alerted to your report, who will address the issue as detailed in the [enforcement guidelines](/community/code-of-conduct/#enforcement-guidelines).
--8<-- "common-links.md"

26
docs/community/reddit.md Normal file
View File

@@ -0,0 +1,26 @@
---
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
---
# 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!
## How do I join the subreddit?
1. If you're not already a member, [create](https://www.reddit.com/register/) a Reddit account
2. [Subscribe](https://www.reddit.com/r/funkypenguin/) to r/funkypenguin
## 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 a violation of our code of conduct in our subreddit, use the "Report" button as illustrated below:
![](/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).