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

User avatar
lesny8
Posts: 807
Joined: Mon Dec 11, 2017 9:43 pm

Sun Feb 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

Code: Select all

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_
Posts: 48
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Mon Feb 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:
User avatar
milion81
Posts: 169
Joined: Mon May 07, 2018 8:34 am

Mon Feb 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 ?
Attachments
Szkic.png
Szkic.png (299.61 KiB) Viewed 584 times
Szkic2.png
Szkic2.png (82.38 KiB) Viewed 584 times
User avatar
milion81
Posts: 169
Joined: Mon May 07, 2018 8:34 am

Mon Feb 18, 2019 3:59 pm

jeszcze coś coś takiego wywala jak w załaczniku
Attachments
Szkic3.png
Szkic3.png (101.92 KiB) Viewed 583 times
User avatar
lesny8
Posts: 807
Joined: Mon Dec 11, 2017 9:43 pm

Mon Feb 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 wrote:
Mon Feb 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ć.
User avatar
milion81
Posts: 169
Joined: Mon May 07, 2018 8:34 am

Mon Feb 18, 2019 7:15 pm

ok, robię format stawiam od nowa
User avatar
milion81
Posts: 169
Joined: Mon May 07, 2018 8:34 am

Mon Feb 18, 2019 8:12 pm

zaczynają się problemy...
karta po formacie, robię wszystko od nowa wg opisu
co jest nie tak ?
Attachments
A.png
A.png (209.45 KiB) Viewed 535 times
User avatar
lesny8
Posts: 807
Joined: Mon Dec 11, 2017 9:43 pm

Mon Feb 18, 2019 8:46 pm

milion81 wrote:
Mon Feb 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ź

Code: Select all

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

Code: Select all

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.
User avatar
milion81
Posts: 169
Joined: Mon May 07, 2018 8:34 am

Mon Feb 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
Attachments
B.png
B.png (159.53 KiB) Viewed 527 times
PuteR
Posts: 539
Joined: Wed Dec 06, 2017 10:07 am

Tue Feb 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ć?
Post Reply