diff --git a/.travis.yml b/.travis.yml index 8316e46..2a67136 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,11 @@ lang: python -# blocklist branches: except: - leanpub-preview - leanpub-publish script: - - scripts/markdown-to-markua.sh +- scripts/markdown-to-markua.sh after_success: - - scripts/push-markua-to-branch.sh +- scripts/push-markua-to-branch.sh env: - secure: "X0ruiXtzArHPaOAd5cQS0axHGwMM5HwqSHASr/KnzV1yZUPzJIrzJQYSCJmFPzk6zuboA2Tsa96zu+DftgA9N9WgzTYmjp8M10y9vcK4cpkfi5frs7GVorVLPQ5kcWwYPf/j+YzpP5OwrRSxDDG853GJ4OhoALcjmmBJk8NwIKZOkA6x2RvvcDRx6dc216QdhmouD5Hz0tImkE2rYdQNm44IN7OF6wekbEhOzN2Chz6yGit3duRvxBrNOPqmGqkFwtg0sxyQO0iBa4qvg88qrKQOIHwUG5y4rp8QcdqfRMv/lSNGEg1Mh7iDUHbZpvcAoXREXp9FMEY/SJ1uYkcEMn+GvLDQ/BOFwKjC/duWM3oMPgzjqI+gwpIdlTZt5+Qu9v4Z6+XJ5P+JIWZYtzudDVuOzVMSIzwk9y2a/ufYXGQdvGktf6H51WCcA8CO2muxLtDwDtV1okAVm+HXkgQ/pcwjqqq3n3RojN6Xxm+TJggn3HgU21qug/K1lukycwCjQbI8s0ey3soT1+oPc8Fl95n35eXTUY3DOd0u14e0Y3XKIbG9Rvyp9U8gJC2Ij6+EXSdHlFhvr5tJJLNwXkXjV3yMnLgtlSnuGBGHUpv0+XZuSsGqOropl/KDUurb2TGkIH7PjpBpFm6PhSbLViGXrupuxTvKLdsXBXospzODuEQ=" + secure: X0ruiXtzArHPaOAd5cQS0axHGwMM5HwqSHASr/KnzV1yZUPzJIrzJQYSCJmFPzk6zuboA2Tsa96zu+DftgA9N9WgzTYmjp8M10y9vcK4cpkfi5frs7GVorVLPQ5kcWwYPf/j+YzpP5OwrRSxDDG853GJ4OhoALcjmmBJk8NwIKZOkA6x2RvvcDRx6dc216QdhmouD5Hz0tImkE2rYdQNm44IN7OF6wekbEhOzN2Chz6yGit3duRvxBrNOPqmGqkFwtg0sxyQO0iBa4qvg88qrKQOIHwUG5y4rp8QcdqfRMv/lSNGEg1Mh7iDUHbZpvcAoXREXp9FMEY/SJ1uYkcEMn+GvLDQ/BOFwKjC/duWM3oMPgzjqI+gwpIdlTZt5+Qu9v4Z6+XJ5P+JIWZYtzudDVuOzVMSIzwk9y2a/ufYXGQdvGktf6H51WCcA8CO2muxLtDwDtV1okAVm+HXkgQ/pcwjqqq3n3RojN6Xxm+TJggn3HgU21qug/K1lukycwCjQbI8s0ey3soT1+oPc8Fl95n35eXTUY3DOd0u14e0Y3XKIbG9Rvyp9U8gJC2Ij6+EXSdHlFhvr5tJJLNwXkXjV3yMnLgtlSnuGBGHUpv0+XZuSsGqOropl/KDUurb2TGkIH7PjpBpFm6PhSbLViGXrupuxTvKLdsXBXospzODuEQ= diff --git a/manuscript/advanced/tiny-tiny-rss.md b/manuscript/advanced/tiny-tiny-rss.md index 0cbd6b9..471e0ef 100644 --- a/manuscript/advanced/tiny-tiny-rss.md +++ b/manuscript/advanced/tiny-tiny-rss.md @@ -31,7 +31,7 @@ I setup a directory for the ttrss data, at /data/ttrss. I created docker-compose.yml, as follows: -```` +``` rproxy: image: nginx:1.13-alpine ports: @@ -78,9 +78,9 @@ gmailsmtp: - user=davidy@funkypenguin.co.nz - pass=eqknehqflfbufzbh - DOMAIN_NAME=gmailsmtp.funkypenguin.co.nz -```` +``` -Run ````docker-compose up```` in the same directory, and watch the output. PostgreSQL container will create the "ttrss" database, and ttrss will start using it. +Run ```docker-compose up``` in the same directory, and watch the output. PostgreSQL container will create the "ttrss" database, and ttrss will start using it. # Login to UI @@ -91,23 +91,23 @@ Log into https://\. Default user is "admin" and password is " One of the native plugins enables the detection of "similar" articles. This requires the pg_trgm extension enabled in your database. -From the working directory, use ````docker exec```` to get a shell within your postgres container, and run "postgres" as the postgres user: -```` +From the working directory, use ```docker exec``` to get a shell within your postgres container, and run "postgres" as the postgres user: +``` [root@kvm nginx]# docker exec -it ttrss_postgres_1 /bin/sh # su - postgres No directory, logging in with HOME=/ $ psql psql (9.6.3) Type "help" for help. -```` +``` Add the trgm extension to your ttrss database: -```` +``` postgres=# \c ttrss You are now connected to database "ttrss" as user "postgres". ttrss=# CREATE EXTENSION pg_trgm; CREATE EXTENSION ttrss=# \q -```` +``` [ttrss]:https://tt-rss.org/ diff --git a/manuscript/book.txt b/manuscript/book.txt index e82abab..fd02ee1 100644 --- a/manuscript/book.txt +++ b/manuscript/book.txt @@ -27,6 +27,8 @@ recipies/piwik.md recipies/autopirate.md recipies/nextcloud.md recipies/portainer.md +recipies/turtle-pool.md +recipies/tiny-tiny-rss.md sections/reference.md reference/oauth_proxy.md @@ -34,3 +36,4 @@ reference/data_layout.md reference/networks.md reference/git-docker.md reference/openvpn.md +reference/troubleshooting.md diff --git a/manuscript/ha-docker-swarm/design.md b/manuscript/ha-docker-swarm/design.md index db3c61e..9cceda7 100644 --- a/manuscript/ha-docker-swarm/design.md +++ b/manuscript/ha-docker-swarm/design.md @@ -90,8 +90,8 @@ In summary, although I suffered an **unplanned power outage to all of my infrast ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/ha-docker-swarm/docker-swarm-mode.md b/manuscript/ha-docker-swarm/docker-swarm-mode.md index ac2e953..ddcf504 100644 --- a/manuscript/ha-docker-swarm/docker-swarm-mode.md +++ b/manuscript/ha-docker-swarm/docker-swarm-mode.md @@ -62,13 +62,13 @@ To add a manager to this swarm, run the following command: Run the command provided on your second node to join it to the swarm as a manager. After adding the second node, the output of ```docker node ls``` (on either host) should reflect two nodes: -```` +``` [root@ds2 davidy]# docker node ls ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS b54vls3wf8xztwfz79nlkivt8 ds1.funkypenguin.co.nz Ready Active Leader xmw49jt5a1j87a6ihul76gbgy * ds2.funkypenguin.co.nz Ready Active Reachable [root@ds2 davidy]# -```` +``` Repeat the process to add your third node. @@ -178,8 +178,8 @@ echo 'source ~/gcb-aliases.sh' >> ~/.bash_profile ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/ha-docker-swarm/keepalived.md b/manuscript/ha-docker-swarm/keepalived.md index 0a60cc2..7f922e1 100644 --- a/manuscript/ha-docker-swarm/keepalived.md +++ b/manuscript/ha-docker-swarm/keepalived.md @@ -69,8 +69,8 @@ That's it. Each node will talk to the other via unicast (no need to un-firewall 1. Some hosting platforms (OpenStack, for one) won't allow you to simply "claim" a virtual IP. Each node is only able to receive traffic targetted to its unique IP. In this case, keepalived is not the right solution, and a platform-specific load-balancing solution should be used. In OpenStack, this is Neutron's "Load Balancer As A Service" (LBAAS) component. AWS and Azure would likely include similar protections. 2. More than 2 nodes can participate in keepalived. Simply ensure that each node has the appropriate priority set, and the node with the highest priority will become the master. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/ha-docker-swarm/registry.md b/manuscript/ha-docker-swarm/registry.md index 4e42ce0..23a0ff4 100644 --- a/manuscript/ha-docker-swarm/registry.md +++ b/manuscript/ha-docker-swarm/registry.md @@ -103,17 +103,17 @@ To: ``` Then restart docker by running: -```` +``` systemctl restart docker-latest -```` +``` !!! tip "" Note the extra comma required after "false" above ## Chef's notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/ha-docker-swarm/shared-storage-ceph.md b/manuscript/ha-docker-swarm/shared-storage-ceph.md index 6e1fa0f..ea6748c 100644 --- a/manuscript/ha-docker-swarm/shared-storage-ceph.md +++ b/manuscript/ha-docker-swarm/shared-storage-ceph.md @@ -196,8 +196,8 @@ Future enhancements to this recipe include: 1. Rather than pasting a secret key into /etc/fstab (which feels wrong), I'd prefer to be able to set "secretfile" in /etc/fstab (which just points ceph.mount to a file containing the secret), but under the current CentOS Atomic, we're stuck with "secret", per https://bugzilla.redhat.com/show_bug.cgi?id=1030402 2. This recipe was written with Ceph v11 "Jewel". Ceph have subsequently releaesd v12 "Kraken". I've updated the recipe for the addition of "Manager" daemons, but it should be noted that the [only reader so far](https://discourse.geek-kitchen.funkypenguin.co.nz/u/ggilley) to attempt a Ceph install using CentOS Atomic and Ceph v12 had issues with OSDs, which lead him to [move to Ubuntu 1604](https://discourse.geek-kitchen.funkypenguin.co.nz/t/shared-storage-ceph-funky-penguins-geek-cookbook/47/24?u=funkypenguin) instead. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/ha-docker-swarm/shared-storage-gluster.md b/manuscript/ha-docker-swarm/shared-storage-gluster.md index c4b523c..77c6fd8 100644 --- a/manuscript/ha-docker-swarm/shared-storage-gluster.md +++ b/manuscript/ha-docker-swarm/shared-storage-gluster.md @@ -55,7 +55,7 @@ mount -a && mount Atomic doesn't include the Gluster server components. This means we'll have to run glusterd from within a container, with privileged access to the host. Although convoluted, I've come to prefer this design since it once again makes the OS "disposable", moving all the config into containers and code. Run the following on each host: -```` +``` docker run \ -h glusterfs-server \ -v /etc/glusterfs:/etc/glusterfs:z \ @@ -67,7 +67,7 @@ docker run \ --restart=always \ --name="glusterfs-server" \ gluster/gluster-centos -```` +``` ### Create trusted pool On a single node (doesn't matter which), run ```docker exec -it glusterfs-server bash``` to launch a shell inside the container. @@ -163,8 +163,8 @@ Future enhancements to this recipe include: 1. Migration of shared storage from GlusterFS to Ceph ()[#2](https://gitlab.funkypenguin.co.nz/funkypenguin/geeks-cookbook/issues/2)) 2. Correct the fact that volumes don't automount on boot ([#3](https://gitlab.funkypenguin.co.nz/funkypenguin/geeks-cookbook/issues/3)) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/ha-docker-swarm/traefik.md b/manuscript/ha-docker-swarm/traefik.md index ecf734e..d8b6668 100644 --- a/manuscript/ha-docker-swarm/traefik.md +++ b/manuscript/ha-docker-swarm/traefik.md @@ -152,8 +152,8 @@ Additional features I'd like to see in this recipe are: 2. Traefik webUI is available via HTTPS, protected with oauth_proxy 3. Pending a feature in docker-swarm to avoid NAT on routing-mesh-delivered traffic, update the design -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/ha-docker-swarm/vms.md b/manuscript/ha-docker-swarm/vms.md index 3e88aa7..fe5178f 100644 --- a/manuscript/ha-docker-swarm/vms.md +++ b/manuscript/ha-docker-swarm/vms.md @@ -86,8 +86,8 @@ After completing the above, you should have: ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/index.md b/manuscript/index.md index b2be860..1562a08 100644 --- a/manuscript/index.md +++ b/manuscript/index.md @@ -22,16 +22,16 @@ I want your money. 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 👋 +### Get in touch -* Tweet me up, I'm [@funkypenguin](https://twitter.com/funkypenguin)! 🐦 +* Tweet me up, I'm [@funkypenguin](https://twitter.com/funkypenguin)! * or better yet, come into the [kitchen](https://discourse.geek-kitchen.funkypenguin.co.nz/) (discussion forums) to say hi, ask a question, or suggest a new recipe! -### Buy my book 📖 +### Buy my book I'm also writing the Geek Cookbook as a formal eBook, 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! -### Donate / [Support me 💰](https://www.patreon.com/funkypenguin) +### Donate / [Support me ](https://www.patreon.com/funkypenguin) The best way to support this work is to become a [Patreon patron](https://www.patreon.com/bePatron?u=6982506) (_for as little as $1/month!_) - You get : @@ -40,7 +40,7 @@ The best way to support this work is to become a [Patreon patron](https://www.pa * 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! 🍷 💰 +.. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! Impulsively **[click here (NOW quick do it!)](https://www.patreon.com/bePatron?u=6982506)** to patronize me, or instead thoughtfully and analytically review my Patreon page / history **[here](https://www.patreon.com/funkypenguin)** and make up your own mind. @@ -54,6 +54,6 @@ I also gratefully accept donations of most fine socialist/anarchist/hobbyist cry -### Hire me 🏢 +### Hire me Need some system design work done? I do freelance consulting - [contact](https://www.funkypenguin.co.nz/contact/) me for details. diff --git a/manuscript/recipies/autopirate.md b/manuscript/recipies/autopirate.md index f0574a2..96cda27 100644 --- a/manuscript/recipies/autopirate.md +++ b/manuscript/recipies/autopirate.md @@ -1,4 +1,4 @@ -hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and organising your media 📺 🎥 🎵 📖 +hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and organising your media 📺 🎥 🎵 # AutoPirate @@ -84,15 +84,15 @@ Create at least /var/data/autopirate/authenticated-emails.txt, containing at lea **Start** with a swarm config file in docker-compose syntax, like this: -```` +``` version: '3' services: -```` +``` And **end** with a stanza like this: -```` +``` networks: traefik_public: external: true @@ -101,7 +101,7 @@ networks: ipam: config: - subnet: 172.16.11.0/24 -```` +``` !!! note Setup unique static subnets for every stack you deploy. This avoids IP/gateway conflicts which can otherwise occur when you're creating/removing stacks a lot. See [my list](/reference/networks/) here. @@ -123,8 +123,8 @@ Now work your way through the list of tools below, adding whichever tools your w * [Jackett](/recipies/autopirate/jackett/) * [End](/recipies/autopirate/end/) (launch the stack) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/end.md b/manuscript/recipies/autopirate/end.md index 1598a58..f6bdf11 100644 --- a/manuscript/recipies/autopirate/end.md +++ b/manuscript/recipies/autopirate/end.md @@ -13,8 +13,8 @@ Log into each of your new tools at its respective HTTPS URL. You'll be prompted 1. This is a complex stack. Sing out in the comments if you found a flaw or need a hand :) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/headphones.md b/manuscript/recipies/autopirate/headphones.md index 21e9e24..f4993bf 100644 --- a/manuscript/recipies/autopirate/headphones.md +++ b/manuscript/recipies/autopirate/headphones.md @@ -1,4 +1,4 @@ -hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and organising your media 📺 🎥 🎵 📖 +hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and organising your media 📺 🎥 🎵 !!! warning This is not a complete recipe - it's a component of the [autopirate](/recipies/autopirate/) "_uber-recipe_", but has been split into its own page to reduce complexity. @@ -13,7 +13,7 @@ hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and To include Headphones in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` headphones: image: linuxserver/headphones:latest env_file : /var/data/config/autopirate/headphones.env @@ -45,10 +45,10 @@ headphones_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -72,8 +72,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/jackett.md b/manuscript/recipies/autopirate/jackett.md index 54d7d1c..e3ca5f7 100644 --- a/manuscript/recipies/autopirate/jackett.md +++ b/manuscript/recipies/autopirate/jackett.md @@ -13,7 +13,7 @@ This allows for getting recent uploads (like RSS) and performing searches. Jacke To include Jackett in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` jackett: image: linuxserver/jackett:latest env_file : /var/data/config/autopirate/jackett.env @@ -45,10 +45,10 @@ jackett_proxy: -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -72,8 +72,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/lazylibrarian.md b/manuscript/recipies/autopirate/lazylibrarian.md index cc3814b..be582b3 100644 --- a/manuscript/recipies/autopirate/lazylibrarian.md +++ b/manuscript/recipies/autopirate/lazylibrarian.md @@ -17,7 +17,7 @@ To include LazyLibrarian in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` lazylibrarian: image: linuxserver/lazylibrarian:latest env_file : /var/data/config/autopirate/lazylibrarian.env @@ -57,10 +57,10 @@ calibre-server: networks: - internal -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -85,8 +85,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. The calibre-server container co-exists within the Lazy Librarian (LL) containers so that LL can automatically add a book to Calibre using the calibre-server interface. The calibre library can then be properly viewed using the [calibre-web](/recipies/calibre-web) recipe. 2. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/mylar.md b/manuscript/recipies/autopirate/mylar.md index 7b9fe87..78bca45 100644 --- a/manuscript/recipies/autopirate/mylar.md +++ b/manuscript/recipies/autopirate/mylar.md @@ -11,7 +11,7 @@ To include Mylar in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` mylar: image: linuxserver/mylar:latest env_file : /var/data/config/autopirate/mylar.env @@ -43,10 +43,10 @@ mylar_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -70,8 +70,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/nzbget.md b/manuscript/recipies/autopirate/nzbget.md index 504ceef..d0d13fb 100644 --- a/manuscript/recipies/autopirate/nzbget.md +++ b/manuscript/recipies/autopirate/nzbget.md @@ -15,9 +15,9 @@ To include NZBGet in your [AutoPirate](/recipies/autopirate/) stack (_The only reason you **wouldn't** use NZBGet, would be if you were using [SABnzbd](/recipies/autopirate/sabnzbd/) instead_), include the following in your autopirate.yml stack definition file: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` -```` +``` nzbget: image: linuxserver/nzbget env_file : /var/data/config/autopirate/nzbget.env @@ -49,7 +49,7 @@ nzbget_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! note NZBGet uses a 401 header to prompt for authentication. When you use OAuth2_proxy, this seems to break. Since we trust OAuth to authenticate us, we can just disable NZGet's own authentication, by changing ControlPassword to null in nzbget.conf (i.e. ```ControlPassword=```) @@ -77,8 +77,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/nzbhydra.md b/manuscript/recipies/autopirate/nzbhydra.md index af77cc2..2ed0533 100644 --- a/manuscript/recipies/autopirate/nzbhydra.md +++ b/manuscript/recipies/autopirate/nzbhydra.md @@ -18,7 +18,7 @@ To include NZBHydra in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` nzbhydra: image: linuxserver/hydra:latest env_file : /var/data/config/autopirate/nzbhydra.env @@ -49,10 +49,10 @@ nzbhydra_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -76,8 +76,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/ombi.md b/manuscript/recipies/autopirate/ombi.md index 80b1f87..28f7497 100644 --- a/manuscript/recipies/autopirate/ombi.md +++ b/manuscript/recipies/autopirate/ombi.md @@ -19,7 +19,7 @@ Automatically updates the status of requests when they are available on Plex/Emb To include Ombi in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` ombi: image: linuxserver/ombi:latest env_file : /var/data/config/autopirate/ombi.env @@ -50,10 +50,10 @@ ombi_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -77,8 +77,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/plexpy.md b/manuscript/recipies/autopirate/plexpy.md index 57e83a7..0629d7a 100644 --- a/manuscript/recipies/autopirate/plexpy.md +++ b/manuscript/recipies/autopirate/plexpy.md @@ -21,9 +21,9 @@ Details To include NZBGet in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` -```` +``` plexpy: image: linuxserver/plexpy:latest env_file : /var/data/config/autopirate/plexpy.env @@ -54,10 +54,10 @@ plexpy_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Chef's Notes diff --git a/manuscript/recipies/autopirate/radarr.md b/manuscript/recipies/autopirate/radarr.md index e1227f4..9fcf705 100644 --- a/manuscript/recipies/autopirate/radarr.md +++ b/manuscript/recipies/autopirate/radarr.md @@ -26,7 +26,7 @@ To include Radarr in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` radarr: image: linuxserver/radarr:latest env_file : /var/data/config/autopirate/radarr.env @@ -58,10 +58,10 @@ radarr_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -85,8 +85,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/rtorrent.md b/manuscript/recipies/autopirate/rtorrent.md index afd2b5d..8bc2d13 100644 --- a/manuscript/recipies/autopirate/rtorrent.md +++ b/manuscript/recipies/autopirate/rtorrent.md @@ -52,7 +52,7 @@ rtorrent_proxy: ``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -77,8 +77,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/sabnzbd.md b/manuscript/recipies/autopirate/sabnzbd.md index 5f34abc..d03e17f 100644 --- a/manuscript/recipies/autopirate/sabnzbd.md +++ b/manuscript/recipies/autopirate/sabnzbd.md @@ -14,7 +14,7 @@ SABnzbd is the workhorse of the stack. It takes .nzb files as input (_manually o To include SABnzbd in your [AutoPirate](/recipies/autopirate/) stack (_The only reason you **wouldn't** use SABnzbd, would be if you were using [NZBGet](/recipies/autopirate/nzbget.md) instead_), include the following in your autopirate.yml stack definition file: -```` +``` sabnzbd: image: linuxserver/sabnzbd:latest env_file : /var/data/config/autopirate/sabnzbd.env @@ -46,10 +46,10 @@ sabnzbd_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -74,8 +74,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/autopirate/sonarr.md b/manuscript/recipies/autopirate/sonarr.md index 2d3cebf..d31a2d2 100644 --- a/manuscript/recipies/autopirate/sonarr.md +++ b/manuscript/recipies/autopirate/sonarr.md @@ -13,7 +13,7 @@ To include Sonarr in your [AutoPirate](/recipies/autopirate/) stack, include the following in your autopirate.yml stack definition file: -```` +``` sonarr: image: linuxserver/sonarr:latest env_file : /var/data/config/autopirate/sonarr.env @@ -45,10 +45,10 @@ sonarr_proxy: -email-domain=example.com -provider=github -authenticated-emails-file=/authenticated-emails.txt -```` +``` !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ## Assemble more tools.. @@ -72,8 +72,8 @@ Continue through the list of tools below, adding whichever tools your want to us 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra, Ombi needs to talk to Radarr, etc. Since each tool runs within the stack under its own name, just refer to each tool by name (i.e. "radarr"), and docker swarm will resolve the name to the appropriate container. You can identify the tool-specific port by looking at the docker-compose service definition. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/calibre-web.md b/manuscript/recipies/calibre-web.md index 37ce131..d335762 100644 --- a/manuscript/recipies/calibre-web.md +++ b/manuscript/recipies/calibre-web.md @@ -60,7 +60,7 @@ Follow the [instructions](https://github.com/bitly/oauth2_proxy) to setup your o Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -127,8 +127,8 @@ Log into your new instance at https://**YOUR-FQDN**. You'll be directed to the i 1. Yes, Calibre does provide a server component. But it's not as fully-featured as Calibre-Web (_i.e., you can't use it to send ebooks directly to your Kindle_) 2. A future enhancement might be integrating this recipe with the filestore for [NextCloud](/recipies/nextcloud/), so that the desktop database (Calibre) can be kept synced with Calibre-Web. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer.md b/manuscript/recipies/cryptominer.md index 59d0aa1..f741206 100644 --- a/manuscript/recipies/cryptominer.md +++ b/manuscript/recipies/cryptominer.md @@ -29,14 +29,14 @@ For readability, I've split this recipe into multiple sub-recipies, which can be 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes 1. Ultimately I hope to move all the configuration / mining executables into docker containers, but for now, they're running on a CentOS7 host for direct access to GPUs. (Apparently it _may_ be possible to pass-thru the GPUs to docker containers, but I wanted stability first, before abstracting my hardware away from my miners) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/amd-gpu.md b/manuscript/recipies/cryptominer/amd-gpu.md index 102e721..3a45288 100644 --- a/manuscript/recipies/cryptominer/amd-gpu.md +++ b/manuscript/recipies/cryptominer/amd-gpu.md @@ -108,7 +108,7 @@ Example below: Now find an appropriate ROM to flash onto the card, and run ```atiflash -p !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes a range of RX580-compatible ROMs, some of which I've tweaked for my own GPUs. 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes a range of RX580-compatible ROMs, some of which I've tweaked for my own GPUs. Example below: @@ -155,15 +155,15 @@ Now, continue to the next stage of your grand mining adventure: 3. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 4. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 5. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -6. [Profit](/recipies/cryptominer/profit/)! 💰 +6. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes 1. My two RX580 cards (_bought alongside each other_) perform slightly differently. GPU0 works with a 2050Mhz memory clock, but GPU1 only works at 2000Mhz. Anything over 2000Mhz causes system instability. YMMV. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/exchange.md b/manuscript/recipies/cryptominer/exchange.md index dff5f54..58f82d2 100644 --- a/manuscript/recipies/cryptominer/exchange.md +++ b/manuscript/recipies/cryptominer/exchange.md @@ -43,13 +43,13 @@ Now, continue to the next stage of your grand mining adventure: 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to exchanges (_This page_) or [wallets](/recipies/cryptominer/wallet/) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/minerhotel.md b/manuscript/recipies/cryptominer/minerhotel.md index 3589d04..2e21b2f 100644 --- a/manuscript/recipies/cryptominer/minerhotel.md +++ b/manuscript/recipies/cryptominer/minerhotel.md @@ -93,13 +93,13 @@ Now, continue to the next stage of your grand mining adventure: 4. Setup your miners with Miner Hotel 🏨 (_This page_) 5. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/mining-pool.md b/manuscript/recipies/cryptominer/mining-pool.md index 2792948..9f2c0a0 100644 --- a/manuscript/recipies/cryptominer/mining-pool.md +++ b/manuscript/recipies/cryptominer/mining-pool.md @@ -46,13 +46,13 @@ Now, continue to the next stage of your grand mining adventure: 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to exchanges (_This page_) or [wallets](/recipies/cryptominer/wallet/) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/mining-rig.md b/manuscript/recipies/cryptominer/mining-rig.md index 9eb94ae..c78c225 100644 --- a/manuscript/recipies/cryptominer/mining-rig.md +++ b/manuscript/recipies/cryptominer/mining-rig.md @@ -36,7 +36,7 @@ Now, continue to the next stage of your grand mining adventure: 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! @@ -48,8 +48,8 @@ Yes. It's the ultimate _#firstworldproblem_, but if you have a means to remotely (_I hooked up a remote-controlled outlet to my rig, so that I can power-cycle it without having to crawl under the desk!_) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/monitor.md b/manuscript/recipies/cryptominer/monitor.md index b3c3c38..341d0db 100644 --- a/manuscript/recipies/cryptominer/monitor.md +++ b/manuscript/recipies/cryptominer/monitor.md @@ -27,7 +27,7 @@ Here's an early version of the script (_it's since been updated for clockspeed a !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes up-to-date versions of the InfluxDB /Grafana script mentioned above, as well as pre-setup Grafana graphs, so that patrons can simply "_git pull_" and start monitoring 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes up-to-date versions of the InfluxDB /Grafana script mentioned above, as well as pre-setup Grafana graphs, so that patrons can simply "_git pull_" and start monitoring ### Alarming on failure @@ -41,7 +41,7 @@ The script tests the output of the currently active miner, and ensures the GPUs !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes up-to-date versions of the Icinga scripts mentioned above, so that patrons can simply "_git pull_" and start monitoring 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes up-to-date versions of the Icinga scripts mentioned above, so that patrons can simply "_git pull_" and start monitoring ### Monitoring pool/miner status @@ -80,14 +80,14 @@ Now, continue to the next stage of your grand mining adventure: 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 6. Monitor your empire :heartbeat: (_this page_) -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes 1. Ultimately I hope to move all the configuration / mining executables into docker containers, but for now, they're running on a CentOS7 host for direct access to GPUs. (_Apparently it **may** be possible to pass-thru the GPUs to docker containers, but I wanted stability first, before abstracting my hardware away from my miners_) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/nvidia-gpu.md b/manuscript/recipies/cryptominer/nvidia-gpu.md index f4dde90..b3c0c23 100644 --- a/manuscript/recipies/cryptominer/nvidia-gpu.md +++ b/manuscript/recipies/cryptominer/nvidia-gpu.md @@ -152,13 +152,13 @@ Now, continue to the next stage of your grand mining adventure: 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/profit.md b/manuscript/recipies/cryptominer/profit.md index 0fa70d1..17db314 100644 --- a/manuscript/recipies/cryptominer/profit.md +++ b/manuscript/recipies/cryptominer/profit.md @@ -1,4 +1,4 @@ -# Profit! 💰 +# Profit! Well, that's it really. You're a cryptominer. Welcome to the party. @@ -12,7 +12,7 @@ To recap, you did all this: 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or [wallets](/recipies/cryptominer/wallet/) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. Profit! (_This page_) 💰 +7. Profit! (_This page_) ## What next? @@ -21,8 +21,8 @@ Get in touch and share your experience - there's a special [discord](https://dis ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/cryptominer/wallet.md b/manuscript/recipies/cryptominer/wallet.md index b77db33..0eb2d91 100644 --- a/manuscript/recipies/cryptominer/wallet.md +++ b/manuscript/recipies/cryptominer/wallet.md @@ -29,13 +29,13 @@ Now, continue to the next stage of your grand mining adventure: 4. Setup your miners with [Miner Hotel](/recipies/cryptominer/minerhotel/) 🏨 5. Send your coins to [exchanges](/recipies/cryptominer/exchange/) or wallets (_This page_) 💹 6. [Monitor](/recipies/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipies/cryptominer/profit/)! 💰 +7. [Profit](/recipies/cryptominer/profit/)! ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/duplicity.md b/manuscript/recipies/duplicity.md index 3a30147..3b743ce 100644 --- a/manuscript/recipies/duplicity.md +++ b/manuscript/recipies/duplicity.md @@ -120,7 +120,7 @@ Examine the contents of /var/data/duplicity/tmp/traefik-restored.yml to confirm Now that we have confidence in our backup/restore process, let's automate it by creating a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -165,8 +165,8 @@ Nothing will happen. Very boring. But when the cron script fires (daily), duplic 1. Automatic backup can still fail if nobody checks that it's running successfully. I'll be working on an upcoming recipe to monitor the elements of the stack, including the success/failure of duplicity jobs. 2. The container provides the facility to specify an SMTP host and port, but not credentials, which makes it close to useless. As a result, I've left SMTP out of this recipe. To enable email notifications (if your SMTP server doesn't require auth), add ```SMTP_HOST```, ```SMTP_PORT```, ```EMAIL_FROM``` and ```EMAIL_TO``` variables to duplicity.env -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/emby.md b/manuscript/recipies/emby.md index 55df6dc..6ed9577 100644 --- a/manuscript/recipies/emby.md +++ b/manuscript/recipies/emby.md @@ -36,7 +36,7 @@ GUID= Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -89,8 +89,8 @@ Log into your new instance at https://**YOUR-FQDN**, and complete the wizard-bas 2. I used the LinuxServer docker container, even though still under "active development", to maintain consistency with the [Plex](/recipies/plex/) and [autopirate](/recipies/autopirate/) recipies. 3. We don't bother exposing the HTTPS port for Emby, since [Traefik](/ha-docker-swarm/traefik/) is doing the SSL termination for us already. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/ghost.md b/manuscript/recipies/ghost.md index 728ce53..41a4c63 100644 --- a/manuscript/recipies/ghost.md +++ b/manuscript/recipies/ghost.md @@ -27,7 +27,7 @@ mkdir -p /var/data/ghost Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` version: '3' @@ -70,8 +70,8 @@ Create your first administrative account at https://**YOUR-FQDN**/admin/ [root@ds1 ghost]# ``` -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/gitlab-runner.md b/manuscript/recipies/gitlab-runner.md index 4913c12..e8c64bc 100644 --- a/manuscript/recipies/gitlab-runner.md +++ b/manuscript/recipies/gitlab-runner.md @@ -27,7 +27,7 @@ mkdir -p {runners/1,runners/2} Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` version: '3' @@ -95,8 +95,8 @@ Log into your new instance at https://**YOUR-FQDN**, with user "root" and the pa 2. Originally I deployed runners in the same stack as GitLab, but I found that they would frequently fail to start properly when I launched the stack. I think that this was because the runners started so quickly (and GitLab starts so slowly!), that they always started up reporting that the GitLab instance was invalid or unavailable. I had issues with CI builds stuck permanently in a "pending" state, which were only resolved by restarting the runner. Having the runners deployed in a separate stack to GitLab avoids this problem. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/gitlab.md b/manuscript/recipies/gitlab.md index 71fd9e7..9c2f354 100644 --- a/manuscript/recipies/gitlab.md +++ b/manuscript/recipies/gitlab.md @@ -52,9 +52,9 @@ GITLAB_ROOT_PASSWORD Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` -```` +``` version: '3' services: @@ -107,7 +107,7 @@ networks: ipam: config: - subnet: 172.16.2.0/24 -```` +``` !!! note Setup unique static subnets for every stack you deploy. This avoids IP/gateway conflicts which can otherwise occur when you're creating/removing stacks a lot. See [my list](/reference/networks/) here. @@ -134,8 +134,8 @@ A few comments on decisions taken in this design: 1. I use the **sameersbn/gitlab:latest** image, rather than a specific version. This lets me execute updates simply by redeploying the stack (and why **wouldn't** I want the latest version?) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/gollum.md b/manuscript/recipies/gollum.md index 7725c9e..f8ab547 100644 --- a/manuscript/recipies/gollum.md +++ b/manuscript/recipies/gollum.md @@ -64,7 +64,7 @@ OAUTH2_PROXY_COOKIE_SECRET= Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` version: '3' @@ -129,8 +129,8 @@ Authenticate against your OAuth provider, and then start editing your wiki! 1. In the current implementation, Gollum is a "single user" tool only. The contents of the wiki are saved as markdown files under /var/data/gollum, and all the git commits are currently "Anonymous" -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/homeassistant.md b/manuscript/recipies/homeassistant.md index 9d8582a..80b37a8 100644 --- a/manuscript/recipies/homeassistant.md +++ b/manuscript/recipies/homeassistant.md @@ -43,7 +43,7 @@ GF_AUTH_BASIC_ENABLED=false Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -132,8 +132,8 @@ Log into your new instance at https://**YOUR-FQDN**, the password you created in 1. I **tried** to protect Home Assistant using [oauth2_proxy](/reference/oauth_proxy), but HA is incompatible with the websockets implementation used by Home Assistant. Until this can be fixed, I suggest that geeks set frontend: api_key to a long and complex string, and rely on this to prevent malevolent internet miscreants from turning their lights on at 2am! -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/huginn.md b/manuscript/recipies/huginn.md index a76183e..9f6595d 100644 --- a/manuscript/recipies/huginn.md +++ b/manuscript/recipies/huginn.md @@ -69,7 +69,7 @@ BACKUP_FREQUENCY=1d Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -146,8 +146,8 @@ Log into your new instance at https://**YOUR-FQDN**. You'll need to use the "Sig 1. I initially considered putting an oauth proxy in front of Huginn, but since the invitation code logic prevents untrusted access, and since using a proxy would break oauth for sevices like Twitter integration, I left it out. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/instapy.md b/manuscript/recipies/instapy.md index d3c4dbb..c66368e 100644 --- a/manuscript/recipies/instapy.md +++ b/manuscript/recipies/instapy.md @@ -29,7 +29,7 @@ mkdir -p /var/data/instapy/logs Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -71,10 +71,10 @@ services: Create a variation of https://github.com/timgrossmann/InstaPy/blob/master/docker_quickstart.py at /var/data/instapy/instapy.py (the file we bind-mounted in the swarm config above) Change at least the following: -```` +``` insta_username = '' insta_password = '' -```` +``` Here's an example of my config, set to like a single penguin-pic per run: @@ -129,8 +129,8 @@ You can **also** watch the bot at work by VNCing to your docker swarm, password 1. Amazingly, my bot has ended up tagging more _non-penguins_ than actual penguins. I don't understand how Instagrammers come up with their hashtags! -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/kanboard.md b/manuscript/recipies/kanboard.md index aeded76..921e07e 100644 --- a/manuscript/recipies/kanboard.md +++ b/manuscript/recipies/kanboard.md @@ -42,7 +42,7 @@ mkdir -p /var/data/kanboard Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -106,8 +106,8 @@ Log into your new instance at https://**YOUR-FQDN**. Default credentials are adm 1. The default theme can be significantly improved by applying the [ThemePlus](https://github.com/phsteffen/kanboard-themeplus) plugin. 2. Kanboard becomes more useful when you integrate in/outbound email with [MailGun](https://github.com/kanboard/plugin-mailgun), [SendGrid](https://github.com/kanboard/plugin-sendgrid), or [Postmark](https://github.com/kanboard/plugin-postmark). -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/mail.md b/manuscript/recipies/mail.md index 4ed1d9a..7fc8934 100644 --- a/manuscript/recipies/mail.md +++ b/manuscript/recipies/mail.md @@ -95,7 +95,7 @@ Create the necessary DNS TXT entries for your domain(s). Note that although open Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` version: '3' @@ -171,8 +171,8 @@ Launch the mail server stack by running ```docker stack deploy docker-mailserver 2. If you're using sieve with Rainloop, take note of the [workaround](https://discourse.geek-kitchen.funkypenguin.co.nz/t/mail-server-funky-penguins-geek-cookbook/70/15) identified by [ggilley](https://discourse.geek-kitchen.funkypenguin.co.nz/u/ggilley) -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/miniflux.md b/manuscript/recipies/miniflux.md index dddbd43..c8f199e 100644 --- a/manuscript/recipies/miniflux.md +++ b/manuscript/recipies/miniflux.md @@ -67,7 +67,7 @@ The entire application is configured using environment variables, including the Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` version: '3' @@ -138,8 +138,8 @@ Log into your new instance at https://**YOUR-FQDN**, using the credentials you s 1. Find the bookmarklet under the **Settings -> Integration** page. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/nextcloud.md b/manuscript/recipies/nextcloud.md index 603875c..9483935 100644 --- a/manuscript/recipies/nextcloud.md +++ b/manuscript/recipies/nextcloud.md @@ -53,20 +53,20 @@ MYSQL_PASSWORD=set to something secure> Now create a **separate** nextcloud-db-backup.env file, to capture the environment variables necessary to perform the backup. (_If the same variables are shared with the mariadb container, they [cause issues](https://discourse.geek-kitchen.funkypenguin.co.nz/t/nextcloud-funky-penguins-geek-cookbook/254/3?u=funkypenguin) with database access_) -```` +``` # For database backup (keep 7 days daily backups) MYSQL_PWD= MYSQL_USER=root BACKUP_NUM_KEEP=7 BACKUP_FREQUENCY=1d -```` +``` ### Setup Docker Swarm Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -190,8 +190,8 @@ Then navigate to https:///index.php/settings/admin/additional, scroll 1. Since many of my other recipies use PostgreSQL, I'd have preferred to use Postgres over MariaDB, but MariaDB seems to be the [preferred database type](https://github.com/nextcloud/server/issues/5912). -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/owntracks.md b/manuscript/recipies/owntracks.md index 4ccd4df..0909dcd 100644 --- a/manuscript/recipies/owntracks.md +++ b/manuscript/recipies/owntracks.md @@ -45,7 +45,7 @@ MAIL_FROM="Wekan " Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` @@ -114,8 +114,8 @@ Log into your new instance at https://**YOUR-FQDN**, with user "root" and the pa 1. If you wanted to expose the Wekan UI directly, you could remove the oauth2_proxy from the design, and move the traefik-related labels directly to the wekan container. You'd also need to add the traefik network to the wekan container. -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/recipies/piwik.md b/manuscript/recipies/piwik.md index 0e3df08..22f5601 100644 --- a/manuscript/recipies/piwik.md +++ b/manuscript/recipies/piwik.md @@ -31,7 +31,7 @@ MYSQL_ROOT_PASSWORD=set-me-and-use-me-when-setting-up-piwik Create a docker swarm config file in docker-compose syntax (v3), something like this: !!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` ``` version: '3' @@ -92,8 +92,8 @@ Launch the Piwik stack by running ```docker stack deploy piwik -c docker-openvpn.te module docker-openvpn 1.0; @@ -27,7 +27,7 @@ EOF checkmodule -M -m -o docker-openvpn.mod docker-openvpn.te semodule_package -o docker-openvpn.pp -m docker-openvpn.mod semodule -i docker-openvpn.pp -```` +``` ## Insert the tun module @@ -35,33 +35,33 @@ Even with the SELinux policy above, I still need to insert the "tun" module into Run the following to auto-insert the tun module on boot: -```` +``` cat << EOF >> /etc/rc.d/rc.local # Insert the "tun" module so that the vpn-client container can access /dev/net/tun /sbin/modprobe tun EOF chmod 755 /etc/rc.d/rc.local -```` +``` ## Connect the VPN Finally, for each node, I exported client credentials, and SCP'd them over to the docker node, into /root/my-vpn-configs-here/. I also had to use the NET_ADMIN cap-add parameter, as illustrated below: -```` +``` docker run -d --name vpn-client \ --restart=always --cap-add=NET_ADMIN --net=host \ --device /dev/net/tun \ -v /root/my-vpn-configs-here:/vpn:z \ ekristen/openvpn-client --config /vpn/my-host-config.ovpn -```` +``` Now every time my node boots, it establishes a VPN tunnel back to my pfsense host and (_by using custom configuration directives in OpenVPN_) is assigned a static VPN IP. ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/reference/troubleshooting.md b/manuscript/reference/troubleshooting.md index 494ac63..9dbff58 100644 --- a/manuscript/reference/troubleshooting.md +++ b/manuscript/reference/troubleshooting.md @@ -19,8 +19,8 @@ Need to see what a particular container is doing? Run ```docker service logs -f ## Chef's Notes -### Tip your waiter (donate) 👏 +### Tip your waiter (donate) -Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! 👏 +Did you receive excellent service? Want to make your waiter happy? (_..and support development of current and future recipes!_) See the [support](/support/) page for (_free or paid)_ ways to say thank you! -### Your comments? 💬 +### Your comments? diff --git a/manuscript/support.md b/manuscript/support.md index 6a55266..f28cd01 100644 --- a/manuscript/support.md +++ b/manuscript/support.md @@ -25,11 +25,11 @@ Found a bug in your soup? Tell the chef by either: ## Tip the chef -### Buy my book 📖 +### Buy my book I'm also writing the Geek Cookbook as a formal eBook, 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! -### Donate / [Support me 💰](https://www.patreon.com/funkypenguin) +### Donate / [Support me ](https://www.patreon.com/funkypenguin) The best way to support this work is to become a [Patreon patron](https://www.patreon.com/bePatron?u=6982506) (_for as little as $1/month!_) - You get : @@ -38,7 +38,7 @@ The best way to support this work is to become a [Patreon patron](https://www.pa * 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! 🍷 💰 +.. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! Impulsively **[click here (NOW quick do it!)](https://www.patreon.com/bePatron?u=6982506)** to patronize me, or instead thoughtfully and analytically review my Patreon page / history **[here](https://www.patreon.com/funkypenguin)** and make up your own mind. @@ -49,10 +49,10 @@ I also gratefully accept donations of most fine socialist/anarchist/hobbyist cry | Bitcoin | 1GBJfmqARmL66gQzUy9HtNWdmAEv74nfXj | Ethereum | 0x19e60ec49e1f053cfdfc193560ecfb3caed928f1 | Litecoin | LYLEF7xTpeVbjjoZD3jGLVgvKSKTYDKbK8 -| :turtle: TurtleCoin | TRTLv2qCKYChMbU5sNkc85hzq2VcGpQidaowbnV2N6LAYrFNebMLepKKPrdif75x5hAizwfc1pX4gi5VsR9WQbjQgYcJm21zec4 +| TurtleCoin | TRTLv2qCKYChMbU5sNkc85hzq2VcGpQidaowbnV2N6LAYrFNebMLepKKPrdif75x5hAizwfc1pX4gi5VsR9WQbjQgYcJm21zec4 -### Hire me 🏢 +### Hire me Need some system design work done? I do freelance consulting - [contact](https://www.funkypenguin.co.nz/contact/) me for details. diff --git a/scripts/markdown-to-markua.sh b/scripts/markdown-to-markua.sh index 3abed57..b08da9c 100755 --- a/scripts/markdown-to-markua.sh +++ b/scripts/markdown-to-markua.sh @@ -1,3 +1,22 @@ #!/bin/bash -echo "Nananana... Batman!" > manuscript/test.md + +# Markua doesn't know what to do with 4 backticks (````), so convert to 3: +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/\`\`\`\`/\`\`\`/g" + +# Markua doesn't like emojis, so remove them: +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/👏//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/💬//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/👍//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/💰//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/🍷//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/🏢//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/❤️//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/:turtle://g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/👋//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/🐦//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/📖//g" +find manuscript -type f -name "*.md" -print0 | xargs -0 sed -i "s/🐦//g" + + + # Do nothing, yet. This is where the sed magic will go diff --git a/scripts/push-markua-to-branch.sh b/scripts/push-markua-to-branch.sh index 1c70a66..7d75f9f 100755 --- a/scripts/push-markua-to-branch.sh +++ b/scripts/push-markua-to-branch.sh @@ -19,6 +19,13 @@ upload_files() { git push --quiet --set-upstream origin-leanpub-preview leanpub-preview } +# Not needed at this stage, since github integration still works. It's noted as being deprecated however, +# so might need this in future +#trigger_preview() { +# curl -d "api_key=${LEANPUB-API-KEY}" https://leanpub.com/geek-cookbook/preview.json +#} + setup_git commit_website_files upload_files +#trigger_preview