Skip to content
This repository has been archived by the owner on Nov 23, 2023. It is now read-only.

Multiple drives #8

Closed
robflate opened this issue Mar 19, 2018 · 9 comments
Closed

Multiple drives #8

robflate opened this issue Mar 19, 2018 · 9 comments

Comments

@robflate
Copy link

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.

@wmelani
Copy link
Contributor

wmelani commented Mar 20, 2018

I just did this last night. In the docker-compose file, there is a section for each element "Volumes" which lists what drives should be mounted.

For example, my movies are on a different drive than tv shows, so I created a couple new properties in the env file

TV_DATA=/M/Television
MOVIES_DATA=/N/Movies
DATA=/

Then in the docker-compose, I edited the list of volumes where relevant.


  plex:
    image: linuxserver/plex
    container_name: plex
    hostname: plex
    ports:
      - "32400:32400"
      - "32400:32400/udp"
      - "32469:32469"
      - "32469:32469/udp"
      - "5353:5353/udp"
      - "1900:1900/udp"
    volumes:
      - ${CONFIG}/plex:/config
      - ${TV_DATA}:/media/tv
      - ${MOVIES_DATA}:/media/movies
      - ${DATA}/music:/media/music

As you can tell, the structure is like

<host-path>:<path-in-the-docker-container>

Nothing is stopping you from adding more volumes, if you'd like.

@robflate
Copy link
Author

robflate commented Mar 20, 2018

Thanks. I've actually got my movies spread over 6 drives;

  • /HD01/Movies/
  • /HD02/Movies/
  • /HD03/Movies/
    etc

Would I need to do something like;

- /HD01/Movies:/media/movies1
- /HD02/Movies:/media/movies2
- /HD03/Movies:/media/movies3

Also, this is probably a simple thing but where it says;

DOMAIN - The domain you want to use for access to services from outside your network

Does that need to be an actual domain I own or can it be a dynamic DNS service url like Noip or Dyn that's forwarded to my public IP? I guess if it's an actual domain, I need to forward that to my public IP address?

When I use a Noip url, I get the following Traefik errors in the log;

time="2018-03-20T13:05:33Z" 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-20T13:05:33.934894186Z 
]" 
time="2018-03-20T13:05:33Z" 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-20T13:05:33.934945879Z 
]"

Note: I've replaced my actual Noip subdomain with example.

I've read conflicting information on whether Noip supports Let's Encrypt so maybe that's the problem. Any help on how to either use a dynamic dns service or my own domain is appreciated.

Apologies if this is all obvious stuff. Thanks.

@wmelani
Copy link
Contributor

wmelani commented Mar 20, 2018

For your first question, that is how you'd do the volume mapping.

I have a personal domain and use the ddclient steps in the readme to configure dynamic dns to Google Domains. However I think you could use free ddns. The bummer is that there are so many subdomains exported. I added a CNAME record for each subdomain - not sure how easy that is with a free ddns.

@robflate
Copy link
Author

robflate commented Mar 20, 2018

Thanks. So you have to add a CNAME record for each service? sonarr.example.com, radarr.example.com, nzbget.example.com, etc, etc?

I followed the ddclient steps and have this in my ddclient.conf with personal info changed;

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

The only service that works is Organizr at example.ddns.net. Everything else, like sonarr.example.ddns.net, etc says Failed to open page, IP address could not be found.

As I mentioned before I also get errors like this in Traefik;

time="2018-03-20T13:05:33Z" 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-20T13:05:33.934894186Z 
]" 
time="2018-03-20T13:05:33Z" 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-20T13:05:33.934945879Z 
]"

Note: I've replaced my actual Noip subdomain with example.

Any advice is greatly appreciated! Thanks again.

@wmelani
Copy link
Contributor

wmelani commented Mar 22, 2018

tempsnip
Yep, I have a bunch of CNAMES... You could potentially use path-based routing and end up with example.ddns.net/sonarr, example.ddns.net/radarr, etc..

@robflate
Copy link
Author

Brilliant! That works. I can now access all the services on their respective subdomain. Thanks so much. Do you have to add each subdomain to your ddclient.conf file? Do you mind sharing your ddclient.conf for Google Domains? Thanks again, I really appreciate the help.

@wmelani
Copy link
Contributor

wmelani commented Mar 22, 2018

There's a new format that is supposed to work, but I couldn't get it to work. Instead I'm using an older ddns pattern for Google Domains, only for my main domain.

Note that the login/password is what's generated by Google specifically for dynamic dns.

protocol=dyndns2
use=web
server=domains.google.com
ssl=yes
login=login
password=pw
example.com

@robflate
Copy link
Author

Thanks for all your help. I've got the Volumes and the certificates working now and I can access the services on their own subdomains. If it's useful to anyone else I did the following;

Volumes

Rather than have a NAS with a single path, I have multiple individual hard drives that I store my data on. To add these to the containers I added the following to the docker-compose.override.yml;

services:
  radarr:
    volumes:
      - /Volumes/Drive1:/media/drive1
      - /Volumes/Drive2:/media/drive2
      - /Volumes/Drive3:/media/drive3
      - /Volumes/Drive4:/media/drive4

  radarr:
    volumes:
      - /Volumes/Drive1:/media/drive1
      - /Volumes/Drive2:/media/drive2
      - /Volumes/Drive3:/media/drive3
      - /Volumes/Drive4:/media/drive4

and so on. Then when I add another drive I just add it here to each service.

Certificates & Subdomains

I ended up using my own domain rather than a DNS service. I added CNAME records for each service so I can access them on nzbget.mydomain.com, sonarr.mydomain.com, etc, etc. I then added all these to the ddclient.conf like so;

use=web, web=checkip.dyndns.com/, web-skip='IP Address'
protocol=namecheap
server=dynamicdns.park-your-domain.com
login=mydomain
password=mypassword
@,deluge,flexget,headphones,lazylibrarian,monitor,mylar,nzbget,nzbhydra,ombi,plex,plexpy,radarr,sonarr,transmission,www

@robflate
Copy link
Author

robflate commented Mar 28, 2018

I had this all working on Namecheap but I'm now trying to get it working on Google Domains. Any idea how to update the CNAME records? The line I used in my ddclient.conf file doesn't seem to work;

@,deluge,flexget,headphones,lazylibrarian,monitor,mylar,nzbget,nzbhydra,ombi,plex,plexpy,radarr,sonarr,transmission,www

I get things like this in my ddclient logs;

file /var/cache/ddclient/ddclient.cache, line 6: Invalid Value for keyword 'ip' = ''

WARNING:  skipping update of @ from <nothing> to 90.197.50.183.
WARNING:   last updated <never> but last attempt on Wed Mar 28 12:22:18 2018 failed.
WARNING:   Wait at least 5 minutes between update attempts.

Also, I noticed in your screenshot of your CNAMES, all the 'DATA' columns start with n. What am I supposed to have in there? Shouldn't they be different?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants