From 5137cbe903f50b4ef04b8e089c39c583af71a9e7 Mon Sep 17 00:00:00 2001 From: David Young Date: Wed, 20 May 2020 09:46:26 +1200 Subject: [PATCH] Remove footer, cryptominer (#86) --- manuscript/book.txt | 11 - manuscript/kubernetes/cluster.md | 8 +- manuscript/kubernetes/design.md | 11 +- manuscript/kubernetes/helm.md | 8 +- manuscript/kubernetes/loadbalancer.md | 8 +- manuscript/kubernetes/snapshots.md | 9 +- manuscript/kubernetes/start.md | 11 +- manuscript/kubernetes/traefik.md | 8 +- manuscript/recipes/autopirate.md | 8 +- manuscript/recipes/autopirate/end.md | 8 +- manuscript/recipes/autopirate/headphones.md | 8 +- manuscript/recipes/autopirate/heimdall.md | 8 +- manuscript/recipes/autopirate/jackett.md | 8 +- .../recipes/autopirate/lazylibrarian.md | 8 +- manuscript/recipes/autopirate/lidarr.md | 8 +- manuscript/recipes/autopirate/mylar.md | 8 +- manuscript/recipes/autopirate/nzbget.md | 8 +- manuscript/recipes/autopirate/nzbhydra.md | 8 +- manuscript/recipes/autopirate/nzbhydra2.md | 8 +- manuscript/recipes/autopirate/ombi.md | 8 +- manuscript/recipes/autopirate/radarr.md | 8 +- manuscript/recipes/autopirate/rtorrent.md | 8 +- manuscript/recipes/autopirate/sabnzbd.md | 8 +- manuscript/recipes/autopirate/sonarr.md | 8 +- manuscript/recipes/cryptominer.md | 42 -- manuscript/recipes/cryptominer/amd-gpu.md | 169 ------- manuscript/recipes/cryptominer/exchange.md | 55 --- manuscript/recipes/cryptominer/minerhotel.md | 105 ---- manuscript/recipes/cryptominer/mining-pool.md | 58 --- manuscript/recipes/cryptominer/mining-rig.md | 55 --- manuscript/recipes/cryptominer/monitor.md | 93 ---- manuscript/recipes/cryptominer/nvidia-gpu.md | 164 ------- manuscript/recipes/cryptominer/profit.md | 28 -- manuscript/recipes/cryptominer/wallet.md | 41 -- manuscript/recipes/kubernetes/kanboard.md | 8 +- .../kubernetes/kubernetes-dashboard.md | 13 +- manuscript/recipes/kubernetes/miniflux.md | 10 +- manuscript/recipes/kubernetes/nextcloud.md | 8 +- manuscript/recipes/kubernetes/phpipam.md | 8 +- manuscript/recipes/kubernetes/privatebin.md | 8 +- manuscript/recipes/kubernetes/template-k8s.md | 8 +- manuscript/recipes/piwik.md | 8 +- manuscript/recipes/turtle-pool.md | 449 ------------------ manuscript/reference/containers.md | 11 +- manuscript/reference/data_layout.md | 11 +- manuscript/reference/git-docker.md | 11 +- manuscript/reference/networks.md | 12 +- manuscript/reference/oauth_proxy.md | 11 +- manuscript/reference/openvpn.md | 11 +- manuscript/reference/troubleshooting.md | 10 +- mkdocs.yml | 14 +- 51 files changed, 39 insertions(+), 1584 deletions(-) delete mode 100644 manuscript/recipes/cryptominer.md delete mode 100644 manuscript/recipes/cryptominer/amd-gpu.md delete mode 100644 manuscript/recipes/cryptominer/exchange.md delete mode 100644 manuscript/recipes/cryptominer/minerhotel.md delete mode 100644 manuscript/recipes/cryptominer/mining-pool.md delete mode 100644 manuscript/recipes/cryptominer/mining-rig.md delete mode 100644 manuscript/recipes/cryptominer/monitor.md delete mode 100644 manuscript/recipes/cryptominer/nvidia-gpu.md delete mode 100644 manuscript/recipes/cryptominer/profit.md delete mode 100644 manuscript/recipes/cryptominer/wallet.md delete mode 100644 manuscript/recipes/turtle-pool.md diff --git a/manuscript/book.txt b/manuscript/book.txt index fd7468d..8988ec8 100644 --- a/manuscript/book.txt +++ b/manuscript/book.txt @@ -48,21 +48,10 @@ recipes/phpipam.md recipes/plex.md recipes/privatebin.md recipes/swarmprom.md -recipes/turtle-pool.md sections/menu-docker.md recipes/bitwarden.md recipes/bookstack.md -recipes/cryptominer.md -recipes/cryptominer/mining-rig.md -recipes/cryptominer/amd-gpu.md -recipes/cryptominer/nvidia-gpu.md -recipes/cryptominer/mining-pool.md -recipes/cryptominer/wallet.md -recipes/cryptominer/exchange.md -recipes/cryptominer/minerhotel.md -recipes/cryptominer/monitor.md -recipes/cryptominer/profit.md recipes/calibre-web.md recipes/collabora-online.md recipes/ghost.md diff --git a/manuscript/kubernetes/cluster.md b/manuscript/kubernetes/cluster.md index f38fe4f..1b1d0c2 100644 --- a/manuscript/kubernetes/cluster.md +++ b/manuscript/kubernetes/cluster.md @@ -83,10 +83,4 @@ Still with me? Good. Move on to creating your own external load balancer.. ## Chef's Notes -1. Ok, yes, there's not much you can do with your cluster _yet_. But stay tuned, more Kubernetes fun to come! - -### Tip your waiter (support me) 👏 - -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? 💬 +1. Ok, yes, there's not much you can do with your cluster _yet_. But stay tuned, more Kubernetes fun to come! \ No newline at end of file diff --git a/manuscript/kubernetes/design.md b/manuscript/kubernetes/design.md index d52ad3e..926d108 100644 --- a/manuscript/kubernetes/design.md +++ b/manuscript/kubernetes/design.md @@ -126,13 +126,4 @@ Still with me? Good. Move on to creating your cluster! * [Load Balancer](/kubernetes/loadbalancer/) - Setup inbound access * [Snapshots](/kubernetes/snapshots/) - Automatically backup your persistent data * [Helm](/kubernetes/helm/) - Uber-recipes from fellow geeks -* [Traefik](/kubernetes/traefik/) - Traefik Ingress via Helm - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +* [Traefik](/kubernetes/traefik/) - Traefik Ingress via Helm \ No newline at end of file diff --git a/manuscript/kubernetes/helm.md b/manuscript/kubernetes/helm.md index c09834a..a4c024a 100644 --- a/manuscript/kubernetes/helm.md +++ b/manuscript/kubernetes/helm.md @@ -59,10 +59,4 @@ Still with me? Good. Move on to understanding Helm charts... ## Chef's Notes -1. Of course, you can have lots of fun deploying all sorts of things via Helm. Check out https://github.com/helm/charts for some examples. - -### Tip your waiter (support me) 👏 - -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? 💬 +1. Of course, you can have lots of fun deploying all sorts of things via Helm. Check out https://github.com/helm/charts for some examples. \ No newline at end of file diff --git a/manuscript/kubernetes/loadbalancer.md b/manuscript/kubernetes/loadbalancer.md index 89269ca..436b686 100644 --- a/manuscript/kubernetes/loadbalancer.md +++ b/manuscript/kubernetes/loadbalancer.md @@ -331,10 +331,4 @@ Still with me? Good. Move on to setting up an ingress SSL terminating proxy with ## Chef's Notes -1. This is MVP of the load balancer solution. Any suggestions for improvements are welcome 😉 - -### Tip your waiter (support me) 👏 - -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? 💬 +1. This is MVP of the load balancer solution. Any suggestions for improvements are welcome 😉 \ No newline at end of file diff --git a/manuscript/kubernetes/snapshots.md b/manuscript/kubernetes/snapshots.md index b41f1cf..69dd02c 100644 --- a/manuscript/kubernetes/snapshots.md +++ b/manuscript/kubernetes/snapshots.md @@ -177,11 +177,4 @@ Still with me? Good. Move on to understanding Helm charts... ## Chef's Notes -1. I've submitted [2 PRs](https://github.com/miracle2k/k8s-snapshots/pulls/funkypenguin) to the k8s-snapshots repo. The first [updates the README for GKE RBAC requirements](https://github.com/miracle2k/k8s-snapshots/pull/71), and the second [fixes a minor typo](https://github.com/miracle2k/k8s-snapshots/pull/74). - - -### Tip your waiter (support me) 👏 - -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? 💬 +1. I've submitted [2 PRs](https://github.com/miracle2k/k8s-snapshots/pulls/funkypenguin) to the k8s-snapshots repo. The first [updates the README for GKE RBAC requirements](https://github.com/miracle2k/k8s-snapshots/pull/71), and the second [fixes a minor typo](https://github.com/miracle2k/k8s-snapshots/pull/74). \ No newline at end of file diff --git a/manuscript/kubernetes/start.md b/manuscript/kubernetes/start.md index cebc09e..1b22df3 100644 --- a/manuscript/kubernetes/start.md +++ b/manuscript/kubernetes/start.md @@ -64,13 +64,4 @@ Still with me? Good. Move on to reviewing the design elements * [Load Balancer](/kubernetes/loadbalancer/) - Setup inbound access * [Snapshots](/kubernetes/snapshots/) - Automatically backup your persistent data * [Helm](/kubernetes/helm/) - Uber-recipes from fellow geeks -* [Traefik](/kubernetes/traefik/) - Traefik Ingress via Helm - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +* [Traefik](/kubernetes/traefik/) - Traefik Ingress via Helm \ No newline at end of file diff --git a/manuscript/kubernetes/traefik.md b/manuscript/kubernetes/traefik.md index a728f15..8a7dfd9 100644 --- a/manuscript/kubernetes/traefik.md +++ b/manuscript/kubernetes/traefik.md @@ -211,10 +211,4 @@ I'll be adding more Kubernetes versions of existing recipes soon. Check out the ## Chef's Notes -1. It's kinda lame to be able to bring up Traefik but not to use it. I'll be adding the oauth_proxy element shortly, which will make this last step a little more conclusive and exciting! - -### Tip your waiter (support me) 👏 - -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? 💬 +1. It's kinda lame to be able to bring up Traefik but not to use it. I'll be adding the oauth_proxy element shortly, which will make this last step a little more conclusive and exciting! \ No newline at end of file diff --git a/manuscript/recipes/autopirate.md b/manuscript/recipes/autopirate.md index 476b90c..c25b5be 100644 --- a/manuscript/recipes/autopirate.md +++ b/manuscript/recipes/autopirate.md @@ -123,10 +123,4 @@ Now work your way through the list of tools below, adding whichever tools your w * [NZBHydra2](/recipes/autopirate/nzbhydra2/) * [Ombi](/recipes/autopirate/ombi/) * [Jackett](/recipes/autopirate/jackett/) -* [End](/recipes/autopirate/end/) (launch the stack) - -### Tip your waiter (support me) 👏 - -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? 💬 +* [End](/recipes/autopirate/end/) (launch the stack) \ No newline at end of file diff --git a/manuscript/recipes/autopirate/end.md b/manuscript/recipes/autopirate/end.md index 0c000b4..f40b4f8 100644 --- a/manuscript/recipes/autopirate/end.md +++ b/manuscript/recipes/autopirate/end.md @@ -11,10 +11,4 @@ Log into each of your new tools at its respective HTTPS URL. You'll be prompted ## Chef's Notes 📓 -1. This is a complex stack. Sing out in the comments if you found a flaw or need a hand :) - -### Tip your waiter (support me) 👏 - -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? 💬 +1. This is a complex stack. Sing out in the comments if you found a flaw or need a hand :) \ No newline at end of file diff --git a/manuscript/recipes/autopirate/headphones.md b/manuscript/recipes/autopirate/headphones.md index 9f33026..edb6282 100644 --- a/manuscript/recipes/autopirate/headphones.md +++ b/manuscript/recipes/autopirate/headphones.md @@ -72,10 +72,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/heimdall.md b/manuscript/recipes/autopirate/heimdall.md index 2e2184c..0897ff6 100644 --- a/manuscript/recipes/autopirate/heimdall.md +++ b/manuscript/recipes/autopirate/heimdall.md @@ -79,10 +79,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 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. -2. The inclusion of Heimdall was due to the efforts of @gkoerk in our [Discord server](http://chat.funkypenguin.co.nz). Thanks gkoerk! - -### Tip your waiter (support me) 👏 - -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? 💬 +2. The inclusion of Heimdall was due to the efforts of @gkoerk in our [Discord server](http://chat.funkypenguin.co.nz). Thanks gkoerk! \ No newline at end of file diff --git a/manuscript/recipes/autopirate/jackett.md b/manuscript/recipes/autopirate/jackett.md index 9d5d1c8..d16839f 100644 --- a/manuscript/recipes/autopirate/jackett.md +++ b/manuscript/recipes/autopirate/jackett.md @@ -72,10 +72,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/lazylibrarian.md b/manuscript/recipes/autopirate/lazylibrarian.md index 5adffc4..eabcbf7 100644 --- a/manuscript/recipes/autopirate/lazylibrarian.md +++ b/manuscript/recipes/autopirate/lazylibrarian.md @@ -85,10 +85,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 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](/recipes/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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/lidarr.md b/manuscript/recipes/autopirate/lidarr.md index ded7115..97d8ca4 100644 --- a/manuscript/recipes/autopirate/lidarr.md +++ b/manuscript/recipes/autopirate/lidarr.md @@ -74,10 +74,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 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. -2. The addition of the Lidarr recipe was contributed by our very own @gpulido in Discord (http://chat.funkypenguin.co.nz) - Thanks Gabriel! - -### Tip your waiter (support me) 👏 - -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? 💬 +2. The addition of the Lidarr recipe was contributed by our very own @gpulido in Discord (http://chat.funkypenguin.co.nz) - Thanks Gabriel! \ No newline at end of file diff --git a/manuscript/recipes/autopirate/mylar.md b/manuscript/recipes/autopirate/mylar.md index b073cd6..2badcdf 100644 --- a/manuscript/recipes/autopirate/mylar.md +++ b/manuscript/recipes/autopirate/mylar.md @@ -74,10 +74,4 @@ Continue through the list of tools below, adding whichever tools your want to us 2. If you intend to configure Mylar to perform its own NZB searches and push the hits to a downloader such as SABnzbd, then in addition to configuring the connection to SAB with host, port and api key, you will need to set the parameter `host_return` parameter to the fully qualified Mylar address (e.g. `http://mylar:8090`). - This will provide the link to the downloader necessary to initiate the download. This parameter is not presented in the user interface so the config file (`$MYLAR_HOME/config.ini`) will need to be manually updated. The parameter can be found under the [Interface] section of the file. ([Details](https://github.com/evilhero/mylar/issues/2242)) - -### Tip your waiter (support me) 👏 - -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? 💬 + This will provide the link to the downloader necessary to initiate the download. This parameter is not presented in the user interface so the config file (`$MYLAR_HOME/config.ini`) will need to be manually updated. The parameter can be found under the [Interface] section of the file. ([Details](https://github.com/evilhero/mylar/issues/2242)) \ No newline at end of file diff --git a/manuscript/recipes/autopirate/nzbget.md b/manuscript/recipes/autopirate/nzbget.md index 109d1f3..18fb988 100644 --- a/manuscript/recipes/autopirate/nzbget.md +++ b/manuscript/recipes/autopirate/nzbget.md @@ -77,10 +77,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/nzbhydra.md b/manuscript/recipes/autopirate/nzbhydra.md index ad83d1f..c0b5d30 100644 --- a/manuscript/recipes/autopirate/nzbhydra.md +++ b/manuscript/recipes/autopirate/nzbhydra.md @@ -76,10 +76,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/nzbhydra2.md b/manuscript/recipes/autopirate/nzbhydra2.md index 00e31db..ba22a27 100644 --- a/manuscript/recipes/autopirate/nzbhydra2.md +++ b/manuscript/recipes/autopirate/nzbhydra2.md @@ -92,10 +92,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 1. In many cases, tools will integrate with each other. I.e., Radarr needs to talk to SABnzbd and NZBHydra2, 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. -2. Note that NZBHydra2 _can_ co-exist with NZBHydra (1), but if you want your tools (Sonarr, Radarr, etc) to use NZBHydra2, you'll need to change both the target hostname (_to "hydra2"_) and the target port (_to 5076_). - -### Tip your waiter (support me) 👏 - -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? 💬 +2. Note that NZBHydra2 _can_ co-exist with NZBHydra (1), but if you want your tools (Sonarr, Radarr, etc) to use NZBHydra2, you'll need to change both the target hostname (_to "hydra2"_) and the target port (_to 5076_). \ No newline at end of file diff --git a/manuscript/recipes/autopirate/ombi.md b/manuscript/recipes/autopirate/ombi.md index 8b700dd..8bce758 100644 --- a/manuscript/recipes/autopirate/ombi.md +++ b/manuscript/recipes/autopirate/ombi.md @@ -77,10 +77,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/radarr.md b/manuscript/recipes/autopirate/radarr.md index 43e72b1..307664b 100644 --- a/manuscript/recipes/autopirate/radarr.md +++ b/manuscript/recipes/autopirate/radarr.md @@ -88,10 +88,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/rtorrent.md b/manuscript/recipes/autopirate/rtorrent.md index bdf5b68..2a5cc5e 100644 --- a/manuscript/recipes/autopirate/rtorrent.md +++ b/manuscript/recipes/autopirate/rtorrent.md @@ -77,10 +77,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/sabnzbd.md b/manuscript/recipes/autopirate/sabnzbd.md index 050c075..8741be9 100644 --- a/manuscript/recipes/autopirate/sabnzbd.md +++ b/manuscript/recipes/autopirate/sabnzbd.md @@ -84,10 +84,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/autopirate/sonarr.md b/manuscript/recipes/autopirate/sonarr.md index 47c79a5..05630c8 100644 --- a/manuscript/recipes/autopirate/sonarr.md +++ b/manuscript/recipes/autopirate/sonarr.md @@ -74,10 +74,4 @@ Continue through the list of tools below, adding whichever tools your want to us ## Chef's Notes 📓 -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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/recipes/cryptominer.md b/manuscript/recipes/cryptominer.md deleted file mode 100644 index aad802c..0000000 --- a/manuscript/recipes/cryptominer.md +++ /dev/null @@ -1,42 +0,0 @@ -hero: We dig dig digga-dig dig! - -# CryptoMiner - -This is a diversion from my usual recipes - recently I've become interested in cryptocurrency, both in mining, and in investing. - -I honestly didn't expect to enjoy the mining process as much as I did. Part of the enjoyment was getting my hands dirty with hardware. - -Since a [mining rig](/recipes/cryptominer/mining-rig/) relies on hardware, we can't really use a docker swarm for this one! - -![CryptoMiner Screenshot](../images/cryptominer.png) - -This recipe isn't for everyone - if you just want to make some money from cryptocurrency, then you're better off learning to [invest](https://www.reddit.com/r/CryptoCurrency/) or [trade](https://www.reddit.com/r/CryptoMarkets/). However, if you want to (_ideally_) make money **and** you like tinkering, playing with hardware, optimising and monitoring, read on! - -## Ingredients - -1. Suitable system guts (_CPU, motherboard, RAM, PSU_) for your [mining rig](/recipes/cryptominer/mining-rig/) -2. [AMD](/recipes/cryptominer/amd-gpu/) / [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs (_yes, plural, since although you **can** start with just one, you'll soon get hooked!_) -3. A friendly operating system ([Ubuntu](https://www.ubuntu.com/)/[Debian](https://www.debian.org/)/[CentOS7](https://www.centos.org/download/)) are known to work -4. Patience and time - -## Preparation - -For readability, I've split this recipe into multiple sub-recipes, which can be found below, or in the navigation links on the right-hand side: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipes/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 (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/amd-gpu.md b/manuscript/recipes/cryptominer/amd-gpu.md deleted file mode 100644 index 20782fd..0000000 --- a/manuscript/recipes/cryptominer/amd-gpu.md +++ /dev/null @@ -1,169 +0,0 @@ -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -# AMD GPU - -## Ingredients - -1. [AMD drivers](http://support.amd.com/en-us/kb-articles/Pages/Radeon-Software-for-Linux-Release-Notes.aspx) for your GPU -2. [Linux version](https://bitcointalk.org/index.php?topic=1809527.0) of "atiflash" command -3. A [VBIOS rom](https://anorak.tech/c/downloads) compatible with your GPU model and memory manufacturer - -## Preparation - -### Install the drivers - -There are links on the AMD driver download page (_linked above_) to drivers for RHEL/CentOS6, RHEL/CentOS7, and Ubuntu 16.04. As I write this, the latest version is **amdgpu-pro-17.50-511655**. - -!!! note - You'll find reference online to the "blockchain" drivers. These were an earlier, [beta release](http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-Pro-Beta-Mining-Driver-for-Linux-Release-Notes.aspx) which have been superseded by version 17.50 and later. You can ignore these. - -Uncompress the drivers package, and run the following: - -```./amdgpu-install --opencl=legacy --headless``` - -If you have a newer (_than my 5-year-old one!_) motherboard/CPU, you can also try the following, for ROCm support (_which might allow you some more software-based overclocking powers_): - -```./amdgpu-install --opencl=legacy,rocm --headless``` - -Reboot upon completion. - -### Flash the BIOS - -Yes, this sounds scary, but it's not as bad as it sounds, if you want better performance from your GPUs, you **have** to flash your GPU BIOS. - -#### Why flash BIOS? - -Here's my noob-level version of why: - -1. GPU-mining performance is all about the **memory speed** of your GPU - you get the best mining from the fastest internal timings. So you want to optimize your GPU to do really fast memory work, which is not how it's designed by default. - -2. The **processor** on your GPU sits almost idle, so you **lower** the power to the processor (_undervolt_) to save some power. - -3. As it turns out, the factory memory timings of the RX5xx series were particularly poor. - -As an aside, here's an illustration re why you'd **want** to flash your BIOS. Below is the mining throughput of 2 AMD RX580s I purchased together. Guess which one had its BIOS flashed? - -``` -ETH: GPU0 30.115 Mh/s, GPU1 22.176 Mh/s -``` - -Here's the power consumption of the two GPUs while doing the above test: - -GPU1 (original ROM) -``` -GFX Clocks and Power: - 1750 MHz (MCLK) - 1411 MHz (SCLK) - 144.107 W (VDDC) - 16.0 W (VDDCI) - 171.161 W (max GPU) - 172.209 W (average GPU) - -GPU Temperature: 67 C -GPU Load: 100 % -``` - -GPU0 (flashed ROM) -``` -GFX Clocks and Power: - 2050 MHz (MCLK) - 1150 MHz (SCLK) - 87.155 W (VDDC) - 16.0 W (VDDCI) - 117.152 W (max GPU) - 116.1 W (average GPU) - -GPU Temperature: 62 C -GPU Load: 100 % -``` - -So, by flashing the BIOS, I gained 8 MH/s (a 36% increase), while reducing power consumption by ~40W! - -#### How to flash AMD GPU BIOS? - -1. Get [atiflash for linux](https://bitcointalk.org/index.php?topic=1809527.0). - -2. Identify which card you want to flash, by running ```./atiflash -i``` - -Example output below: - -``` -[root@kvm ~]# ./atiflash -i - -adapter bn dn dID asic flash romsize test bios p/n -======= == == ==== =============== ============== ======= ==== ================ - 0 01 00 67DF Ellesmere M25P20/c 40000 pass 113-1E3660EU-O55 -[root@kvm ~]# -``` - -3. Save the original, factory ROM, by running ```./atiflash -s ``` - -Example below: -``` -[root@kvm ~]# ./atiflash -s 0 rx580-4gb-299-1E366-101SA.orig.rom -0x40000 bytes saved, checksum = 0x7FBF -``` - -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. 👍 - - -Example below: -``` -[root@kvm ~]# ./atiflash -f -p 0 Insan1ty\ R9\ 390X\ BIOS\ v1.81/R9\ 290X/MEM\ MOD\ --\ ELPIDA/290X_ELPIDA_MOD_V1.8.rom -Old SSID: E285 -New SSID: 9395 -Old P/N: 113-E285FOC-U005 -New P/N: 113-GRENADA_XT_C671_D5_8GB_HY_W -Old DeviceID: 67B1 -New DeviceID: 67B0 -Old Product Name: C67111 Hawaii PRO OC GDDR5 4GB 64Mx32 300e/150m -New Product Name: C67130 Grenada XT A0 GDDR5 8GB 128Mx32 300e/150m -Old BIOS Version: 015.044.000.011.000000 -New BIOS Version: 015.049.000.000.000000 -Flash type: M25P10/c -Burst size is 256 -20000/20000h bytes programmed -20000/20000h bytes verified - -Restart System To Complete VBIOS Update. -[root@kvm ~]# -``` - -Reboot the system, [hold onto your butts](https://www.youtube.com/watch?v=o0YWRXJsMyM), and wait for your newly-flashed GPU to fire up. - -#### If it goes wrong - -The safest way to do this is to run more than one GPU, and to flash the GPUs one-at-a-time, rebooting after each. That way, even if you make your GPU totally unresponsive, you'll still get access to your system to flash it back to the factory ROM. - -That said, it's very unlikely that a flashed GPU won't let you boot at all though. In the (legion) cases where I overclocked my RX580 too far, I was able choose to boot into rescue mode in CentOS7 (bypassing the framebuffer / drm initialisation), and reflash my card back to its original BIOS. - -#### Mooar tweaking! 🔧 - -If you want to tweak the BIOS yourself, download the [Polaris bios editor](https://github.com/jaschaknack/PolarisBiosEditor) and tweak away! - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your AMD (_this page_) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -3. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -4. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or [wallets](/recipes/cryptominer/wallet/) 💹 -5. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -6. [Profit](/recipes/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 (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/exchange.md b/manuscript/recipes/cryptominer/exchange.md deleted file mode 100644 index a9d2d56..0000000 --- a/manuscript/recipes/cryptominer/exchange.md +++ /dev/null @@ -1,55 +0,0 @@ -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -# Exchange - -You may be mining a particular coin, and want to hold onto it, in the hopes of long-term growth. In that case, stick it in a [wallet](/recipes/cryptominer/wallet/) and be done with it. - -You may also not care too much about the coin (you're mining for money, right?), in which case you want to "cash out" your coins into something you can spend. - -In this case, you'll want to configure your mining pool to send your coin-of-choice to an **exchange**, so that you can turn it into a **different** coin, or extract it into FIAT (_oldschool, cave-man currency_). - -## Preparation - -### Get verified at exchanges - -Most exchanges (Binance is currently a notable exception) require some sort of verification of your ID before they'll let you trade, or withdraw coins as FIAT. -So, you may as well get yourself verified in anticipation (_it can take a while during periods of increased crypto-hype_). - -Here are (_referral_) links to exchanges I've used personally: - -* [Cryptopia](https://www.cryptopia.co.nz/Register?referrer=funkypenguin) : Trades obscure altcoins that other exchanges don't, and can withdraw to USD and NZD -* [Binance](https://www.binance.com/?ref=15312815) : Doesn't require verification for small-time traders/miners -* [Coinbase](https://www.coinbase.com/join/5a4d1ed0ee3de40195a695c8) : Beginner's exchange. Coins mined in Nicehash can be sent to coinbase with zero fees. - -### Send coins to Exchanges - -Now simply configure your mining pool (or your miner) to send your coins to your wallet's deposit address for each coin. Note that every coin has a unique wallet address. - -!!! warning - Don't try to send one coin (i.e., LTC) to a different coin's (i.e. BTC) wallet. You will **loose** your money and be **sad** 😞 - -## Withdraw coins to FIAT (cash) - -Once you have enough coins in your exchange wallet, you can "trade" them into the real-world currency of your choice. For example, if you mined 100 Ella to [Cryptopia](https://www.cryptopia.co.nz/Register?referrer=funkypenguin), you could trade it for NZDT or USDT, and withdraw it to your bank account. - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to exchanges (_This page_) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipes/cryptominer/profit/)! 💰 - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/minerhotel.md b/manuscript/recipes/cryptominer/minerhotel.md deleted file mode 100644 index 18238a1..0000000 --- a/manuscript/recipes/cryptominer/minerhotel.md +++ /dev/null @@ -1,105 +0,0 @@ -# Minerhotel - -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -So, you have GPUs. You can mine cryptocurrency. But **what** cryptocurrency should you mine? - -1. You could manually keep track of [whattomine](http://whattomine.com/), and launch/stop miners based on profitability/convenience, as you see fit. -2. You can automate the process of mining the most profitable coin based on your GPUs' capabilities and the current market prices, and do better things with your free time! (_[receiving alerts](/recipes/crytominer/monitor/), of course, if anything stops working!_) - -This recipe covers option #2 😁 - -[Miner hotel](http://minerhotel.com/) is a collection of scripts and config files to fully automate your mining across AMD or Nvidia cards. - - -## Ingredients - -* [Latest Minerhotel release](http://minerhotel.com/download.html) for Linux -* Time and patience - -## Preparation - -### Unpack Minerhotel - -Unpack the minerhotel release. You can technically unpack it anywhere, but this guide, and all pre-configured miners, expect an installation at /opt/minerhotel. - -### Prepare miner.config - -Copy /opt/minerhotel/miner.config.example to /opt/minerhotel/miner.config, and start making changes. Here's a rundown of the variables: - -* **WALLET** : Set these WALLET variables to your wallet addresses for all the currencies you want to mine. Your miner will fail to start without the wallet variable, but it won't confirm it's a **valid** wallet. **Now, double-check to confirm the wallet is correct, and you're not just mining coins to /dev/null, or someone else's wallet!** You can either use your [exchange](/recipes/cryptominer/exchange/) wallet address or your own [wallet](/recipes/cryptominer/wallet/). -* **WORKER** : Set this to the name you'll use to define your miner in the various pools you mine. Some pools (_i.e. NiceHash_) auto-create workers based on whatever worked name you specify, whereas others (_Supernova.cc_) will refuse to authenticate you unless you've manually created the worker/password in their UI first. -* **SUPRUSER** : Set this to your supernova.cc login username (**not** your worker name) (_optional, only use this if you want to use supernova.cc_) -* **SUPRPASS** : Set this to the password you've configured within Supernova.cc for your **worker** as defined by the WORKER variable. Note that this require syou to use the **same** worker name and password across all your supernova.cc pools (_optional, only necessary if you want to use supernova.cc_) -* **MPHUSER** : Set this to your miningpoolhub login username (_optional, only necessary if you want to use [miningpoolhub.com](https://miningpoolhub.com/)_) -* **TBFUSER** : Set this to your theblocksfactory login username (_optional, only necessary if you want to use t[heblocksfactory.com](https://theblocksfactory.com/)_) -* **VERTPOOLUSER/VERTPOOLPASS** : Set these to your vertpool user/password (_optional, only necessary if you want to use [vertpool.org](http://vertpool.org/)_) - -### Install services - -1. Run ```/opt/minerhotel/scripts/install-services.sh``` to install the necessary services for systemd -2. Run ```/opt/minerhotel/scripts/fixmods.sh``` to correctly set the filesystem permissions for the various miner executables - -!!! note - fixmods.sh doesn't correctly set permissions on subdirectories, so until this is fixed, you also need to run ```chmod 755 /opt/minerhotel/bin/claymore/ethdcrminer64``` - -### Setup whattomine-linux - -For the whattomine bot to select the most profitable coin to mine for **your** GPUs, you'll need to feed your cookie from https://whattomine.com - -1. Start by installing [this](https://chrome.google.com/webstore/detail/cookie-inspector/jgbbilmfbammlbbhmmgaagdkbkepnijn) addon for Chrome, or [this](https://addons.mozilla.org/en-US/firefox/addon/firecookie/) addon for firefox -2. Then visit http://whattomine.com/ and tweak settings for you GPUs, power costs, etc. -3. Grab the cookie per the whattomine [README](http://git.minerhotel.com:3000/minerhotel/minerhotel/src/master/whattomine/README.md), and paste it (_about 2200 characters_) into /opt/minerhotel/whattomine/config.json -4. Ensure that only the coins/miners that you **want** are enabled in config.json - delete the others, or put a dash ("-") after the ones you want to disable. Set the service names as defined in /opt/minerhotel/services/ - -### Test miners - -Before trusting the whattomine service to automatically launch your miners, test each one first by starting them manually, and then checking their status. - -For example, to test the **miner-amd-eth-ethhash-ethermine** miner, run - -1. ```systemctl start miner-amd-eth-ethhash-ethermine.service``` to start the service -2. And then watch the output by running ```journalctl -u miner-amd-eth-ethhash-ethermine -f``` -3. When you're satisfied it's working correctly (_without errors and with a decent hashrate_), stop the miner again by running ```systemctl stop miner-amd-eth-ethhash-ethermine```, and move onto testing the next one. - -## Serving - -### Launch whattomine - -Finally, run ```systemctl start minerhotel-whattomine``` and then ```journalctl -u minerhotel-whattomine -f``` to watch the output. Within a minute, you should see whattomime launching the most profitable miner, as illustrated below: - -``` -Jan 29 13:49:38 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:49:38+1300 whattomine.js Loading whattominebot -Jan 29 13:49:38 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:49:38+1300 whattomine.js Starting whattominebot now. -Jan 29 13:50:45 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:50:45+1300 whattomine.js Mining Ethereum|ETH|Ethash|0.0089|0.00093|100 -Jan 29 13:50:45 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:50:45+1300 whattomine.js Could not find a miner for Ubiq. -Jan 29 13:51:39 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:51:39+1300 whattomine.js Mining Ethereum|ETH|Ethash|0.0089|0.00094|100 -Jan 29 13:51:39 kvm.funkypenguin.co.nz whattomine-linux[2057]: 2018-01-29T13:51:39+1300 whattomine.js Could not find a miner for Ubiq. -``` - -!!! note - The messages about "Could not find miner" can be ignored, they indicate that one of the preferred coins on whattomine does not have a miner defined. - -To make whattomine start automatically in future, run ```systemctl enable minerhotel-whattomine``` - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with Miner Hotel 🏨 (_This page_) -5. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipes/cryptominer/profit/)! 💰 - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/mining-pool.md b/manuscript/recipes/cryptominer/mining-pool.md deleted file mode 100644 index 5bc0be1..0000000 --- a/manuscript/recipes/cryptominer/mining-pool.md +++ /dev/null @@ -1,58 +0,0 @@ -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -# Mining Pools - -You and your puny GPUs don't have a snowball's chance of mining a block on your own. Your only option is to join a mass mining conglomerate (_a mining pool_), throw in your share of the effort for a share of the reward. - -## Preparation - -### Setup accounts at mining pools - -This'll save you some frustration later... Next time you're watching a movie or doing something mindless, visit http://whattomine.com/, and take note of the 10-15 most profitable coins for your GPU type(s). - -On your [exchanges](/recipes/cryptominer/exchange/), identify the "_deposit address_" for each popular coin, and note them down for the next step. - -!!! note - If you're wanting to mine directly to a wallet for long-term holding, then substitute your wallet public address for this deposit address. - -Now work your way through the following list of pools, creating an account on each one you want as you go. In the case of each pool/coin, setup your "payout address" to match your change address for the coin (above). - -* [Mining Pool Hub](https://miningpoolhub.com/) (Lots of coins) -* [NiceHash](https://nicehash.com) (Ethereum, Decred) -* [suprnova](https://suprnova.cc/) - Lots of coins, but, you generally need a separate login for each pool. You _also_ need to create a worker in each pool with a common username and password, for [Minerhotel](/recipes/crytominer/minerhotel/). -* [nanopool](https://nanopool.org/) (Ethereum, Ethereum Classic, SiaCoin, ZCash, Monero, Pascal and Electroneum) -* [slushpool](https://slushpool.com/home/) (BTC and ZCash) - - -## Serving - -### Avoid fees - -As noted by IronicBadger [here](https://www.linuxserver.io/2018/01/20/how-to-build-a-cryptocurrency-mining-rig/), the name of the game is avoiding fees where possible. Here are a few tips: - -* [Mining Pool Hub](https://miningpoolhub.com/) is a popular pool for multiple coins, and it allows you (_for a fee_) to auto-exchange the coins you mine for coins that you actually _want_. -* [NiceHash](https://nicehash.com) will allow you to send your earned bitcoin (_whatever you mine, they pay you in bitcoin_) to coinbase for free. - - - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to exchanges (_This page_) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipes/cryptominer/profit/)! 💰 - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/mining-rig.md b/manuscript/recipes/cryptominer/mining-rig.md deleted file mode 100644 index 9eb22aa..0000000 --- a/manuscript/recipes/cryptominer/mining-rig.md +++ /dev/null @@ -1,55 +0,0 @@ -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -# Mining Rig - -## Hardware - -You can surely [find](https://www.reddit.com/r/gpumining/) a better tutorial on how to build a mining rig than this one. However, to summarise what I've learned: - -1. You want a beefy power supply, with lots of PCI-e 8pin and 6pin cables. -2. You need 1 x PCI express (_PCI-e_) port per GPU -3. You don't need powerful CPU or much RAM - the GPUs do all the mining work. My current guts (_minus the PSU_) are 5 years old. - -## Do I need a open-air rig? - -Initially, no. You can use any old PC chassis. But as soon as you want more than one GPU, you're going to start to run into cooling problems. - -You don't need anything fancy. Here's a photo of the rig my wife built me: - -![My mining rig, naked](../../images/mining_rig_naked.jpg) - -I recommend this design (_with the board with little holes in it_) - it takes up more space, but I have more room to place extra components (_PSUs, hard drives, etc_), as illustrated below: - -!!! note - You'll note the hard drives in the picture - that's not part of the mining requirements, it's because my rig doubles as my [Plex](/recipes/plex/) server ;) - -![My mining rig, populated](../../images/mining_rig_populated.jpg) - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your mining rig 💻 (This page) -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipes/cryptominer/profit/)! 💰 - - - -## Chef's Notes - -1. Pro-tip : You're going to spend some time overclocking. Which is going to make your mining host unstable. - -Yes. It's the ultimate _#firstworldproblem_, but if you have a means to remotely reboot your host, use it! You can thank me later. - -(_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 (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/monitor.md b/manuscript/recipes/cryptominer/monitor.md deleted file mode 100644 index cdc9084..0000000 --- a/manuscript/recipes/cryptominer/monitor.md +++ /dev/null @@ -1,93 +0,0 @@ -# Monitor - -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -So, you're a miner! But if you're not **actively** mining, are you still a miner? This page details how to **measure** your mining activity, and how to raise an alert when a profit-affecting issue affects your miners. - -## Ingredients - -1. [InfluxDB+Grafana](https://www.funkypenguin.co.nz/note/adding-custom-data-to-influxdb-and-grafana/) instance, for visualising data -2. [Icinga](https://www.icinga.com/), [Nagios](https://www.nagios.org/) etc for alarming on GPU/miner status -3. [Asi MPM](https://www.asimpm.com/) (iOS) for monitoring your miner/pool status -4. [Altpocket](https://altpocket.io/?ref=ilVqdeWbAv), [CoinTracking](https://cointracking.info?ref=F560640), etc for managing your crypto-asset portfolio (_referral links_) - -## Preparation - -### Visualising performance - -![Visualise mining performance](../../images/cryptominer_grafana.png) - -Since [Minerhotel](/recipes/crytominer/minerhotel/) switches currency based on what's most profitable in the moment, it's hard to gauge the impact of changes (overclocking, tweaking, mining pools) over time. - -I hacked up a bash script which grabs performance data from the output of the miners, and throws it into an InfluxDB database, which can then be visualized using Grafana. - -Here's an early version of the script (_it's since been updated for clockspeed and power usage too_): - - - -!!! 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 👍 - - -### Alarming on failure - -![Visualise mining performance](../../images/cryptominer_alarm.png) - -GPU mining can fail in subtle ways. On occasion, I've tweaked my GPUs to the point that the miner will start, but one or all GPUs will report a zero hash rate. I wanted to be alerted to such profit-affecting issues, so I wrote a bash script (_intended to be executed by NRPE from Icinga, Nagios, etc_). - -The script tests the output of the currently active miner, and ensures the GPUs have a valid hashrate. - - - -!!! 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 👍 - -### Monitoring pool/miner status - -I've tried several iOS apps for monitoring my performance across various. The most useful app I've found thus far is [Asi MPM](https://www.asimpm.com/). It requires a little upfront effort to configure for all your coins/pools, but thereafter it's a handy way to keep tabs on your new obsession! - -### Track your portfolio - -Now that you've got your coins happily cha-chinging into you [wallets](/recipes/cryptominer/wallet/) (_and potentially various [exchanges](/recipes/cryptominer/exchange/)_), you'll want to monitor the performance of your portfolio over time. - -#### Web Apps - -There's a detailed breakdown of porfolio-management apps [here](https://www.cryptostache.com/2017/11/10/keeping-track-cryptocurrency-portfolio-best-apps-2017/). - -Personally, I use: - -* [Altpocket](https://altpocket.io/?ref=ilVqdeWbAv) (A free web app which can auto-sync with certain exchanges and wallets) -* [CoinTracking](https://cointracking.info?ref=F560640) - The top crypto-portfolio manager, by far. But it's expensive when you get to > 200 trades. You get what you pay for ;) - -#### Mobile Apps - -I've found the following iOS apps to be useful in tracking my portfolio (_really more for investing than mining though, since portfolio tracking requires a manual entry for each trade_) - -* [Delta](https://itunes.apple.com/us/app/delta-crypto-ico-portfolio/id1288676542?mt=8) (iOS) - Track your portfolio (losses/gains) and alert you to changes in the coins you watch -* [Bitscreener](https://itunes.apple.com/app/apple-store/id1240849311?mt=8) )(iOS) - Track multiple currencies on a watchlist, and quickly view news/discussion per coin - -!!! note - Some of the links above are referral links. I get some goodies when you use them. - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. Monitor your empire :heartbeat: (_this page_) -7. [Profit](/recipes/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 (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/nvidia-gpu.md b/manuscript/recipes/cryptominer/nvidia-gpu.md deleted file mode 100644 index a96ee55..0000000 --- a/manuscript/recipes/cryptominer/nvidia-gpu.md +++ /dev/null @@ -1,164 +0,0 @@ -# NVidia GPU - -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -## Ingredients - -1. [Nvidia drivers](http://www.nvidia.com/Download/driverResults.aspx/104284/en-us) for your GPU -2. Some form of X11 GUI preconfigured on your linux host (yes, it's a PITA, but it's necessary for overclocking) - -## Preparation - -### Install kernel-devel and gcc - -The nVidia drivers will need the kernel development packages for your OS installed, as well as gcc. Run the following (for CentOS - there will be an Ubuntu equivalent): - -```yum install kernel-devel-$(uname -r) gcc``` - -### Remove nouveau - -Your host probably already includes nouveau, free/libre drivers for Nvidia graphics card. These won't cut it for mining, so blacklist them to avoid conflict with the dirty, proprietary Nvidia drivers: - -``` -echo 'blacklist nouveau' >> /etc/modprobe.d/blacklist.conf -dracut /boot/initramfs-$(uname -r).img $(uname -r) --force -systemctl disable gdm -reboot -``` - -### Install Nvidia drivers - -Download and uncompress the [Nvidia drivers](http://www.nvidia.com/Download/driverResults.aspx/104284/en-us), and execute the installation as root, with a command something like this: - -```bash NVIDIA-Linux-x86_64-352.30.run``` - -Update your X11 config by running: - -``` -nvidia-xconfig -``` - -### Enable GUID - -``` -systemctl enable gdm -ln -s '/usr/lib/systemd/system/gdm.service' '/etc/systemd/system/display-manager.service' -reboot -``` - -## Overclock - -### Preparation - -!!! warning - Like overclocking itself, this process is still a work in progress. YMMV. - -Of course, you want to squeeze the optimal performance out of your GPU. This is where the X11 environment is required - to adjust GPU clock/memory settings, you need to use the ```nvidia-settings``` command, which (_stupidly_) **requires** an X11 display, even if you're just using the command line. - -The following command: configures X11 for a "fake" screen so that X11 will run, even on a headless machine managed by SSH only, and ensures that the PCI bus ID of every NVidia device is added to the xorg.conf file (to avoid errors about "_(EE) no screens found(EE)_") - -``` -nvidia-xconfig -a --allow-empty-initial-configuration --cool-bits=28 --use-display-device="DFP-0" --connected-monitor="DFP-0" --enable-all-gpus --separate-x-screens -``` - -!!! note - The script below was taken from https://github.com/Cyclenerd/ethereum_nvidia_miner - -Make a directory for your overclocking script. Mine happens to be /root/overclock/, but use whatever you like. - -Create settings.conf as follows: - -``` -# Known to work with Nvidia 1080ti, but probably not optimal. It's an eternal work-in-progress. -MY_WATT="200" -MY_CLOCK="100" -MY_MEM="400" -MY_FAN="60" -``` - -Then create nvidia-overclock.sh as follows: - -``` -#!/usr/bin/env bash - -# -# nvidia-overclock.sh -# Author: Nils Knieling - https://github.com/Cyclenerd/ethereum_nvidia_miner -# -# Overclocking with nvidia-settings -# - -# Load global settings settings.conf -if ! source ~/overclock/settings.conf; then - echo "FAILURE: Can not load global settings 'settings.conf'" - exit 9 -fi - -export DISPLAY=:0 - -# Graphics card 1 to 6 -for MY_DEVICE in {0..5} -do - # Check if card exists - if nvidia-smi -i $MY_DEVICE >> /dev/null 2>&1; then - nvidia-settings -a "[gpu:$MY_DEVICE]/GPUPowerMizerMode=1" - # Fan speed - nvidia-settings -a "[gpu:$MY_DEVICE]/GPUFanControlState=1" - nvidia-settings -a "[fan:$MY_DEVICE]/GPUTargetFanSpeed=$MY_FAN" - # Graphics clock - nvidia-settings -a "[gpu:$MY_DEVICE]/GPUGraphicsClockOffset[3]=$MY_CLOCK" - # Memory clock - nvidia-settings -a "[gpu:$MY_DEVICE]/GPUMemoryTransferRateOffset[3]=$MY_MEM" - # Set watt/powerlimit. This is also set in miner.sh at autostart. - sudo nvidia-smi -i "$MY_DEVICE" -pl "$MY_WATT" - fi -done - -echo -echo "Done" -echo -``` - -### Start your engine! - -**Once** you've got X11 running correctly, execute ,/nvidia-overclock.sh, and you should see something like the following: - -``` -[root@kvm overclock]# ./nvidia-overclock.sh - Attribute 'GPUPowerMizerMode' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 1. - Attribute 'GPUFanControlState' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 1. - Attribute 'GPUTargetFanSpeed' (kvm.funkypenguin.co.nz:0[fan:0]) assigned value 60. - Attribute 'GPUGraphicsClockOffset' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 100. - Attribute 'GPUMemoryTransferRateOffset' (kvm.funkypenguin.co.nz:0[gpu:0]) assigned value 400. - -Power limit for GPU 00000000:04:00.0 was set to 150.00 W from 150.00 W. -All done. - -Done - -[root@kvm overclock]# -``` - -Play with changing your settings.conf file until you break it, and then go back one revision :) - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or Nvidia (_this page_) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipes/cryptominer/profit/)! 💰 - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/profit.md b/manuscript/recipes/cryptominer/profit.md deleted file mode 100644 index 19a3e8b..0000000 --- a/manuscript/recipes/cryptominer/profit.md +++ /dev/null @@ -1,28 +0,0 @@ -# Profit! 💰 - -Well, that's it really. You're a cryptominer. Welcome to the party. - -## Your adventure has only just begun! - -To recap, you did all this: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or [wallets](/recipes/cryptominer/wallet/) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. Profit! (_This page_) 💰 - - -## What next? - -Get in touch and share your experience - there's a special [discord](https://discord.gg/Y9aUhrj) channel if you're the IM type, else post a comment/thread at the [kitchen](http://discourse.geek-kitchen.funkypenguin.co.nz/) :) - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/cryptominer/wallet.md b/manuscript/recipes/cryptominer/wallet.md deleted file mode 100644 index 00f267e..0000000 --- a/manuscript/recipes/cryptominer/wallet.md +++ /dev/null @@ -1,41 +0,0 @@ -!!! warning - This is not a complete recipe - it's a component of the [cryptominer](/recipes/cryptominer/) "_uber-recipe_", but has been split into its own page to reduce complexity. - -# Wallet - -You may be mining a particular coin, and want to hold onto it, in the hopes of long-term growth. The safest place to stick that coin, therefore, is an a wallet. - -## Preparation - -### Get your wallets - -Your favorite coin probably has a link to various desktop wallets on their website. All you have to do is download the wallet to your desktop, fire it up, and then **backup your public/private key somewhere safe**. - -### Wallets I use - -I mine most of my coins to Exchanges, but I do have the following wallets: - -* [Jaxx](https://itunes.apple.com/nz/app/jaxx-blockchain-wallet/id1084514516?mt=8) on my iPhone for popular coins (BTC, ETH, etc) -* Eleos wallet for [ZClassic](https://zclassic.org/) - - -## Continue your adventure - -Now, continue to the next stage of your grand mining adventure: - -1. Build your [mining rig](/recipes/cryptominer/mining-rig/) 💻 -2. Setup your [AMD](/recipes/cryptominer/amd-gpu/) or [Nvidia](/recipes/cryptominer/nvidia-gpu/) GPUs 🎨 -3. Sign up for [mining pools](/recipes/cryptominer/mining-pool/) :swimmer: -4. Setup your miners with [Miner Hotel](/recipes/cryptominer/minerhotel/) 🏨 -5. Send your coins to [exchanges](/recipes/cryptominer/exchange/) or wallets (_This page_) 💹 -6. [Monitor](/recipes/cryptominer/monitor/) your empire :heartbeat: -7. [Profit](/recipes/cryptominer/profit/)! 💰 - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 diff --git a/manuscript/recipes/kubernetes/kanboard.md b/manuscript/recipes/kubernetes/kanboard.md index 76d24f7..a3ff918 100644 --- a/manuscript/recipes/kubernetes/kanboard.md +++ b/manuscript/recipes/kubernetes/kanboard.md @@ -262,10 +262,4 @@ To look at the Kanboard pod's logs, run ```kubectl logs -n kanboard -f```. For further troubleshooting hints, see [Troubleshooting](/reference/kubernetes/troubleshooting/). - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +To look at the Miniflux pod's logs, run ```kubectl logs -n miniflux -f```. For further troubleshooting hints, see [Troubleshooting](/reference/kubernetes/troubleshooting/). \ No newline at end of file diff --git a/manuscript/recipes/kubernetes/nextcloud.md b/manuscript/recipes/kubernetes/nextcloud.md index 5424206..5a920da 100644 --- a/manuscript/recipes/kubernetes/nextcloud.md +++ b/manuscript/recipes/kubernetes/nextcloud.md @@ -124,10 +124,4 @@ Log into your new instance at https://**YOUR-FQDN**, with user "root" and the pa ## Chef's Notes -1. If you wanted to expose the Wekan UI directly, you could remove the oauth2_proxy from the design, and move the traefik_public-related labels directly to the wekan container. You'd also need to add the traefik_public network to the wekan container. - -### Tip your waiter (support me) 👏 - -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? 💬 +1. If you wanted to expose the Wekan UI directly, you could remove the oauth2_proxy from the design, and move the traefik_public-related labels directly to the wekan container. You'd also need to add the traefik_public network to the wekan container. \ No newline at end of file diff --git a/manuscript/recipes/kubernetes/phpipam.md b/manuscript/recipes/kubernetes/phpipam.md index 5893545..30d558d 100644 --- a/manuscript/recipes/kubernetes/phpipam.md +++ b/manuscript/recipes/kubernetes/phpipam.md @@ -117,10 +117,4 @@ Log into your new instance at https://**YOUR-FQDN**, with user "root" and the pa ## Chef's Notes -1. If you wanted to expose the Wekan UI directly, you could remove the oauth2_proxy from the design, and move the traefik_public-related labels directly to the wekan container. You'd also need to add the traefik_public network to the wekan container. - -### Tip your waiter (support me) 👏 - -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? 💬 +1. If you wanted to expose the Wekan UI directly, you could remove the oauth2_proxy from the design, and move the traefik_public-related labels directly to the wekan container. You'd also need to add the traefik_public network to the wekan container. \ No newline at end of file diff --git a/manuscript/recipes/kubernetes/privatebin.md b/manuscript/recipes/kubernetes/privatebin.md index 5424206..5a920da 100644 --- a/manuscript/recipes/kubernetes/privatebin.md +++ b/manuscript/recipes/kubernetes/privatebin.md @@ -124,10 +124,4 @@ Log into your new instance at https://**YOUR-FQDN**, with user "root" and the pa ## Chef's Notes -1. If you wanted to expose the Wekan UI directly, you could remove the oauth2_proxy from the design, and move the traefik_public-related labels directly to the wekan container. You'd also need to add the traefik_public network to the wekan container. - -### Tip your waiter (support me) 👏 - -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? 💬 +1. If you wanted to expose the Wekan UI directly, you could remove the oauth2_proxy from the design, and move the traefik_public-related labels directly to the wekan container. You'd also need to add the traefik_public network to the wekan container. \ No newline at end of file diff --git a/manuscript/recipes/kubernetes/template-k8s.md b/manuscript/recipes/kubernetes/template-k8s.md index 76d24f7..a3ff918 100644 --- a/manuscript/recipes/kubernetes/template-k8s.md +++ b/manuscript/recipes/kubernetes/template-k8s.md @@ -262,10 +262,4 @@ To look at the Kanboard pod's logs, run ```kubectl logs -n kanboard ``` -Log into your new instance at https://**YOUR-FQDN**, and follow the wizard to complete the setup. - -### Tip your waiter (support me) 👏 - -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? 💬 +Log into your new instance at https://**YOUR-FQDN**, and follow the wizard to complete the setup. \ No newline at end of file diff --git a/manuscript/recipes/turtle-pool.md b/manuscript/recipes/turtle-pool.md deleted file mode 100644 index 24eb179..0000000 --- a/manuscript/recipes/turtle-pool.md +++ /dev/null @@ -1,449 +0,0 @@ -hero: How to setup a TurtleCoin Mining Pool - -# TurtleCoin Mining Pool - -[Cryptocurrency miners](/recipes/cryptominer) will "pool" their GPU resources ("_hashpower_") into aggregate "_mining pools_", so that by the combined effort of all the miners, the pool will receive a reward for the blocks "mined" into the blockchain, and this reward will be distributed among the miners. - -![Turtle Pool Screenshot](../images/turtle-pool.png) - -This recipe illustrates how to build a mining pool for [TurtleCoin](https://turtlecoin.lol), one of many [CryptoNote](https://cryptonote.org/) [currencies](https://cryptonote.org/coins) (_which include [Monero](https://www.coingecko.com/en/coins/monero)_), but the principles can be applied to most mineable coins. - -The end result is a mining pool which looks like this: https://trtl.heigh-ho.funkypenguin.co.nz/ - -!!! question "WTF is a TurtleCoin and why do I want it?"" - - In my opinion - because it's a fun, no-BS project with a [silly origin story](https://turtlecoin.lol/#story), a [friendly, welcoming community](http://chat.turtlecoin.lol/), and you'll learn more about cryptocurrency/blockchain than you expect. - -## Ingredients - -1. [Docker swarm cluster](/ha-docker-swarm/design/) with [persistent shared storage](/ha-docker-swarm/shared-storage-ceph.md) -2. [Traefik](/ha-docker-swarm/traefik) configured per design -3. DNS entry for the hostnames (_pool and api_) you intend to use, pointed to your [keepalived](ha-docker-swarm/keepalived/) IP -4. At least 16GB disk space (12GB used, 4GB for future growth) - -## Preparation - -### Create user account - -The TurtleCoin pool elements won't (_and shouldn't_) run as root, but they'll need access to write data to some parts of the filesystem (_like logs, etc_). - -To manage access control, we'll want to create a local user on **each docker node** with the same UID. - -``` -useradd -u 3506 turtle-pool -``` - -!!! question "Why 3506?" - I'm glad you asked. [TurtleCoin hard-forked at block 350K](https://medium.com/@turtlecoin/take-your-baikal-and-shove-it-up-your-asic-b05c96187790) to avoid ASIC miners. The Ninja Turtles' human friend [April O'Neil](http://turtlepedia.wikia.com/wiki/April_O'Neil) works at [Channel 6 News](http://turtlepedia.wikia.com/wiki/Channel_6). 350 + 6 = 3506 😁. Aren't **you** glad you asked? - - -### Setup Redis - - -The pool uses Redis for in-memory and persistent storage. This comes in handy for the Docker Swarm deployment, since while the various pool modules weren't _designed_ to run as microservices, the fact that they all rely on Redis for data storage makes this possible. - -!!! warning "Playing it safe" - - Be aware that by default, Redis stores some data **only** in memory, and writes to the filesystem at default intervals (_can be up to 5 minutes by default_). Given we don't **want** to loose 5 minutes of miner's data if we restart Redis (_what happens if we found a block during those 5 minutes but haven't paid any miners yet?_), we want to ensure that Redis runs in "appendonly" mode, which ensures that every change is immediately written to disk. - - We also want to make sure that we retain all Redis logs persistently (_We're dealing with people's cryptocurrency here, it's a good idea to keep persistent logs for debugging/auditing_) - -Create directories to hold Redis data. We use separate directories for future flexibility - One day, we may want to backup the data but not the logs, or move the data to an SSD partition but leave the logs on slower, cheaper disk. - -``` -mkdir -p /var/data/turtle-pool/redis/config -mkdir -p /var/data/turtle-pool/redis/data -mkdir -p /var/data/turtle-pool/redis/logs -chown turtle-pool /var/data/turtle-pool/redis/data -chown turtle-pool /var/data/turtle-pool/redis/logs -``` - -Create **/var/data/turtle-pool/redis/config/redis.conf** using http://download.redis.io/redis-stable/redis.conf as a guide. The following are the values I changed from default on my deployment (_but I'm not a Redis expert!_): - -``` -appendonly yes -appendfilename "appendonly.aof" -loglevel notice -logfile "/logs/redis.log" -protected-mode no -``` - -I also had to **disable** the following line, by commenting it out (_thus ensuring Redis container will respond to the other containers_): - -``` -bind 127.0.0.1 -``` - -### Setup Nginx - -We'll run a simple Nginx container to serve the static front-end of the web UI. - -The simplest way to get the frontend is just to clone the upstream turtle-pool repo, and mount the "/website" subdirectory into Nginx. - -``` -git clone https://github.com/turtlecoin/turtle-pool.git /var/data/turtle-pool/nginx/ -``` - -Edit **/var/data/turtle-pool/nginx/website/config.js**, and change at least the following: - -``` -var api = "https://"; -var poolHost = " -2018-May-01 11:14:59.920932 INFO New wallet added TRTL, creation timestamp 0 -2018-May-01 11:14:59.932367 INFO Container shut down -2018-May-01 11:14:59.932419 INFO Loading container... -2018-May-01 11:14:59.961814 INFO Consumer added, consumer 0x55b0fb5bc070, count 1 -2018-May-01 11:14:59.961996 INFO Starting... -2018-May-01 11:14:59.962173 INFO Container loaded, view public key , wallet count 1, actual balance 0.00, pending balance 0.00 -2018-May-01 11:14:59.962508 INFO New wallet is generated. Address: TRTL -2018-May-01 11:14:59.962581 INFO Saving container... -2018-May-01 11:14:59.962683 INFO Stopping... -2018-May-01 11:14:59.962862 INFO Stopped -``` - -Take careful note of your wallet password, public view key, and wallet address (which starts with TRTL) - -Create **/var/data/turtle-pool/wallet/config/wallet.conf**, containing the following: - -``` -bind-address = 0.0.0.0 -container-file = /container/wallet.container -container-password = -rpc-password = -log-file = /dev/stdout -log-level = 3 -daemon-address = daemon -``` - -### Setup TurtleCoin mining pool - -Following the convention we've set above, create directories to hold pool data: - -``` -mkdir -p /var/data/turtle-pool/pool/config -mkdir -p /var/data/turtle-pool/pool/logs -chown -R turtle-pool /var/data/turtle-pool/pool/logs -``` - -Now create **/var/data/turtle-pool/pool/config/config.json**, using https://github.com/turtlecoin/turtle-pool/blob/master/config.json as a guide, and adjusting at least the following: - -Send logs to /logs/, so that they can potentially be stored / backed up separately from the config: - -``` -"logging": { - "files": { - "level": "debug", - "directory": "/logs", - "flushInterval": 5 - }, -``` - -Set the "poolAddress" field to your wallet address -``` -"poolServer": { - "enabled": true, - "clusterForks": "auto", - "poolAddress": "", -``` - -Add the "host" value to the api section, since our API will run on its own container, and choose a password you'll use for the webUI admin page - -``` -"api": { - "enabled": true, - "hashrateWindow": 600, - "updateInterval": 5, - "host": "pool-api", - "port": 8117, - "blocks": 30, - "payments": 30, - "password": "" -``` - -Set the host value for the daemon: - -``` -"daemon": { - "host": "daemon", - "port": 11898 -}, -``` - -Set the host value for the wallet, and set your container password (_you recorded it earlier, remember?_) - -``` -"wallet": { - "host": "wallet", - "port": 8070, - "password": "" -}, -``` - -Set the host value for Redis: - -``` -"redis": { - "host": "redis", - "port": 6379 -}, -``` - -That's it! The above config files mean each element of the pool will be able to communicate with the other elements within the docker swarm, by name. - - - - - -### 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``` 👍 - - -``` -version: '3' - -services: - daemon: - image: funkypenguin/turtlecoind - volumes: - - /var/data/runtime/turtle-pool/daemon/1:/var/lib/turtlecoind/ - - /etc/localtime:/etc/localtime:ro - networks: - - internal - - traefik_public - ports: - - 11897:11897 - labels: - - traefik.frontend.rule=Host:explorer.trtl.heigh-ho.funkypenguin.co.nz - - traefik.docker.network=traefik_public - - traefik.port=11898 - - daemon-failsafe1: - image: funkypenguin/turtlecoind - volumes: - - /var/data/runtime/turtle-pool/daemon/failsafe1:/var/lib/turtlecoind/ - - /etc/localtime:/etc/localtime:ro - networks: - - internal - - daemon-failsafe2: - image: funkypenguin/turtlecoind - volumes: - - /var/data/runtime/turtle-pool/daemon/failsafe2:/var/lib/turtlecoind/ - - /etc/localtime:/etc/localtime:ro - networks: - - internal - - pool-pool: - image: funkypenguin/turtle-pool - volumes: - - /var/data/turtle-pool/pool/config:/config:ro - - /var/data/turtle-pool/pool/logs:/logs - - /etc/localtime:/etc/localtime:ro - networks: - - internal - ports: - - 3333:3333 - - 5555:5555 - - 7777:7777 - entrypoint: | - node init.js -module=pool -config=/config/config.json - - pool-api: - image: funkypenguin/turtle-pool - volumes: - - /var/data/turtle-pool/pool/config:/config:ro - - /var/data/turtle-pool/pool/logs:/logs - - /etc/localtime:/etc/localtime:ro - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:api.trtl.heigh-ho.funkypenguin.co.nz - - traefik.docker.network=traefik_public - - traefik.port=8117 - entrypoint: | - node init.js -module=api -config=/config/config.json - - pool-unlocker: - image: funkypenguin/turtle-pool - volumes: - - /var/data/turtle-pool/pool/config:/config:ro - - /var/data/turtle-pool/pool/logs:/logs - - /etc/localtime:/etc/localtime:ro - networks: - - internal - entrypoint: | - node init.js -module=unlocker -config=/config/config.json - - pool-payments: - image: funkypenguin/turtle-pool - volumes: - - /var/data/turtle-pool/pool/config:/config:ro - - /var/data/turtle-pool/pool/logs:/logs - - /etc/localtime:/etc/localtime:ro - networks: - - internal - entrypoint: | - node init.js -module=payments -config=/config/config.json - - pool-charts: - image: funkypenguin/turtle-pool - volumes: - - /var/data/turtle-pool/pool/config:/config:ro - - /var/data/turtle-pool/pool/logs:/logs - - /etc/localtime:/etc/localtime:ro - networks: - - internal - entrypoint: | - node init.js -module=chartsDataCollector -config=/config/config.json - - wallet: - image: funkypenguin/turtlecoind - volumes: - - /var/data/turtle-pool/wallet/config:/config:ro - - /var/data/turtle-pool/wallet/container:/container - - /var/data/turtle-pool/wallet/logs:/logs - - /etc/localtime:/etc/localtime:ro - networks: - - internal - entrypoint: | - walletd --config /config/wallet.conf | tee /logs/walletd.log - - redis: - volumes: - - /var/data/turtle-pool/redis/config:/config:ro - - /var/data/turtle-pool/redis/data:/data - - /var/data/turtle-pool/redis/logs:/logs - - /etc/localtime:/etc/localtime:ro - image: redis - entrypoint: | - redis-server /config/redis.conf - networks: - - internal - - nginx: - volumes: - - /var/data/turtle-pool/nginx/website:/usr/share/nginx/html:ro - - /etc/localtime:/etc/localtime:ro - image: nginx - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:trtl.heigh-ho.funkypenguin.co.nz - - traefik.docker.network=traefik_public - - traefik.port=80 - -networks: - traefik_public: - external: true - internal: - driver: overlay - ipam: - config: - - subnet: 172.16.21.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. - - -## Serving - -### Launch the Turtle! 🐢 - -Launch the Turtle pool stack by running ```docker stack deploy turtle-pool -c ```, and then run ```"```docker stack ps turtle-pool``` to ensure the stack has come up properly. (_See [troubleshooting](/reference/troubleshooting) if not_) - -The first thing that'll happen is that TurtleCoind will start syncing the blockchain from the bootstrap data. You can watch this happening with ```docker service logs turtle-pool_daemon -f```. While the daemon is syncing, it won't respond to requests, so walletd, the pool, etc will be non-functional. - -You can watch the various elements of the pool doing their thing, by running ```tail -f /var/data/turtle-pool/pool/logs/*.log``` - -### So how do I mine to it? - -That.. is another recipe. Start with the "[CryptoMiner](/recipes/cryptominer/)" uber-recipe for GPU/rig details, grab a copy of xmr-stack (_patched for the forked TurtleCoin_) from https://github.com/turtlecoin/trtl-stak/releases, and follow your nose. Jump into the TurtleCoin discord (_below_) #mining channel for help. - -### What to do if it breaks? - -TurtleCoin is a baby cryptocurrency. There are scaling issues to solve, and large amounts components of this recipe are under rapid development. So, elements may break/change in time, and this recipe itself is a work-in-progress. - -Jump into the [TurtleCoin Discord server](http://chat.turtlecoin.lol/) to ask questions, contribute, and send/receive some TRTL tips! - -## Chef's Notes 📓 - -1. Because Docker Swarm performs ingress NAT for its load-balanced "routing mesh", the source address of inbound miner traffic is rewritten to a (_common_) docker node IP address. This means it's [not possible to determine the actual source IP address](https://github.com/moby/moby/issues/25526) of a miner. Which, in turn, means that any **one** misconfigured miner could trigger an IP ban, and lock out all other miners for 5 minutes at a time. - -Two possible solutions to this are (1) disable banning, or (2) update the pool banning code to ban based on a combination of IP address and miner wallet address. I'll be working on a change to implement #2 if this becomes a concern. - -2. The traefik labels in the docker-compose are to permit automatic LetsEncrypt SSL-protected proxying of your pool UI and API addresses. - -3. After a [power fault in my datacenter caused daemon DB corruption](https://www.reddit.com/r/TRTL/comments/8jftzt/funky_penguin_nz_mining_pool_down_with_daemon/), I added a second daemon, running in parallel to the first. The failsafe daemon runs once an hour, syncs with the running daemons, and shuts down again, providing a safely halted version of the daemon DB for recovery. diff --git a/manuscript/reference/containers.md b/manuscript/reference/containers.md index 8a72ab6..3c8aafa 100644 --- a/manuscript/reference/containers.md +++ b/manuscript/reference/containers.md @@ -39,13 +39,4 @@ Name | Description | Badges [funkypenguin/turtle-pool](https://hub.docker.com/r/funkypenguin/turtle-pool/)
[![Size](https://images.microbadger.com/badges/image/funkypenguin/turtle-pool.svg)](https://hub.docker.com/r/funkypenguin/turtle-pool//)| turtle-pool |[![Docker Pulls](https://img.shields.io/docker/pulls/funkypenguin/turtle-pool.svg)](https://hub.docker.com/r/funkypenguin/turtle-pool/)
[![Docker Stars](https://img.shields.io/docker/stars/funkypenguin/turtle-pool.svg)](https://hub.docker.com/r/funkypenguin/turtle-pool/) [funkypenguin/turtlecoin](https://hub.docker.com/r/funkypenguin/turtlecoin/)
[![Size](https://images.microbadger.com/badges/image/funkypenguin/turtlecoin.svg)](https://hub.docker.com/r/funkypenguin/turtlecoin/)| turtlecoin |[![Docker Pulls](https://img.shields.io/docker/pulls/funkypenguin/turtlecoin.svg)](https://hub.docker.com/r/funkypenguin/turtlecoin/)
[![Docker Stars](https://img.shields.io/docker/stars/funkypenguin/turtlecoin.svg)](https://hub.docker.com/r/funkypenguin/turtlecoin/) [funkypenguin/x-cash](https://hub.docker.com/r/funkypenguin/x-cash/)
[![Size](https://images.microbadger.com/badges/image/funkypenguin/x-cash.svg)](https://hub.docker.com/r/funkypenguin/x-cash/)| X-CASH cryptocurrency daemon/services |[![Docker Pulls](https://img.shields.io/docker/pulls/funkypenguin/x-cash.svg)](https://hub.docker.com/r/funkypenguin/x-cash/)
[![Docker Stars](https://img.shields.io/docker/stars/funkypenguin/x-cash.svg)](https://hub.docker.com/r/funkypenguin/x-cash/) -[funkypenguin/xmrig-cpu](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)
[![Size](https://images.microbadger.com/badges/image/funkypenguin/xmrig-cpu.svg)](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)| xmrig-cpu |[![Docker Pulls](https://img.shields.io/docker/pulls/funkypenguin/xmrig-cpu.svg)](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)
[![Docker Stars](https://img.shields.io/docker/stars/funkypenguin/xmrig-cpu.svg)](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)| - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +[funkypenguin/xmrig-cpu](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)
[![Size](https://images.microbadger.com/badges/image/funkypenguin/xmrig-cpu.svg)](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)| xmrig-cpu |[![Docker Pulls](https://img.shields.io/docker/pulls/funkypenguin/xmrig-cpu.svg)](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)
[![Docker Stars](https://img.shields.io/docker/stars/funkypenguin/xmrig-cpu.svg)](https://hub.docker.com/r/funkypenguin/xmrig-cpu/)| \ No newline at end of file diff --git a/manuscript/reference/data_layout.md b/manuscript/reference/data_layout.md index 1d2c213..8439947 100644 --- a/manuscript/reference/data_layout.md +++ b/manuscript/reference/data_layout.md @@ -14,13 +14,4 @@ Realtime data (typically database files or files-in-use) are stored in /var/data ## Static data -Static data goes into /var/data/[recipe name], and includes anything that can be safely backed up while a container is running. This includes database exports of the runtime data above. - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +Static data goes into /var/data/[recipe name], and includes anything that can be safely backed up while a container is running. This includes database exports of the runtime data above. \ No newline at end of file diff --git a/manuscript/reference/git-docker.md b/manuscript/reference/git-docker.md index ffcab39..7e662fa 100644 --- a/manuscript/reference/git-docker.md +++ b/manuscript/reference/git-docker.md @@ -49,13 +49,4 @@ The key's randomart image is: +----[SHA256]-----+ ``` -Now add the contents of /var/data/git-docker/data/.ssh/id_ed25519.pub to your git account, and off you go - just run "git" from your Atomic host as usual, and pretend that you have the client installed! - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +Now add the contents of /var/data/git-docker/data/.ssh/id_ed25519.pub to your git account, and off you go - just run "git" from your Atomic host as usual, and pretend that you have the client installed! \ No newline at end of file diff --git a/manuscript/reference/networks.md b/manuscript/reference/networks.md index 06ad58c..6719711 100644 --- a/manuscript/reference/networks.md +++ b/manuscript/reference/networks.md @@ -53,14 +53,4 @@ Network | Range [Magento](https://geek-cookbook.funkypenguin.co.nz/recipes/magento/) | 172.16.51.0/24 [Graylog](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.52.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 - - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +[Harbor-Clair](https://geek-cookbook.funkypenguin.co.nz/recipes/graylog/) | 172.16.54.0/24 \ No newline at end of file diff --git a/manuscript/reference/oauth_proxy.md b/manuscript/reference/oauth_proxy.md index a808eab..149085c 100644 --- a/manuscript/reference/oauth_proxy.md +++ b/manuscript/reference/oauth_proxy.md @@ -76,13 +76,4 @@ proxy: Note above how: * Labels are required to tell Traefik to forward the traffic to the proxy, rather than the backend container running the app * An environment file is defined, but.. -* The redirect URL must still be passed to the oauth_proxy in the command argument - - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +* The redirect URL must still be passed to the oauth_proxy in the command argument \ No newline at end of file diff --git a/manuscript/reference/openvpn.md b/manuscript/reference/openvpn.md index e6f0543..dd59bf9 100644 --- a/manuscript/reference/openvpn.md +++ b/manuscript/reference/openvpn.md @@ -55,13 +55,4 @@ docker run -d --name vpn-client \ 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 (support me) 👏 - -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? 💬 +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. \ No newline at end of file diff --git a/manuscript/reference/troubleshooting.md b/manuscript/reference/troubleshooting.md index 0102181..2830da9 100644 --- a/manuscript/reference/troubleshooting.md +++ b/manuscript/reference/troubleshooting.md @@ -23,12 +23,4 @@ For a visual "top-like" display of your container's activity (_as well as a [det To execute, simply run `docker run --rm -ti --name ctop -v /var/run/docker.sock:/var/run/docker.sock quay.io/vektorlab/ctop:latest` Example: -![](https://github.com/bcicen/ctop/raw/master/_docs/img/grid.gif) - -## Chef's Notes - -### Tip your waiter (support me) 👏 - -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? 💬 +![](https://github.com/bcicen/ctop/raw/master/_docs/img/grid.gif) \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 06f5c0f..43833b8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -95,22 +95,10 @@ nav: - phpIPAM: recipes/phpipam.md - Plex: recipes/plex.md - PrivateBin: recipes/privatebin.md - - Swarmprom: recipes/swarmprom.md - - Turtle Pool: recipes/turtle-pool.md + - Swarmprom: recipes/swarmprom.md - Recipes: - Bitwarden: recipes/bitwarden.md - Bookstack: recipes/bookstack.md - - CryptoMiner: - - Start: recipes/cryptominer.md - - Mining Rig: recipes/cryptominer/mining-rig.md - - AMD GPU: recipes/cryptominer/amd-gpu.md - - NVidia GPU: recipes/cryptominer/nvidia-gpu.md - - Mining Pools : recipes/cryptominer/mining-pool.md - - Wallets : recipes/cryptominer/wallet.md - - Exchanges: recipes/cryptominer/exchange.md - - Minerhotel: recipes/cryptominer/minerhotel.md - - Monitoring: recipes/cryptominer/monitor.md - - Profit!: recipes/cryptominer/profit.md - Calibre-Web: recipes/calibre-web.md - Collabora Online: recipes/collabora-online.md - Ghost: recipes/ghost.md