Pomoc Docker - Nextcloud, MariaDB, Proxy, SSL, Subdomena.

SebekW

System Engineer
Q Specialist
9 Czerwiec 2020
110
11
18
TG
QNAP
TS-x31P
Ethernet
1 GbE
Dzień dobry
Z Docker Desktop na Windows 10 na WSL 2 zetknąłem się kilka dni temu.
Postawiłem sobie Nextclouda i bazę do niego MariaDB, lokalnie localhost:8080 albo 192.168.1.1XX:8080 wszystko funkcjonuje dobrze ten IP jest na serwerze wykluczony z puli i trzyma mu tak jakby "stały" IP.
Mój docker-compose.yml wygląda tak:
Kod:
version: '2'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=1234
      - MYSQL_PASSWORD=1234
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=1234
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

W Docker Desktop wygląda tak:
Containters/APP
1645779000914.png

Volumes:
1645779049861.png

Teraz chciałbym przejść dalej z konfiguracją, mianowicie skonfigurować SSL(pewnie reverse proxy) dla subdomeny cloud.XXXX.pl, skonfigurowałem ją jako rekord A i przypisałem do niej jeden z puli zew. IP 81.30.136.XXX.
Myślałem żeby zakupić certyfikat SSL, ale jak można wykorzystać Let's Encrypt to może w to wejść, mogę też zakupić, tylko wszystko zależy od tego co łatwiej jest skonfigurować.
W Fortinecie zrobiłem już policy i przypisałem 81.30.136.XXX. ->> 192.168.1.1XX na TCP/443, TCP/8080.
Teraz tylko trzeba by spowodować żeby to z sobą zaczęło gadać.
Jak do tego podejść pomóżcie zmęczonemu wędrowcy... Jak to zacząłem trawić to już nic nie wiem...

Pewnie resztę wygoogluje więc looz...

pozdrawiam
SW
 
Let's Encrypt jest darmowy, i smiało można użyć.
Dalej, postaw sobie Nginx (rev proxy) w nim podczepisz SSL pod swoją domenę. I zrobisz przekierowanie z domeny do IP Nextcloud'a. Powinno ruszyć.
 
QNAP ? nope

Masz postawić sobie rev proxy (Nginx Proxy Manager obecny na forum ?) i powiedzieć mu - dla adresu cloud.domena.xyz - ruch proszę przerzucać do adresu IP 192.168.1.1XX:8080 (zakładam że w przypływie geniuszu, upewniłeś się że to adres stały).

Udzielamy pomocy - Nginx Proxy Manager + Nextcloud
- U mnie geniuszu brak xD zwykle potrzebuję trochę dłużej pomyśleć :D
- Qnap "chyba" odpada bo mam TS-431P z 1GB ram-u, obecnie mam zajęte 55% i nie chcę żeby mi muliło, wolę to postawić na oddzielnym kompie.
- Tak dodałem IP 192.168.1.1XX do zastrzeżeń na Win2012R2
*Jak kupię lepszego Qnap-a to potem poszaleję...
Dzięki za naprowadzenie, no nic zabieram się do roboty :eek:

pozdrawiam
SW
 
- Tak dodałem IP 192.168.1.1XX do zastrzeżeń na Win2012R2
to już się prosi o pomste do ...

- U mnie geniuszu brak xD zwykle potrzebuję trochę dłużej pomyśleć
ja odpowiadam "rzeczy nie możliwe załatwiam od ręki, na CUDA trzeba poczekac troche dłużej"*
;)
TS-431P z 1GB ram-u, obecnie mam zajęte 55% i nie chcę żeby mi muliło
uh - nędza jednym słowem - ale na start w porządku


*to jest cytat.
Połączono posty:

aa i jeszcze jedna sprawa - sprawdź sobie kwestie licencjowania Docker Desktop dla firm
 
Znalazłem taki tekst:

"W przyszłości darmowy plan będzie nosił nazwę Osobisty i od teraz wydawca rozwiązania do automatyzacji wdrażania aplikacji będzie wymagać firm zatrudniających ponad 250 pracowników (lub które osiągają obrót przekraczający 10 milionów dolarów rocznie)"

Nigdzie nie umiem nic konkretnego znaleźć, opisów mało, a ja na takich rzeczach legam ->> nie do końca to rozumiem i w związku z tym mam pytanie:

Kod:
server {
    listen 80;
    listen [::]:80;

    server_name example.org www.example.org;
    server_tokens off;

    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    location / {
        return 301 https://example.org$request_uri;
    }
}

server {
    listen 443 default_server ssl http2;
    listen [::]:443 ssl http2;

    server_name example.org;

    ssl_certificate /etc/nginx/ssl/live/example.org/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/live/example.org/privkey.pem;
 
    location / {
        # ...
    }
}

W miejscu example.org mam wpisać xxx.pl czy cloud.xxx.pl, domenę czy subdomenę.

Mój konfig wygląda tak:
Kod:
version: '3'

volumes:
  nextcloud:
  db:

services:
  db:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=Nextcloud37N@
      - MYSQL_PASSWORD=Nextcloud37N@
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud

  app:
# był nextcloud:fpm zmieniłem jak poniżej...
    image: nextcloud:latest
    restart: always
    links:
      - db
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_PASSWORD=Nextcloud37N@
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
      - MYSQL_HOST=db

  web:
    image: nginx:latest
    ports:
      - 80:80
      - 443:443
    restart: always
    volumes:
      - ./nginx/conf/:/etc/nginx/conf.d/:ro
      - ./certbot/www:/var/www/certbot/:ro
      - ./certbot/conf/:/etc/nginx/ssl/:ro

  certbot:
    image: certbot/certbot:latest
    volumes:
      - ./certbot/www/:/var/www/certbot/:rw
      - ./certbot/conf/:/etc/letsencrypt/:rw

No i standardowo nie działa ktoś coś jakiś help me ?
Wiem tylko że Mariadb i nextclouda mam dobrze pospinanego i lokalnie działa, a ngixa i certbota źle i nie wiem jak to pospinać w tym docker-compose.yml.
Dodatkowo certboota odpla się podobno z ręki żeby pobrać certyfikaty, ale jak odpalam to tworzy mi nowy volumen syf się robi, błąd wywala że połączenie moja.domena.pl i mam se jakieś porty sprawdzić. Ngix nie chce się odpalić wszystko źle.
Może by mi ktoś powiedział jak mam wypełnić tego nginx.conf poprawnie...

pozdrawiam
SW
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. nextcloud
  2. nginx
  3. TS-431P
  4. mariadb
  5. certbot
  6. reverse dns
  7. Certyfikaty SSL
  8. nextcloud z docker desktop ma windows
  9. certyfikaty
  10. reverse proxy
  11. https://forum.qnap.net.pl/threads/docker-nextcloud-mariadb-proxy-ssl-subdomena.39168/
  12. reverse
  13. let's encrypt
  14. certyfikat nextcloud