diff --git a/manuscript/CHANGELOG.md b/manuscript/CHANGELOG.md index cda9f6c..736abf5 100644 --- a/manuscript/CHANGELOG.md +++ b/manuscript/CHANGELOG.md @@ -6,7 +6,7 @@ Sign up [here](http://eepurl.com/dfx95n) (double-opt-in) to receive email update ## Recently added recipes -* [Emby](/recipies/emby/) - Geekier alternative to Plex, with improved parental controls (_28 Dec 2017_) +* [Emby](/recipies/emby/) - Geekier alternative to [Plex](/recipies/plex/), with improved parental controls (_28 Dec 2017_) * [Home Assistant](/recipies/homeassistant/) - Home automation platform with support for a [bazillion](https://home-assistant.io/components/) components (_24 Dec 2017_) * [Plex](/recipies/plex/) : Media management and playback platform to **play** all the media you acquired using [AutoPirate](/recipies/autopirate/) :grin: (_21 Dec 2017_) * [Portainer](/recipies/portainer/) : Sexy management UI for your docker container/swarm (_16 Dec 2017_) diff --git a/manuscript/recipies/autopirate.md b/manuscript/recipies/autopirate.md index 93ec6bf..6fda2fc 100644 --- a/manuscript/recipies/autopirate.md +++ b/manuscript/recipies/autopirate.md @@ -2,36 +2,32 @@ hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and # AutoPirate -Once the cutting edge of the "internet" (pre-world-wide-web and mosiac days), Usenet is now a murky, geeky alternative to torrents for file-sharing. However, it's **cool** geeky, especially if you're into having a fully automated media platform. +Once the cutting edge of the "internet" (_pre-world-wide-web and mosiac days_), Usenet is now a murky, geeky alternative to torrents for file-sharing. However, it's **cool** geeky, especially if you're into having a fully automated media platform. A good starter for the usenet scene is https://www.reddit.com/r/usenet/. Because it's so damn complicated, a host of automated tools exist to automate the process of finding, downloading, and managing content. The tools included in this recipe are as follows: ![Autopirate Screenshot](../images/autopirate.png) +This recipe presents a method to combine these tools into a single swarm deployment, and make them available securely. + +## Menu + +Tools included in the AutoPirate stack are: + * **[SABnzbd](http://sabnzbd.org)** : downloads data from usenet servers based on .nzb definitions * **[NZBGet](https://nzbget.net/)** : downloads data from usenet servers based on .nzb definitions, but written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources (_this is a popular alternative to SABnzbd_) -* [RTorrent](https://github.com/rakshasa/rtorrent/wiki) is a CLI-based torrent client, which when combined with [ruTorrent](https://github.com/Novik/ruTorrent) becomes a powerful and fully browser-managed torrent client. -* **[NZBHydra](https://github.com/theotherp/nzbhydra)** : acts as a "meta-indexer", so that your downloading tools (radarr, sonarr, etc) only need to be setup for a single indexes. Also produces interesting stats on indexers, which helps when evaluating which indexers are performing well. +* **[RTorrent](https://github.com/rakshasa/rtorrent/wiki)** is a CLI-based torrent client, which when combined with **[ruTorrent](https://github.com/Novik/ruTorrent)** becomes a powerful and fully browser-managed torrent client. (_Yes, it's not Usenet, but Sonarr/Radarr will let fulfill your watchlist using either Usenet **or** torrents, so it's worth including_) +* **[NZBHydra](https://github.com/theotherp/nzbhydra)** : acts as a "meta-indexer", so that your downloading tools (_radarr, sonarr, etc_) only need to be setup for a single indexes. Also produces interesting stats on indexers, which helps when evaluating which indexers are performing well. * **[Sonarr](https://sonarr.tv)** : finds, downloads and manages TV shows * **[Radarr](https://radarr.video)** : finds, downloads and manages movies * **[Mylar](https://github.com/evilhero/mylar)** : finds, downloads and manages comic books * **[Headphones](https://github.com/rembo10/headphones)** : finds, downloads and manages music * **[Lazy Librarian](https://github.com/itsmegb/LazyLibrarian)** : finds, downloads and manages ebooks -* **[ombi](https://github.com/tidusjar/Ombi)** : provides an interface to request additions to a plex library using the above tools -* **[plexpy](https://github.com/JonnyWong16/plexpy)** : provides interesting stats on your plex server's usage +* **[Ombi](https://github.com/tidusjar/Ombi)** : provides an interface to request additions to a [Plex](/recipies/plex/)/[Emby](/recipies/emby/) library using the above tools -This recipe presents a method to combine these tools into a single swarm deployment, and make them available securely. +Since this recipe is so long, and so many of the tools are optional to the final result (_i.e., if you're not interested in comics, you won't want Mylar_), I've described each individual tool on its own sub-recipe page (_below_), even though most of them are deployed very similarly. -!!! note - This is a **looong** recipe. It contains 18 containers, and could easily scale to more. - -What you'll quickly notice about this recipe is that __every__ web interface is protected by an [OAuth proxy](/reference/oauth_proxy/). - -Why? Because these tools are developed by a handful of volunteer developers who are focused on adding features, not necessarily implementing robust security. Most users wouldn't expose these tools directly to the internet, so the tools have rudimentary (if any) access control. - -To mitigate the risk associated with public exposure of these tools (_you're on your smartphone and you want to add a movie to your watchlist, what do you do, hotshot?_), in order to gain access to each tool you'll first need to authenticate against your given OAuth provider. - ## Ingredients 1. [Docker swarm cluster](/ha-docker-swarm/design/) with [persistent shared storage](/ha-docker-swarm/shared-storage-ceph.md) @@ -48,7 +44,7 @@ We'll need a unique directories for each tool in the stack, bind-mounted into ou ``` mkdir /var/data/autopirate cd /var/data/autopirate -mkdir -p {lazylibrarian,mylar,ombi,sonarr,radarr,headphones,plexpy,nzbhydra,sabnzbd,nzbget} +mkdir -p {lazylibrarian,mylar,ombi,sonarr,radarr,headphones,plexpy,nzbhydra,sabnzbd,nzbget,rtorrent} ``` Create a directory for the storage of your downloaded media, i.e., something like: @@ -59,9 +55,15 @@ mkdir /var/data/media Create a user to "own" the above directories, and note the uid and gid of the created user. You'll need to specify the UID/GID in the environment variables passed to the container (in the example below, I used 4242 - twice the meaning of life). -### Setup OAUTH access +### Secure public access -This is tedious. Each tool (Sonarr, Radarr, etc) to be protected by an OAuth proxy, requires unique configuration. I use github to provide my oauth, giving each tool a unique logo while I'm at it (make up your own random string for OAUTH2_PROXY_COOKIE_SECRET) +What you'll quickly notice about this recipe is that __every__ web interface is protected by an [OAuth proxy](/reference/oauth_proxy/). + +Why? Because these tools are developed by a handful of volunteer developers who are focused on adding features, not necessarily implementing robust security. Most users wouldn't expose these tools directly to the internet, so the tools have rudimentary (if any) access control. + +To mitigate the risk associated with public exposure of these tools (_you're on your smartphone and you want to add a movie to your watchlist, what do you do, hotshot?_), in order to gain access to each tool you'll first need to authenticate against your given OAuth provider. + +This is tedious, but you only have to do it once. Each tool (Sonarr, Radarr, etc) to be protected by an OAuth proxy, requires unique configuration. I use github to provide my oauth, giving each tool a unique logo while I'm at it (make up your own random string for OAUTH2PROXYCOOKIE_SECRET) For each tool, create /var/data/autopirate/.env, and set the following: @@ -103,472 +105,20 @@ networks: !!! 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. -What comes next, goes inbetween... - -#### Sabnzbd - -```` -sabnzbd: - image: linuxserver/sabnzbd:latest - volumes: - - /var/data/autopirate/sabnzbd:/config - - /var/data/media:/media - networks: - - traefik_public - -sabnzbd_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/sabnzbd.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:sabnzbd.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://sabnzbd:8080 - -redirect-url=https://sabnzbd.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -#### NZBGet - -```` -nzbget: - image: linuxserver/nzbget - volumes: - - /var/data/autopirate/nzbget:/config - - /var/data/media:/data - networks: - - traefik_public - -nzbget_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/nzbget.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:nzbget.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://nzbget:6789 - -redirect-url=https://nzbget.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! note - NZBGet uses a 401 header to prompt for authentication. When you use OAuth2_proxy, this seems to break. Since we trust OAuth to authenticate us, we can just disable NZGet's own authentication, by changing ControlPassword to null in nzbget.conf (i.e. ```ControlPassword=```) - -#### RTorrent / ruTorrent - -When using a torrent client from behind NAT (_which swarm, by nature, is_), you typically need to set a static port for inbound torrent communications. In the example below, I've set the port to 36258. You'll need to configure /var/data/autopirate/rtorrent/rtorrent/rtorrent.rc with the equivalent port. - -``` -rtorrent: - image: linuxserver/rutorrent - env_file : /var/data/config/autopirate/rtorrent.env - ports: - - 36258:36258 - volumes: - - /var/data/media/:/media - - /var/data/autopirate/rtorrent:/config - networks: - - internal - -rtorrent_proxy: - image: skippy/oauth2_proxy - env_file : /var/data/config/autopirate/rtorrent.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:rtorrent.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://rtorrent:80 - -redirect-url=https://rtorrent.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -``` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - -#### Lazy Librarian - -If you plan to use Lazy Librarian, add the following to your swarm config file: - -```` -lazylibrarian: - image: linuxserver/lazylibrarian:latest - env_file : /var/data/config/autopirate/lazylibrarian.env - volumes: - - /var/data/autopirate/lazylibrarian:/config - - /var/data/media:/media - networks: - - traefik_public - -lazylibrarian_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/lazylibrarian.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:lazylibrarian.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://lazylibrarian:5299 - -redirect-url=https://lazylibrarian.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - - -#### Mylar - -If you plan to use Mylar, add the following to your swarm config file: - -```` -mylar: - image: linuxserver/mylar:latest - env_file : /var/data/config/autopirate/mylar.env - volumes: - - /var/data/autopirate/mylar:/config - - /var/data/media:/media - networks: - - traefik_public - - -mylar_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/mylar.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:mylar.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://mylar:8090 - -redirect-url=https://mylar.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - -#### Ombi - -If you plan to use Ombi, add the following to your swarm config file: - -```` -ombi: - image: linuxserver/ombi:latest - env_file : /var/data/config/autopirate/ombi.env - volumes: - - /var/data/autopirate/ombi:/config - networks: - - traefik_public - -ombi_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/ombi.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:ombi.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://ombi:3579 - -redirect-url=https://ombi.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - -#### Headphones - -If you plan to use Headphones, add the following to your swarm config file: - -```` -headphones: - image: linuxserver/headphones:latest - env_file : /var/data/config/autopirate/headphones.env - volumes: - - /var/data/autopirate/headphones:/config - - /var/data/media:/media - networks: - - traefik_public - -headphones_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/headphones.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:headphones.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://headphones:8181 - -redirect-url=https://headphones.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - -#### Plexpy - -If you plan to use Plexpy, add the following to your swarm config file: - -```` -plexpy: - image: linuxserver/plexpy:latest - env_file : /var/data/config/autopirate/plexpy.env - volumes: - - /var/data/autopirate/plexpy:/config - networks: - - traefik_public - -plexpy_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/plexpy.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:plexpy.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://plexpy:8181 - -redirect-url=https://plexpy.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - -#### Radarr - -If you plan to use Radarr, add the following to your swarm config file: - -```` -radarr: - image: linuxserver/radarr:latest - env_file : /var/data/config/autopirate/radarr.env - volumes: - - /var/data/autopirate/radarr:/config - - /var/data/media:/media - networks: - - traefik_public - -radarr_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/radarr.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:radarr.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://radarr:7878 - -redirect-url=https://radarr.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - -#### Sonarr - -If you plan to use Sonarr, add the following to your swarm config file: - -```` -sonarr: - image: linuxserver/sonarr:latest - env_file : /var/data/config/autopirate/sonarr.env - volumes: - - /var/data/autopirate/sonarr:/config - - /var/data/media:/media - networks: - - traefik_public - -sonarr_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/sonarr.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:sonarr.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://sonarr:8989 - -redirect-url=https://sonarr.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - - -#### NZBHydra - -If you plan to use NZBHydra, add the following to your swarm config file: - -```` -nzbhydra: - image: linuxserver/hydra:latest - env_file : /var/data/config/autopirate/nzbhydra.env - volumes: - - /var/data/autopirate/nzbhydra:/config - networks: - - traefik_public - -nzbhydra_proxy: - image: zappi/oauth2_proxy - env_file : /var/data/config/autopirate/nzbhydra.env - dns_search: myswarm.example.com - networks: - - internal - - traefik_public - deploy: - labels: - - traefik.frontend.rule=Host:nzbhydra.example.com - - traefik.docker.network=traefik_public - - traefik.port=4180 - volumes: - - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt - command: | - -cookie-secure=false - -upstream=http://nzbhydra:5075 - -redirect-url=https://nzbhydra.example.com - -http-address=http://0.0.0.0:4180 - -email-domain=example.com - -provider=github - -authenticated-emails-file=/authenticated-emails.txt -```` - -!!! tip - I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 - - -## Serving - -### Launch Autopirate stack - -Launch the AutoPirate stack by running ```docker stack deploy autopirate -c ``` - -Confirm the container status by running "docker stack ps autopirate", and wait for all containers to enter the "Running" state. - -Log into each of your new tools at its respective HTTPS URL. You'll be prompted to authenticate against your OAuth provider, and upon success, redirected to the tool's UI. - -## 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. +#### Assemble the tools.. + +Now work your way through the list of tools below, adding whichever tools your want to use, and finishing with the **[end](/recipies/autopirate/end/)** section: + +* [SABnzbd](/recipies/autopirate/sabnzbd.md) +* [NZBGet](/recipies/autopirate/nzbget.md) +* [RTorrent](/recipies/autopirate/rtorrent/) +* [Sonarr](/recipies/autopirate/sonarr/) +* [Radarr](/recipies/autopirate/radarr/) +* [Mylar](/recipies/autopirate/mylar/) +* [Lazy Librarian](/recipies/autopirate/lazylibrarian/) +* [Headphones](/recipies/autopirate/headphones/) +* [NZBHydra](/recipies/autopirate/nzbhydra/) +* [Ombi](/recipies/autopirate/ombi/) +* [End](/recipies/autopirate/end/) (launch the stack) ## Your comments? diff --git a/manuscript/recipies/autopirate/headphones.md b/manuscript/recipies/autopirate/headphones.md new file mode 100644 index 0000000..b161ee6 --- /dev/null +++ b/manuscript/recipies/autopirate/headphones.md @@ -0,0 +1,62 @@ +hero: AutoPirate - A fully-featured recipe to automate finding, downloading, and organising your media 📺 🎥 🎵 📖 + +!!! warning + This is not a complete recipe - it's a component of the [autopirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + +# Headphones + +Intro + +![Headphones Screenshot](../../images/headphones.png) + +Details + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +headphones: + image: linuxserver/headphones:latest + env_file : /var/data/config/autopirate/headphones.env + volumes: + - /var/data/autopirate/headphones:/config + - /var/data/media:/media + networks: + - traefik_public + +headphones_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/headphones.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:headphones.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://headphones:8181 + -redirect-url=https://headphones.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/lazylibrarian.md b/manuscript/recipies/autopirate/lazylibrarian.md new file mode 100644 index 0000000..6e8de63 --- /dev/null +++ b/manuscript/recipies/autopirate/lazylibrarian.md @@ -0,0 +1,62 @@ +!!! warning + This is not a complete recipe - it's a component of the [autopirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + +# NAME + +Intro + +![Lazy Librarian Screenshot](../../images/lazylibrarian.png) + +Details + + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +lazylibrarian: + image: linuxserver/lazylibrarian:latest + env_file : /var/data/config/autopirate/lazylibrarian.env + volumes: + - /var/data/autopirate/lazylibrarian:/config + - /var/data/media:/media + networks: + - traefik_public + +lazylibrarian_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/lazylibrarian.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:lazylibrarian.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://lazylibrarian:5299 + -redirect-url=https://lazylibrarian.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/mylar.md b/manuscript/recipies/autopirate/mylar.md new file mode 100644 index 0000000..0d7490c --- /dev/null +++ b/manuscript/recipies/autopirate/mylar.md @@ -0,0 +1,60 @@ +!!! warning + This is not a complete recipe - it's a component of the [autopirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + +# NAME + +Intro + +![Mylar Screenshot](../../images/mylar.jpg) + +Details + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +mylar: + image: linuxserver/mylar:latest + env_file : /var/data/config/autopirate/mylar.env + volumes: + - /var/data/autopirate/mylar:/config + - /var/data/media:/media + networks: + - traefik_public + - +mylar_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/mylar.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:mylar.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://mylar:8090 + -redirect-url=https://mylar.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/nzbhydra.md b/manuscript/recipies/autopirate/nzbhydra.md new file mode 100644 index 0000000..94fc26c --- /dev/null +++ b/manuscript/recipies/autopirate/nzbhydra.md @@ -0,0 +1,58 @@ +!!! warning + This is not a complete recipe - it's a component of the [AutoPirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + + +#### NZBHydra + +![NZBHydra Screenshot](../../images/nzbhydra.png) + + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +nzbhydra: + image: linuxserver/hydra:latest + env_file : /var/data/config/autopirate/nzbhydra.env + volumes: + - /var/data/autopirate/nzbhydra:/config + networks: + - traefik_public + +nzbhydra_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/nzbhydra.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:nzbhydra.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://nzbhydra:5075 + -redirect-url=https://nzbhydra.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/ombi.md b/manuscript/recipies/autopirate/ombi.md new file mode 100644 index 0000000..900e97f --- /dev/null +++ b/manuscript/recipies/autopirate/ombi.md @@ -0,0 +1,61 @@ +!!! warning + This is not a complete recipe - it's a component of the [AutoPirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + +# NAME + +Intro + +![Ombi Screenshot](../../images/ombi.png) + +Details + +## Ombi + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +ombi: + image: linuxserver/ombi:latest + env_file : /var/data/config/autopirate/ombi.env + volumes: + - /var/data/autopirate/ombi:/config + networks: + - traefik_public + +ombi_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/ombi.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:ombi.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://ombi:3579 + -redirect-url=https://ombi.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/plexpy.md b/manuscript/recipies/autopirate/plexpy.md new file mode 100644 index 0000000..8ff6c4a --- /dev/null +++ b/manuscript/recipies/autopirate/plexpy.md @@ -0,0 +1,67 @@ +!!! warning + This is not a complete recipe - it's a component of the [AutoPirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + +# NAME + +Intro + +![Plexpy Screenshot](../../images/plexpy.png) + +Details + + + + + + +#### Plexpy + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +plexpy: + image: linuxserver/plexpy:latest + env_file : /var/data/config/autopirate/plexpy.env + volumes: + - /var/data/autopirate/plexpy:/config + networks: + - traefik_public + +plexpy_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/plexpy.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:plexpy.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://plexpy:8181 + -redirect-url=https://plexpy.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/radarr.md b/manuscript/recipies/autopirate/radarr.md new file mode 100644 index 0000000..ae2d88f --- /dev/null +++ b/manuscript/recipies/autopirate/radarr.md @@ -0,0 +1,60 @@ +!!! warning + This is not a complete recipe - it's a component of the [AutoPirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + +# Radarr + +Intro + +![Radarr Screenshot](../../images/radarr.png) + +Details + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +radarr: + image: linuxserver/radarr:latest + env_file : /var/data/config/autopirate/radarr.env + volumes: + - /var/data/autopirate/radarr:/config + - /var/data/media:/media + networks: + - traefik_public + +radarr_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/radarr.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:radarr.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://radarr:7878 + -redirect-url=https://radarr.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/rtorrent.md b/manuscript/recipies/autopirate/rtorrent.md new file mode 100644 index 0000000..1a56c59 --- /dev/null +++ b/manuscript/recipies/autopirate/rtorrent.md @@ -0,0 +1,62 @@ +!!! warning + This is not a complete recipe - it's a component of the [AutoPirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + +# RTorrent / ruTorrent + +![Rtorrent Screenshot](../../images/rtorrent.png) + +When using a torrent client from behind NAT (_which swarm, by nature, is_), you typically need to set a static port for inbound torrent communications. In the example below, I've set the port to 36258. You'll need to configure /var/data/autopirate/rtorrent/rtorrent/rtorrent.rc with the equivalent port. + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + + +``` +rtorrent: + image: linuxserver/rutorrent + env_file : /var/data/config/autopirate/rtorrent.env + ports: + - 36258:36258 + volumes: + - /var/data/media/:/media + - /var/data/autopirate/rtorrent:/config + networks: + - internal + +rtorrent_proxy: + image: skippy/oauth2_proxy + env_file : /var/data/config/autopirate/rtorrent.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:rtorrent.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://rtorrent:80 + -redirect-url=https://rtorrent.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +``` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + + +## 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. + +## Your comments? diff --git a/manuscript/recipies/autopirate/sonarr.md b/manuscript/recipies/autopirate/sonarr.md new file mode 100644 index 0000000..de36ec9 --- /dev/null +++ b/manuscript/recipies/autopirate/sonarr.md @@ -0,0 +1,60 @@ +!!! warning + This is not a complete recipe - it's a component of the [AutoPirate](/recipies/autopirate/start/) "_uber-recipe_", but has been split into its own page to reduce complexity. + + +# Sonarr + +![Sonarr Screenshot](../../images/sonarr.png) + + +## Inclusion into AutoPirate + +To include NZBGet in your [AutoPirate](/recipies/autopirate/start/) stack, include the following in your autopirate.yml stack definition file: + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + +```` +sonarr: + image: linuxserver/sonarr:latest + env_file : /var/data/config/autopirate/sonarr.env + volumes: + - /var/data/autopirate/sonarr:/config + - /var/data/media:/media + networks: + - traefik_public + +sonarr_proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/autopirate/sonarr.env + dns_search: myswarm.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:sonarr.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/autopirate/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://sonarr:8989 + -redirect-url=https://sonarr.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt +```` + +!!! tip + I share (_with my [patreon patrons](https://www.patreon.com/funkypenguin)_) a private "_premix_" git repository, which includes necessary docker-compose and env files for all published recipes. This means that patrons can launch any recipe with just a ```git pull``` and a ```docker stack deploy``` 👍 + + + +## 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. + +## Your comments? diff --git a/manuscript/recipies/calibre-web.md b/manuscript/recipies/calibre-web.md new file mode 100644 index 0000000..c91d00a --- /dev/null +++ b/manuscript/recipies/calibre-web.md @@ -0,0 +1,130 @@ +hero: Manage your ebook collection. Like a BOSS. + +# Calibre-Web + +The [AutopPirate](/recipies/autopirate/) recipe includes [Lazy Librarian](https://github.com/itsmegb/LazyLibrarian), a tool for tracking, finding, and downloading eBooks. However, after the eBooks are downloaded, Lazy Librarian is not much use for organising, tracking, and actually **reading** them. + +[Calibre-Web](https://github.com/janeczku/calibre-web) could be described as "_[Plex](/recipies/plex/) (or [Emby](/recipies/emby/)) for eBooks_" - it's a web-based interface to manage your eBook library, screenshot below: + +![Calibre-Web Screenshot](../images/calibre-web.png) + +Of course, you probably already manage your eBooks using the excellent [Calibre](https://calibre-ebook.com/), but this is primarily a (_powerful_) desktop application. Calibre-Web is an alternative way to manage / view your existing Calibre database, meaning you can continue to use Calibre on your desktop if you wish. + +As a long-time Kindle user, Calibre-Web brings (among [others](https://github.com/janeczku/calibre-web)) the following features which appeal to me: + +* Filter and search by titles, authors, tags, **series** and language +* Create custom book collection (shelves) +Support for editing eBook metadata and deleting eBooks from Calibre library +* Support for converting eBooks from EPUB to Kindle format (mobi/azw) +* Send eBooks to Kindle devices with the click of a button +* Support for reading eBooks directly in the browser (.txt, .epub, .pdf, .cbr, .cbt, .cbz) +* Upload new books in PDF, epub, fb2 format + + +## 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 hostname you intend to use, pointed to your [keepalived](ha-docker-swarm/keepalived/) IP + +## Preparation + +### Setup data locations + +We'll need a directory to store some config data for Calibre-Web, container, so create /var/data/calibre-web, and ensure the directory is owned by the same use which owns your Calibre data (below) + +``` +mkdir /var/data/calibre-web +chown calibre:calibre /var/data/calibre-web # for example +``` + +Ensure that your Calibre library is accessible to the swarm (_i.e., exists on shared storage_), and that the same user who owns the config directory above, also owns the actual calibre library data (_including the ebooks managed by Calibre_). + +### Prepare environment + +We'll use an [oauth-proxy](/reference/oauth_proxy/) to protect the UI from public access, so create calibre-web.env, and populate with the following variables: + +``` +OAUTH2_PROXY_CLIENT_ID= +OAUTH2_PROXY_CLIENT_SECRET= +OAUTH2_PROXY_COOKIE_SECRET= +PUID= +PGID= +``` + +Follow the [instructions](https://github.com/bitly/oauth2_proxy) to setup your oauth provider. You need to setup a unique key/secret for each instance of the proxy you want to run, since in each case the callback URL will differ. + + +### 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: + app: + image: technosoft2000/calibre-web + env_file : /var/data/config/calibre-web/calibre-web.env + volumes: + - /var/data/calibre-web:/config + - /srv/data/Archive/Ebooks/calibre:/books + networks: + - internal + + proxy: + image: zappi/oauth2_proxy + env_file : /var/data/config/calibre-web/calibre-web.env + dns_search: hq.example.com + networks: + - internal + - traefik_public + deploy: + labels: + - traefik.frontend.rule=Host:calibre-web.example.com + - traefik.docker.network=traefik_public + - traefik.port=4180 + volumes: + - /var/data/config/calibre-web/authenticated-emails.txt:/authenticated-emails.txt + command: | + -cookie-secure=false + -upstream=http://app:8083 + -redirect-url=https://calibre-web.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + -authenticated-emails-file=/authenticated-emails.txt + +networks: + traefik_public: + external: true + internal: + driver: overlay + ipam: + config: + - subnet: 172.16.18.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 Calibre-Web + +Launch the Wekan stack by running ```docker stack deploy calibre-web -c ``` + +Log into your new instance at https://**YOUR-FQDN**. You'll be directed to the initial GUI configuraition. Set the first field (_Location of Calibre database_) to "_/books/_", and when complete, login using defaults username of "**admin**" with password "**admin123**". + +## Chef's Notes + +1. Yes, Calibre does provide a server component. But it's not as fully-featured as Calibre-Web (_i.e., you can't use it to send ebooks directly to your Kindle_) +2. A future enhancement might be integrating this recipe with the filestore for [NextCloud](/recipies/nextcloud/), so that the desktop database (Calibre) can be kept synced with Calibre-Web. + +## Your comments? diff --git a/manuscript/recipies/cryptominer.md b/manuscript/recipies/cryptominer.md new file mode 100644 index 0000000..4e292f6 --- /dev/null +++ b/manuscript/recipies/cryptominer.md @@ -0,0 +1,709 @@ +# CryptoMiner + +This is a diversion from my usual recipies - since a hardware-based crypto currency miner can't really use docker swarm :) + +![NAME Screenshot](../images/name.jpg) + +Details + +## 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. 3. DNS entry for the hostname you intend to use, pointed to your [keepalived](ha-docker-swarm/keepalived/) IP + +## Preparation + +### Setup accounts + +You'll want to setup accounts at the following (if you use the URLs below, I get a small referral bonus) + +* Nicehash +* [Coinbase](https://www.coinbase.com/join/5a4d1ed0ee3de40195a695c8) +* [Binance](https://www.binance.com/?ref=15312815) +* zcl.suprnova.cc for zcash mining +* bitrex (use for zcl wallet) - need to verfy account_ +* [cryptopia](https://www.cryptopia.co.nz/Register?referrer=funkypenguin) +* [altpocket](https://altpocket.io/?ref=ilVqdeWbAv) +* https://www.cryptostache.com/2017/11/10/keeping-track-cryptocurrency-portfolio-best-apps-2017/ + +# For flashing +https://bitcointalk.org/index.php?topic=1809527.0 + + + + + +### Setup data locations + +We'll need several directories to bind-mount into our container, so create them in /var/data/wekan: + +``` +mkdir /var/data/wekan +cd /var/data/wekan +mkdir -p {wekan-db,wekan-db-dump} +``` + +### Prepare environment + +Create wekan.env, and populate with the following variables +``` +OAUTH2_PROXY_CLIENT_ID= +OAUTH2_PROXY_CLIENT_SECRET= +OAUTH2_PROXY_COOKIE_SECRET= +MONGO_URL=mongodb://wekandb:27017/wekan +ROOT_URL=https://wekan.example.com +MAIL_URL=smtp://wekan@wekan.example.com:password@mail.example.com:587/ +MAIL_FROM="Wekan " +``` + +### 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: + + wekandb: + image: mongo:3.2.15 + command: mongod --smallfiles --oplogSize 128 + networks: + - internal + volumes: + - /var/data/wekan/wekan-db:/data/db + - /var/data/wekan/wekan-db-dump:/dump + + proxy: + image: zappi/oauth2_proxy + env_file: /var/data/wekan/wekan.env + networks: + - traefik + - internal + deploy: + labels: + - traefik.frontend.rule=Host:wekan.example.com + - traefik.docker.network=traefik + - traefik.port=4180 + command: | + -cookie-secure=false + -upstream=http://wekan:80 + -redirect-url=https://wekan.example.com + -http-address=http://0.0.0.0:4180 + -email-domain=example.com + -provider=github + + wekan: + image: wekanteam/wekan:latest + networks: + - internal + env_file: /var/data/wekan/wekan.env + +networks: + traefik: + external: true + internal: + driver: overlay + ipam: + config: + - subnet: 172.16.3.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 Wekan stack + +Launch the Wekan stack by running ```docker stack deploy wekan -c ``` + +Log into your new instance at https://**YOUR-FQDN**, with user "root" and the password you specified in gitlab.env. + +## 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-related labels directly to the wekan container. You'd also need to add the traefik network to the wekan container. + +## Your comments? + + + + +my part number on the RX580s is +299-1E366-101SA + +Found this page: +https://anorak.tech/t/sapphire-rx-580-nitro-4g-elpida-p-n-299-1e366-101sa/3486 + + + +*Theater Pro supports commands -i, p, s, cf, cr, t, v and options -f, -noremap. +[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 ~]# +[root@kvm ~]# ./atiflash -s 0 rx580-4gb-299-1E366-101SA.orig.rom +0x40000 bytes saved, checksum = 0x7FBF +[root@kvm ~]# du -sh rx580-4gb-299-1E366-101SA.orig.rom +256K rx580-4gb-299-1E366-101SA.orig.rom +[root@kvm ~]# + + +Read this: +https://medium.com/@lukehamilton/flash-your-rx-470-card-on-mac-linux-7391fb78b6f6 + + +777000000000000022AA1C00315A5B36A0550F15B68C1506004082007C041420CA8980A9020004C01712262B612B3715 + + +1500 : 777000000000000022AA1C00315A6B3CA0550F15B68C1506006AE4007C041420CA8980A9020000001712262B612B3715 +1625 : 777000000000000022AA1C0073627C41B0551016BA0D9606006C060104061420EA8940AA030000001914292E692E3B16 +1750 : 777000000000000022AA1C00B56A7D46C0551017BE8E1607006C07010C081420FA8900AB030000001B162C3171313F17 +2000 : 777000000000000022AA1C00315A5B36A0550F15B68C1506004082007C041420CA8980A9020004C01712262B612B3715 + + +999000000000000022559D0010DE5B4480551312B74C450A00400600750414206A8900A00200312010112D34A42A3816 +777000000000000022AA1C00B56A6D46C0551017BE8E060C006AE6000C081420EA8900AB030000001B162C31C0313F17 + + + + +UPDATE eventum_issue +JOIN eventum_issue_user ON isu_iss_id = iss_id +JOIN eventum_user ON isu_usr_id = usr_id +SET isu_usr_id = (select usr_id from eventum_user where usr_email = 'rachael@prophecy.net.nz'), isu_assigned_date = NOW() +WHERE iss_closed_date IS NULL AND usr_email = 'colleen@prophecy.net.nz' ; + + + + +[root@kvm ~]# ./atiflash -p 0 Sapphire\ RX\ 580\ Nitro\(plus\)\ 4GB\ Hynix\ Elpida\ Mod\ ETH.rom +Old SSID: E366 +New SSID: E366 +Old P/N: 113-1E3660EU-O55 +New P/N: 113-1E3660EU-O55 +Old DeviceID: 67DF +New DeviceID: 67DF +Old Product Name: E366 Polaris20 XTX A1 GDDR5 128Mx32 4GB +New Product Name: E366 Polaris20 XTX A1 GDDR5 128Mx32 4GB +Old BIOS Version: 015.050.002.001.000000 +New BIOS Version: 015.050.002.001.000000 +Flash type: M25P20/c +Burst size is 256 +40000/40000h bytes programmed +40000/40000h bytes verified + +Restart System To Complete VBIOS Update. +[root@kvm ~]# + + + + +blacklisted fglrx too + +https://www.titancomputers.com/Install-Nvidia-Drivers-on-CentOS-7-s/1017.htm + + + + + + + + + +^[[I[amdgpu-pro-local] +Name=AMD amdgpu Pro local repository +baseurl=file:///var/opt/amdgpu-pro-local +enabled=1 +gpgcheck=0 + +Loaded plugins: fastestmirror, nvidia, versionlock +amdgpu-pro-local | 2.9 kB 00:00:00 +base | 3.6 kB 00:00:00 +centos-sclo-rh | 2.9 kB 00:00:00 +centos-sclo-sclo | 2.9 kB 00:00:00 +docker-ce-stable | 2.9 kB 00:00:00 +elrepo | 2.9 kB 00:00:00 +epel/x86_64/metalink | 3.7 kB 00:00:00 +epel | 4.7 kB 00:00:00 +extras | 3.4 kB 00:00:00 +libnvidia-container/signature | 455 B 00:00:00 +libnvidia-container/signature | 2.0 kB 00:00:00 !!! +nvidia-container-runtime/signature | 455 B 00:00:00 +nvidia-container-runtime/signature | 2.0 kB 00:00:00 !!! +nvidia-docker/signature | 455 B 00:00:00 +nvidia-docker/signature | 2.0 kB 00:00:00 !!! +updates | 3.4 kB 00:00:00 +(1/15): amdgpu-pro-local/primary_db | 37 kB 00:00:00 +(2/15): base/7/x86_64/group_gz | 156 kB 00:00:00 +(3/15): docker-ce-stable/x86_64/primary_db | 11 kB 00:00:00 +(4/15): elrepo/primary_db | 460 kB 00:00:00 +(5/15): epel/x86_64/group_gz | 266 kB 00:00:00 +(6/15): epel/x86_64/primary_db | 6.2 MB 00:00:03 +(7/15): extras/7/x86_64/primary_db | 145 kB 00:00:00 +(8/15): epel/x86_64/updateinfo | 868 kB 00:00:05 +(9/15): libnvidia-container/primary | 2.3 kB 00:00:01 +(10/15): nvidia-docker/primary | 3.1 kB 00:00:00 +(11/15): nvidia-container-runtime/primary | 2.9 kB 00:00:01 +(12/15): centos-sclo-sclo/x86_64/primary_db | 192 kB 00:00:10 +(13/15): updates/7/x86_64/primary_db | 5.2 MB 00:00:05 +(14/15): base/7/x86_64/primary_db | 5.7 MB 00:00:12 +(15/15): centos-sclo-rh/x86_64/primary_db | 2.9 MB 00:01:20 +Loading mirror speeds from cached hostfile + * base: ucmirror.canterbury.ac.nz + * elrepo: mirror.ventraip.net.au + * epel: ucmirror.canterbury.ac.nz + * extras: ucmirror.canterbury.ac.nz + * updates: ucmirror.canterbury.ac.nz +libnvidia-container 10/10 +nvidia-container-runtime 18/18 +nvidia-docker 20/20 +Resolving Dependencies +There are unfinished transactions remaining. You might consider running yum-complete-transaction, or "yum-complete-transaction --cleanup-only" and "yum history redo last", first to finish them. If those don't work you'll have to try removing/installing packages by hand (maybe package-cleanup can help). +--> Running transaction check +---> Package opencl-amdgpu-pro.x86_64 0:17.50-511655.el7 will be installed +--> Processing Dependency: ids-amdgpu = 1.0.0-511655.el7 for package: opencl-amdgpu-pro-17.50-511655.el7.x86_64 +--> Processing Dependency: amdgpu-dkms = 17.50-511655.el7 for package: opencl-amdgpu-pro-17.50-511655.el7.x86_64 +--> Processing Dependency: amdgpu-core = 17.50-511655.el7 for package: opencl-amdgpu-pro-17.50-511655.el7.x86_64 +--> Processing Dependency: libdrm-amdgpu = 1:2.4.82-511655.el7 for package: opencl-amdgpu-pro-17.50-511655.el7.x86_64 +--> Processing Dependency: clinfo-amdgpu-pro = 17.50-511655.el7 for package: opencl-amdgpu-pro-17.50-511655.el7.x86_64 +--> Processing Dependency: amdgpu-pro-core = 17.50-511655.el7 for package: opencl-amdgpu-pro-17.50-511655.el7.x86_64 +--> Running transaction check +---> Package amdgpu-core.noarch 0:17.50-511655.el7 will be installed +---> Package amdgpu-dkms.noarch 0:17.50-511655.el7 will be installed +---> Package amdgpu-pro-core.noarch 0:17.50-511655.el7 will be installed +---> Package clinfo-amdgpu-pro.x86_64 0:17.50-511655.el7 will be installed +--> Processing Dependency: libopencl-amdgpu-pro-icd = 17.50-511655.el7 for package: clinfo-amdgpu-pro-17.50-511655.el7.x86_64 +---> Package ids-amdgpu.noarch 0:1.0.0-511655.el7 will be installed +---> Package libdrm-amdgpu.x86_64 1:2.4.82-511655.el7 will be installed +--> Running transaction check +---> Package libopencl-amdgpu-pro-icd.x86_64 0:17.50-511655.el7 will be installed +--> Processing Dependency: libopencl-amdgpu-pro = 17.50-511655.el7 for package: libopencl-amdgpu-pro-icd-17.50-511655.el7.x86_64 +--> Running transaction check +---> Package libopencl-amdgpu-pro.x86_64 0:17.50-511655.el7 will be installed +--> Finished Dependency Resolution + +Dependencies Resolved + +=================================================================================================================================================================== + Package Arch Version Repository Size +=================================================================================================================================================================== +Installing: + opencl-amdgpu-pro x86_64 17.50-511655.el7 amdgpu-pro-local 2.2 k +Installing for dependencies: + amdgpu-core noarch 17.50-511655.el7 amdgpu-pro-local 2.2 k + amdgpu-dkms noarch 17.50-511655.el7 amdgpu-pro-local 7.1 M + amdgpu-pro-core noarch 17.50-511655.el7 amdgpu-pro-local 2.2 k + clinfo-amdgpu-pro x86_64 17.50-511655.el7 amdgpu-pro-local 198 k + ids-amdgpu noarch 1.0.0-511655.el7 amdgpu-pro-local 3.7 k + libdrm-amdgpu x86_64 1:2.4.82-511655.el7 amdgpu-pro-local 68 k + libopencl-amdgpu-pro x86_64 17.50-511655.el7 amdgpu-pro-local 11 k + libopencl-amdgpu-pro-icd x86_64 17.50-511655.el7 amdgpu-pro-local 29 M + +Transaction Summary +=================================================================================================================================================================== +Install 1 Package (+8 Dependent packages) + +Total download size: 36 M +Installed size: 36 M +Is this ok [y/d/N]: ^[[Iy +Is this ok [y/d/N]: y +Downloading packages: +------------------------------------------------------------------------------------------------------------------------------------------------------------------- +Total 135 MB/s | 36 MB 00:00:00 +Running transaction check +Running transaction test +Transaction test succeeded +Running transaction + Installing : amdgpu-core-17.50-511655.el7.noarch 1/9 + Installing : ids-amdgpu-1.0.0-511655.el7.noarch 2/9 + Installing : amdgpu-pro-core-17.50-511655.el7.noarch 3/9 + Installing : libopencl-amdgpu-pro-17.50-511655.el7.x86_64 4/9 + Installing : libopencl-amdgpu-pro-icd-17.50-511655.el7.x86_64 5/9 + Installing : clinfo-amdgpu-pro-17.50-511655.el7.x86_64 6/9 + Installing : 1:libdrm-amdgpu-2.4.82-511655.el7.x86_64 7/9 + Installing : amdgpu-dkms-17.50-511655.el7.noarch [#################################################### ] 8/9^ Installing : amdgpu-dkms-17.50-511655.el7.noarch 8/9 +^[[I^[[O^[[I^[[O^[[I^[[O^[[I^[[OLoading new amdgpu-17.50-511655.el7 DKMS files... +Building for 3.10.0-693.11.6.el7.x86_64 +Building initial module for 3.10.0-693.11.6.el7.x86_64 +Done. +Forcing installation of amdgpu + +amdgpu: +Running module version sanity check. + - Original module + - No original module exists within this kernel + - Installation + - Installing to /lib/modules/3.10.0-693.11.6.el7.x86_64/extra/ + +amdttm.ko: +Running module version sanity check. + - Original module + - No original module exists within this kernel + - Installation + - Installing to /lib/modules/3.10.0-693.11.6.el7.x86_64/extra/ + +amdkcl.ko: +Running module version sanity check. + - Original module + - No original module exists within this kernel + - Installation + - Installing to /lib/modules/3.10.0-693.11.6.el7.x86_64/extra/ + +amdkfd.ko: +Running module version sanity check. + - Original module + - No original module exists within this kernel + - Installation + - Installing to /lib/modules/3.10.0-693.11.6.el7.x86_64/extra/ +Adding any weak-modules +Possible missing firmware "amdgpu/polaris12_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_smc_sk.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_smc_sk.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_gpu_info.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_gpu_info.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/si58_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/oland_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/verde_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/pitcairn_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/tahiti_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hainan_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hainan_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hainan_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hainan_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/oland_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/oland_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/oland_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/oland_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/verde_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/verde_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/verde_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/verde_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/pitcairn_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/pitcairn_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/pitcairn_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/pitcairn_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/tahiti_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/tahiti_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/tahiti_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/tahiti_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/banks_k_2_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hainan_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hainan_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/oland_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/oland_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/verde_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/verde_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/pitcairn_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/pitcairn_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/tahiti_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_mc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_asd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_sos.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_asd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mec2_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mec_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_me_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_pfp_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_ce_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mec2_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mec_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_me_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_pfp_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_ce_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mec2_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mec_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_me_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_pfp_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_ce_2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_rlc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_mec2.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_mec.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_me.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_pfp.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_ce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_sdma1.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_sdma.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_uvd.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/stoney_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/carrizo_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/mullins_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/hawaii_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kaveri_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/kabini_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "radeon/bonaire_vce.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/raven_vcn.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_acg_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/vega10_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris12_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_smc_sk.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris11_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_smc_sk.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/polaris10_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/fiji_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/tonga_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_k_smc.bin" for kernel module "amdgpu.ko" +Possible missing firmware "amdgpu/topaz_smc.bin" for kernel module "amdgpu.ko" + +depmod.... + +Backing up initramfs-3.10.0-693.11.6.el7.x86_64.img to /boot/initramfs-3.10.0-693.11.6.el7.x86_64.img.old-dkms +Making new initramfs-3.10.0-693.11.6.el7.x86_64.img +(If next boot fails, revert to initramfs-3.10.0-693.11.6.el7.x86_64.img.old-dkms image) +dracut................................ + +DKMS: install completed. + Installing : opencl-amdgpu-pro-17.50-511655.el7.x86_64 9/9 + Verifying : libopencl-amdgpu-pro-17.50-511655.el7.x86_64 1/9 + Verifying : opencl-amdgpu-pro-17.50-511655.el7.x86_64 2/9 + Verifying : clinfo-amdgpu-pro-17.50-511655.el7.x86_64 3/9 + Verifying : ids-amdgpu-1.0.0-511655.el7.noarch 4/9 + Verifying : libopencl-amdgpu-pro-icd-17.50-511655.el7.x86_64 5/9 + Verifying : amdgpu-pro-core-17.50-511655.el7.noarch 6/9 + Verifying : amdgpu-dkms-17.50-511655.el7.noarch 7/9 + Verifying : amdgpu-core-17.50-511655.el7.noarch 8/9 + Verifying : 1:libdrm-amdgpu-2.4.82-511655.el7.x86_64 9/9 + +Installed: + opencl-amdgpu-pro.x86_64 0:17.50-511655.el7 + +Dependency Installed: + amdgpu-core.noarch 0:17.50-511655.el7 amdgpu-dkms.noarch 0:17.50-511655.el7 amdgpu-pro-core.noarch 0:17.50-511655.el7 + clinfo-amdgpu-pro.x86_64 0:17.50-511655.el7 ids-amdgpu.noarch 0:1.0.0-511655.el7 libdrm-amdgpu.x86_64 1:2.4.82-511655.el7 + libopencl-amdgpu-pro.x86_64 0:17.50-511655.el7 libopencl-amdgpu-pro-icd.x86_64 0:17.50-511655.el7 + +Complete! +[root@kvm amdgpu-pro-17.50-511655]# ./amdgpu-install --opencl=legacy --headless