supla-cloud, supla-server - (unhealthy)

Moderator: fracz

User avatar
lukfud
Posts: 2199
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

Jak sprawdzić dlaczego server i cloud mają status "unhealthy"?

(Linux Supla-VM 6.1.0-25-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26) x86_64)
https://www.facebook.com/groups/supladiy/
edm
Posts: 507
Joined: Mon Jan 15, 2018 6:18 pm

Post

lukfud wrote: Mon Sep 23, 2024 8:34 am Jak sprawdzić dlaczego server i cloud mają status "unhealthy"?

(Linux Supla-VM 6.1.0-25-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26) x86_64)
A próbowałeś może tego, czytaj od tego miejsca https://forum.supla.org/viewtopic.php?p=166600#p166600
Tu niby jest rozwiązane ? https://forum.supla.org/viewtopic.php?p=166765#p166765
Nie testowałem...
Wziąłem udział w Supla Offline Party 2023 :D
User avatar
lukfud
Posts: 2199
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

edm wrote: Mon Sep 23, 2024 6:31 pm
lukfud wrote: Mon Sep 23, 2024 8:34 am Jak sprawdzić dlaczego server i cloud mają status "unhealthy"?

(Linux Supla-VM 6.1.0-25-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26) x86_64)
A próbowałeś może tego, czytaj od tego miejsca viewtopic.php?p=166600#p166600
Tu niby jest rozwiązane ? viewtopic.php?p=166765#p166765
Nie testowałem...
Dzięki za linki. zablokowałem healthcheck.

@fracz
Czy jest możliwa zmiana w Dockerfile,

Code: Select all

http://localhost/api/server-info
http://supla-cloud/api/server-status
localhost i supla-cloud na CLOUD_DOMAIN ?
https://www.facebook.com/groups/supladiy/
User avatar
lukfud
Posts: 2199
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

Jakby kogoś to interesowało ;)

Zrzut ekranu 2024-10-10 105447.png

W pliku .env dla supla-cloud

Code: Select all

    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://${CLOUD_DOMAIN}/api/server-info"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 30s
i supla-server

Code: Select all

    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://${CLOUD_DOMAIN}/api/server-status"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 30s
You do not have the required permissions to view the files attached to this post.
https://www.facebook.com/groups/supladiy/
User avatar
klimasstudio
Posts: 1148
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

Potwierdzam że rozwiązanie @plnuker z wpisu: viewtopic.php?p=166765#p166765
oraz @lukfud działają poprawnie lecz ta @lukfud-a ma odwołania do certyfikatów SSL które mamy publicznie wystawionego np. przez CloudFlare
supla-docker-healthy.png
Bardzo dziękuję za podesłanie rozwiązania. Będę musiał dodać poprawki w moim wpisie na blogu odnośnie sprawdzania certyfikatów SSL lub opcji wyłączenia sprawdzania.
You do not have the required permissions to view the files attached to this post.
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
edm
Posts: 507
Joined: Mon Jan 15, 2018 6:18 pm

Post

Dużo wody upłynęło. Brawu Wy...
Wziąłem udział w Supla Offline Party 2023 :D
User avatar
klimasstudio
Posts: 1148
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

Znalazłam 1szy problem, a można nazwać to małym konfliktem...

Jeżeli używam tylko https i mam wszystko przez CloudFlare czyli uzywam domeny cloud.mojadomena.pl to strona działa i wysyłanie maili itp. lecz do portu 2015-2016 musze łączyć się do srv.mojadomena.pl która nie jest za CloudFlare (tryb DNS Only).
Używając metody lukfuda dla supla-server mam błąd "broken-link"
Mój stack:

Code: Select all

version: '3'

services:
  supla-cloud:
    environment:
     ADMIN_EMAIL: ${ADMIN_LOGIN}
     CLOUD_DOMAIN: ${SUPLA_CLOUD_DOMAIN}
     SUPLA_PROTOCOL: https
     # Firtst User & Registration
     FIRST_USER_EMAIL: ${ADMIN_LOGIN}
     FIRST_USER_PASSWORD: ${ADMIN_PASSWORD}
     ACCOUNTS_REGISTRATION_ENABLED: ${ACCOUNTS_REGISTRATION_ENABLED}
     REQUIRE_REGULATIONS_ACCEPTANCE: ${REQUIRE_REGULATIONS_ACCEPTANCE}
     REQUIRE_COOKIE_POLICY_ACCEPTANCE: ${REQUIRE_COOKIE_POLICY_ACCEPTANCE}
     BRUTE_FORCE_AUTH_PREVENTION_ENABLED: ${BRUTE_FORCE_AUTH_PREVENTION_ENABLED}
     # ReCaptcha
     RECAPTCHA_ENABLED: ${RECAPTCHA_ENABLED}
     RECAPTCHA_PRIVATE_KEY: ${RECAPTCHA_PRIVATE_KEY}
     RECAPTCHA_PUBLIC_KEY: ${RECAPTCHA_PUBLIC_KEY}
     # Mailer settings (SMTP)
     MAILER_HOST: ${MAILER_HOST}
     MAILER_PORT: ${MAILER_PORT}
     MAILER_USER: ${MAILER_USER}
     MAILER_PASSWORD: ${MAILER_PASSWORD}
     MAILER_ENCRYPTION: ${MAILER_ENCRYPTION}
     MAILER_FROM: ${MAILER_FROM}
     # These options protect your application
     DB_PASSWORD: ${DB_PASSWORD}
     SECRET: ${SECRET}
     # MQTT Broker
     MQTT_BROKER_ENABLED: ${MQTT_BROKER_ENABLED}
     MQTT_BROKER_HOST: ${MQTT_BROKER_HOST}
     MQTT_BROKER_PORT: ${MQTT_BROKER_PORT}
     MQTT_BROKER_TLS: ${MQTT_BROKER_TLS}
     MQTT_BROKER_USERNAME: ${MQTT_BROKER_USERNAME}
     MQTT_BROKER_PASSWORD: ${MQTT_BROKER_PASSWORD}
     MQTT_BROKER_CLIENT_ID: ${MQTT_BROKER_CLIENT_ID}

    container_name: ${COMPOSE_PROJECT_NAME}-cloud
    image: supla/supla-cloud:${IMAGE_VERSION}
    links:
    - supla-db:supla-db
    - supla-server:supla-server
    ports:
    - ${HTTPS_PORT}:443
    restart: always
    volumes:
    - ${SUPLA_FOLDER}/ssl/cloud:/etc/apache2/ssl:z
    - ${SUPLA_FOLDER}/server:/supla-server:z
    - ${SUPLA_FOLDER}/cloud-local:/var/www/cloud/var/local
    - ${SUPLA_FOLDER}/cloud-logs:/var/www/cloud/var/logs
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "https://${SUPLA_CLOUD_DOMAIN}/api/server-info"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 30s
    
  supla-db:
    environment:
     MYSQL_DATABASE: supla
     MYSQL_PASSWORD: ${DB_PASSWORD}
     MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
     MYSQL_USER: supla
    container_name: ${COMPOSE_PROJECT_NAME}-db
    image: mariadb
    ports:
    - ${DB_PORT}:3306
    restart: always
    volumes:
    - ${SUPLA_FOLDER}/mysql:/var/lib/mysql:z
    
  supla-server:
    environment:
     DB_PASSWORD: ${DB_PASSWORD}
     CLOUD_DOMAIN: ${SUPLA_CLOUD_DOMAIN}
     # MQTT Broker
     MQTT_BROKER_ENABLED: ${MQTT_BROKER_ENABLED}
     MQTT_BROKER_HOST: ${MQTT_BROKER_HOST}
     MQTT_BROKER_PORT: ${MQTT_BROKER_PORT}
     MQTT_BROKER_TLS: ${MQTT_BROKER_TLS}
     MQTT_BROKER_USERNAME: ${MQTT_BROKER_USERNAME}
     MQTT_BROKER_PASSWORD: ${MQTT_BROKER_PASSWORD}
     MQTT_BROKER_CLIENT_ID: ${MQTT_BROKER_CLIENT_ID}
    container_name: ${COMPOSE_PROJECT_NAME}-server
    image: supla/supla-server:${IMAGE_VERSION}
    links:
    - supla-db:supla-db
    ports:
    - 2016:2016
    - 2015:2015
    restart: always
    volumes:
    - ${SUPLA_FOLDER}/ssl/server:/etc/supla-server/ssl:z
    - ${SUPLA_FOLDER}/server:/var/run/supla:z
    healthcheck:
      test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "https://${SUPLA_CLOUD_DOMAIN}/api/server-status"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 30s
Mój env:

Code: Select all

IMAGE_VERSION=latest
COMPOSE_PROJECT_NAME=supla-docker
DB_PASSWORD=xxx
SECRET=xxx
SUPLA_CLOUD_DOMAIN=cloud.mojadomena.pl
SUPLA_DOMAIN=srv.mojadomena.pl
SUPLA_PROTOCOL=https
HTTPS_PORT=7443
DB_PORT=3304
SUPLA_FOLDER=/home/user/appdata/supla-docker
ADMIN_LOGIN=pawelklimko@gmail.com
ADMIN_PASSWORD=xxx
MQTT_BROKER_ENABLED=false
MQTT_BROKER_HOST=
MQTT_BROKER_PORT=1883
MQTT_BROKER_TLS=false
MQTT_BROKER_USERNAME=
MQTT_BROKER_PASSWORD=
MQTT_BROKER_CLIENT_ID=supla
MAILER_HOST=smtp.zoho.eu
MAILER_PORT=587
MAILER_USER=root@mojadomena.pl
MAILER_PASSWORD=xxx
MAILER_ENCRYPTION=tls
MAILER_FROM=root@mojadomena.pl
ACCOUNTS_REGISTRATION_ENABLED=true
REQUIRE_REGULATIONS_ACCEPTANCE=false
REQUIRE_COOKIE_POLICY_ACCEPTANCE=false
BRUTE_FORCE_AUTH_PREVENTION_ENABLED=true
RECAPTCHA_ENABLED=true
RECAPTCHA_PUBLIC_KEY=xxx
RECAPTCHA_PRIVATE_KEY=xxx
SUPLA_CLOUD_DOMAIN=cloud.mojadomena.pl <-odpowiada za podanie domeny za Cloudflare, przez co z tego adresu nie bedzie dostępu do portu 2015-2016

Proponuje dodac w dockerze (zgłosić ticket) aby dodać dodatkowa zmienną dla adresu serwera np:
SUPLA_DOMAIN=srv.mojadomena.pl lub SUPLA_SRV_DOMAIN co by naprawiło błąd kounikacji do servera.
supla_srv_domain.png
Teraz mam wybór albo działające SSL albo działające maile.

Chyba że ktoś ma inne rozwiązanie problemu ?

EDIT: Tymczasowo rozwiązałem problem podmieniając linie:

Code: Select all

 test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "https://${SUPLA_CLOUD_DOMAIN}/api/server-status"]
na linię:

Code: Select all

test: ["CMD-SHELL", 'echo "Q" | openssl s_client -connect ${SUPLA_SRV_DOMAIN}:2016']
gdzie w env dodałem zmienią: SUPLA_SRV_DOMAIN wpisując w niej adres srv.mojadomena.pl który odwołuje bezpośrednio do serwera supli nie przez Cloudflara.

Otrzymuje logi od supla-cloud:

Code: Select all

URL: https://cloud.mojadomena.pl/api/server-info 200 OK
oraz od supla-server:

Code: Select all

CONNECTED(00000003) --- Certificate chain 0 s:C = PL, ST = SUPLA, L = SUPLA, O = SUPLA, CN = SUPLA i:C = PL, ST = SUPLA, L = SUPLA, O = SUPLA, CN = SUPLA --- Server certificate -----BEGIN CERTIFICATE----- MIIDezCCAmOgAwIBAgIUFoN74GEUz/nnvNBagkZ5Pe/aLa0wDQYJKoZIhvcNAQEL BQAwTTELMAkGA1UEBhMCUEwxDjAMBgNVBAgMBVNVUExBMQ4wDAYDVQQHDAVTVVBM QTEOMAwGA1UECgwFU1VQTEExDjAMBgNVBAMMBVNVUExBMB4XDTI0MTAwNDIyMzIx NFoXDTI1MTAwNDIyMzIxNFowTTELMAkGA1UEBhMCUEwxDjAMBgNVBAgMBVNVUExB MQ4wDAYDVQQHDAVTVVBMQTEOMAwGA1UECgwFU1VQTEExDjAMBgNVBAMMBVNVUExB MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAye2g/50zgbrcnZmewrvj 2s73r1VxHVCs6JutdTYuFYHBd0imWKBQkjvQoM4ha0OPKtfSYuQLopCUylvIMsp/ DJDIL5CxSXDy5N7zvjosVqjKcqH1CPblHUI8PytO0kynkq358lXdLxx2L+rUPH9y gSBhuUiHMu5rx78/91YkuwEX6vDbPXlTiLNJ+sPT3o7BglBLWsWYwyn7UK4fzGBU wJpBNSMjXo8nWIKUpssP4FInTOm2XtDXZDmTY9dt4QRG0FyISWxgpFmj+GUgqfhr 97Tub1lS6thdEGaKGXyUUW/6QMIjTN5FvZ2e6/CS8XST/bBZgeokeqLuPvY42Zf6 twIDAQABo1MwUTAdBgNVHQ4EFgQU4jA7t/OzDz+IhvjhlD+4oJ95nHQwHwYDVR0j BBgwFoAU4jA7t/OzDz+IhvjhlD+4oJ95nHQwDwYDVR0TAQH/BAUwAwEB/zANBgkq hkiG9w0BAQsFAAOCAQEAjABu25NbzxAJE/Vk3m/5DEwjOMes74pQJASX/Ykgv6HS O72nhmKxZzMrb+7QbSjsZ9fGqKJ0ao+rxjjS8HYuhhlDkTPtF9MWUKR/EOmOLlDb lQdDIP3DCTmU1GqUB3zTQPRKgDWHCxiafYl4mSzHUJ/4kOUje7Saooag3seincSx PAsOU4rw2Ghvlw2tstSDSUlN0fGgNxImKnaVQYsRe9qBywYj77civMvYHFME6orf 0bpa2NcAGOOLvdH2hCJyfMjKd1gbrygxPBztwPSmAzVsB+h5GKKEA/sUUxDJr19g 22dSnZhhs2jFL1gWua6VGEC2zVhBPWF1w4zunFBfeA== -----END CERTIFICATE----- subject=C = PL, ST = SUPLA, L = SUPLA, O = SUPLA, CN = SUPLA issuer=C = PL, ST = SUPLA, L = SUPLA, O = SUPLA, CN = SUPLA --- No client certificate CA names sent Peer signing digest: SHA256 Peer signature type: RSA-PSS Server Temp Key: X25519, 253 bits --- SSL handshake has read 1451 bytes and written 388 bytes Verification error: self signed certificate --- New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384 Server public key is 2048 bit Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated Early data was not sent Verify return code: 18 (self signed certificate) --- depth=0 C = PL, ST = SUPLA, L = SUPLA, O = SUPLA, CN = SUPLA verify error:num=18:self signed certificate verify return:1 depth=0 C = PL, ST = SUPLA, L = SUPLA, O = SUPLA, CN = SUPLA verify return:1 DONE
You do not have the required permissions to view the files attached to this post.
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d
User avatar
lukfud
Posts: 2199
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

klimasstudio wrote: Thu Oct 10, 2024 6:24 pm Znalazłam 1szy problem, a można nazwać to małym konfliktem...

Jeżeli używam tylko https i mam wszystko przez CloudFlare czyli uzywam domeny cloud.mojadomena.pl to strona działa i wysyłanie maili itp. lecz do portu 2015-2016 musze łączyć się do srv.mojadomena.pl która nie jest za CloudFlare (tryb DNS Only).
Używając metody lukfuda dla supla-server mam błąd "broken-link"
Co wnosi użycie różnych subdomen kierujących do tego samego miejsca?
https://www.facebook.com/groups/supladiy/
User avatar
klimasstudio
Posts: 1148
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

cloud.mojadomena.pl jest proxied w cloudflare wiec web gui będzie tylko działać. Aby działały porty 2015-2016 do komunikacji muszę zrobić dodatkową subdomene np. srv.mojadomena.pl która jest w cloudflare Only DNS więc dopuści do wymienionych portów. Stąd muszę uzywac dwóch domen. W supli generalnie też się logujemy do cloud.supla.org a serwer ma adres srvXX.supla.org. Mam nadzieję że wystarczająco wyjaśniłem powód użycia dwóch domen a raczej subdomen.
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d

Return to “supla-docker”