SUPLA i SUPLA Scripts na jednej maszynie (docker proxy)

Moderator: fracz

Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Jeśli chcesz uruchomić kontenery z SUPLĄ obok istniejących kontenerów lub jeśli planujesz uruchomienie innych zdockeryzowanych aplikacji webowych na jednym serwerze, poniższa instrukcja pokaże Ci jak się za to zabrać. Poniżej przedstawiam jak na jednej maszynie postawić SUPLA i SUPLA Scripts obok siebie. Dodatkowo, poniższa instrukcja pokazuje jak dla obydwu aplikacji wygenerować poprawne (nie self-signed) certyfikaty SSL za pomocą darmowego serwisu Let's Encrypt. Możęsz zastosować również poniższe rozwiązanie, jeśli chcesz uruchomić tylko SUPLĘ, ale chcesz skorzystać z "zielonych" certyfikatów.

Proxy będzie odpowiedzialne za odpowiednie routowanie ruchu do odpowiednich kontenerów z aplikacjami (Website 1 to będzie SUPLA Cloud a Website 2 - SUPLA Scripts). Proxy też zadba o wygenerowanie i automatyczne odświeżanie certyfikatów SSL. Obrazek
  1. Uruchom kontenery SUPLI w trybie proxy
  2. Zainstaluj skrypty wg instrukcji przy czym w punkcie 6.ii nie ustawiaj mapowania portów, ale ustaw zmienne środowiskowe DOMAIN_NAME i ADMIN_EMAIL tak by poprawnie przedstawiały informacje o instancji skryptów.
W razie problemów - podglądnij logi:

Kod: Zaznacz cały

docker logs --since=20m nginx-web
docker logs --since=20m nginx-letsencrypt
docker logs --since=20m supla-cloud
docker logs --since=20m suplascripts
Awatar użytkownika
michael
Posty: 1299
Rejestracja: śr lis 09, 2016 8:00 am
Lokalizacja: Wojkowice

Pierwsza przymiarka z Docker proxy kompletna klapa. Odinstalowałem bo musiałem dogrzać dom i z pośpiechu nie zajrzałem w logi - no bo przecież całkiem zapomniałem, że ogrzewa nas w domu Supla i żona z płaczem dzwoni do mnie do pracy, że jej zimno bo piec nie działa :lol:
:mrgreen: :mrgreen: :mrgreen:
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Mogłeś próować dalej, byłoby "Weź skończ tego Dockera żeby ciepło było" zamiast "Sprzątaj przed świętami" :D
djack2017
Posty: 683
Rejestracja: pn lis 27, 2017 7:36 am
Kontakt:

Próbuję zainstalować supla script (według "supla-scripts - Docker installation")
na tej samej maszynie co supla cloud, ale pojawia mi się błąd:

Step 6/6 : RUN usermod --uid "$WWW_DATA_UID" www-data && groupmod --gid "$WWW_DATA_UID" www-data && chown -hR www-data:www-data /var/www
---> Running in 2b2f0d73dd7f
usermod: UID '0' already exists
ERROR: Service 'suplascripts' failed to build: The command '/bin/sh -c usermod --uid "$WWW_DATA_UID" www-data && groupmod --gid "$WWW_DATA_UID" www-data && chown -hR www-data:www-data /var/www' returned a non-zero code: 4
Error: No such container: suplascripts
supla-scripts crontab already installed

Nie chcę instalować dockera proxy bo mam już chodzący serwer z supla cloud. Co można z tym zrobić?
Jacek
__________________________________________________________
Specjalizowane oprogramowanie do sterowników Sonoff, Gosund, Blitzwolf, Shelly i innych:
https://djack.com.pl/modules.php?name=Downloads&d_op=viewdownload&cid=54
Awatar użytkownika
michael
Posty: 1299
Rejestracja: śr lis 09, 2016 8:00 am
Lokalizacja: Wojkowice

:mrgreen: :mrgreen: :mrgreen:
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

djack2017 pisze: pt gru 29, 2017 1:16 pm usermod: UID '0' already exists
ERROR: Service 'suplascripts' failed to build: The command '/bin/sh -c usermod --uid "$WWW_DATA_UID" www-data && groupmod --gid "$WWW_DATA_UID" www-data && chown -hR www-data:www-data /var/www' returned a non-zero code: 4
NIE wykonuj tych komend jako root i będzie działać. Stwórz sobie usera i dodaj go do grupy docker i z niego działaj.
siba
Posty: 99
Rejestracja: pn lut 06, 2017 4:01 pm
Lokalizacja: Kraków

Po zakończonej pełnym sukcesem testowej instalacji i konfiguracji wersji dockerowej supla-cloud i supla-scripts na jednej maszynie przyszedł czas na docker proxy głównie ze względu na zielone certyfikaty które ona daje.
Zanim jednak zacznę "psuć" to co udało mi się z mozołem osiągnąć przez ostatnie kilka dni chciałbym dowiedzieć się czy jest w ogóle to możliwe i racjonalne aby na istniejącej instalacji bez proxy wprowadzić modyfikacje opisane powyżej w odpowiednich plikach oraz zainstalować proxy i czy to ma prawo ruszyć? A może lepiej nie kombinować tylko usunąć kontenery i zacząć od zera?

Kolejne wątpliwości mam odnośnie sposobu działania całości pod kontrolą proxy. Czy to oznacza że jak w chwili obecnej podłączam się do maszyny z cloudem i skryptami z zewnątrz przez przekierowania odpowiednich portów to po tej instalacji te przekierowania nie będą wszystkie mi już potrzebne? Czy wówczas wystarczy tylko przekierować na routerze porty 80 i 443 na ip wewnętrzne tego komputera z zainstalowanym zestawem proxy+cloud+scripts a proxy zajmie się wyświetleniem mi odpowiedniej strony?

Dla lepszego opisania co mam na myśli posłużę się przykładem:
W chwili obecnej mam adres zewnętrzny mojej sieci w stylu https://moja_strona.com i pod tym adresem wyświetla mi się supla-cloud, a pod adresem https://moja_strona.com:444 supla-scripts, przy tej konfiguracji muszę mieć obecnie ustawione przekierowania portów 443 i 444 z zewnątrz do ip 192.168.0.60 które jest adresem wewnętrznym serwera cloud+scripts (ponadto porty 2015 i 2016 dla aplikacji mobilnej).
Jeśli dobrze myślę to po zmianie na proxy+cloud+scripts przekierowanie portu 444 nie będzie już konieczne bo za to która strona będzie dostępna pod moim adresem https://moja_strona.com będzie odpowiadać proxy i w zależności od czegoś tylko jeszcze nie wiem właśnie od czego wyświetli mi odpowiednią stronę.

Ufff, ale się rozpisałem
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Tak, na routerze będzie wymagane tylko przekierowanie portów 80 i 443.

Proxy ogarnie do której maszyny routować requesty po nazwie domenowej, tj. musisz sobie skonfigurować na swojej domenie subdomeny, np:

cloud.mojastrona.com
suplascripts.mojastrona.com

Obydwie subdomeny kierujesz na Twój adres IP. Zmienne LETSENCRYPT_HOST ustawiasz odpowiednio w odpowiednich kontenerach i dzięki temu proxy już wie wszystko.

Jeśli już masz uruchomione kontenery z suplą i skryptami, nie ma konieczności byś tworzył je "od nowa". Wprowadzenie zmian opisanych wyżej w konfiguracji i restart kontenerów powinien wystarczyć.
Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Instrukcja z pierwszego posta została zaktualizowana (uproszczona) w związku z dodaniem do supla-docker wsparcia dla proxy.
siba
Posty: 99
Rejestracja: pn lut 06, 2017 4:01 pm
Lokalizacja: Kraków

Nooo tego właśnie mi brakowało. Kawał dobrej roboty @fracz.
Szamotałem się z tym proxy od tygodnia a tu proszę rozwiązanie podane niemalże na tacy. Wszystko mi w końcu ruszyło i śmiga bez zarzutu z zewnątrz poprzez przekierowania subdomen na moje zmienne ip zewnętrzne routera (polecam serwis https://freedns.afraid.org/ jeśli ktoś chciałby to stawiać na zmiennym ip). Testowo postawione to jest na starym laptopie gdzie kiedyś było poczciwe xp :D ale ubuntu też świetnie się tam sprawdza a przy okazji można testy przeprowadzać. Certyfikaty są zielone, urządzenia się rejestrują, skrypty robią robotę czyli pełen sukces.
Jedna mała niedogodność którą zauważyłem to teraz nie mogę się dostać do interfejsu supla-cloud i supla-scripts z wewnątrz mojej sieci a przedtem wchodziłem przez wpisanie ip w przeglądarkę. Teraz nawet po adresie subdomeny nie mogę się dostać bo otwiera mi się interfejs webowy mojego routera. Jeszcze będę z tym coś kombinował bo na pewno jest jakiś sposób aby to jakoś ominąć ale to tylko drobiazg.
ODPOWIEDZ

Wróć do „supla-docker”