Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Sette opp server med Docker, Traefik og flere subdomener


Anbefalte innlegg

Jeg har i lengre tid hatt lyst til å flytte Home Assistant og Pi-Hole fra en RPi2 til en laptop jeg har liggende, og supplere med flere programmer. Derfor synes jeg Docker ser ut til å være et smart valg, og jeg vil legge til programmer som Plex, NextCloud og flere andre småprogrammer. Jeg har tuklet litt med det, og har en lang vei å gå. Jeg har så langt brukt guidene jeg finner i denne bloggen: https://www.smarthomebeginner.com/traefik-reverse-proxy-tutorial-for-docker/, der finnes det flere gode gjennomganger.

 

Men først og fremst sitter jeg litt fast i startgropen, og føler at denne guiden i dekker noe vesentlig. Jeg eier allerede et domene med et lite webhotell hos domenshop. Jeg vil derfra ha flere subdomener, slik at jeg kan ha linker som:

  - www.hulkhaugen.no -> Organizr

  - ha.hulkhaugen.no -> Home Assistant

  - plex.hulkhaugen.no - > Plex

  - nas.hulkhaugen.no -> NextCloud

  - etc...

Men for at dette skal kunne fungere, så må jeg ha en fast IP adresse, eller en dynamisk DNS for hvert disse subdomene, og slik jeg forstår det så er det her jeg skal sette opp DNS pekere hos domeneshop til f.eks. plexhulkhaugen.blablabladns.org. Og det er her jeg står litt fast. Jeg har lest litt on DynDNS, men er det det samme som DuckDNS? Jeg bruker DuckDNS på min eksisterende Home Assistant RPi2 server. Jeg ser også at jeg kan sette opp DDNS på min Asus router, men da blir det bare én DNS link slik jeg ser det, hulkhaugen.asuscomm.com. Det er her det stopper opp for meg foreløbig, og jeg synes det blir litt uoversiktlig og mange ledd involvert.

 

For å nevne det, så har jeg også lest om å benytte subfolders, altså alternativt hulkhaugen.no/plex etc, men ifølge bloggen jeg leser, så er det en del programmer det ikke fungerer med, som Home Assistant, NextCloud og Plex, og da er jeg jo like langt.

Lenke til kommentar
Del på andre sider

Du burde kunne bruke DuckDNS som du allerede har satt opp, den vil peke til ruteren din. Så må du få subdomenene til å peke til riktig port på ruteren, som du så har satt opp port-forwarding rule på til den interne IP adressen til den riktige tjenesten. F.eks:

 

ha.hulkhaugen.no --> peker til hulkhaugen.duckdns.org:8123 --> ruteren har portforward på porten 8123 til 192.168.1.44 (din raspberry PI sin IP)

plex.hulkhaugen.no --> peker til hulkhaugen.duckdns.org:32400 --> ruteren har portforward på porten 32400 til 192.168.1.69 (din plex server IP)

 

Hvis alt kjører på samme maskin hos deg forwarder du bare alle porter til den maskinen sin IP :) 

Lenke til kommentar
Del på andre sider

Hvis jeg forstår deg riktig, så vil du at jeg skal legge inn DuckDNS på router? Hvis ikke kan jeg vel ikke ha to like duckdns adresser til to forskjellige instanser på mitt nettverk? Men det er uansett irrelevant da jeg ønsker alt på samme servermaskin her hjemme. Jeg prøvde for gøy å sette opp ha.bstart.net (ikke hulkhaugen.no) til min pi (hulkhaugen.duckdns.org) med CNAME men det ser ikke ut til å fungere. Pr i dag er port forward 443 -> 8123. hass.bstart.net fungerer, men det er strengt tatt bare videresending, og nettadressen oppdaterer seg deretter.

 

Ifølge bloggen jeg følger, så skal jeg forwarde port 80 og 443 til Traefik, så skal den ta seg av resten.

 

domenshop.PNG

Lenke til kommentar
Del på andre sider

1 time siden, hulkhaugen skrev:

Hvis ikke kan jeg vel ikke ha to like duckdns adresser til to forskjellige instanser på mitt nettverk?

Du kan ha det hvis de kjører på forskjellige porter. Tenkte ikke egentlig å legge det inn på ruteren, men det jeg har foreslått sørger vel bare for videresending og URLen vil vel dermed endre seg. Virker som om du ønsker litt mer funksjonalitet enn det,  men jeg har dessverre ikke noe erfaring med Traefik så kan ikke hjelpe deg der. Oppdater hvis du finner ut av det da, er nok interessert i å sette opp noe lignende i fremtiden. Må bare få meg en offentlig IP adresse først, som sikkert ikke skjer med denne ISPen :/ 

Lenke til kommentar
Del på andre sider

Du kan benytte nginx som reverse proxy for å få alle tjenester inn på f.eks. port 80/443. Da peker du alle subdomener til din public ip, som NAT'er til nginx. Nginx router da trafikken videre basert på hostname du har valgt. Finnes mye informasjon på dette, så det enkleste er vel å starte med å google det :) https://www.google.no/search?q=nginx+reverse+proxy

  • Like 1
Lenke til kommentar
Del på andre sider

Ja, jeg kjenner til det, men Traefik er angivelig en enklere reverse proxy enn NGINX, uten at det har hjulpet meg så langt. Problemet mitt pr nå er før dette stadiet, og handler om hvordan jeg skal få routet mitt domene til mitt hjemmenettverk. Jeg har allerede et statisk nettsted på bstart.net webhotell, men vil (ideelt) ha subdomener til å peke til hjemserver. Først må jeg finne utav hvordan jeg kan peke disse subdomenene til min dynamiske hjemme-ip. Da trenger jeg en DNS tjener av et slag, men vet ikke om jeg kan bruke DuckDNS, DynDNS eller hvilke alternativer jeg har. Jeg trenger ikke nødvendigvis ha mange subdomener, men ihvertfall til plex, home assistant og nas hadde vært fint. Jeg har heller ikke helt funnet utav dette med å route CNAME, TXT, SRV etc. hva er det for noe? Som du kan se i bildet over så har jeg forsøkt å route CNAME ha.bstart.net til mitt eksisterende oppsett på en pi, men det fungerer heller ikke, så allerede på det stadiet er det noe jeg gjør feil.

Lenke til kommentar
Del på andre sider

Selv bruker jeg https://www.noip.com/ og får en adresse àla hulkhaugen.ddns.net. Videre setter jeg opp alle sub-domenene som CNAME til hulkhaugen.ddns.net:

plex.hulkhaugen.no -> hulkhaugen.ddns.net

ha.hulkhaugen.no -> hulkhaugen.ddns.net

osv.

 

På routeren din må du sette opp at trafikk inn på port 80 (og kanskje 443) skal peke til din Traefik/nginx-instans.

0.0.0.0:80 -> 192.168.1.100:80 (Traefik/Nginx)

 

Videre må du sette opp Traefik/Nginx til å svare på de spesifikke host-names (plex.hulkhaugen.no og ha.hulkhaugen.no).

 

Over til noe veldig plex-spesifikt: Trenger du å ha eget sub-domene på denne? Selv har jeg port 32400 og 32443 åpen og NAT'a til Plex-instansen, så ordner den resten selv. Går jeg til plex.tv/web så kommer jeg rett inn på min server (så lenge jeg er innlogga). Er det noen grunn til å aksessere direkte? Trodde egentlig at de prøvde å gå bort fra det på et tidspunkt.

  • Like 1
Lenke til kommentar
Del på andre sider

Mulig du har rett når det gjelder Plex, jeg har brukt det veldig lite og kun lokalt tidligere, men prøver å sette det opp som en server nå ;) Tror jeg nettopp har fått et lite gjennombrudd med å benytte Cloudfare DNS og sette denne opp hos domenshop, så nå satser jeg på at det løsner litt :D 

Lenke til kommentar
Del på andre sider

Hva du benytter som DNS skal ikke ha noe å si, så lenge du setter de opp som CNAME. CNAME hos Cloudflare er det samme som CNAME hos Domeneshop :) Jeg har benyttet begge deler selv, og har ikke sett fordelen av å ha det hos Cloudflare så lenge du ikke skal benytte deg av cachingen/DDoS-beskyttelsen. For å få alt opp og gå tror jeg faktisk det er enklere å forholde seg til Domeneshop i starten, så kan du heller legge på det laget med kompleksitet som Cloudflare er senere.

  • Like 1
Lenke til kommentar
Del på andre sider

Du har helt sikkert rett i det, men jeg følger guiden i første post og det går stort sett på skinner nå, men har ikke sjekket om LetsEncrypt lager og fornyer sertifikater automatisk. Det tar visst også opptil 24t før jeg får flyttet domenet fra domeneshop til cloudfare. Hvis jeg oppgir min nåværende WAN IP i domeneshop CNAME, oppdaterer de da når jeg får ny IP fra ISP?

Lenke til kommentar
Del på andre sider

Satt nylig opp en NUC etter denne guiden: https://www.reddit.com/r/homeassistant/comments/895iw6/my_home_assistant_setup_rpi_3b_docker_compose/

Måtte endre en del, men ivertfall så er alt satt opp med nginx som er innebygd i organizr sammen med letsencrypt. Endret da alle url'ene i nginx til domene url'ene, og søkte SSL sertifikatene mot domenene og ikke duckdns.

Brukt duckdns og satt opp mitt eget domene med CNAME www.eksempel.com til organizr, ha.eksempel.com til homeassistant osv. som peker til duckdns

  • Like 1
Lenke til kommentar
Del på andre sider

10 minutes ago, hulkhaugen said:

Du har helt sikkert rett i det, men jeg følger guiden i første post og det går stort sett på skinner nå, men har ikke sjekket om LetsEncrypt lager og fornyer sertifikater automatisk. Det tar visst også opptil 24t før jeg får flyttet domenet fra domeneshop til cloudfare. Hvis jeg oppgir min nåværende WAN IP i domeneshop CNAME, oppdaterer de da når jeg får ny IP fra ISP?

 

Her er det forskjellen på A record og CNAME record kommer inn. A record er IP (spesifikt v4), eksempelvis din WAN IP, og CNAME record er et annet domene, eksempelvis 1234.ddns.net.

A: test.example.com -> 123.123.123.123

CNAME: test.example.com -> anothertest.example.com

 

Domeneshop vil ikke oppdatere seg når din ISP gir deg ny IP. Det er derfor tjenester som noip.com, dyndns.com, og duckdns eksisterer. Disse knytter din IP opp mot et domene (A-record), som du igjen kan knytte dine domener til (CNAME).

 

Ser nå selv at jeg skal bytte ut noip.com med duckdns :) Visste ikke om den fra før, så takk for det tipset :D 

  • Like 1
Lenke til kommentar
Del på andre sider

20 hours ago, hulkhaugen said:

Den ser jeg, men jeg tolker det som at cloudfare slår to fluer i en smekk her da, jeg kommer ikke til å bruke duckdns eller noen andre i mellom, kun domene -> cloudfare -> hjemmeserver. Tror det er sånn det fungerer :D

Sist jeg sjekka så fungerte ikke Cloudflare som en dynamisk DNS, og hadde ingen funksjonalitet som støtta under det. Eneste jeg kommer på i farten er at de har API, så da kan du lage et script som oppdaterer ved hjelp av APIet. Om du får det til, eller finner noe dokumentasjon på det, må du gjerne dele erfaringene dine her :)

Lenke til kommentar
Del på andre sider

Ja jeg tror Traefik ordner den biten. Når jeg fulgte guiden i første post, så la jeg inn Cloudfare API nøkkel i Docker compose yaml fila under Traefik innstillingene, så det ser veldig sånn ut. Jeg ikke helt i mål, og er nå på reisejobb til over jul så det blir en stund til jeg kan fortsette, bare håper jeg husker sånn noen lunde hvor jeg slapp ?

Lenke til kommentar
Del på andre sider

39 minutes ago, hulkhaugen said:

Ja jeg tror Traefik ordner den biten. Når jeg fulgte guiden i første post, så la jeg inn Cloudfare API nøkkel i Docker compose yaml fila under Traefik innstillingene, så det ser veldig sånn ut. Jeg ikke helt i mål, og er nå på reisejobb til over jul så det blir en stund til jeg kan fortsette, bare håper jeg husker sånn noen lunde hvor jeg slapp ?

 

Leste nå igjennom guiden, men for meg så ser det kun ut som at CloudFlare key blir brukt for å oppdatere TXT-record ved utstedelse av wildcard SSL-sertifikat fra Let's Encrypt. Ingenting i guiden refererer til bruk av CloudFlare  som dynamisk DNS. Det som står er at det er anbefalt å skaffe sitt eget domene, peke domenets A-record til WAN-ip, for så å peke sub-domener til "@". Du trenger da en måte å oppdatere A-record på domenet ditt til riktig ip. 

Søkte etter "CloudFlare DDNS" på google og fant følgende GitHub repo: https://github.com/LINKIWI/cloudflare-ddns-client

Det her ser ut til å oppdatere domenets A-record til din nåværende WAN-ip, så det burde da gjøre det du tenker :) 

Lenke til kommentar
Del på andre sider

Ja ok, godt du kan dette da ;) Jeg får nå muligheten til å følge dette opp litt, så takk for reasearch, krysser fingrene for at dette skal gå :D Når (om) jeg kommer i mål, kan jeg godt dele mitt oppsett her inne, ser veldig frem til å få det til. I tillegg til deler fra den guiden, vil jeg ha Mosquitto i en container, hoste hjemmesiden min lokalt i en container og jeg vil ha en måte å synkronisere filene mine til GitHub automatisk, og ha mulighet til å logg inn eksternt med SSH og helst også FileZilla e.l. Det er ofte når jeg er på (reise)jobb at jeg har tid til å leke med oppsettet mitt, men da har jeg gjerne ikke tilgang til det.

  • Like 1
Lenke til kommentar
Del på andre sider

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.