STEP1. सिस्टम आवश्यकताएं #
- Ubuntu 24.04
- Docker, Docker Compose
- डोमेन (उदाहरण: test.bestnetllc.co.jp)
- Let’s Encrypt SSL प्रमाणपत्र
STEP2. OS और Docker की इंस्टॉलेशन #
OS का अपडेट #
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y
sudo apt-get autoclean
sudo reboot
Docker और Docker Compose इंस्टॉल करें #
sudo apt-get update
sudo apt-get install -y
ca-certificates
curl
gnupg
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg
| sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg]
$(lsb_release -cs) stable"
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker --version
docker compose version
STEP3. SSL प्रमाणपत्र का प्रारंभिक जारी करना #
संग्रहण डायरेक्टरी बनाएं #
sudo mkdir -p /opt/certs/letsencrypt
अस्थायी रूप से Nginx बंद करें और प्रमाणपत्र जारी करें #
sudo docker run -it --rm
-p 80:80
-v /opt/certs/letsencrypt:/etc/letsencrypt
certbot/certbot certonly --standalone
-d test.bestnetllc.co.jp
-m test@bestnetllc.co.jp
--agree-tos
--no-eff-email
सफलता की पुष्टि करें:
ls /opt/certs/letsencrypt/live/test.bestnetllc.co.jp
STEP4. Dify की इंस्टॉलेशन और सेटिंग्स #
रिपॉजिटरी प्राप्त करें #
cd /home
mkdir dify && cd dify
git clone https://github.com/langgenius/dify.git
cd dify/docker
.env की सेटिंग्स #
nano .env
पर्यावरण चर का उदाहरण:
CERTBOT_EMAIL=test@bestnetllc.co.jp
CERTBOT_DOMAIN=test.bestnetllc.co.jp
NGINX_HTTPS_ENABLED=true
NGINX_SSL_PROTOCOLS="TLSv1.2 TLSv1.3"
NGINX_SSL_CERT_FILENAME=live/test.bestnetllc.co.jp/fullchain.pem
NGINX_SSL_CERT_KEY_FILENAME=live/test.bestnetllc.co.jp/privkey.pem
docker-compose.yaml की Nginx सेटिंग्स का उदाहरण #
services:
nginx:
image: nginx:latest
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- type: bind
source: /opt/certs/letsencrypt
target: /etc/letsencrypt
read_only: true
- ./nginx/nginx.conf.template:/etc/nginx/nginx.conf.template
- ./nginx/conf.d:/etc/nginx/conf.d
environment:
NGINX_HTTPS_ENABLED: "true"
NGINX_SSL_CERT_FILENAME: "live/test.bestnetllc.co.jp/fullchain.pem"
NGINX_SSL_CERT_KEY_FILENAME: "live/test.bestnetllc.co.jp/privkey.pem"
NGINX_SSL_PROTOCOLS: "TLSv1.2 TLSv1.3"
प्रारंभ और संचालन की पुष्टि #
docker compose up -d
docker compose logs -f nginx
ब्राउज़र में https://test.bestnetllc.co.jp पर एक्सेस करें
STEP5. SSL प्रमाणपत्र का स्वचालित नवीनीकरण सेटिंग #
नवीनीकरण स्क्रिप्ट बनाएं #
sudo nano /opt/certs/renew_cert.sh
स्क्रिप्ट सामग्री:
#!/bin/bash
cd /home/dify/docker
docker compose stop nginx
docker run --rm
-p 80:80
-v /opt/certs/letsencrypt:/etc/letsencrypt
certbot/certbot renew --standalone
docker compose start nginx
sudo chmod +x /opt/certs/renew_cert.sh
cron जॉब सेटिंग #
sudo crontab -e
निम्नलिखित जोड़ें (हर रविवार सुबह 3 बजे):
0 3 * * 0 /opt/certs/renew_cert.sh >> /var/log/letsencrypt_renew.log 2>&1
संचालन परीक्षण #
sudo /opt/certs/renew_cert.sh
STEP6. समस्या निवारण #
समस्या होने पर लॉग जांचें:
docker compose logs api -f
docker compose logs worker -f
docker compose logs web -f
docker compose logs nginx -f
Internal Server