Git Product home page Git Product logo

docker-compose-usenet's Introduction

Automated Usenet Pipeline

Build Status

An automated Usenet media pipeline with reverse proxy and auto-updating of services, predominantly using the popular linuxserver Docker images. Includes:

Requirements

  • Docker
  • Docker Compose
  • Domain of your own (usage of a free DDNS service such as DuckDNS is not advised or supported)

Usage

Setup

Using example.env, create a file called .env (in the directory you cloned the repo to) by populating the variables with your desired values (see key below).

Variable Purpose
CONFIG Where the configs for services will live. Each service will have a subdirectory here
DOWNLOAD Where SAB will download files to. The complete and incomplete dirs will be put here
DATA Where your data is stored and where sub-directories for tv, movies, etc will be put
DOMAIN The domain you want to use for access to services from outside your network
TZ Your timezone. List here.
HTPASSWD HTTP Basic Auth entries in HTPASSWD format (generate here)

Values for User ID (PUID) and Group ID (PGID) can be found by running id user where user is the owner of the volume directories on the host.

Traefik

  1. Create a folder called traefik in your chosen config directory. Everything below should be executed inside the traefik directory
  2. Run touch acme.json; chmod 600 acme.json
  3. Copy traefik.toml to the traefik directory in your config folder and replace the example email with your own

DDClient

If you have a static IP this isn't necessary, and you can simply remove the service entry for ddclient.

  1. Create a directory in your chosen config directory called ddclient
  2. Run touch ddclient.conf in the directory
  3. Use the protocol documentation to create a config for your chosen DNS provider

Running

In the directory containing the files, run docker-compose up -d. Each service should be accessible (assuming you have port-forwarded on your router) on <service-name>.<your-domain>. Heimdall should be accessible on <your-domain>, from where you can set it up to provide a convenient homepage with links to services. The Traefik dashboard should be accessible on monitor.<your-domain>.

Service Configuration

When plumbing each of the services together you can simply enter the service name and port instead of using IP addresses. For example, when configuring a download client in Sonarr/Radarr enter sabnzbd in the Host field and 8080 in the Port field. The same applies for other services such as NZBHydra.

Customisation

NZBGet

To use NZBGet instead of Sabnzbd, simply replace the sabnzbd service entry with the following:

nzbget:
  image: linuxserver/nzbget:latest
  container_name: nzbget
  hostname: nzbget
  ports:
    - "6789:6789"
  volumes:
    - ${CONFIG}/nzbget:/config
    - ${DOWNLOAD}/complete:/downloads
    - ${DOWNLOAD}/incomplete:/incomplete-downloads
    - ${DOWNLOAD}/watch:/watch
  environment:
    - PGID
    - PUID
    - TZ
  labels:
    traefik.enable: "true"
    traefik.port: "6789"
    traefik.frontend.rule: "Host:nzbget.${DOMAIN}"
    traefik.frontend.auth.basic: "${HTPASSWD}"
    com.centurylinklabs.watchtower.enable: "true"
  restart: unless-stopped
Service customisation

To add a new volume mount or otherwise customise an existing service, create a file called docker-compose.override.yml.

For example, to add new volume mounts to existing services:

version: '3'

services:
  radarr:
    volumes:
      - ${DATA}/documentaries:/media/documentaries

  plex:
    volumes:
      - ${DATA}/documentaries:/media/documentaries

You can also add new services to the stack using the same method.

See the docker-compose documentation for more information.

Notes / Caveats

Plex

Plex config may not be visible until you SSH tunnel:

  • ssh -L 8080:localhost:32400 user@dockerhost

Once done you can browse to localhost:8080/web/index.html and set up your server.

UnRAID Usage

Only tested on UnRAID 6.4.1+.

Installing Docker Compose

Add the following to /boot/config/go in order to install docker-compose on each boot:

COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Persisting user-defined networks

By default, UnRAID will not persist user-defined Docker networks such as the one this stack will create. You'll need to enable this setting in order to avoid having to re-run docker-compose up -d every time your server is rebooted. It's found in the Docker tab, you'll need to set Advanced View to On and stop the Docker service to make the change.

UnRAID UI port conflict

You'll need to either change the HTTPS port specified for the UnRAID WebUI (in Settings -> Identification) or change the host port on the Traefik container to something other than 443 and forward 443 to that port on your router (eg 443 on router forwarded to 444 on Docker host) in order to allow Traefik to work properly.

Help / Contributing

If you need assistance, please file an issue. Please do read the existing closed issues as they may contain the answer to your question.

Pull requests for bugfixes/improvements are very much welcomed. As are suggestions of new/replacement services.

docker-compose-usenet's People

Contributors

addbee avatar chuckmac avatar danofun avatar jessehawkins avatar kcrommett avatar stevewm avatar wmelani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-compose-usenet's Issues

Volume configuration

The default configuration in the compose file seems to prefer having different volumes for the downloads and library directories.

ex for SONARR:

- ${DOWNLOAD}/complete:/downloads - ${DATA}/tv:/tv - ${DATA}/anime:/anime

For me with both the downloads and media library on the same drive this caused huge performance issues when the apps postprocessed the files as it causes them to copy the files between the volumes instead of recognizing it could hard link them instead. Changing to have a single data volume and referencing the paths below them in the app config allowed near instant moves.

Its also mentioned in the Sonarr docs:

https://sonarr.tv/#downloads-v3-docker

Most Docker images suggest paths like /tv and /downloads. This causes slow moves and doesn't allow hard links because they are considered two different file systems inside the container. Some also recommend paths for the download client container that are different from the Sonarr container, like /torrents.
The best solution is to use a single, common volume inside the containers, such as /data. Your TV shows would be in /data/TV, torrents in /data/downloads/torrents and/or usenet downloads in /data/downloads/usenet.

I recognize everyone might not have their download and media library on the same mount, but if you do this is a vastly faster way to configure it.

Disable http>https redirect on a single container

This is not really the right place to be asking but I wondered if anyone else had tried to disable http>https redirection in Traefik on a single container using this setup? For instance, how would I disable it just on Mylar but keep it for everything else?

I understand the security implications of doing this and that it is not recommended but need to do it regardless. Thanks.

Docker compose command not found

I have added the following to /boot/config/go:

COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

And docker-compose is in /usr/local/bin/ but I when I try to execute I get:

root@Tower:~# docker-compose
/usr/local/bin/docker-compose: line 1: Not: command not found

Sample config files?

Hey, nice work on the stack. All of these services volume out a config directory, any plans on sharing some example configs?

Cannot obtain certificates for subdomains

I've mentioned this in another thread but wanted to dump my full Traefik log in the hope that someone might be able to help me fix these errors. Is there a step I'm missing? Another user suggested adding CNAME records for the subdomains. Is that required? Apologies for my limited knowledge, I'm new to all this.

Other relevant info;

  • My acme.json file has populated with what looks like certificates/private keys etc
  • I'm currently using a noip domain (but also own my own domain name if it's easier to do it that way)
  • The rate limit error was not there the first time I ran the yml
  • In the Traefik logs Resolved to: and Used: are always blank
  • Do I need to add all my subdomains in the ddclient.conf? sonarr.example.ddns.net, radar.example.ddns.net, etc, etc?
  • I can reach Organizr at example.ddns.net but none of the subdomains work e.g sonarr.example.ddns.net

Here's my ddclient.conf;

protocol=dyndns2
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=dynupdate.no-ip.com
login=myusername
password=mypassword
example.ddns.net

Here's my Traefik log;

time="2018-03-20T14:46:53Z" level=error msg="map[monitor.example.ddns.net:acme: Error 429 - urn:acme:error:rateLimited - Error creating new authz :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/]" 
time="2018-03-20T14:46:53Z" level=error msg="Error getting ACME certificates [monitor.example.ddns.net] : cannot obtain certificates map[monitor.example.ddns.net:acme: Error 429 - urn:acme:error:rateLimited - Error creating new authz :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/]" 
time="2018-03-20T14:46:55Z" level=error msg="map[ombi.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for ombi.example.ddns.net
Error Detail:
Validation for ombi.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:46:55.909918792Z 
]" 
time="2018-03-20T14:46:55Z" level=error msg="Error getting ACME certificates [ombi.example.ddns.net] : cannot obtain certificates map[ombi.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for ombi.example.ddns.net
Error Detail:
Validation for ombi.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:46:55.909966359Z 
]" 
time="2018-03-20T14:46:58Z" level=error msg="map[radarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for radarr.example.ddns.net
Error Detail:
Validation for radarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:46:58.047304314Z 
]" 
time="2018-03-20T14:46:58Z" level=error msg="Error getting ACME certificates [radarr.example.ddns.net] : cannot obtain certificates map[radarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for radarr.example.ddns.net
Error Detail:
Validation for radarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:46:58.047688832Z 
]" 
time="2018-03-20T14:47:00Z" level=error msg="map[headphones.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for headphones.example.ddns.net
Error Detail:
Validation for headphones.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:00.219006761Z 
]" 
time="2018-03-20T14:47:00Z" level=error msg="Error getting ACME certificates [headphones.example.ddns.net] : cannot obtain certificates map[headphones.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for headphones.example.ddns.net
Error Detail:
Validation for headphones.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:00.219121854Z 
]" 
time="2018-03-20T14:47:02Z" level=error msg="map[lazylibrarian.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for lazylibrarian.example.ddns.net
Error Detail:
Validation for lazylibrarian.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:02.832252629Z 
]" 
time="2018-03-20T14:47:02Z" level=error msg="Error getting ACME certificates [lazylibrarian.example.ddns.net] : cannot obtain certificates map[lazylibrarian.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for lazylibrarian.example.ddns.net
Error Detail:
Validation for lazylibrarian.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:02.832346119Z 
]" 
time="2018-03-20T14:47:05Z" level=error msg="map[nzbhydra.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbhydra.example.ddns.net
Error Detail:
Validation for nzbhydra.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:05.161673046Z 
]" 
time="2018-03-20T14:47:05Z" level=error msg="Error getting ACME certificates [nzbhydra.example.ddns.net] : cannot obtain certificates map[nzbhydra.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbhydra.example.ddns.net
Error Detail:
Validation for nzbhydra.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:05.161737866Z 
]" 
time="2018-03-20T14:47:07Z" level=error msg="map[plex.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plex.example.ddns.net
Error Detail:
Validation for plex.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:07.845866189Z 
]" 
time="2018-03-20T14:47:07Z" level=error msg="Error getting ACME certificates [plex.example.ddns.net] : cannot obtain certificates map[plex.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plex.example.ddns.net
Error Detail:
Validation for plex.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:07.845965749Z 
]" 
time="2018-03-20T14:47:10Z" level=error msg="map[nzbget.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbget.example.ddns.net
Error Detail:
Validation for nzbget.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:10.203565728Z 
]" 
time="2018-03-20T14:47:10Z" level=error msg="Error getting ACME certificates [nzbget.example.ddns.net] : cannot obtain certificates map[nzbget.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbget.example.ddns.net
Error Detail:
Validation for nzbget.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:10.203604754Z 
]" 
time="2018-03-20T14:47:12Z" level=error msg="map[sonarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for sonarr.example.ddns.net
Error Detail:
Validation for sonarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:12.502510956Z 
]" 
time="2018-03-20T14:47:12Z" level=error msg="Error getting ACME certificates [sonarr.example.ddns.net] : cannot obtain certificates map[sonarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for sonarr.example.ddns.net
Error Detail:
Validation for sonarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:12.502614683Z 
]" 
time="2018-03-20T14:47:13Z" level=error msg="map[flexget.example.ddns.net:acme: Error 429 - urn:acme:error:rateLimited - Error creating new authz :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/]" 
time="2018-03-20T14:47:13Z" level=error msg="Error getting ACME certificates [flexget.example.ddns.net] : cannot obtain certificates map[flexget.example.ddns.net:acme: Error 429 - urn:acme:error:rateLimited - Error creating new authz :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/]" 
time="2018-03-20T14:47:15Z" level=error msg="map[plexpy.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plexpy.example.ddns.net
Error Detail:
Validation for plexpy.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:15.464742447Z 
]" 
time="2018-03-20T14:47:15Z" level=error msg="Error getting ACME certificates [plexpy.example.ddns.net] : cannot obtain certificates map[plexpy.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plexpy.example.ddns.net
Error Detail:
Validation for plexpy.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:15.464812854Z 
]" 
time="2018-03-20T14:47:17Z" level=error msg="map[mylar.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for mylar.example.ddns.net
Error Detail:
Validation for mylar.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:17.769336260Z 
]" 
time="2018-03-20T14:47:17Z" level=error msg="Error getting ACME certificates [mylar.example.ddns.net] : cannot obtain certificates map[mylar.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for mylar.example.ddns.net
Error Detail:
Validation for mylar.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T14:47:17.769376337Z 
]" 
time="2018-03-20T23:54:19Z" level=error msg="map[headphones.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for headphones.example.ddns.net
Error Detail:
Validation for headphones.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:19.754499716Z 
]" 
time="2018-03-20T23:54:19Z" level=error msg="Error getting ACME certificates [headphones.example.ddns.net] : cannot obtain certificates map[headphones.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for headphones.example.ddns.net
Error Detail:
Validation for headphones.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:19.754739616Z 
]" 
time="2018-03-20T23:54:22Z" level=error msg="map[lazylibrarian.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for lazylibrarian.example.ddns.net
Error Detail:
Validation for lazylibrarian.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:22.104190817Z 
]" 
time="2018-03-20T23:54:22Z" level=error msg="Error getting ACME certificates [lazylibrarian.example.ddns.net] : cannot obtain certificates map[lazylibrarian.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for lazylibrarian.example.ddns.net
Error Detail:
Validation for lazylibrarian.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:22.104322217Z 
]" 
time="2018-03-20T23:54:24Z" level=error msg="map[nzbget.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbget.example.ddns.net
Error Detail:
Validation for nzbget.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:24.637309218Z 
]" 
time="2018-03-20T23:54:24Z" level=error msg="Error getting ACME certificates [nzbget.example.ddns.net] : cannot obtain certificates map[nzbget.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbget.example.ddns.net
Error Detail:
Validation for nzbget.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:24.637450518Z 
]" 
time="2018-03-20T23:54:27Z" level=error msg="map[flexget.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for flexget.example.ddns.net
Error Detail:
Validation for flexget.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:27.052617618Z 
]" 
time="2018-03-20T23:54:27Z" level=error msg="Error getting ACME certificates [flexget.example.ddns.net] : cannot obtain certificates map[flexget.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for flexget.example.ddns.net
Error Detail:
Validation for flexget.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:27.052744418Z 
]" 
time="2018-03-20T23:54:29Z" level=error msg="map[monitor.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for monitor.example.ddns.net
Error Detail:
Validation for monitor.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:29.615772919Z 
]" 
time="2018-03-20T23:54:29Z" level=error msg="Error getting ACME certificates [monitor.example.ddns.net] : cannot obtain certificates map[monitor.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for monitor.example.ddns.net
Error Detail:
Validation for monitor.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:29.616038919Z 
]" 
time="2018-03-20T23:54:31Z" level=error msg="map[nzbhydra.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbhydra.example.ddns.net
Error Detail:
Validation for nzbhydra.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:31.973640620Z 
]" 
time="2018-03-20T23:54:31Z" level=error msg="Error getting ACME certificates [nzbhydra.example.ddns.net] : cannot obtain certificates map[nzbhydra.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for nzbhydra.example.ddns.net
Error Detail:
Validation for nzbhydra.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:31.974789620Z 
]" 
time="2018-03-20T23:54:34Z" level=error msg="map[plex.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plex.example.ddns.net
Error Detail:
Validation for plex.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:34.536744521Z 
]" 
time="2018-03-20T23:54:34Z" level=error msg="Error getting ACME certificates [plex.example.ddns.net] : cannot obtain certificates map[plex.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plex.example.ddns.net
Error Detail:
Validation for plex.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:34.536902621Z 
]" 
time="2018-03-20T23:54:38Z" level=error msg="map[radarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for radarr.example.ddns.net
Error Detail:
Validation for radarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:38.022277722Z 
]" 
time="2018-03-20T23:54:38Z" level=error msg="Error getting ACME certificates [radarr.example.ddns.net] : cannot obtain certificates map[radarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for radarr.example.ddns.net
Error Detail:
Validation for radarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:38.022565322Z 
]" 
time="2018-03-20T23:54:40Z" level=error msg="map[mylar.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for mylar.example.ddns.net
Error Detail:
Validation for mylar.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:40.331128522Z 
]" 
time="2018-03-20T23:54:40Z" level=error msg="Error getting ACME certificates [mylar.example.ddns.net] : cannot obtain certificates map[mylar.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for mylar.example.ddns.net
Error Detail:
Validation for mylar.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:40.331256022Z 
]" 
time="2018-03-20T23:54:43Z" level=error msg="map[sonarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for sonarr.example.ddns.net
Error Detail:
Validation for sonarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:43.027171752Z 
]" 
time="2018-03-20T23:54:43Z" level=error msg="Error getting ACME certificates [sonarr.example.ddns.net] : cannot obtain certificates map[sonarr.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for sonarr.example.ddns.net
Error Detail:
Validation for sonarr.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:43.027302513Z 
]" 
time="2018-03-20T23:54:45Z" level=error msg="map[plexpy.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plexpy.example.ddns.net
Error Detail:
Validation for plexpy.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:45.610276101Z 
]" 
time="2018-03-20T23:54:45Z" level=error msg="Error getting ACME certificates [plexpy.example.ddns.net] : cannot obtain certificates map[plexpy.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for plexpy.example.ddns.net
Error Detail:
Validation for plexpy.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:45.610426976Z 
]" 
time="2018-03-20T23:54:48Z" level=error msg="map[ombi.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for ombi.example.ddns.net
Error Detail:
Validation for ombi.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:48.358642498Z 
]" 
time="2018-03-20T23:54:48Z" level=error msg="Error getting ACME certificates [ombi.example.ddns.net] : cannot obtain certificates map[ombi.example.ddns.net:acme: Error 400 - urn:acme:error:connection - DNS problem: NXDOMAIN looking up A for ombi.example.ddns.net
Error Detail:
Validation for ombi.example.ddns.net:80
Resolved to:
Used: 
2018-03-20T23:54:48.358794174Z 
]" 

Thanks

Getting this setup to run with synology docker

Hi,

I don't suppose you have experience with synology docker setups? I tried to set this up on my box where I already have most of the containers mentioned running. Minus the reverse proxy setup. There are some weird quirks with the docker implementation on synology it seems. Your docker-compose.yml did create a container but there is problem with the paths/volumes it seems.

Will try and work it out again this evening and post some log snippets. I get that this is probably an edge case and you can't really help me with nothing to go on. Will post more tonight.

Edit: I forgot it was actually you personally who answered me here. You already said you don't know about Synology specifically. Feel free to close to issue. I'll tinker around more and report back if I find out more about it.

forward_auth branch duhio/twain

Hi there

Is the docker image duhio/twain progressed enough to be made public?

The forward auth option looks interesting so i'd like to play around with options for automatically configuring twain, if you have a docker image that can be made public

Plex remote access outside network

Does this setup allow remote Plex access from outside the host network (for example, say I'm using the Plex iOS app from a friends house)? In my list of servers in Plex it shows as Indirect, with an exclamation point rather than remote. Also, the Remote Access section of Plex server says Not available outside your network. Do I need to forward port 32400 on my router to the IP of the machine running docker?

Heimdall Save issue when going through Traefik

Is anyone who uses this setup having problems with Heimdall? It used to work fine but now I am unable to save changes in Heimdall. If I change a setting or add a new Application, clicking save does not save the changes.

A quick test is to open Heimdall, go to Settings, click Edit next to Homepage Search, change the toggle and click Save. For me, the change is not saved.

I've asked on the Heimdall github but I'm thinking it might be a problem related to Traefik.

Anyway, I'd love to know if this works for anyone else using the latest releases of Docker, Traefik and Heimdall. Thanks.

Portainer - can't exec into containers with Traefik

When using Portainer with Traefik I can't exec into any containers. If I try, I get Failure timeout waiting for exec session ready. If I bypass Traefik and connect directly to the IP of Portainer I can successfully exec into containers.

To reproduce, open Portainer, click Containers, click the Console Quick Action next to any container then click Connect.

Anyone else have this issue? BTW, I'm using Docker for Mac on macOS 10.14.

Multiple drives

Rather than have a NAS with a single path, I have multiple individual hard drives that I store my data on. How do you suggest I deal with this in the .env file? Thanks.

Ombi 401 errors through reverse proxy

I can access Ombi through the reverse proxy (traefik) but the settings pages are blank and search does not work. It works when connecting through localhost on the machine where docker is running. The browser console shows lots of 401 errors. Could it be something to do with headers not getting sent along? Sorry, my knowledge of this stuff is limited.

ombi 2018-05-02 13-56-06

Organizr: Nginx 502 Bad Gateway

First of all, thanks for putting this together. It is great!

When trying to access Organizr, I am getting the Nginx error "502 Bad Gateway." Any ideas?

Organizr YML config:
organizr:
image: lsiocommunity/organizr:latest
container_name: organizr
hostname: organizr
volumes:
- ${CONFIG}/organizr:/config
environment:
- PGID
- PUID
- TZ
labels:
traefik.enable: "true"
traefik.port: "80"
traefik.frontend.rule: "Host:${DOMAIN}"
com.centurylinklabs.watchtower.enable: "true"
restart: unless-stopped

fuse mounted drives invisible to docker

early caveat, this is likely more to do with my inexperience than your docker-compose

i've got a fuse-mounted drive that will hold my media. frustratingly, sab/sonarr/radarr/et al aren't able to find that drive. i've verified users and permissions - each of the services in this docker-compose is running as the user that mounted the drive. to be safe, i remounted the drive permissively (-o allow_other) with no effect. i've also tried symlinking to the scratch directory in my fuse mounted drive from the /config directory where sab seems deadset on downloading things, but that symlink isn't visible either.

do i need to add this as a docker volume? could use a push.

thanks for putting this together. super helpful.

nzbget authentication not working

Thank you for providing this docker-compose file. Saved me a lot of work and effort.

I removed the sabnzbd section from the docker-compose.yaml file and put in the nzbget section that you provide in the readme. I was able to run docker-compose up -d and I can login to any of the services except nzbget. It is not accepting the username and password that I placed in the .env file. The same user and pass is working fine for all of the other services.

This is what I added to the docker-compose.yaml file:

nzbget:
image: linuxserver/nzbget:latest
container_name: nzbget
hostname: nzbget
ports:
- "6789:6789"
volumes:
- ${CONFIG}/nzbget:/config
- ${DOWNLOAD}/complete:/downloads
- ${DOWNLOAD}/incomplete:/incomplete-downloads
- ${DOWNLOAD}/watch:/watch
environment:
- PGID
- PUID
- TZ
labels:
traefik.enable: "true"
traefik.port: "6789"
traefik.frontend.rule: "Host:nzbget.${DOMAIN}"
traefik.frontend.auth.basic: "${HTPASSWD}"
com.centurylinklabs.watchtower.enable: "true"
restart: unless-stopped

Any ideas?

Thank you

Having issues with permissions/env file not passing GUID and PUID correctly

I believe I am having a few issues with GUID/PUID in my environment file. I have the following at the end of my .env file:

PGID=1000
PUID=1000

These match the user I am running Docker from as well as the user who is set as the owner of the folders on my server.

However, I get an error message when trying to import my existing tvshows/movies into Sonarr and Radarr about user abc not having permissions to these volumes.

I also get an error in SABnzbd related to a watch folder that I expect is related to.

The rest of my .env file appears to be working correctly as the other variables for storage and download drives are working.

Thanks for the assistance and a great product!

SABnzbd Download Directory

I had an issue with sabnzbd downloading files into {CONFIG}/sabnzbd/Downloads directory by default. I had to manually change the download folders in sabnzbd settings as it showed:

Default Base Folder: /config

Here's the sabnzbd part of my docker compose:

  sabnzbd:
    image: linuxserver/sabnzbd:latest
    container_name: sabnzbd
    hostname: sabnzbd
    ports:
      - "8080:8080"
    volumes:
      - ${CONFIG}/sabnzbd:/config
      - ${DOWNLOAD}/complete:/downloads
      - ${DOWNLOAD}/incomplete:/incomplete-downloads
      - ${DOWNLOAD}/watch:/watch
    environment:
      - PGID
      - PUID
      - TZ
    labels:
      com.centurylinklabs.watchtower.enable: "true"
    restart: unless-stopped

I was able to select the downloads and incomplete-downloads folders in sabnzbd settings which resulted in files being downloaded to the correct directories.

I removed the traefik options as I'm using Caddy for reverse proxy/authentication for my domain.

Can't connect to NZBHydra from Radarr/Sonarr etc

I've tried to add NZBHydra as an indexer in Radarr but I get this in my Radarr logs;

HTTP Error - Res: [GET] https://nzbhydra.mydomain.com/api?t=caps&apikey=(removed) 401.Unauthorized
401 Unauthorized

If I visit the URL (with my API key) in a browser I get what looks like valid XML but Radarr just fails and throws the error. I'm using the following info in Radarr;

Custom newznab
Name: NZBHydra
Enable RSS Sync: yes
Enable Search: yes
URL: https://nzbhydra.mydomain.com/
API Key: my-api-key-from-nzbhydra

Wondering how others are getting this to work. Thanks.

Why Watchtower over Ouroboros

Hey I notice that you have switched a bit between Watchtower and Ouroboros any particular reason for Watchtower over Ouroboros?

Docker network keeps getting deleted

I've been using this stack on my new Unraid server and it's been running great. Thank you for the work. I do have one little issue still. Whenever I shut off all the containers off or reboot, it deletes the "dockercomposeusenet" network. I have to run the compose script again to get it back and the containers up and running again. Is this normal?

80 and 443 ports already reserved

Hi, 80 and 443 ports already reserved by nginx. Is it possible to use your docker-compose-usenet without 443 and 80 (because its impossible for me to change those ports)?

Thank you

Plex constaly "looking for servers"...

I know plex isn't this projects package, but I was curious if anyone else has run into an issue where plex constantly says it's "looking for servers"?

Reverse proxy

Sorry but it is maybe a noob question but is the point of reverse proxy to make the container accessible out of the local network? Or there are other advantages

Port forwarding router

Hey, I am super new to this stuff, when you say assuming you have port-forwarded on your router what exactly are you talking about?

Cheers!

Security and basicauth

I know nothing about server security so am looking for guidance. Several of the containers in docker-compose-usenet have some security built in. Plex, Sonarr, NZBGet etc. In addition there is the basicauth from Traefik. Are people using;

  1. Just basicauth
  2. Just the containers built in security
  3. Both basic auth and the containers built in security

Basicauth is an inconvenience because I can't use my password manager (1password) and have to constantly enter my login details but I use it because I don't know any better. I'd rather just use the containers built in method, most of which are almost frictionless and allow me to use my password manager (1password) with very strong passwords.

I'd appreciate some thoughts from people that know more about this stuff than me. Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.