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

Post Reply
User avatar
lesny8
Posts: 329
Joined: Mon Dec 11, 2017 9:43 pm

Mon Feb 11, 2019 12:25 pm

makrz wrote:
Mon Feb 11, 2019 12:01 pm
A może inny dostawca DDNS? najlepiej darmowy?
Poczytaj tu.
Jest tam opisany sprawdzony sposób, tylko musisz doczytać wątek do końca i powinno Ci się wszystko wyklarować ;)
User avatar
makrz
Posts: 22
Joined: Tue Nov 27, 2018 1:43 pm

Mon Feb 11, 2019 4:49 pm

lesny8 wrote:
Mon Feb 11, 2019 12:25 pm
makrz wrote:
Mon Feb 11, 2019 12:01 pm
A może inny dostawca DDNS? najlepiej darmowy?
Poczytaj tu.
Jest tam opisany sprawdzony sposób, tylko musisz doczytać wątek do końca i powinno Ci się wszystko wyklarować ;)
Dzięki za ten DDNS. Wątek przeczytałem.

utworzyłem dwa adresy: mtcloud.noip.pl, mtscripts.noip.pl

Wgrałem skrypt do odświeżania IP, pozmieniałem w plikach .env i jestem w tym samym miejscu.
mtcloud.noip.pl otwiera suplę na zielono, mtscripts.noip.pl otwiera suplę na czerono

suplacloud.mtcloud.noip.pl - witryna nieosiągalna
scripts.mtscripts.noip.pl - witryna nieosiągalna

Jakieś pomysły?





supla-docker/.env

Code: Select all

# Where the SUPLA Cloud will be accessible? Put domain or IP address here with port.
CLOUD_DOMAIN=mtcloud.noip.pl

# Initial user account details; delete these settings after the first launch
FIRST_USER_EMAIL=xxxxxxxxx@gmail.com
FIRST_USER_PASSWORD=xxxxxxxxxxxx

# Google ReCaptcha settings
RECAPTCHA_ENABLED=false
RECAPTCHA_PUBLIC_KEY=
RECAPTCHA_PRIVATE_KEY=

# Mailer settings (SMTP)
MAILER_HOST=10.0.75.1
MAILER_PORT=465
MAILER_USER=
MAILER_PASSWORD=
MAILER_ENCRYPTION=ssl
MAILER_FROM=

# If you want to be notified about some server errors, set this
ADMIN_EMAIL=matysiok@gmail.com

# Where to store SUPLA Cloud's data
VOLUME_DATA=./var

# On which ports the SUPLA Cloud should listen (only if standalone mode)
#PORT_HTTP=80
#PORT_HTTPS=443

REQUIRE_REGULATIONS_ACCEPTANCE=false
REQUIRE_COOKIE_POLICY_ACCEPTANCE=false
BRUTE_FORCE_AUTH_PREVENTION_ENABLED=true

# These options protect your application
DB_PASSWORD=vPbD92hWaU9xAUcDdoEl4bZgPJmFn6fp
SECRET=Z57uNslYeULoqjTFpX8XJ6ve9URLB4ju

COMPOSE_PROJECT_NAME=supla
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.yml:docker-compose.proxy.yml:docker-compose.arm32v7.yml


supla-scripts/docker/.env

Code: Select all

 DATABASE_PASSWORD=cp8922vczNQgtTEOk1pjFkKRvD9zPjvh

VOLUME_SOURCES=../
VOLUME_DATA=../var


##### STANDALONE MODE CONFIGURATION #####
#PORT_HTTP=80
#PORT_HTTPS=443


##### PROXIED MODE CONFIGURATION #####
DOMAIN_NAME=scripts.mtscripts.noip.pl
ADMIN_EMAIL=xxxxxxxx@gmail.com

COMPOSE_PROJECT_NAME=suplascripts
COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.base.yml:docker-compose.proxy.yml:docker-compose.arm32v7.yml
User avatar
lesny8
Posts: 329
Joined: Mon Dec 11, 2017 9:43 pm

Mon Feb 11, 2019 5:32 pm

makrz wrote:
Mon Feb 11, 2019 4:49 pm
utworzyłem dwa adresy: mtcloud.noip.pl, mtscripts.noip.pl
W pliku .env supli masz dobrze, bo CLOUD_DOMAIN=mtcloud.noip.pl i jest w DNSach taka domena aktualnie pod adresem IP (89.73.114.173)
Ale w .env skryptów już nie, bo tam jest DOMAIN_NAME=scripts.mtscripts.noip.pl zamiast DOMAIN_NAME=mtscripts.noip.pl, pierwszej w DNSach nie ma, a druga wskazuje na ten sam adres IP (89.73.114.173).

Ustaw dla skryptów w pliku .env DOMAIN_NAME=mtscripts.noip.pl i zrestartuj kontenery suplascripts i będzie działać na zielono :mrgreen:
User avatar
makrz
Posts: 22
Joined: Tue Nov 27, 2018 1:43 pm

Mon Feb 11, 2019 8:39 pm

lesny8 wrote:
Mon Feb 11, 2019 5:32 pm
makrz wrote:
Mon Feb 11, 2019 4:49 pm
utworzyłem dwa adresy: mtcloud.noip.pl, mtscripts.noip.pl
W pliku .env supli masz dobrze, bo CLOUD_DOMAIN=mtcloud.noip.pl i jest w DNSach taka domena aktualnie pod adresem IP (89.73.114.173)
Ale w .env skryptów już nie, bo tam jest DOMAIN_NAME=scripts.mtscripts.noip.pl zamiast DOMAIN_NAME=mtscripts.noip.pl, pierwszej w DNSach nie ma, a druga wskazuje na ten sam adres IP (89.73.114.173).

Ustaw dla skryptów w pliku .env DOMAIN_NAME=mtscripts.noip.pl i zrestartuj kontenery suplascripts i będzie działać na zielono :mrgreen:

Dzięki wielkie. Działa.
_aro_
Posts: 24
Joined: Mon Apr 09, 2018 5:10 pm

Wed Feb 13, 2019 12:38 am

Witam Kolegów i Koleżanki późna porą :)

Otóż siedzę i próbuję postawić Suplę w dockerze na moim Synology DS 716+. Przeczytałem wydaje mi się że dużo na ten temat opisaych tutoriali łącznie z tym co piszą autorzy dockera
https://github.com/evertramos/docker-co ... -to-use-it
Wyłożyłem się na samym początku:
- sklonowałem git-a docker-compose-letsencrypt-nginx-proxy-companion do katalogu,
- skopiowałem plik .env.sample do .env i zacząłem zmieniać:
- w pozycji

Code: Select all

#
# Set the IP address of the external access Interface
#
IP=80.51.51.202
podałem swoje zew. IP
- zgodnie z tym co piszą autorzy na stronie https://github.com/evertramos/docker-co ... Synlogy.md należy przekierować porty routera - zewnętrzny 80 na wewnętrzny 81 oraz zewnętrzny 443 na wewnętrzny 444, co też uczyniłem :)
- w ostatnich dwóch wierszach pliku .env zmieniłem

Code: Select all

DOCKER_HTTP=81 DOCKER_HTTPS=444
- dorobiłem katalogi

Code: Select all

mkdir -p data/certs mkdir data/htpasswd mkdir data/conf.d mkdir data/vhost.d mkdir data/html chgrp -R 101 data chmod -R g+rwx data
Problem wygląda tak, że po uruchomieniu skryptu poszczególne elementy zaczynają się dociągać i instalować, ale na samym końcu wywala mi błąd

Code: Select all

Starting nginx-web ... error

ERROR: for nginx-web Cannot start service nginx-web: driver failed programming external connectivity on endpoint nginx-web (e2f25f5d2f3f1c180e1805c78eef9a715bde77861937e9dfe573d691dd38691d): Error starting userland proxy: listen tcp 80.51.51.202:444: bind: cannot assign requested address

ERROR: for nginx-web Cannot start service nginx-web: driver failed programming external connectivity on endpoint nginx-web (e2f25f5d2f3f1c180e1805c78eef9a715bde77861937e9dfe573d691dd38691d): Error starting userland proxy: listen tcp 80.51.51.202:444: bind: cannot assign requested address
ERROR: Encountered errors while bringing up the project.
Próbowałem zostawić jak było porty 443 -> 443 na routerze, ale to i tak nic nie daje.
Dziwne, bo zrobione na zrobionym przekierowaniu na porcie 80 -> 81 nie zgłąsza błędu - a tutaj raczej Synology mają problem bo domyślnie ten port blokują.
Tak wyglądają dockery po zakończeniu skryptu:

Code: Select all

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9c604393f9f jwilder/docker-gen "/usr/local/bin/do..." About an hour ago Up 43 minutes nginx-gen
8e8883b8f530 jrcs/letsencrypt-nginx-proxy-companion "/bin/bash /app/en..." About an hour ago Up 43 minutes nginx-letsencrypt
Jeśli ktoś coś :D
User avatar
fracz
Posts: 1335
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Wed Feb 13, 2019 7:16 am

Wpisz w konfiguracji IP 0.0.0.0
_aro_
Posts: 24
Joined: Mon Apr 09, 2018 5:10 pm

Wed Feb 13, 2019 8:28 pm

Dzięki za podpowiedź :D
Poszło :D

Code: Select all

CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                PORTS                                                                NAMES
ebecf0df2f9f        nginx                                    "nginx -g 'daemon ..."   3 minutes ago       Up 3 minutes          0.0.0.0:81->80/tcp, 0.0.0.0:444->443/tcp                             nginx-web
e9c604393f9f        jwilder/docker-gen                       "/usr/local/bin/do..."   21 hours ago        Up 21 hours                                                                                nginx-gen
8e8883b8f530        jrcs/letsencrypt-nginx-proxy-companion   "/bin/bash /app/en..."   21 hours ago        Up 21 hours                                                                                nginx-letsencrypt
_aro_
Posts: 24
Joined: Mon Apr 09, 2018 5:10 pm

Thu Feb 14, 2019 10:53 am

Wszystko ładnie do końca się zainstalowało łącznie ze skryptami - teraz będę mógł się bliżej przyjrzeć
Twojej funkcjonalności, którą tak chwalą :D
Ale jeszcze jedna kwestia - nie miałem jeszcze po zakończonej kompletnej instalacji tych dwóch wpisów A na serwerze DNS - na potrzeby LAN mam serwer DNS na Synology, po stronie WAN u providera (OVH.pl, ale to nie ma znaczenia chyba). Chodzi o

Code: Select all

supla.mojadomena.pl
scripts.mojadomena.pl
i oczywiście let's encrypt nie mógł dociągnąć certyfikatów - mam komunikat
Certificate - missing
This site is missing a valid, trusted certificate (net::ERR_CERT_COMMON_NAME_INVALID)
Czy pownienem teraz całą instalację odkręcić i zacząć od nowa, czy może wystarczy zrestartować kontener let's encrypt, albo wszystkie kontenery lub postawić je po kolei od nowa ?
User avatar
fracz
Posts: 1335
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Thu Feb 14, 2019 11:33 am

Powinien wystarczyć restart.
_aro_
Posts: 24
Joined: Mon Apr 09, 2018 5:10 pm

Thu Feb 14, 2019 12:27 pm

Nie wiem, po restarcie dalej jak było. Widzę w logach, że problem z połączeniem do bazy danych chyba

Code: Select all

docker logs --tail=200 supla-cloud:
In PDOConnection.php line 43:

  SQLSTATE[HY000] [2002] Connection timed out


doctrine:migrations:migrate [--write-sql] [--dry-run] [--query-time] [--allow-no-migration] [--configuration [CONFIGURATION]] [--db-configuration [DB-CONFIGURATION]] [--db DB] [--em EM] [--shard SHARD] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command> [<version>]

Waiting for database connection (10)...
Waiting for database connection (9)...
Waiting for database connection (8)...
Waiting for database connection (7)...
Waiting for database connection (6)...
Waiting for database connection (5)...
Waiting for database connection (4)...
Waiting for database connection (3)...
Waiting for database connection (2)...
Waiting for database connection (1)...

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
i jeszcze to:

Code: Select all

 docker logs --tail=200 supla-server
INFO[1550143024.171015] Server version 2.3.0 [Protocol v10]
INFO[1550143024.171124] Started at Thu Feb 14 11:17:04 2019
2019-02-14 11:17:05,173 INFO success: supla-scheduler entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2019-02-14 11:17:05,173 INFO success: supla-server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
ERR[1550143151.400799] MySQL - Failed to connect to database.
ERR[1550143151.400825] Can't connect to database!
ERR[1550143151.401349] MySQL - Failed to connect to database.
ERR[1550143151.401362] Can't connect to database!
2019-02-14 11:19:11,402 INFO exited: supla-scheduler (exit status 1; not expected)
2019-02-14 11:19:11,403 INFO exited: supla-server (exit status 1; not expected)
2019-02-14 11:19:12,408 INFO spawned: 'supla-scheduler' with pid 21
2019-02-14 11:19:12,411 INFO spawned: 'supla-server' with pid 22
INFO[1550143152.421294] Scheduler version 2.3.0
INFO[1550143152.421418] Started at Thu Feb 14 11:19:12 2019
INFO[1550143152.427456] Server version 2.3.0 [Protocol v10]
INFO[1550143152.427555] Started at Thu Feb 14 11:19:12 2019
2019-02-14 11:19:13,428 INFO success: supla-scheduler entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2019-02-14 11:19:13,429 INFO success: supla-server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
ERR[1550143279.656792] MySQL - Failed to connect to database.
ERR[1550143279.656822] Can't connect to database!
ERR[1550143279.656805] MySQL - Failed to connect to database.
ERR[1550143279.656826] Can't connect to database!
2019-02-14 11:21:19,657 INFO exited: supla-scheduler (exit status 1; not expected)
2019-02-14 11:21:19,658 INFO exited: supla-server (exit status 1; not expected)
2019-02-14 11:21:20,661 INFO spawned: 'supla-scheduler' with pid 25
2019-02-14 11:21:20,664 INFO spawned: 'supla-server' with pid 26
Zatrzymałem supla-scripts oraz supla-docker

Code: Select all

./suplascripts.sh stop ./supla.sh stop
Potem natrafiłem na tego posta jak lesny8 pomagał PuteR
viewtopic.php?f=40&t=2955&sid=db501f2a0 ... a&start=40
i poszedłem tym tropem:

Code: Select all

docker stop suplascripts
docker stop suplascripts-db

docker rm suplascripts
docker rm suplascripts-db

docker rmi suplascripts_suplascripts
docker rmi php

rm -r supla-scripts/ 
i potem przeskoczyłem do #5 instalacji SUPLA-SCRIPTS wg tutka lesny8

Tej instalacji mi nie kończy

Code: Select all

ERROR: for suplascripts-db  Cannot start service suplascripts-db: Bind mount failed: '/volume1/git/supla-scripts/var/mysql' does not exists
ERROR: Encountered errors while bringing up the project.
Brakuje mu jakiegoś katalogu - to go dorabiam ręcznie i puszczam skrypt jeszcze raz

Code: Select all

 ./suplascripts.sh restart

Niby kończy bez błędów, ale sytuacja się nie zmienia :(
Post Reply