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

_aro_
Posts: 48
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Sat Feb 16, 2019 12:07 pm

Nie wiem, dlaczego było niewłaściwe hasło do bazy danych mysql. Miałem brakujące dwa katalogi podczas instalacji supla-docker: /var/mysql oraz /var/cloud-local - zgłosił mi błąd podczas instalacji to je dorobiłem ręcznie, ale widocznie nie z tego usera co trzeba i prawa dostępu może zawiniły. Może. Zgodnie z sugestią kolegi lesny8 i fracz przyjrzałem sie lepiej wątkowi viewtopic.php?t=3078 o zarządzaniu własną instancją, skasowałem katalog /var/mysql i rzeczywiście hasło bazy danych zostało zresetowane i wiedziałem już, że tu coś zamieszałem.
Wyciąłem w pień całość i postawiłem od początku z poziomu root-a. Coraz lepiej mi to idzie :D
Pierwszy etap - letsencrypt - poszło gładko chociaż i tutaj mam pewne wątpliwości co do logów ale o tym może później, potem supla - docker - ręcznie dorobiłem te dwa katalogi z poziomu root-a i poszło OK. Supla-cloud się już nie restartuje - wszystko na tym etapie wydaje się być OK. Ale:
- wpisując w przeglądarkę

Code: Select all

supla.mojadomena.pl
przekierowuje mnie co prawda na

Code: Select all

https://supla.mojadomena.pl/
, ale mam ciągle informację o niebezpiecznym połączeniu i brakującym certyfikacie - strona sie nie otwiera :(
- żeby zobaczyć stonę logowania supli muszę wpisać z palca

Code: Select all

supla.mojadomena.pl:444
i wtedy widzę stronkę z zielonym certyfikatem :)
- to wszystko dzieje się od strony LAN-u
- od strony WAN-u głucha cisza - dlaczego ?
User avatar
pzygmunt
Posts: 6894
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Sat Feb 16, 2019 12:17 pm

_aro_
Posts: 48
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Sat Feb 16, 2019 12:35 pm

Mam przekierowane dwa porty na routerze:
- WAN 443 -> LAN 444 (TCP)
- WAN 80 -> LAN 81 (TCP)
Podczas edycji pliku .env kontenera docker-compose-letsencrypt-nginx-proxy-companion zmieniłem te dwa porty na końcu pliku właśnie na:

Code: Select all

DOCKER_HTTP=81
DOCKER_HTTPS=444
Proxy od tej pory jak rozumiem powinien na tych portach działać, ale może się mylę ...

Nie wiem co z przekierowaniem tych:
2016 TCP (TLS)
2015 TCP
bo to dotyczy alipkacji mobilnej, a do tego miejsca jeszcze troche mi brakuje :D
User avatar
pzygmunt
Posts: 6894
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Sat Feb 16, 2019 12:55 pm

443 też dotyczy aplikacji mobilnej
_aro_
Posts: 48
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Sat Feb 16, 2019 1:39 pm

Dzięki za podpowiedź - przekierowałem na routerze w sumie 4 porty więc:
- WAN 443 -> LAN 444 (TCP)
- WAN 80 -> LAN 81 (TCP)
- WAN 2015 -> LAN 2015 (TCP)
- WAN 2016 -> LAN 2016 (TCP)
Po wpisaniu z palca

Code: Select all

supla.mojadomena.pl
strona się otwiera od strony WAN od razu na zielono :lol: w końcu :D
Dzięki !
Co prawda od strony LAN nie jest tak samo - mój serwer DNS w sieci LAN rozwiązuje nazwę

Code: Select all

supla.mojadomena.pl
w taki sposób, że przekierowuje mnie na ares IP urządzenia (192.168.0.250) a tutaj jest już frontend serwera Synology z domeną

Code: Select all

mojadomena.pl
z ważnym certyfikatem na domenę, więc zgłasza niezgodnośc certyfikatów i niebepieczne połączenie. Po zaakceptowaniu niebezpieczeństwa i przejściu dalej otwiera się niezabezpieczona strona frontendu urządzenia.
Gdzieś coś już było na ten temat ...
User avatar
lesny8
Posts: 797
Joined: Mon Dec 11, 2017 9:43 pm

Sat Feb 16, 2019 2:26 pm

Przez to, że nie masz przekierowanych portow 1:1 dla http i https to od strony LAN musisz łączyć się podajac nr portu o tak

Code: Select all

https://supla.mojadomena.pl:444
_aro_
Posts: 48
Joined: Mon Apr 09, 2018 5:10 pm
Location: Legnica

Sat Feb 16, 2019 5:51 pm

Ok, rozumiem, trochę to uciążliwe będzie, ale tak chyba już musi być.
Ale ciągle niestety nie mogę się zalogować na konto wpisując dane podane wcześniej w pliku /supla-docker/.env
Wpisałem tam :

Code: Select all

FIRST_USER_EMAIL=mojmail@mojadomena.pl
FIRST_USER_PASSWORD=silnehasło
Podczas próby logowania się z wykorzystaniem podanego maila i hasła mam info: Błąd, wystąpił problem w trakcie komunikacji z serwerem, spróbuj ponownie za chwilę. Próbowałem później z tym samym skutkiem.
W tym czasie nic nie widzę w logach docker logs --tail=50 supla-cloud :

Code: Select all

Clients to disable: 0
supla:generate-schedules-executions: NOT NOW
supla:clean:passed-io-client-registration-dates: RUN:
Client registration expiration date - cleared: 0
I/O Device registration expiration date - cleared: 0
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:
Clients to disable: 0
supla:generate-schedules-executions: NOT NOW
docker logs --tail=50 supla-db

Code: Select all

2019-02-16T17:03:51.519589Z 0 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:51.519827Z 0 [Warning] 'user' entry 'mysql.session@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:51.519958Z 0 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:51.520167Z 0 [Warning] 'db' entry 'performance_schema mysql.session@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:51.520299Z 0 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:51.520397Z 0 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:52.388599Z 0 [Warning] 'tables_priv' entry 'user mysql.session@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:52.388647Z 0 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
2019-02-16T17:03:52.521536Z 0 [Note] Event Scheduler: Loaded 0 events
2019-02-16T17:03:52.522153Z 0 [Note] mysqld: ready for connections.
Version: '5.7.20'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)
2019-02-16T17:03:52.522197Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check.
2019-02-16T17:03:52.522206Z 0 [Note] Beginning of list of non-natively partitioned tables
2019-02-16T17:03:53.136316Z 0 [Note] InnoDB: Buffer pool(s) load completed at 190216 17:03:53
2019-02-16T17:03:55.315214Z 0 [Note] End of list of non-natively partitioned tables
docker logs --tail=50 supla-server

Code: Select all

2019-02-16 17:04:51,916 CRIT Supervisor running as root (no user in config file)
2019-02-16 17:04:51,955 INFO supervisord started with pid 1
2019-02-16 17:04:52,959 INFO spawned: 'supla-scheduler' with pid 11
2019-02-16 17:04:52,963 INFO spawned: 'supla-server' with pid 12
INFO[1550336693.103804] Scheduler version 2.3.0
INFO[1550336693.103964] Started at Sat Feb 16 17:04:53 2019
INFO[1550336693.135810] Server version 2.3.0 [Protocol v10]
INFO[1550336693.135919] Started at Sat Feb 16 17:04:53 2019
INFO[1550336693.157759] SSL version: OpenSSL 1.0.1t  3 May 2016
2019-02-16 17:04:54,158 INFO success: supla-scheduler entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2019-02-16 17:04:54,159 INFO success: supla-server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Czy należało zostawić wpisy w pliku /supla-docker/.env oryginalne

Code: Select all

# Mailer settings (SMTP)
MAILER_HOST=10.0.75.1
MAILER_PORT=465
MAILER_USER=
MAILER_PASSWORD=
MAILER_ENCRYPTION=ssl
MAILER_FROM=
czy je wyedytować żeby powiadomienia mailowe przychodziły, ale jak miały przychodzić skoro nie wiadomo skąd mają wychodzić. Mam utrzymywany w swojej domenie serwer pocztowy więc wpisałem

Code: Select all

# Mailer settings (SMTP)
MAILER_HOST=192.168.0.250
MAILER_PORT=465
MAILER_USER=user@mojadomena.pl
MAILER_PASSWORD=hasło_konta_pocztowego
MAILER_ENCRYPTION=ssl
MAILER_FROM=Supla
ale to niczego nie zmieniło.
eZekiel
Posts: 11
Joined: Tue Oct 23, 2018 11:00 am

Sat Feb 16, 2019 6:25 pm

Panowie, problem jest następujący. Nie mogę zainstalować dockera. Raspbiana już drugi raz stawiałem, tym razem połączyłem malinę po kablu do routera. Czyżby nie działał serwer dockera?

pi@raspberrypi:~ $ curl -sSL https://get.docker.com | sh
curl: (6) Could not resolve host: get.docker.com
User avatar
pzygmunt
Posts: 6894
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Contact:

Sat Feb 16, 2019 9:33 pm

Dns-u sprawdź i połączenie z internetem
edm
Posts: 138
Joined: Mon Jan 15, 2018 6:18 pm

Sun Feb 17, 2019 7:31 am

Witam.
Raspberry Pi zamówione, czekam za dostawą.
Czytałem tutorial i przed instalacją mam kilka pytań.

1. Czy konieczne jest używanie portów 80 i 443, nie można zastosować innych portów?. Pytam ponieważ, kupując Raspberry Pi m.in. pod Supla chciałbym przenieść na niego większość usług, które obecnie mam na wysłużonym routerze LEDE/Openwrt. Czyli poza obsługą Supla, Raspberry Pi pełnił by funkcję np. serwera www i wolałbym aby serwer www pozostał na standardowych portach 80 i 443. System na Raspberry Pi będę instalował bezpośrednio na dysku 2.5” (wersja Raspberry Pi 3 B+, umożliwia boot usb bez kombinacji), i aż się prosi wykorzystać malinę także do innych zadań.

2. Z tego co widzę w tutorial wykorzystywany jest serwer www nginx. Jest on domyślnie już w Raspbian Lite, czy może w trakcie wykonywania poniższego polecenia "instalujemy" go?

Code: Select all

cd ~
git clone https://github.com/evertramos/docker-compose-letsencrypt-nginx-proxy-companion.git
3. Napisane jest:
lesny8 wrote:
Mon Dec 03, 2018 1:19 am
Jako, że uruchamiamy to na RPI musimy zmienić obraz dla dwóch kontenerów, aby działał na naszej architekturze sprzętowej, bo bez tej zmiany nie zadziała. Robimy to jak w tym commicie.
Wystarczy tylko zmiana w pliku docker-compose.yml

Code: Select all

nano docker-compose.yml
Więc mam edytować docker-compose.yml i zamienić jego zawartość na dokładnie tą?:

Code: Select all

max-file: ${NGINX_WEB_LOG_MAX_FILE:-10}

  nginx-gen:
    image: jwilder/docker-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
@@ -39,7 +39,7 @@ services:
        max-file: ${NGINX_GEN_LOG_MAX_FILE:-10}

  nginx-letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    image: wouterds/rpi-docker-letsencrypt-nginx-proxy-companion
    container_name: ${LETS_ENCRYPT:-nginx-letsencrypt}
    restart: always
    volumes:
4. Z tego co pamiętam, darmowy certyfikat HTTPS Let’s Encrypt ma ograniczenia. Ograniczeniem takiego certyfikatu jest czas ważności określony na 3 miesiące (inaczej mówiąc - trzeba odnawiać wystawiony certyfikat co 3 miesiące, inaczej straci ważności), choć miało się to zmienić. Nie widzę tutaj niczego w crontabs co by realizowało funkcję odnawiania.

5. Rozumiem że wybór wersji systemu, Raspbian, RISC OS etc. jest dowolny?
Post Reply