https://www.youtube.com/watch?v=p87m66qvC1k nextcloud_postgre_nginx.txt Страница 1 / 1 100% nextcloud/ +-- docker-compose.yml +-- .env +-- nginx/ ¦ +-- nginx.conf ¦ L-- ssl/ ¦ +-- nextcloud.crt ¦ L-- nextcloud.key L-- data/ +-- nextcloud/ L-- postgres/ ; Инсталация apt update && apt upgrade -y lsb_release -a apt install docker-compose mkdir nextcloud && cd nextcloudd ; файл с променливи .env file nano .env # Database POSTGRES_DB=nextcloud POSTGRES_USER=nextcloud POSTGRES_PASSWORD=your_strong_db_password POSTGRES_HOST=db # Nextcloud NEXTCLOUD_TRUSTED_DOMAINS=your.domain.com localhost NEXTCLOUD_ADMIN_USER=admin NEXTCLOUD_ADMIN_PASSWORD=your_admin_password # Nginx NGINX_HOST=your.domain.com ; конфигурационен файл docker-compose.yml nano docker-compose.yml version: '3.8' services: db: image: postgres:15-alpine container_name: nextcloud_db env_file: - .env volumes: - ./data/postgres:/var/lib/postgresql/data restart: unless-stopped networks: - nextcloud_network app: image: nextcloud:27-apache container_name: nextcloud_app depends_on: - db env_file: - .env environment: - POSTGRES_HOST=${POSTGRES_HOST} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_TRUSTED_DOMAINS} volumes: - ./data/nextcloud:/var/www/html - ./data/apps:/var/www/html/custom_apps - ./data/config:/var/www/html/config restart: unless-stopped networks: - nextcloud_network web: image: nginx:alpine container_name: nextcloud_web depends_on: - app ports: - "80:80" - "443:443" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/ssl:/etc/nginx/ssl - ./data/nextcloud:/var/www/html:ro restart: unless-stopped networks: - nextcloud_network networks: nextcloud_network: driver: bridge volumes: nextcloud_data: postgres_data: ; създаваме дял за NGINX, Файл nginx/nginx.conf mkdir nginx nano nginx/nginx.conf worker_processes auto; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; upstream nextcloud { server app:80; } server { listen 80; server_name ${NGINX_HOST}; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name ${NGINX_HOST}; ssl_certificate /etc/nginx/ssl/nextcloud.crt; ssl_certificate_key /etc/nginx/ssl/nextcloud.key; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_prefer_server_ciphers off; add_header Strict-Transport-Security "max-age=63072000" always; add_header X-Content-Type-Options nosniff; add_header X-XSS-Protection "1; mode=block"; add_header X-Robots-Tag none; add_header X-Download-Options noopen; add_header X-Permitted-Cross-Domain-Policies none; add_header Referrer-Policy no-referrer-when-downgrade; client_max_body_size 10G; fastcgi_buffers 64 4K; location / { proxy_pass http://nextcloud; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } } ; Създавме раздел за SSL сертификати mkdir -p nginx/ssl openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout nginx/ssl/nextcloud.key \ -out nginx/ssl/nextcloud.crt \ -subj "/CN=${NGINX_HOST}/O=Nextcloud/C=US" ; Смъкваме необхдимите ни докер образи docker-compose pull ; Проверяваме, че са смъкнати docker images ;Проверяваме портовете които са ни нужни, не са заети (свободни да са 80 и 443) ss -nltp ;Създаваме папки където ще се съхраняват nextcloud и postgres mkdir data/nextcloud mkdir data/postgres ;3:15min Проверяваме дървото на папки и файлове за това което правим tree ;Стартираме docker-compose файл docker-compose up -d ;Проверяваме контейнерите дали са стартирали и работят docker ps ;През браузъра набираме https://192.168.1.99 ;Deployment Steps ;Create all files in the structure shown above !!!! ;Replace all placeholders in .env with your actual values ;Generate SSL certificates ;Start the containers: docker-compose up -d Показва се „nextcloud_postgre_nginx.txt“.