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

Awatar użytkownika
lesny8
Posty: 1536
Rejestracja: pn gru 11, 2017 9:43 pm

sob sty 30, 2021 8:45 pm

Nie ma nginx-web

Kod: Zaznacz cały

cd docker-compose-letsencrypt-nginx-proxy-companion/
./start.sh
jureg2
Posty: 13
Rejestracja: pt paź 11, 2019 8:11 pm

pt lut 05, 2021 9:59 pm

Witam
Serwer przestał działać, restart supla i supla scripts nie pomaga

pi@raspberrypi:~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
07a0cdd8e956 suplascripts_suplascripts "docker-php-entrypoi…" 5 days ago Up 14 seconds 80/tcp suplascripts
496030240ca0 supla/supla-server:arm32v7 "/usr/bin/server-ent…" 5 days ago Up 37 seconds 0.0.0.0:2015-2016->2015-2016/tcp supla-server
b7458a246336 supla/supla-cloud:arm32v7 "docker-php-entrypoi…" 5 days ago Up 38 seconds 80/tcp supla-cloud
25ab2f45dd90 hypriot/rpi-mysql:5.5 "/entrypoint.sh mysq…" 5 days ago Up 40 seconds 3306/tcp supla-db
6922c19759ac hypriot/rpi-mysql:5.5 "/entrypoint.sh mysq…" 13 days ago Up 15 seconds 3306/tcp suplascripts-db
079da15d1b47 lesny8/rpi-docker-gen "/usr/local/bin/dock…" 13 days ago Up About a minute nginx-gen
af387d288a51 nginx "/docker-entrypoint.…" 13 days ago Up About a minute 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp nginx-web
8e0f512ef223 lesny8/rpi-docker-letsencrypt-nginx-proxy-companion "/bin/bash /app/entr…" 13 days ago Up About a minute nginx-letsencrypt
Awatar użytkownika
lesny8
Posty: 1536
Rejestracja: pn gru 11, 2017 9:43 pm

sob lut 06, 2021 9:16 am

A co Ci konkretnie nie działa?
Apka? Supla-cloud? SuplaScripts?
jureg2 pisze:
pt lut 05, 2021 9:59 pm
Witam
Serwer przestał działać, restart supla i supla scripts nie pomaga

Kod: Zaznacz cały

pi@raspberrypi:~ $ docker ps
CONTAINER ID   IMAGE                                                 COMMAND                  CREATED       STATUS              PORTS                                      NAMES
07a0cdd8e956   suplascripts_suplascripts                             "docker-php-entrypoi…"   5 days ago    Up 14 seconds       80/tcp                                     suplascripts
496030240ca0   supla/supla-server:arm32v7                            "/usr/bin/server-ent…"   5 days ago    Up 37 seconds       0.0.0.0:2015-2016->2015-2016/tcp           supla-server
b7458a246336   supla/supla-cloud:arm32v7                             "docker-php-entrypoi…"   5 days ago    Up 38 seconds       80/tcp                                     supla-cloud
25ab2f45dd90   hypriot/rpi-mysql:5.5                                 "/entrypoint.sh mysq…"   5 days ago    Up 40 seconds       3306/tcp                                   supla-db
6922c19759ac   hypriot/rpi-mysql:5.5                                 "/entrypoint.sh mysq…"   13 days ago   Up 15 seconds       3306/tcp                                   suplascripts-db
079da15d1b47   lesny8/rpi-docker-gen                                 "/usr/local/bin/dock…"   13 days ago   Up About a minute                                              nginx-gen
af387d288a51   nginx                                                 "/docker-entrypoint.…"   13 days ago   Up About a minute   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx-web
8e0f512ef223   lesny8/rpi-docker-letsencrypt-nginx-proxy-companion   "/bin/bash /app/entr…"   13 days ago   Up About a minute                                              nginx-letsencrypt
Ps. Używaj znaczników code </>, lepiej się czyta.
jureg2
Posty: 13
Rejestracja: pt paź 11, 2019 8:11 pm

sob lut 06, 2021 12:52 pm

witam
Po restarcie mam dostęp z zewnątrz a w sieci wewnętrznej brak dostępu do supla i supla scripts.
Wcześniej wszystko działało super, ustawienia routera przeglądnięte i nie zmienione.
Awatar użytkownika
lesny8
Posty: 1536
Rejestracja: pn gru 11, 2017 9:43 pm

sob lut 06, 2021 2:10 pm

Jeśli działało Ci w sieci LAN, a teraz nie działa i możesz się dostać tylko od strony WAN to problem jest po stronie routera. Tam popatrz czy czegoś nie zmieniałeś.
essej
Posty: 1
Rejestracja: ndz lip 05, 2020 4:46 pm

śr mar 10, 2021 4:53 pm

Mi się dziś udało postawić serwer supli na raspberry pi4 i raspbianie graficznym.
Jeżeli ktoś ma router z możliwością postawienia sobie serwera VPN to polecam. Ja nie musiałem otwierać i przekierowywać żadnych portów.

Wystarczy postawić serwer vpn na routerze, ściągnąć aplikację openVPN na telefon, eksportować ustawienia VPN z routera i dodać w apce.

Wszystko śmiga i poza siecią lokalną również :D Nie chciała tylko ruszyć apka mobilna bez lets encrypt.. ale to kwestia wygenerowania i dodania ręcznie certyfikatu :P
NetAs
Posty: 102
Rejestracja: pn maja 28, 2018 7:06 am
Lokalizacja: Wrocław
Kontaktowanie:

śr mar 17, 2021 4:43 pm

Mam u siebie zainstalowany supla i suplascript i działa OK, certyfikaty są i zielona kłódka jest - super.
Pytanie do autora Lesny8 - czy można dodać do tego rozwiązania swoją stronę www :?:
wrzuciłem przykładowy index.html do katalogu nginx-data/html uruchomiłem na nowo start.sh ale niestety wchodząc na swoją domenę zgłasza się:
503 Service Temporarily Unavailable
nginx/1.18.0

pewnie coś trzeba zmienić w konfiguracji tylko za bardzo nie wiem co ?
Awatar użytkownika
lesny8
Posty: 1536
Rejestracja: pn gru 11, 2017 9:43 pm

śr mar 17, 2021 4:57 pm

Można obok stronę postawić, nie ma problemu.
Pamiętaj że musisz mieć jakąś subdomenę do tego. Jak będę przy kompie to podkleje Ci jakiś prosty przykład.
Awatar użytkownika
lesny8
Posty: 1536
Rejestracja: pn gru 11, 2017 9:43 pm

śr mar 17, 2021 7:52 pm

NetAs pisze:
śr mar 17, 2021 4:43 pm
...
pewnie coś trzeba zmienić w konfiguracji tylko za bardzo nie wiem co ?
Zaloguj się na malinę, utwórz katalogi i poniższe pliki

Kod: Zaznacz cały

cd ~
mkdir mysite mysite/www
echo 'Hello World!!' > mysite/www/index.html
Utwórz docker-compose.yml w katalogu mysite

Kod: Zaznacz cały

cd mysite
nano docker-compose.yml
i wklej zawartość

Kod: Zaznacz cały

version: '3.4'

services:
  mysite:
    container_name: mysite
    restart: unless-stopped
    image: httpd:alpine
    env_file:
      - .env
    volumes:
      - $PWD/www:/usr/local/apache2/htdocs/
    logging:
      options:
        max-size: 50m
Utwórz docker-compose.proxy.yml

Kod: Zaznacz cały

nano docker-compose.proxy.yml
i wklej zawartość

Kod: Zaznacz cały

version: '3.4'

services:
  mysite:
    networks: [default, proxy]
    environment:
      - VIRTUAL_HOST=${DOMAIN}
      - LETSENCRYPT_HOST=${DOMAIN}
      - LETSENCRYPT_EMAIL=${ADMIN_EMAIL}

networks:
  proxy:
    external:
      name: webproxy
Możesz też utworzyć docker-compose.standalone.yml, ale nie musisz jeśli będziesz korzystał z proxy

Kod: Zaznacz cały

nano docker-compose.standalone.yml
i wklej zawartość

Kod: Zaznacz cały

version: '3.4'

services:
  mysite:
    ports:
      - "${PORT_HTTP}:80"
      - "${PORT_HTTPS}:443"
Utwórz skrypt uruchamiający mysite.sh, nie jest to konieczne ale wygodne ;)

Kod: Zaznacz cały

nano mysite.sh 
i wklej zawartość

Kod: Zaznacz cały

#!/usr/bin/env bash

cd "$(dirname "$0")"

RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'

source .env >/dev/null 2>&1

if [ "$1" = "start" ]; then
  echo -e "${GREEN}Starting container${NC}" && \
  docker-compose up --build -d && \
  echo -e "${GREEN}Container has been started.${NC}"

elif [ "$1" = "stop" ]; then
  echo -e "${GREEN}Stopping container${NC}"
  docker-compose stop && echo -e "${GREEN}Container has been stopped.${NC}"

elif [ "$1" = "restart" ]; then
  "./$(basename "$0")" stop
  sleep 1
  "./$(basename "$0")" start

else
  echo -e "${RED}Usage: $0 start|stop|restart${NC}"

fi
Zmień uprawnienia do tego pliku

Kod: Zaznacz cały

chmod 755 mysite.sh 
Dodaj jeszcze plik konfiguracyjny

Kod: Zaznacz cały

nano .env
Wklej zawartość i dostosuj do trybu pracy. Pamiętaj, że w trybie proxy musisz mieć domenę lub subdomene dla tego serwisu

Kod: Zaznacz cały

# Where the MySite will be accessible? Put domain or IP address here with port.
DOMAIN=mojastrona.pl

# Email address is mandatory for nginx-letsencrypt container(only if proxy mode) 
ADMIN_EMAIL=poprawny_adres_email@gmail.com

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

COMPOSE_PATH_SEPARATOR=:
COMPOSE_FILE=docker-compose.yml:docker-compose.proxy.yml


Na końcu uruchom skrypt

Kod: Zaznacz cały

./mysite.sh start 
Pobierze się obraz, wybuduje kontener i podniesie.
W trybie proxy musisz poczekać kilka chwil na wystawienie certyfikatu.
Po wpisaniu w przeglądarce domeny, subdomeny wczyta Ci się index.html z zawartością Hello World!!
NetAs
Posty: 102
Rejestracja: pn maja 28, 2018 7:06 am
Lokalizacja: Wrocław
Kontaktowanie:

czw mar 18, 2021 5:30 am

lesny8 pisze:
śr mar 17, 2021 7:52 pm
NetAs pisze:
śr mar 17, 2021 4:43 pm
...
pewnie coś trzeba zmienić w konfiguracji tylko za bardzo nie wiem co ?
Zaloguj się na malinę, utwórz katalogi i poniższe pliki

Kod: Zaznacz cały

cd ~
mkdir mysite mysite/www
echo 'Hello World!!' > mysite/www/index.html
WOW - dzięki za wyjaśnienie. Pełen profesjonalizm ;)
ODPOWIEDZ

Wróć do „FAQ / Jak to zrobić”