[tutorial] Raspberry Pi – Docker, Proxy, Let’s Encrypt, SUPLA, SUPLA-Scripts...

Awatar użytkownika
lesny8
Posty: 917
Rejestracja: pn gru 11, 2017 9:43 pm

ndz lut 17, 2019 12:00 pm

1. Jeżeli na routerze z LEDE/Openwrt miałeś jakieś usługi www to nic nie stoi na przeszkodzie by je przenieść na malinę, ale nie muszą być już na standardowych portach. Tam gdzie będziesz miał NAT możesz to swobodnie zmienić, lub zdockeryzować sobie te usługi i wstawić za proxy, wtedy wszystko będzie działać na standardowych 80 i 443 TCP i po problemie. Osobiście sugeruję NATowanie 1:1 dla tych portów na adres maliny, a dlaczego to widać kilka postów wyżej.

2. Aby wszystko nam działało prawidłowo, musi to działać w kontenerze. Poleceniem tylko klonuje źródeła z githuba.

3. Celowo nie załączałem jak ma plik wyglądać, bo to może się zmieniać wraz z rozwojem projektu docker-compose-letsencrypt-nginx-proxy-companion. Zmiana jakiej dokonujesz w pliku dotyczy wpisu z image, z którego będzie pochodził kontener. Commit zawiera - i +
Spójrz jak u mnie wyglądać docker-compose.yml

Kod: Zaznacz cały

version: '3'
services:
  nginx-web:
    image: nginx
    labels:
        com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    container_name: ${NGINX_WEB:-nginx-web}
    restart: always
    ports:
      - "${IP:-0.0.0.0}:${DOCKER_HTTP:-80}:80"
      - "${IP:-0.0.0.0}:${DOCKER_HTTPS:-443}:443"
    volumes:
      - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
      - ${NGINX_FILES_PATH:-./data}/vhost.d:/etc/nginx/vhost.d
      - ${NGINX_FILES_PATH:-./data}/html:/usr/share/nginx/html
      - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
      - ${NGINX_FILES_PATH:-./data}/htpasswd:/etc/nginx/htpasswd:ro
    logging:
      driver: ${NGINX_WEB_LOG_DRIVER:-json-file}
      options:
        max-size: ${NGINX_WEB_LOG_MAX_SIZE:-4m}
        max-file: ${NGINX_WEB_LOG_MAX_FILE:-10}

  nginx-gen:
    image: wouterds/rpi-docker-gen
    command: -notify-sighup ${NGINX_WEB:-nginx-web} -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
    container_name: ${DOCKER_GEN:-nginx-gen}
    restart: always
    volumes:
      - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
      - ${NGINX_FILES_PATH:-./data}/vhost.d:/etc/nginx/vhost.d
      - ${NGINX_FILES_PATH:-./data}/html:/usr/share/nginx/html
      - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:ro
      - ${NGINX_FILES_PATH:-./data}/htpasswd:/etc/nginx/htpasswd:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro
    logging:
      driver: ${NGINX_GEN_LOG_DRIVER:-json-file}
      options:
        max-size: ${NGINX_GEN_LOG_MAX_SIZE:-2m}
        max-file: ${NGINX_GEN_LOG_MAX_FILE:-10}

  nginx-letsencrypt:
    image: wouterds/rpi-docker-letsencrypt-nginx-proxy-companion
    container_name: ${LETS_ENCRYPT:-nginx-letsencrypt}
    restart: always
    volumes:
      - ${NGINX_FILES_PATH:-./data}/conf.d:/etc/nginx/conf.d
      - ${NGINX_FILES_PATH:-./data}/vhost.d:/etc/nginx/vhost.d
      - ${NGINX_FILES_PATH:-./data}/html:/usr/share/nginx/html
      - ${NGINX_FILES_PATH:-./data}/certs:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      NGINX_DOCKER_GEN_CONTAINER: ${DOCKER_GEN:-nginx-gen}
      NGINX_PROXY_CONTAINER: ${NGINX_WEB:-nginx-web}
    logging:
      driver: ${NGINX_LETSENCRYPT_LOG_DRIVER:-json-file}
      options:
        max-size: ${NGINX_LETSENCRYPT_LOG_MAX_SIZE:-2m}
        max-file: ${NGINX_LETSENCRYPT_LOG_MAX_FILE:-10}

networks:
  default:
    external:
      name: ${NETWORK:-webproxy}

4. Ważność certyfikatu to trzy miesiące, ale odnawianie odbywa się automatycznie. Zacytuję pierwsze zdanie z readme
With this repo you will be able to set up your server with multiple sites using a single NGINX proxy to manage your connections, automating your apps container (port 80 and 443) to auto renew your ssl certificates with Let´s Encrypt.

5. Innych systemów nie testowałem, bo nie było takiej potrzeby. Raspbian jest zoptymalizowaną dystrybucją dla tego sprzętu więc po co kombinować z innymi?
_aro_
Posty: 51
Rejestracja: pn kwie 09, 2018 5:10 pm
Lokalizacja: Legnica

pn lut 18, 2019 1:30 pm

Takie info jeśli jeszcze ktokolwiek może coś doradzić - od strony WAN-u zalogowałem się bez problemu, zarejestrowałem telefon - wygląda że wszystko działa ... I dlaczego ... :roll:
Awatar użytkownika
milion81
Posty: 189
Rejestracja: pn maja 07, 2018 8:34 am

pn lut 18, 2019 3:50 pm

Uruchamiamy kontenery
KOD: ZAZNACZ CAŁY

./supla-docker/supla.sh start
Druga kawa ;)

Sprawdzamy czy wszystko wystartowało prawidłowo
KOD: ZAZNACZ CAŁY

docker ps
Mój wynik
doszedłem do tego etapu i mój wynik jak w załączniku,
oczywiście nie mogę wejść na clouda :)
w czasie stawiania musiałem robić downgrade docker-compose do wersji 18.06.01 a potem jeszcze 18.03 (wyskakiwał błąd jak w załączniku)
co namieszałem ?
Załączniki
Szkic.png
Szkic.png (299.61 KiB) Przejrzano 701 razy
Szkic2.png
Szkic2.png (82.38 KiB) Przejrzano 701 razy
Awatar użytkownika
milion81
Posty: 189
Rejestracja: pn maja 07, 2018 8:34 am

pn lut 18, 2019 3:59 pm

jeszcze coś coś takiego wywala jak w załaczniku
Załączniki
Szkic3.png
Szkic3.png (101.92 KiB) Przejrzano 700 razy
Awatar użytkownika
lesny8
Posty: 917
Rejestracja: pn gru 11, 2017 9:43 pm

pn lut 18, 2019 5:53 pm

Błąd, który widziałeś podczas pobierania obrazów supli, nie wynikał wg mnie z problemów z dockerem, ale bardziej z internetem :)
milion81 pisze:
pn lut 18, 2019 3:59 pm
jeszcze coś coś takiego wywala jak w załaczniku
Tu masz coś na porcie 443 już uruchomione i dlatego nginx nie może go zbindować.
Awatar użytkownika
milion81
Posty: 189
Rejestracja: pn maja 07, 2018 8:34 am

pn lut 18, 2019 7:15 pm

ok, robię format stawiam od nowa
Awatar użytkownika
milion81
Posty: 189
Rejestracja: pn maja 07, 2018 8:34 am

pn lut 18, 2019 8:12 pm

zaczynają się problemy...
karta po formacie, robię wszystko od nowa wg opisu
co jest nie tak ?
Załączniki
A.png
A.png (209.45 KiB) Przejrzano 652 razy
Awatar użytkownika
lesny8
Posty: 917
Rejestracja: pn gru 11, 2017 9:43 pm

pn lut 18, 2019 8:46 pm

milion81 pisze:
pn lut 18, 2019 8:12 pm
zaczynają się problemy...
karta po formacie, robię wszystko od nowa wg opisu
co jest nie tak ?
Dodałeś użytkownika do gupy docker? Sprawdź

Kod: Zaznacz cały

pi@raspberrypi:~ $ cat /etc/group | grep docker
Wynik u mnie

Kod: Zaznacz cały

docker:x:996:pi
Wylogowałeś się z maliny i zalogowałeś ponownie?
Wygląda to na brak dostępu użytkownika pi do daemona.
Awatar użytkownika
milion81
Posty: 189
Rejestracja: pn maja 07, 2018 8:34 am

pn lut 18, 2019 8:56 pm

odpowiedź jak w załączniku,
wcześniej miałem to samo, pomógł downgrade dockera do wersji 18.06.01
Załączniki
B.png
B.png (159.53 KiB) Przejrzano 644 razy
Awatar użytkownika
PuteR
Posty: 604
Rejestracja: śr gru 06, 2017 10:07 am

wt lut 19, 2019 9:31 am

Noni znowu mam problem... 😐 Wczoraj jeszcze wszystko było ok, a dziś nie mogę się zalogować ani na clouda ani na supla scripts. Aplikacja działa prawidłowo moduły również są połączone, a zalogować się nie można wyskakuje błąd

502 Bad Gateway nginx/1.15.8

Restart maliny nie pomaga, o co może chodzić?
ODPOWIEDZ