mirror of
https://github.com/funkypenguin/geek-cookbook/
synced 2025-12-13 17:56:26 +00:00
Prevent markdown formatting from breaking leanpub render
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
name: Notify Discord to cookbook update
|
name: Update leanpub branches
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -7,16 +7,42 @@ on:
|
|||||||
paths:
|
paths:
|
||||||
- 'manuscript/*.md'
|
- 'manuscript/*.md'
|
||||||
- 'manuscript/**/*.md'
|
- 'manuscript/**/*.md'
|
||||||
|
- '.github/workflows/*'
|
||||||
|
- 'scripts/*'
|
||||||
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
update-leanpub:
|
||||||
|
name: update-leanpub
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
- name: Checkout charts repo
|
- name: Checkout charts repo
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Merge to leanpub-preview branch
|
- name: Checkout latest leanpub-preview branch
|
||||||
uses: devmasx/merge-branch@v1.1.0
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
type: now
|
repository: ${{ env.GITHUB_PAGES_REPO }}
|
||||||
target_branch: 'leanpub-preview'
|
ref: leanpub-preview
|
||||||
env:
|
path: leanpub-preview
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
|
- name: Replace contents of leanpub-preview branch
|
||||||
|
run: |
|
||||||
|
rm -rf leanpub-preview/manuscript
|
||||||
|
rm -rf leanpub-preview/scripts
|
||||||
|
cp -rf manuscript leanpub-preview/
|
||||||
|
cp -rf scripts leanpub-preview/
|
||||||
|
cd leanpub-preview
|
||||||
|
./scripts/markdown-to-markua.sh
|
||||||
|
git config --local --unset-all "http.https://github.com/.extraheader"
|
||||||
|
git config --global user.email "autopenguin@funkypenguin.co.nz"
|
||||||
|
git config --global user.name "AutoPenguin"
|
||||||
|
git add .
|
||||||
|
git commit -m 'Update for leanpub preview'
|
||||||
|
|
||||||
|
- name: Push changes
|
||||||
|
uses: ad-m/github-push-action@master
|
||||||
|
with:
|
||||||
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
directory: leanpub-preview
|
||||||
|
branch: leanpub-preview
|
||||||
11
.travis.yml
11
.travis.yml
@@ -1,11 +0,0 @@
|
|||||||
lang: python
|
|
||||||
branches:
|
|
||||||
except:
|
|
||||||
- leanpub-preview
|
|
||||||
- leanpub-publish
|
|
||||||
script:
|
|
||||||
- scripts/markdown-to-markua.sh
|
|
||||||
after_success:
|
|
||||||
- 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=
|
|
||||||
@@ -78,7 +78,6 @@ sections/reference.md
|
|||||||
reference/oauth_proxy.md
|
reference/oauth_proxy.md
|
||||||
reference/data_layout.md
|
reference/data_layout.md
|
||||||
reference/networks.md
|
reference/networks.md
|
||||||
reference/containers.md
|
|
||||||
reference/git-docker.md
|
reference/git-docker.md
|
||||||
reference/openvpn.md
|
reference/openvpn.md
|
||||||
reference/troubleshooting.md
|
reference/troubleshooting.md
|
||||||
@@ -133,11 +133,11 @@ The process takes about 30 seconds, after which, you'll have a MVC (*Minimum Via
|
|||||||
|
|
||||||
It's now necessary to tranfer the following files to your ==other== nodes, so that cephadm can add them to your cluster, and so that they'll be able to mount the cephfs when we're done:
|
It's now necessary to tranfer the following files to your ==other== nodes, so that cephadm can add them to your cluster, and so that they'll be able to mount the cephfs when we're done:
|
||||||
|
|
||||||
Path on master | Path on non-master
|
| Path on master | Path on non-master |
|
||||||
--------------- | -----
|
|---------------------------------------|------------------------------------------------------------|
|
||||||
`/etc/ceph/ceph.conf` | `/etc/ceph/ceph.conf`
|
| `/etc/ceph/ceph.conf` | `/etc/ceph/ceph.conf` |
|
||||||
`/etc/ceph/ceph.client.admin.keyring` | `/etc/ceph/ceph.client.admin.keyring`
|
| `/etc/ceph/ceph.client.admin.keyring` | `/etc/ceph/ceph.client.admin.keyring` |
|
||||||
`/etc/ceph/ceph.pub` | `/root/.ssh/authorized_keys` (append to anything existing)
|
| `/etc/ceph/ceph.pub` | `/root/.ssh/authorized_keys` (append to anything existing) |
|
||||||
|
|
||||||
|
|
||||||
Back on the ==master== node, run `ceph orch host add <node-name>` once for each other node you want to join to the cluster. You can validate the results by running `ceph orch host ls`
|
Back on the ==master== node, run `ceph orch host add <node-name>` once for each other node you want to join to the cluster. You can validate the results by running `ceph orch host ls`
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ To build our Gluster volume, we need 2 out of the 3 VMs to provide one "brick".
|
|||||||
On each host, run a variation following to create your bricks, adjusted for the path to your disk.
|
On each host, run a variation following to create your bricks, adjusted for the path to your disk.
|
||||||
|
|
||||||
!!! note "The example below assumes /dev/vdb is dedicated to the gluster volume"
|
!!! note "The example below assumes /dev/vdb is dedicated to the gluster volume"
|
||||||
|
|
||||||
```
|
```
|
||||||
(
|
(
|
||||||
echo o # Create a new empty DOS partition table
|
echo o # Create a new empty DOS partition table
|
||||||
@@ -58,6 +59,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.
|
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:
|
Run the following on each host:
|
||||||
|
|
||||||
````
|
````
|
||||||
docker run \
|
docker run \
|
||||||
-h glusterfs-server \
|
-h glusterfs-server \
|
||||||
@@ -71,14 +73,15 @@ docker run \
|
|||||||
--name="glusterfs-server" \
|
--name="glusterfs-server" \
|
||||||
gluster/gluster-centos
|
gluster/gluster-centos
|
||||||
````
|
````
|
||||||
|
|
||||||
### Create trusted pool
|
### 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.
|
On a single node (doesn't matter which), run ```docker exec -it glusterfs-server bash``` to launch a shell inside the container.
|
||||||
|
|
||||||
From the node, run
|
From the node, run `gluster peer probe <other host>`.
|
||||||
```gluster peer probe <other host>```
|
|
||||||
|
|
||||||
Example output:
|
Example output:
|
||||||
|
|
||||||
```
|
```
|
||||||
[root@glusterfs-server /]# gluster peer probe ds1
|
[root@glusterfs-server /]# gluster peer probe ds1
|
||||||
peer probe: success.
|
peer probe: success.
|
||||||
@@ -88,6 +91,7 @@ peer probe: success.
|
|||||||
Run ```gluster peer status``` on both nodes to confirm that they're properly connected to each other:
|
Run ```gluster peer status``` on both nodes to confirm that they're properly connected to each other:
|
||||||
|
|
||||||
Example output:
|
Example output:
|
||||||
|
|
||||||
```
|
```
|
||||||
[root@glusterfs-server /]# gluster peer status
|
[root@glusterfs-server /]# gluster peer status
|
||||||
Number of Peers: 1
|
Number of Peers: 1
|
||||||
@@ -102,7 +106,8 @@ State: Peer in Cluster (Connected)
|
|||||||
|
|
||||||
Now we create a *replicated volume* out of our individual "bricks".
|
Now we create a *replicated volume* out of our individual "bricks".
|
||||||
|
|
||||||
Create the gluster volume by running
|
Create the gluster volume by running:
|
||||||
|
|
||||||
```
|
```
|
||||||
gluster volume create gv0 replica 2 \
|
gluster volume create gv0 replica 2 \
|
||||||
server1:/var/no-direct-write-here/brick1 \
|
server1:/var/no-direct-write-here/brick1 \
|
||||||
@@ -110,6 +115,7 @@ gluster volume create gv0 replica 2 \
|
|||||||
```
|
```
|
||||||
|
|
||||||
Example output:
|
Example output:
|
||||||
|
|
||||||
```
|
```
|
||||||
[root@glusterfs-server /]# gluster volume create gv0 replica 2 ds1:/var/no-direct-write-here/brick1/gv0 ds3:/var/no-direct-write-here/brick1/gv0
|
[root@glusterfs-server /]# gluster volume create gv0 replica 2 ds1:/var/no-direct-write-here/brick1/gv0 ds3:/var/no-direct-write-here/brick1/gv0
|
||||||
volume create: gv0: success: please start the volume to access data
|
volume create: gv0: success: please start the volume to access data
|
||||||
@@ -141,7 +147,8 @@ echo "$MYHOST:/gv0 /var/data glusterfs defaults,_netde
|
|||||||
mount -a
|
mount -a
|
||||||
```
|
```
|
||||||
|
|
||||||
For some reason, my nodes won't auto-mount this volume on boot. I even tried the trickery below, but they stubbornly refuse to automount.
|
For some reason, my nodes won't auto-mount this volume on boot. I even tried the trickery below, but they stubbornly refuse to automount:
|
||||||
|
|
||||||
```
|
```
|
||||||
echo -e "\n\n# Give GlusterFS 10s to start before \
|
echo -e "\n\n# Give GlusterFS 10s to start before \
|
||||||
mounting\nsleep 10s && mount -a" >> /etc/rc.local
|
mounting\nsleep 10s && mount -a" >> /etc/rc.local
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Funky Penguin's "**[Geek Cookbook](https://geek-cookbook.funkypenguin.co.nz)**" is a collection of how-to guides for establishing your own container-based self-hosting platform, using either [Docker Swarm](/ha-docker-swarm/design/) or [Kubernetes](/kubernetes/start/).
|
Funky Penguin's "**[Geek Cookbook](https://geek-cookbook.funkypenguin.co.nz)**" is a collection of how-to guides for establishing your own container-based self-hosting platform, using either [Docker Swarm](/ha-docker-swarm/design/) or [Kubernetes](/kubernetes/start/).
|
||||||
|
|
||||||
Running such a platform enables you to run self-hosted tools such as [AutoPirate](/recipes/autopirate/) (*Radarr, Sonarr, NZBGet and friends*), [Plex][plex], [NextCloud][nextcloud], and includes elements such as:
|
Running such a platform enables you to run self-hosted tools such as [AutoPirate](/recipes/autopirate/) (*Radarr, Sonarr, NZBGet and friends*), [Plex](https://www.plex.tv/), [NextCloud](https://nextcloud.com/), and includes elements such as:
|
||||||
|
|
||||||
* [Automatic SSL-secured access](/ha-docker-swarm/traefik/) to all services (*with LetsEncrypt*)
|
* [Automatic SSL-secured access](/ha-docker-swarm/traefik/) to all services (*with LetsEncrypt*)
|
||||||
* [SSO / authentication layer](/ha-docker-swarm/traefik-forward-auth/) to protect unsecured / vulnerable services
|
* [SSO / authentication layer](/ha-docker-swarm/traefik-forward-auth/) to protect unsecured / vulnerable services
|
||||||
@@ -15,7 +15,7 @@ Recent updates and additions are posted on the [CHANGELOG](/CHANGELOG/), and the
|
|||||||
|
|
||||||
You already have a familiarity with concepts such as virtual machines, [Docker](https://www.docker.com/) containers, [LetsEncrypt SSL certificates](https://letsencrypt.org/), databases, and command-line interfaces.
|
You already have a familiarity with concepts such as virtual machines, [Docker](https://www.docker.com/) containers, [LetsEncrypt SSL certificates](https://letsencrypt.org/), databases, and command-line interfaces.
|
||||||
|
|
||||||
You've probably played with self-hosting some mainstream apps yourself, like [Plex][plex], [NextCloud][nextcloud], [Wordpress][wordpress] or [Ghost][ghost].
|
You've probably played with self-hosting some mainstream apps yourself, like [Plex](https://www.plex.tv/), [NextCloud](https://nextcloud.com/), [Wordpress](https://wordpress.org/) or [Ghost](https://ghost.io/).
|
||||||
|
|
||||||
## Why should I read this?
|
## Why should I read this?
|
||||||
|
|
||||||
@@ -36,18 +36,18 @@ Check out recent change at [CHANGELOG](/CHANGELOG/)
|
|||||||
|
|
||||||
## What do you want from me?
|
## What do you want from me?
|
||||||
|
|
||||||
I want your [support][github_sponsor], either in the [financial][github_sponsor] sense, or as a member of our [friendly geek community][discord] (*or both!*)
|
I want your [support](https://github.com/sponsors/funkypenguin), either in the [financial](https://github.com/sponsors/funkypenguin) sense, or as a member of our [friendly geek community](http://chat.funkypenguin.co.nz) (*or both!*)
|
||||||
|
|
||||||
### Get in touch 👋
|
### Get in touch 👋
|
||||||
|
|
||||||
* Come and say hi to me and the friendly geeks in the [Discord][discord] chat or the [Discourse][discourse] forums - say hi, ask a question, or suggest a new recipe!
|
* Come and say hi to me and the friendly geeks in the [Discord](http://chat.funkypenguin.co.nz) chat or the [Discourse](https://discourse.geek-kitchen.funkypenguin.co.nz/) forums - say hi, ask a question, or suggest a new recipe!
|
||||||
* Tweet me up, I'm [@funkypenguin][twitter]! 🐦
|
* Tweet me up, I'm [@funkypenguin](https://twitter.com/funkypenguin)! 🐦
|
||||||
* [Contact me][contact] by a variety of channels
|
* [Contact me](https://www.funkypenguin.co.nz/contact/) by a variety of channels
|
||||||
|
|
||||||
|
|
||||||
### [Sponsor][github_sponsor] / [Patronize][patreon] me ❤️
|
### [Sponsor](https://github.com/sponsors/funkypenguin) / [Patronize](https://www.patreon.com/bePatron?u=6982506) me ❤️
|
||||||
|
|
||||||
The best way to support this work is to become a [GitHub Sponsor](https://github.com/sponsors/funkypenguin) / [Patreon patron][patreon]. You get:
|
The best way to support this work is to become a [GitHub Sponsor](https://github.com/sponsors/funkypenguin) / [Patreon patron](https://www.patreon.com/bePatron?u=6982506). You get:
|
||||||
|
|
||||||
* warm fuzzies,
|
* warm fuzzies,
|
||||||
* access to the pre-mix repo,
|
* access to the pre-mix repo,
|
||||||
@@ -56,25 +56,13 @@ The best way to support this work is to become a [GitHub Sponsor](https://github
|
|||||||
|
|
||||||
.. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! 🍷 💰
|
.. and I get some pocket money every month to buy wine, cheese, and cryptocurrency! 🍷 💰
|
||||||
|
|
||||||
Impulsively **[click here (NOW quick do it!)][github_sponsor]** to [sponsor me][github_sponsor] via GitHub, or [patronize me via Patreon][patreon]!
|
Impulsively **[click here (NOW quick do it!)](https://github.com/sponsors/funkypenguin)** to [sponsor me](https://github.com/sponsors/funkypenguin) via GitHub, or [patronize me via Patreon](https://www.patreon.com/bePatron?u=6982506)!
|
||||||
|
|
||||||
|
|
||||||
### Work with me 🤝
|
### Work with me 🤝
|
||||||
|
|
||||||
Need some Cloud / Microservices / DevOps / Infrastructure design work done? I'm a full-time [AWS-certified][aws_cert] consultant, this stuff is my bread and butter! :bread: :fork_and_knife: [Get in touch][contact], and let's talk business!
|
Need some Cloud / Microservices / DevOps / Infrastructure design work done? I'm a full-time [AWS-certified](https://www.certmetrics.com/amazon/public/badge.aspx?i=4&t=c&d=2019-02-22&ci=AWS00794574) consultant, this stuff is my bread and butter! :bread: :fork_and_knife: [Get in touch](https://www.funkypenguin.co.nz/contact/), and let's talk business!
|
||||||
|
|
||||||
[plex]: https://www.plex.tv/
|
|
||||||
[nextcloud]: https://nextcloud.com/
|
|
||||||
[wordpress]: https://wordpress.org/
|
|
||||||
[ghost]: https://ghost.io/
|
|
||||||
[discord]: http://chat.funkypenguin.co.nz
|
|
||||||
[patreon]: https://www.patreon.com/bePatron?u=6982506
|
|
||||||
[github_sponsor]: https://github.com/sponsors/funkypenguin
|
|
||||||
[github]: https://github.com/sponsors/funkypenguin
|
|
||||||
[discourse]: https://discourse.geek-kitchen.funkypenguin.co.nz/
|
|
||||||
[twitter]: https://twitter.com/funkypenguin
|
|
||||||
[contact]: https://www.funkypenguin.co.nz
|
|
||||||
[aws_cert]: https://www.certmetrics.com/amazon/public/badge.aspx?i=4&t=c&d=2019-02-22&ci=AWS00794574
|
|
||||||
|
|
||||||
!!! quote "He unblocked me on all the technical hurdles to launching my SaaS in GKE!"
|
!!! quote "He unblocked me on all the technical hurdles to launching my SaaS in GKE!"
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,8 @@ services:
|
|||||||
|
|
||||||
### Create nginx.conf
|
### Create nginx.conf
|
||||||
|
|
||||||
Create ```/var/data/config/collabora/nginx.conf``` as follows, changing the ```server_name``` value to match the environment variable you established above.
|
Create ```/var/data/config/collabora/nginx.conf``` as follows, changing the ```server_name``` value to match the environment variable you established above:
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
upstream collabora-upstream {
|
upstream collabora-upstream {
|
||||||
@@ -142,22 +143,24 @@ server {
|
|||||||
proxy_set_header Host $http_host;
|
proxy_set_header Host $http_host;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Create loolwsd.xml
|
### Create loolwsd.xml
|
||||||
|
|
||||||
[Until we understand](https://github.com/CollaboraOnline/Docker-CODE/pull/50) how to [pass trusted network parameters to the entrypoint script using environment variables](https://github.com/CollaboraOnline/Docker-CODE/issues/49), we have to maintain a manually edited version of ```loolwsd.xml```, and bind-mount it into our collabora container.
|
[Until we understand](https://github.com/CollaboraOnline/Docker-CODE/pull/50) how to [pass trusted network parameters to the entrypoint script using environment variables](https://github.com/CollaboraOnline/Docker-CODE/issues/49), we have to maintain a manually edited version of ```loolwsd.xml```, and bind-mount it into our collabora container.
|
||||||
|
|
||||||
The way we do this is we mount
|
The way we do this is we mount
|
||||||
```/var/data/collabora/loolwsd.xml``` as ```/etc/loolwsd/loolwsd.xml-new```, then allow the container to create its default ```/etc/loolwsd/loolwsd.xml```, copy this default **over** our ```/var/data/collabora/loolwsd.xml``` as ```/etc/loolwsd/loolwsd.xml-new```, and then update the container to use **our** ```/var/data/collabora/loolwsd.xml``` as ```/etc/loolwsd/loolwsd.xml``` instead (_confused yet?_)
|
`/var/data/collabora/loolwsd.xml` as `/etc/loolwsd/loolwsd.xml-new`, then allow the container to create its default `/etc/loolwsd/loolwsd.xml`, copy this default **over** our `/var/data/collabora/loolwsd.xml` as `/etc/loolwsd/loolwsd.xml-new`, and then update the container to use **our** `/var/data/collabora/loolwsd.xml` as `/etc/loolwsd/loolwsd.xml` instead (_confused yet?_)
|
||||||
|
|
||||||
Create an empty ```/var/data/collabora/loolwsd.xml``` by running ```touch /var/data/collabora/loolwsd.xml```. We'll populate this in the next section...
|
Create an empty `/var/data/collabora/loolwsd.xml` by running `touch /var/data/collabora/loolwsd.xml`. We'll populate this in the next section...
|
||||||
|
|
||||||
### Setup Docker Swarm
|
### Setup Docker Swarm
|
||||||
|
|
||||||
Create ```/var/data/config/collabora/collabora.yml``` as follows, changing the traefik frontend_rule as necessary:
|
Create `/var/data/config/collabora/collabora.yml` as follows, changing the traefik frontend_rule as necessary:
|
||||||
|
|
||||||
!!! tip
|
!!! 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.0"
|
version: "3.0"
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ 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)
|
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:
|
Change at least the following:
|
||||||
|
|
||||||
````
|
````
|
||||||
insta_username = ''
|
insta_username = ''
|
||||||
insta_password = ''
|
insta_password = ''
|
||||||
|
|||||||
@@ -2,55 +2,53 @@
|
|||||||
|
|
||||||
In order to avoid IP addressing conflicts as we bring swarm networks up/down, we will statically address each docker overlay network, and record the details below:
|
In order to avoid IP addressing conflicts as we bring swarm networks up/down, we will statically address each docker overlay network, and record the details below:
|
||||||
|
|
||||||
Network | Range
|
| Network | Range |
|
||||||
--|--
|
|-----------------------------------------------------------------------------------------------------------------------|----------------|
|
||||||
[Traefik](https://geek-cookbook.funkypenguin.co.nz/ha-docker-swarm/traefik/) | _unspecified_
|
| [Traefik](https://geek-cookbook.funkypenguin.co.nz/ha-docker-swarm/traefik/) | _unspecified_ |
|
||||||
[Docker-cleanup](https://geek-cookbook.funkypenguin.co.nz/ha-docker-swarm/docker-swarm-mode/#setup-automated-cleanup) | 172.16.0.0/24
|
| [Docker-cleanup](https://geek-cookbook.funkypenguin.co.nz/ha-docker-swarm/docker-swarm-mode/#setup-automated-cleanup) | 172.16.0.0/24 |
|
||||||
[Mail Server](https://geek-cookbook.funkypenguin.co.nz/recipes/mail/) | 172.16.1.0/24
|
| [Mail Server](https://geek-cookbook.funkypenguin.co.nz/recipes/mail/) | 172.16.1.0/24 |
|
||||||
[Gitlab](https://geek-cookbook.funkypenguin.co.nz/recipes/gitlab/) | 172.16.2.0/24
|
| [Gitlab](https://geek-cookbook.funkypenguin.co.nz/recipes/gitlab/) | 172.16.2.0/24 |
|
||||||
[Wekan](https://geek-cookbook.funkypenguin.co.nz/recipes/wekan/) | 172.16.3.0/24
|
| [Wekan](https://geek-cookbook.funkypenguin.co.nz/recipes/wekan/) | 172.16.3.0/24 |
|
||||||
[Piwik](https://geek-cookbook.funkypenguin.co.nz/recipes/piwik/) | 172.16.4.0/24
|
| [Piwik](https://geek-cookbook.funkypenguin.co.nz/recipes/piwik/) | 172.16.4.0/24 |
|
||||||
[Tiny Tiny RSS](https://geek-cookbook.funkypenguin.co.nz/recipes/tiny-tiny-rss/) | 172.16.5.0/24
|
| [Tiny Tiny RSS](https://geek-cookbook.funkypenguin.co.nz/recipes/tiny-tiny-rss/) | 172.16.5.0/24 |
|
||||||
[Huginn](https://geek-cookbook.funkypenguin.co.nz/recipes/huginn/) | 172.16.6.0/24
|
| [Huginn](https://geek-cookbook.funkypenguin.co.nz/recipes/huginn/) | 172.16.6.0/24 |
|
||||||
[Unifi](https://geek-cookbook.funkypenguin.co.nz/recipes/unifi/) | 172.16.7.0/24
|
| [Unifi](https://geek-cookbook.funkypenguin.co.nz/recipes/unifi/) | 172.16.7.0/24 |
|
||||||
[Kanboard](https://geek-cookbook.funkypenguin.co.nz/recipes/kanboard/) | 172.16.8.0/24
|
| [Kanboard](https://geek-cookbook.funkypenguin.co.nz/recipes/kanboard/) | 172.16.8.0/24 |
|
||||||
[Gollum](https://geek-cookbook.funkypenguin.co.nz/recipes/gollum/) | 172.16.9.0/24
|
| [Gollum](https://geek-cookbook.funkypenguin.co.nz/recipes/gollum/) | 172.16.9.0/24 |
|
||||||
[Duplicity](https://geek-cookbook.funkypenguin.co.nz/recipes/duplicity/) | 172.16.10.0/24
|
| [Duplicity](https://geek-cookbook.funkypenguin.co.nz/recipes/duplicity/) | 172.16.10.0/24 |
|
||||||
[Autopirate](https://geek-cookbook.funkypenguin.co.nz/recipes/autopirate/) | 172.16.11.0/24
|
| [Autopirate](https://geek-cookbook.funkypenguin.co.nz/recipes/autopirate/) | 172.16.11.0/24 |
|
||||||
[Nextcloud](https://geek-cookbook.funkypenguin.co.nz/recipes/nextcloud/) | 172.16.12.0/24
|
| [Nextcloud](https://geek-cookbook.funkypenguin.co.nz/recipes/nextcloud/) | 172.16.12.0/24 |
|
||||||
[Portainer](https://geek-cookbook.funkypenguin.co.nz/recipes/portainer/) | 172.16.13.0/24
|
| [Portainer](https://geek-cookbook.funkypenguin.co.nz/recipes/portainer/) | 172.16.13.0/24 |
|
||||||
[Home-Assistant](https://geek-cookbook.funkypenguin.co.nz/recipes/home-assistant/) | 172.16.14.0/24
|
| [Home-Assistant](https://geek-cookbook.funkypenguin.co.nz/recipes/home-assistant/) | 172.16.14.0/24 |
|
||||||
[OwnTracks](https://geek-cookbook.funkypenguin.co.nz/recipes/owntracks/) | 172.16.15.0/24
|
| [OwnTracks](https://geek-cookbook.funkypenguin.co.nz/recipes/owntracks/) | 172.16.15.0/24 |
|
||||||
[Plex](https://geek-cookbook.funkypenguin.co.nz/recipes/plex/) | 172.16.16.0/24
|
| [Plex](https://geek-cookbook.funkypenguin.co.nz/recipes/plex/) | 172.16.16.0/24 |
|
||||||
[Emby](https://geek-cookbook.funkypenguin.co.nz/recipes/emby/) | 172.16.17.0/24
|
| [Emby](https://geek-cookbook.funkypenguin.co.nz/recipes/emby/) | 172.16.17.0/24 |
|
||||||
[Calibre-Web](https://geek-cookbook.funkypenguin.co.nz/recipes/calibre-web/) | 172.16.18.0/24
|
| [Calibre-Web](https://geek-cookbook.funkypenguin.co.nz/recipes/calibre-web/) | 172.16.18.0/24 |
|
||||||
[Wallabag](https://geek-cookbook.funkypenguin.co.nz/recipes/wallabag/) | 172.16.19.0/24
|
| [Wallabag](https://geek-cookbook.funkypenguin.co.nz/recipes/wallabag/) | 172.16.19.0/24 |
|
||||||
[InstaPy](https://geek-cookbook.funkypenguin.co.nz/recipes/instapy/) | 172.16.20.0/24
|
| [InstaPy](https://geek-cookbook.funkypenguin.co.nz/recipes/instapy/) | 172.16.20.0/24 |
|
||||||
[Turtle Pool](https://geek-cookbook.funkypenguin.co.nz/recipes/turtle-pool/) | 172.16.21.0/24
|
| [Turtle Pool](https://geek-cookbook.funkypenguin.co.nz/recipes/turtle-pool/) | 172.16.21.0/24 |
|
||||||
[MiniFlux](https://geek-cookbook.funkypenguin.co.nz/recipes/miniflux/) | 172.16.22.0/24
|
| [MiniFlux](https://geek-cookbook.funkypenguin.co.nz/recipes/miniflux/) | 172.16.22.0/24 |
|
||||||
[Gitlab Runner](https://geek-cookbook.funkypenguin.co.nz/recipes/gitlab-runner/) | 172.16.23.0/24
|
| [Gitlab Runner](https://geek-cookbook.funkypenguin.co.nz/recipes/gitlab-runner/) | 172.16.23.0/24 |
|
||||||
[Munin](https://geek-cookbook.funkypenguin.co.nz/recipes/munin/) | 172.16.24.0/24
|
| [Munin](https://geek-cookbook.funkypenguin.co.nz/recipes/munin/) | 172.16.24.0/24 |
|
||||||
[Masari Mining Pool](https://geek-cookbook.funkypenguin.co.nz/recipes/cryptonote-mining-pool/masari/) | 172.16.25.0/24
|
| [Bookstack](https://geek-cookbook.funkypenguin.co.nz/recipes/bookstack/) | 172.16.33.0/24 |
|
||||||
[Athena Mining Pool](https://geek-cookbook.funkypenguin.co.nz/recipes/cryptonote-mining-pool/athena/) | 172.16.26.0/24
|
| [Swarmprom](https://geek-cookbook.funkypenguin.co.nz/recipes/swarmprom/) | 172.16.34.0/24 |
|
||||||
[Bookstack](https://geek-cookbook.funkypenguin.co.nz/recipes/bookstack/) | 172.16.33.0/24
|
| [Realms](https://geek-cookbook.funkypenguin.co.nz/recipes/realms/) | 172.16.35.0/24 |
|
||||||
[Swarmprom](https://geek-cookbook.funkypenguin.co.nz/recipes/swarmprom/) | 172.16.34.0/24
|
| [ElkarBackup](https://geek-cookbook.funkypenguin.co.nz/recipes/elkarbackp/) | 172.16.36.0/24 |
|
||||||
[Realms](https://geek-cookbook.funkypenguin.co.nz/recipes/realms/) | 172.16.35.0/24
|
| [Mayan EDMS](https://geek-cookbook.funkypenguin.co.nz/recipes/realms/) | 172.16.37.0/24 |
|
||||||
[ElkarBackup](https://geek-cookbook.funkypenguin.co.nz/recipes/elkarbackp/) | 172.16.36.0/24
|
| [Shaarli](https://geek-cookbook.funkypenguin.co.nz/recipes/shaarli/) | 172.16.38.0/24 |
|
||||||
[Mayan EDMS](https://geek-cookbook.funkypenguin.co.nz/recipes/realms/) | 172.16.37.0/24
|
| [OpenLDAP](https://geek-cookbook.funkypenguin.co.nz/recipes/openldap/) | 172.16.39.0/24 |
|
||||||
[Shaarli](https://geek-cookbook.funkypenguin.co.nz/recipes/shaarli/) | 172.16.38.0/24
|
| [MatterMost](https://geek-cookbook.funkypenguin.co.nz/recipes/mattermost/) | 172.16.40.0/24 |
|
||||||
[OpenLDAP](https://geek-cookbook.funkypenguin.co.nz/recipes/openldap/) | 172.16.39.0/24
|
| [PrivateBin](https://geek-cookbook.funkypenguin.co.nz/recipes/privatebin/) | 172.16.41.0/24 |
|
||||||
[MatterMost](https://geek-cookbook.funkypenguin.co.nz/recipes/mattermost/) | 172.16.40.0/24
|
| [Mayan EDMS](https://geek-cookbook.funkypenguin.co.nz/recipes/mayan-edms/) | 172.16.42.0/24 |
|
||||||
[PrivateBin](https://geek-cookbook.funkypenguin.co.nz/recipes/privatebin/) | 172.16.41.0/24
|
| [Hack MD](https://geek-cookbook.funkypenguin.co.nz/recipes/hackmd/) | 172.16.43.0/24 |
|
||||||
[Mayan EDMS](https://geek-cookbook.funkypenguin.co.nz/recipes/mayan-edms/) | 172.16.42.0/24
|
| [FlightAirMap](https://geek-cookbook.funkypenguin.co.nz/recipes/flightairmap/) | 172.16.44.0/24 |
|
||||||
[Hack MD](https://geek-cookbook.funkypenguin.co.nz/recipes/hackmd/) | 172.16.43.0/24
|
| [Wetty](https://geek-cookbook.funkypenguin.co.nz/recipes/wetty/) | 172.16.45.0/24 |
|
||||||
[FlightAirMap](https://geek-cookbook.funkypenguin.co.nz/recipes/flightairmap/) |172.16.44.0/24
|
| [FileBrowser](https://geek-cookbook.funkypenguin.co.nz/recipes/filebrowser/) | 172.16.46.0/24 |
|
||||||
[Wetty](https://geek-cookbook.funkypenguin.co.nz/recipes/wetty/) | 172.16.45.0/24
|
| [phpIPAM](https://geek-cookbook.funkypenguin.co.nz/recipes/phpipam/) | 172.16.47.0/24 |
|
||||||
[FileBrowser](https://geek-cookbook.funkypenguin.co.nz/recipes/filebrowser/) | 172.16.46.0/24
|
| [Dozzle](https://geek-cookbook.funkypenguin.co.nz/recipes/dozzle/) | 172.16.48.0/24 |
|
||||||
[phpIPAM](https://geek-cookbook.funkypenguin.co.nz/recipes/phpipam/) | 172.16.47.0/24
|
| [KeyCloak](https://geek-cookbook.funkypenguin.co.nz/recipes/keycloak/) | 172.16.49.0/24 |
|
||||||
[Dozzle](https://geek-cookbook.funkypenguin.co.nz/recipes/dozzle/) | 172.16.48.0/24
|
| [Sensu](https://geek-cookbook.funkypenguin.co.nz/recipes/sensu/) | 172.16.50.0/24 |
|
||||||
[KeyCloak](https://geek-cookbook.funkypenguin.co.nz/recipes/keycloak/) | 172.16.49.0/24
|
| [Magento](https://geek-cookbook.funkypenguin.co.nz/recipes/magento/) | 172.16.51.0/24 |
|
||||||
[Sensu](https://geek-cookbook.funkypenguin.co.nz/recipes/sensu/) | 172.16.50.0/24
|
| [Graylog](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.52.0/24 |
|
||||||
[Magento](https://geek-cookbook.funkypenguin.co.nz/recipes/magento/) | 172.16.51.0/24
|
| [Harbor](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.53.0/24 |
|
||||||
[Graylog](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.52.0/24
|
| [Harbor-Clair](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.54.0/24 |
|
||||||
[Harbor](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.53.0/24
|
|
||||||
[Harbor-Clair](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.54.0/24
|
|
||||||
@@ -5,10 +5,22 @@ do
|
|||||||
echo "Processing $file..."
|
echo "Processing $file..."
|
||||||
|
|
||||||
# Markua doesn't know what to do with 4 backticks (````), so convert to 3:
|
# Markua doesn't know what to do with 4 backticks (````), so convert to 3:
|
||||||
sed -ie "s/\`\`\`\`/\`\`\`/g" $file
|
sed -i "s/\`\`\`\`/\`\`\`/g" $file
|
||||||
|
|
||||||
# Can't use relative paths in a book, so make all paths static
|
# Can't use relative paths in a book, so make all paths static
|
||||||
sed -ie 's/(\//(https:\/\/geek-cookbook.funkypenguin.co.nz\/)/g' $file
|
sed -i 's/](\//\](https:\/\/geek-cookbook.funkypenguin.co.nz\//g' $file
|
||||||
|
|
||||||
|
# GitHub emojis look beautiful but don't render nicely
|
||||||
|
sed -i 's/:[a-z\ ]://g' $file
|
||||||
|
|
||||||
|
# Animated gifs make leanpub fail, so strip 'em out by deleting the entire line
|
||||||
|
sed -i '/.gif/d' $file
|
||||||
|
|
||||||
|
# Strip out mkdocs admonitions
|
||||||
|
sed -i '/!!!/d' $file
|
||||||
|
|
||||||
|
# Change highlights to bold underlines
|
||||||
|
sed -iE 's/==(.*)==/___\1___/' $file
|
||||||
|
|
||||||
# strip emojis
|
# strip emojis
|
||||||
tr -cd '\11\12\15\40-\176' < $file > $file-clean
|
tr -cd '\11\12\15\40-\176' < $file > $file-clean
|
||||||
|
|||||||
Reference in New Issue
Block a user