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

Post Reply
User avatar
fracz
Posts: 1598
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Thu Feb 14, 2019 1:31 pm

Wszystko działało i po restarcie tak przestało? Kilka różnych problemów przewija się przez Twój post.

Jakie kontenery żyją? docker ps
_aro_
Posts: 51
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Thu Feb 14, 2019 2:17 pm

Nie potwierdziłem działania - po prostu wykonałem wszystkie kroki od #3 do #5 z tutoriala lesny8
viewtopic.php?f=23&t=4081 bez wcześniejszego dokonania dwóch wpisów A w serwerach DNS.
Ładnie się zainstalowało, tzn. bez większych problem po drodze, ale działających stron

Code: Select all

supla.mojadomena.pl
scripts.mojadomena.pl
nie ujrzałem. Po zakończeniu instalacji mam sytuację, że strony

Code: Select all

http://supla.mojadomena.pl/
http://scripts.mojadomena.pl/
otwierają się jak i wyglądają tak samo jak

Code: Select all

http://mojadomena.pl/
Z kolei zaś strony

Code: Select all

https://supla.mojadomena.pl/
https://scripts.mojadomena.pl/
nie otwierają się w ogóle - Chrome twierdzi, że nie ma certyfikatu.
Może dla szerszego obrazu powiem, że na hoście działa serwer www nginx i działa strona testowa

Code: Select all

https://mojadomena.pl/
z ważnym certyfiaktem od let's encrypt - to wszysko jest zrobione przy pomocy narzędzi będących częścią pakietu Synology - System DSM 6.2.1 - czyli Web Station.
Od wczoraj mam 2 wpisy A na serwerze dns na ten sam, stały adres IP w sieci WAN i te same dwa wpisy A na serwerze dns na mój adres IP w sieci LAN.
_aro_
Posts: 51
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Thu Feb 14, 2019 2:20 pm

Code: Select all

CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                 PORTS                                                                NAMES
89a7b55f0000        suplascripts_suplascripts                "docker-php-entryp..."   2 hours ago         Up 25 seconds          80/tcp                                                               suplascripts
0a9c12f54639        mysql:5.7                                "docker-entrypoint..."   2 hours ago         Up 2 hours             3306/tcp, 33060/tcp                                                  suplascripts-db
323b5f0cf23d        supla/supla-server                       "/usr/bin/server-e..."   15 hours ago        Up 3 hours             0.0.0.0:2015-2016->2015-2016/tcp                                     supla-server
ddaa7710ac1b        supla/supla-cloud                        "docker-php-entryp..."   15 hours ago        Up 2 minutes           80/tcp                                                               supla-cloud
898ac6193aca        mysql:5.7.20                             "docker-entrypoint..."   15 hours ago        Up 3 hours             3306/tcp                                                             supla-db
ebecf0df2f9f        nginx                                    "nginx -g 'daemon ..."   18 hours ago        Up 3 hours             0.0.0.0:81->80/tcp, 0.0.0.0:444->443/tcp                             nginx-web
e9c604393f9f        jwilder/docker-gen                       "/usr/local/bin/do..."   39 hours ago        Up 3 hours                                                                                  nginx-gen
8e8883b8f530        jrcs/letsencrypt-nginx-proxy-companion   "/bin/bash /app/en..."   39 hours ago        Up 3 hours                                                                                  nginx-letsencrypt
Są też inne, ale ich nie pokazuję - to nie ma chyba znaczenia.
User avatar
lesny8
Posts: 863
Joined: Mon Dec 11, 2017 9:43 pm

Thu Feb 14, 2019 2:53 pm

Będąc w sieci LAN puść ping do supla.mojadomena.pl i do scripts.mojadomena.pl
Czy obie subdomeny odpowiadają z tym samym adresem IP(wewnętrznym) należącym do sprzętu, na którym to stawiasz?

Będąc w sieci WAN zrób to samo. Ping pod obie subdomeny powinien zwrócić Twój adres IP zewnętrzny.

Jeśli tak jest to DNS lub DDNS działa prawidłowo.

Proxy zarządza ruchem na portach 80 i 443 dla wszystkich usług pracujących na tych samych portach stojących za nim.
Do usług można dostać się tylko po nazwach domen/subdomen.
_aro_ wrote:
Thu Feb 14, 2019 2:17 pm
Może dla szerszego obrazu powiem, że na hoście działa serwer www nginx i działa strona testowa

Code: Select all

https://mojadomena.pl/
Wg mnie, to też powinno stać za proxy.
_aro_
Posts: 51
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Thu Feb 14, 2019 3:25 pm

W sieci LAN pingi do supla.mojadomena.pl i do scripts.mojadomena.pl zwaracają ten sam adres IP za natem czyli w moim przypadku 192.168.0.250
Z sieci WAN pingi do supla.mojadomena.pl i do scripts.mojadomena.pl zwaracają ten sam stały adres IP czyli w moim przypadku 80.51.51.202
Serwery DNS (zewnętrzny i wewnętrzny) wyglądają więc, że są OK.
Może to zatem sprawa certyfikatów, że ich nie ma i dlatego subdomeny sie nie otwierają ?
Tak, docelowo ta strona głowna, także ma znaleźć się za proxy.
Tylko, że musze najpierw je ogarnąć :D
User avatar
lesny8
Posts: 863
Joined: Mon Dec 11, 2017 9:43 pm

Thu Feb 14, 2019 6:54 pm

_aro_ wrote:
Thu Feb 14, 2019 3:25 pm
W sieci LAN pingi do supla.mojadomena.pl i do scripts.mojadomena.pl zwaracają ten sam adres IP za natem czyli w moim przypadku 192.168.0.250
Z sieci WAN pingi do supla.mojadomena.pl i do scripts.mojadomena.pl zwaracają ten sam stały adres IP czyli w moim przypadku 80.51.51.202
Serwery DNS (zewnętrzny i wewnętrzny) wyglądają więc, że są OK.
Porty 80 i 443 TCP masz przekierowane na 192.168.0.250?
_aro_ wrote:
Thu Feb 14, 2019 3:25 pm
Może to zatem sprawa certyfikatów, że ich nie ma i dlatego subdomeny sie nie otwierają ?
Tak, docelowo ta strona głowna, także ma znaleźć się za proxy.
Tylko, że musze najpierw je ogarnąć :D
Jeśli brakuje certyfikatów wystawionych przez Let's Encrypt to Cloud otwiera się z komunikatem o zagrożeniu, bo certyfikat jest self signed.

Czy ta strona główna stoi na dockerze? Na jakim porcie to działa?

Co masz w logach supla-cloud?

Code: Select all

source supla-docker/.env
docker logs --tail=50 supla-cloud
edm
Posts: 138
Joined: Mon Jan 15, 2018 6:18 pm

Thu Feb 14, 2019 7:37 pm

Dziękuję za tutorial, który stał się dla mnie inspiracją żeby kupić Raspberry Pi.
Pytania moje to:
1. Rozumiem że na najnowszej wersji Raspberry Pi 3 B+ (Plus) też powinno działać?
2. Instalując za pomocą SUPLA-DOCKER która wersja Supla Cloud się zainstaluje, bieżąca 2.3.0?
3. Instalując SUPLA-SCRIPTS, która wersja się zainstaluje, bieżąca v3.0.0?
4. Poza kartą pamięci, zasilaczem, obudową warto coś jeszcze kupić od razu w pakiecie?

Pozdr.
User avatar
lesny8
Posts: 863
Joined: Mon Dec 11, 2017 9:43 pm

Thu Feb 14, 2019 7:49 pm

edm wrote:
Thu Feb 14, 2019 7:37 pm
Dziękuję za tutorial, który stał się dla mnie inspiracją żeby kupić Raspberry Pi.
Pytania moje to:
1. Rozumiem że na najnowszej wersji Raspberry Pi 3 B+ (Plus) też powinno działać?
2. Instalując za pomocą SUPLA-DOCKER która wersja Supla Cloud się zainstaluje, bieżąca 2.3.0?
3. Instalując SUPLA-SCRIPTS, która wersja się zainstaluje, bieżąca v3.0.0?
4. Poza kartą pamięci, zasilaczem, obudową warto coś jeszcze kupić od razu w pakiecie?

Pozdr.
1. Tak
2. Tak v2.3.0
3. Tak v3.0.0
4. Ja mam jeszcze zestaw radiatorów
_aro_
Posts: 51
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Thu Feb 14, 2019 8:24 pm

Hejka !
Z racji tego, że rzecz się dzieje na Synology, a tutaj jakoś z założenia na porcie 80 są chyba inne serwisy, to należało zrobić mapowanie portów na routerze - tak ja to bynajmniej zrozumiałem. Autorzy opisują to tutaj: https://github.com/evertramos/docker-co ... Synlogy.md Jest też tam przykład pliku docker-compose.yml https://github.com/evertramos/docker-co ... ompose.yml dla Synology. No i właśnie nie wiem, czy dobrze zrobiłem zmieniając ostatnie dwie linijki w pliku

Code: Select all

/docker-compose-letsencrypt-nginx-proxy-companion/.env
z oryginalnych

Code: Select all

DOCKER_HTTP=80
DOCKER_HTTPS=443
na

Code: Select all

DOCKER_HTTP=81
DOCKER_HTTPS=444
W pierwszym przytoczonym powyżej linku piszą, żeby zmienić a w drugim - w przykładzie pliku docker-compose.yml są porty standardowe. Porty oczywiście na routerze mam przekierowane na hosta. Miałem do tej pory zewnetrzne 80 na wewnętrzne 80 na 192.168.0.250 i tak samo 443. Po przeczytaniu że należy je zmienic zmieniłem je i mam teraz: zewnetrzne 81 na wewnętrzne 80 na 192.168.0.250 oraz zewnetrzne 444 na wewnętrzne 443 na ten sam IP.
Strona głóna nie stoi na dockerze, tylko na jakimś wewnętrznym nginx-ie wytworzonym w sytemie DSM Synology - jest to typowa usługa systemowa dostarczana razem z oprogramowaniem DSM - Web Station.
Jak usługa działała to miałem:

Code: Select all

netstat -tulpn | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3129/nginx: worker
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      3129/nginx: worker
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      3129/nginx: worker
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN      3129/nginx: worker
tcp6       0      0 :::80                   :::*                    LISTEN      3129/nginx: worker
tcp6       0      0 :::443                  :::*                    LISTEN      3129/nginx: worker
tcp6       0      0 :::8000                 :::*                    LISTEN      3129/nginx: worker
tcp6       0      0 :::8001                 :::*                    LISTEN      3129/nginx: worker
Jak w desperacji odistalowałem całe to Web Station i w efekcie nie ma teraz tej strony głównej to mam tak:

Code: Select all

netstat -tulpn | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      14924/nginx: master
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      14924/nginx: master
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      14924/nginx: master
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN      14924/nginx: master
tcp6       0      0 :::80                   :::*                    LISTEN      14924/nginx: master
tcp6       0      0 :::443                  :::*                    LISTEN      14924/nginx: master
tcp6       0      0 :::8000                 :::*                    LISTEN      14924/nginx: master
tcp6       0      0 :::8001                 :::*                    LISTEN      14924/nginx: master
Nie widzę różnicy specjalnie. Podejrzewam, że na tym stoi dostęp do tego systemu DSM przez www i inne rzeczy i to jest raczej nie do ruszenia. Strona głowna działała na portach standardowych jak pisałem wcześniej 80 i 443.
W logach supla-cloud mam to:

Code: Select all

supla:clean:disable-demo-client-apps [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi]                                                                                                                                   [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

supla:generate-schedules-executions: NOT NOW

In AbstractMySQLDriver.php line 103:

  An exception occured in driver: SQLSTATE[HY000] [2002] Connection timed out


In PDOConnection.php line 47:

  SQLSTATE[HY000] [2002] Connection timed out


In PDOConnection.php line 43:

  SQLSTATE[HY000] [2002] Connection timed out


supla:clean:passed-io-client-registration-dates [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--versio                                                                                                                                  n] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

supla:clean:broker-clouds-cache: NOT NOW
supla:clean:not-confirmed-users: NOT NOW
supla:clean:obsolete-oauth-tokens: NOT NOW
supla:clean:orphaned-measurement-logs: NOT NOW
supla:clean:disable-broken-schedules: NOT NOW
supla:clean:disable-demo-client-apps: RUN:
supla:clean:passed-io-client-registration-dates: RUN:

In AbstractMySQLDriver.php line 103:

  An exception occured in driver: SQLSTATE[HY000] [2002] Connection timed out


In PDOConnection.php line 47:

  SQLSTATE[HY000] [2002] Connection timed out


In PDOConnection.php line 43:

  SQLSTATE[HY000] [2002] Connection timed out
supla:generate-schedules-executions: NOT NOW
Nie mam pomysłu ...
_aro_
Posts: 51
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Thu Feb 14, 2019 9:03 pm

Aha - z sieci WAN (https://canyouseeme.org/) otwarte mam porty 81 i 444, natomiast 80 i 443 zamknięte.
Post Reply