Hocam yedek geri yükle dedim yükledi tekrar kurulumdan sonraki Register ekranı geldi aynı admin ve şifremi girdim onay maili gelmiyor
Discourse ile aynı sunucuda siteler yayınlama
-
Discourse Docker içinde çalışan bir sistem. Eğer resmi kurulum talimatlarını izleyerek Discourse kurulumu yaptıysanız ve diğer sitelerinizi Discorse ile aynı sunucuda kullanmayı düşünüyorsanız Discourse’yi Docker dışında yayına almanız gerekiyor.
Şimdi size Discourse’yi Docker dışında kurulan Nginx Web sunucusu ile nasıl yayınlanacağını anlatmaya çalışacağım.
1. Dicourse’yi durdur
Çalışan Discourse örneğini kapatmamız gerekiyor. bunun için;
cd /var/discourse ./launcher stop app
2. Nginx Kur
Docker dışına Nginx web sunucusunu kurmak için;
sudo apt-get update && sudo apt-get install nginx
3. App.yml düzenle
app.yml’de bir kaç bölümde değişiklik yapacağız. Bazı ekleme ve çıkarmalar…
app.yml dosyasını açmak için;cd /var/discourse nano containers/app.yml
- app.yml dosyasında aşağıdaki satırları bulun ve yorumlayın ( Yani başına
#
koyun)
# - "templates/web.ssl.template.yml" # - "templates/web.letsencrypt.ssl.template.yml"
- Aşağıdaki satırı app.yml dosyasında
templates
bölümünde herhangi bir yere ekleyin.
- "templates/web.socketed.template.yml"
- Şimdi Docker’de portları kapatmaak gerek. Çünkü artık Docker dışında kalan portları kullanacağız. 80 ve 443 portlarını kapatmamız gerek. bunun için aşağıdaki satırları bulun ve başına
#
ekleyin.
# - "80:80" # http <--başına # koy # - "443:443" # https <--başına # koy
4. Nginx’te Discourse’yi yayınla
Artık Discourse örneğimizi Docker dışında çalışan Nginx web sunucumuz ile yayına hazırız. Şimdi discourse.conf adında bir dosya oluşturacağız ve discourseyi rebuild ettikten sonra artık yayına hazır olacak.
Nginx konfigürasyon dosyası oluşturmak için;
nano /etc/nginx/sites-enabled/discourse.conf
Discourse.conf içeriği ise aşağıdaki gibi olacak.
server { listen 80; listen [::]:80; server_name forum.example.com; # <-- change this return 301 https://$host$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name forum.example.com; # <-- change this ssl_certificate /var/discourse/shared/standalone/ssl/ssl.crt; ssl_certificate_key /var/discourse/shared/standalone/ssl/ssl.key; ssl_dhparam /var/discourse/shared/standalone/ssl/dhparams.pem; ssl_session_tickets off; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA; http2_idle_timeout 5m; # up from 3m default client_max_body_size 0; location / { proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; } }
Önemli Noktalar;
Discourse let’s encrypt SSL ile birlikte gelir. Let’s encrypt SSL dosyaları ise
/var/discourse/shared/standalone/ssl/
klasörü içinde bulunur. Discourse kurulumu ile gelen Let’s Encrypt SSL kullanmaya devam edeceksiniz yukarıdaki SSL ile ilgili blokları aşağıdaki gibi girmelisiniz.ssl_certificate /var/discourse/shared/standalone/ssl/seninssl.com.cer; ssl_certificate_key /var/discourse/shared/standalone/ssl/seninsll.com.key;
/var/discourse/shared/standalone/ssl/
yolunda bulunan SSL klasöründedhparams.pem
adında bir dosya yoksa (discourse.conf içindeki aşağıdaki satır)ssl_dhparam /var/discourse/shared/standalone/ssl/dhparams.pem;
Aşağıdaki komutu çalıştırarak bu dosyayı oluşturabilirsin.
openssl dhparam -out /var/discourse/shared/standalone/ssl/dhparams.pem 2048
veya discourse.con içinden bu satırı tamamen silebilirsinde. Discourse’nin çalışmasına etki etmez. Sana kalmış
İstersen kendine ait SSL veya Cloudflare Full Strick SSL de kullanabilirsin. Sadece geçerli SSL sertifikalarının yolunu ve adını discourse.conf dosyasında doğru girmiş olmak gerekiyor.
5. Tamamla
Artık işimiz bitti. Sitemizi yayına alıp Discourse’yi yeniden oluşturduğumuzda işimiz bitmiş olacak.
# Discourse'nin kapalı olduğundan emin olmak için; /var/discourse/launcher stop app || true # Nginx'te hata var mı yok mu kontrol edin. sudo nginx -t # Herhangi bir hata yoksa Discourse'yi yayına alın. sudo service nginx reload # app.yml'de yaptığımız değişikliklerin aktif olması için; /var/discourse/launcher rebuild app
Artık Discourse siteniz Docker dışında yayında olmalı. Sunucunuza diğer uygulamalarınızı kurarak istediğiniz kadar siteyi Discourse ile aynı sunucuda kullanabilirsiniz.
- app.yml dosyasında aşağıdaki satırları bulun ve yorumlayın ( Yani başına
-