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

Awatar użytkownika
lesny8
Posty: 2803
Rejestracja: pn gru 11, 2017 9:43 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?
Czekam na kolejne Supla Offline Party 👍
_aro_
Posty: 51
Rejestracja: pn kwie 09, 2018 5:10 pm
Lokalizacja: Legnica

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: 194
Rejestracja: pn maja 07, 2018 8:34 am

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 3120 razy
Szkic2.png
Szkic2.png (82.38 KiB) Przejrzano 3120 razy
Awatar użytkownika
milion81
Posty: 194
Rejestracja: pn maja 07, 2018 8:34 am

jeszcze coś coś takiego wywala jak w załaczniku
Załączniki
Szkic3.png
Szkic3.png (101.92 KiB) Przejrzano 3119 razy
Awatar użytkownika
lesny8
Posty: 2803
Rejestracja: pn gru 11, 2017 9:43 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ć.
Czekam na kolejne Supla Offline Party 👍
Awatar użytkownika
milion81
Posty: 194
Rejestracja: pn maja 07, 2018 8:34 am

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

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 3071 razy
Awatar użytkownika
lesny8
Posty: 2803
Rejestracja: pn gru 11, 2017 9:43 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.
Czekam na kolejne Supla Offline Party 👍
Awatar użytkownika
milion81
Posty: 194
Rejestracja: pn maja 07, 2018 8:34 am

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 3063 razy
Awatar użytkownika
PuteR
Posty: 1421
Rejestracja: śr gru 06, 2017 10:07 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

Wróć do „FAQ / Jak to zrobić”