Discourse resmi Docker kurulum aracıyla nasıl kurulur
Discourse topluluk forumunu resmi kurulum aracıyla Ubuntu veya Debian'a kurun; otomatik HTTPS, güvenli giriş ayarları, zamanlanmış yedekler ve güncellemeler.
- Orta
- 40 dk okuma
- Güncellendi
Denendiği sistemler: Ubuntu 24.04 LTS, Ubuntu 26.04 LTS, Debian 12, Debian 13
Bu sayfada
- Ön koşullar
- Adım 1 — Docker'ı Docker'ın deposundan kurun
- Adım 2 — Küçük sunuculara swap ekleyin
- Adım 3 — Güvenlik duvarını açın ve DNS'i kontrol edin
- Adım 4 — Resmi kurulum aracını indirin, okuyun ve çalıştırın
- Adım 5 — Yönetici hesabını oluşturun ve kurulumu tamamlayın
- Adım 6 — Ana makineyi güvende tutun
- Yedekleme ve geri yükleme
- Discourse güncelleme
- Sorun giderme
- Sihirbaz 80 veya 443 numaralı portun kullanımda olduğunu söylüyor
- Alan adı kontrolü başarısız oluyor
- Derleme veya başlatma başarısız oluyor
- Onay e-postaları gelmiyor
- Sonraki adımlar
Discourse; topluluk forumları, ürün destek panoları ve şirket içi bilgi paylaşımı için kullanılan açık kaynaklı bir tartışma platformudur. Proje üretim için tek bir kurulum yöntemini destekler: Let's Encrypt sertifikalarını ve yükseltmeleri de yöneten discourse_docker başlatıcısıyla yönetilen bir Docker konteyneri. Bu rehber bir Ubuntu veya Debian sunucusunu hazırlar, resmi kurulum aracını ve sihirbazı çalıştırır, yeni forumu sıkılaştırır ve nasıl yedekleyeceğinizi, geri yükleyeceğinizi ve güncel tutacağınızı gösterir.
Ön koşullar
- Ubuntu 24.04 veya 26.04 LTS (Discourse Ubuntu LTS önerir) ya da Debian 12 veya 13 çalıştıran 64 bit bir sunucu.
sudoyetkisi ve SSH anahtarıyla girişi olan, root olmayan bir kullanıcı: Yeni bir Linux sunucusunu güvenli hale getirin ve SSH anahtarlarını ayarlayın rehberlerine bakın.- Sunucuyu gösteren bir DNS A kaydına sahip
forum.example.comgibi bir ana makine adı veya ücretsiz birdiscourse.diyalt alan adı istiyorsanız bir Discourse ID hesabı. - Boş 80 ve 443 numaralı portlar: bu makinede başka bir web sunucusu çalışmamalıdır.
- İsteğe bağlı: özet e-postaları ve e-postayla yanıtlama için bir SMTP sağlayıcısı.
Discourse kurulum rehberindeki gereksinimler:
| Kaynak | En düşük (resmi) | Önerilen başlangıç |
|---|---|---|
| CPU | 1 çekirdek | 2 veya daha fazla çekirdek (resmi öneri) |
| RAM | Swap ile 1 GB | 2 GB veya daha fazla (resmi öneri) |
| Disk | 10 GB | 20 GB veya daha fazla (resmi öneri), ayrıca yedekler ve yüklemeler için alan |
| İşletim sistemi | 64 bit Linux | Ubuntu LTS |
Kurulum aracı, web işçisi sayısını ve veritabanı belleğini algıladığı RAM ve CPU'ya göre ayarlar.
Adım 1 — Docker'ı Docker'ın deposundan kurun
Discourse kurulum aracı, Docker yoksa onu Docker'ın kolaylık betiğiyle kurar. Docker bu betiği yalnızca test için önerir; bu yüzden önce Docker Engine'i resmi depodan kurun, böylece kurulum aracı bu adımı atlar. Ubuntu'ya Docker kurulumu veya Debian'a Docker kurulumu rehberini izleyin, ardından kontrol edin:
docker --version
sudo systemctl is-active dockerAdım 2 — Küçük sunuculara swap ekleyin
2 GB veya daha az RAM'i olan bir sunucuda, Discourse sorun giderme notlarının önerdiği gibi ilk derlemeden önce swap ekleyin:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -hfree -h artık 2 GB swap göstermelidir.
Adım 3 — Güvenlik duvarını açın ve DNS'i kontrol edin
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
dig +short forum.example.comdig çıktısı sunucunuzun genel IP adresi olmalıdır (dig yoksa dnsutils paketini kurun). Kendi alan adınızı kullanıyorsanız devam etmeden önce bunun doğru olmasını bekleyin; sihirbaz bunu kontrol eder ve Let's Encrypt buna ihtiyaç duyar.
Adım 4 — Resmi kurulum aracını indirin, okuyun ve çalıştırın
Kurulum aracı, discourse_docker deposundaki kısa bir başlangıç betiğidir ve root olarak çalışmalıdır. Eksikse git'i kurar, yalnızca eksikse Docker'ı kurar, discourse_docker deposunu /var/discourse içine klonlar (bu klasör zaten bir git kopyasıysa onu en son sürüme sıfırlar ve oradaki yerel değişiklikleri siler) ve ardından discourse-setup sihirbazını başlatır. Çalıştırmadan önce indirip okuyun:
wget -qO install-discourse https://raw.githubusercontent.com/discourse/discourse_docker/main/install-discourse
less install-discourse
sudo bash install-discourseResmi rehber aynı işlemi tek satırlık bir wget … | sudo bash olarak gösterir; önce indirmek yalnızca neyin çalışacağını görmenizi sağlar.
Sihirbaz şunları sorar:
- Yönetici e-posta adres(ler)i. Bu adreslerle kaydolan hesaplar yönetici olur.
- Kendi alan adınız veya ücretsiz bir alt alan adı. Ana makine adınızı yazın, örneğin
forum.example.com; ya da Discourse ID hesabınızda gösterilen altı haneli kodla (10 dakika geçerlidir) birdiscourse.diyalt alan adı alın. - SMTP. Sağlayıcınızın sunucusunu (örneğin
smtp.example.com),587numaralı portu, kullanıcı adını ve parolasını girin veya Discourse ID girişlerini kullanmak için atlayın.
Onayladıktan sonra kurulum aracı konteyneri derler ve başlatır; bu yaklaşık 5 ile 10 dakika sürer. Let's Encrypt sertifikaları otomatik olarak alınır ve yenilenir.
Sonucu kontrol edin:
cd /var/discourse
sudo ./launcher logs app | tail -n 20
curl -I https://forum.example.comcurl sertifika hatası olmadan HTTP 200 veya bir yönlendirme döndürmelidir.
Adım 5 — Yönetici hesabını oluşturun ve kurulumu tamamlayın
https://forum.example.com adresini açın ve Sign Up düğmesine tıklayın. Sihirbazdaki yönetici e-posta adreslerinden biriyle kaydolun (SMTP'yi atladıysanız Discourse ID ile giriş yapın); SMTP kullanıyorsanız önce bir onay e-postası alırsınız. Ardından Discourse forum adı, görünüm ve erişim ayarları için kendi kurulum sihirbazını açar.
Admin → Settings altında önerilen ilk ayarlar:
enforce_second_factorayarıyla yöneticiler için iki adımlı doğrulamayı zorunlu kılın.- Kimlerin katılabileceğine karar verin: özel topluluklar için
invite_onlyveya kayıtları incelemek içinmust_approve_users. - Forum herkese açık okunmamalıysa
login_requiredayarını açın.
Adım 6 — Ana makineyi güvende tutun
Discourse rehberi, ana makine için otomatik güvenlik güncellemelerini ve SSH kaba kuvvet denemelerine karşı fail2ban'i önerir:
sudo apt install unattended-upgrades fail2ban
sudo dpkg-reconfigure -plow unattended-upgrades
sudo systemctl status fail2ban --no-pagerSMTP bilgileri dahil tüm forum ayarları yalnızca root'un okuyabildiği /var/discourse/containers/app.yml dosyasında durur. Dosyayı düzenledikten sonra değişikliği yeniden derlemeyle uygulayın:
cd /var/discourse
sudo nano containers/app.yml
sudo ./launcher rebuild appYeniden derleme forumu birkaç dakika çevrimdışı bırakır.
Yedekleme ve geri yükleme
Discourse kendi yedeklerini alır. Admin → Backups bölümünden elle yedek başlatabilirsiniz; zamanlanmış yedekler Admin → Settings → Backups altında yönetilir:
| Ayar | Varsayılan | Anlamı |
|---|---|---|
backup_frequency | 7 | Otomatik yedekler arasındaki gün sayısı (0 kapatır) |
backup_time_of_day | 3:30 | UTC başlangıç saati |
maximum_backups | 5 | Saklanan yedek sayısı |
backup_with_uploads | açık | Yalnızca veritabanını değil yüklenen dosyaları da dahil eder |
Yerel yedekler yalnızca root'un okuyabildiği /var/discourse/shared/standalone/backups/default klasöründe saklanır. Onları yönetici kullanıcınıza ait bir klasöre kopyalayın:
sudo mkdir -p /opt/backups/discourse
sudo rsync -a /var/discourse/shared/standalone/backups/default/ /opt/backups/discourse/
sudo chown -R $USER:$USER /opt/backups/discourseArdından düzenli olarak başka bir makineye çekin; örneğin kendi bilgisayarınızdan:
rsync -av admin@203.0.113.10:/opt/backups/discourse/ ./discourse-backups//var/discourse/containers/app.yml dosyasının da bir kopyasını saklayın. Sunucu dışı depolama için backup_location değerini S3 yapıp s3_backup_bucket ve erişim anahtarı ayarlarını doldurabilirsiniz.
Yeni bir kuruluma geri yüklemek için arşivi yeniden adlandırmadan yükleyin (Discourse meta verileri dosya adından okur) ve geri yüklemeyi konteynerin içinde çalıştırın:
sudo mkdir -p /var/discourse/shared/standalone/backups/default
sudo cp forum-2026-10-09-033000-v20261001000000.tar.gz /var/discourse/shared/standalone/backups/default/
cd /var/discourse
sudo ./launcher enter app
discourse enable_restore
discourse restore forum-2026-10-09-033000-v20261001000000.tar.gz
exitdiscourse restore komutunu dosya adı olmadan çalıştırmak görebildiği yedekleri listeler. Geri yükleme, yönetici olmayan kullanıcılar için giden e-postayı kapatır; disable_emails ayarıyla yeniden açın. Boş disk alanı olarak yedek boyutunun üç ila beş katını ayırın.
Discourse güncelleme
Yeni bir sürüm çıktığında Discourse yöneticilere e-posta gönderir. Önce yedek alın, ardından ya tarayıcıda https://forum.example.com/admin/upgrade adresinden ya da komut satırından güncelleyin:
cd /var/discourse
sudo ./launcher rebuild appmain dalında başlatıcı önce kendi kopyasını günceller ("Ensuring launcher is up to date"), ardından konteyneri güncel temel imajla yeniden derler. Yeniden derleme birkaç dakikalık kesintiye neden olur. Ana makinenin kendisini sudo apt update && sudo apt upgrade ile güncel tutun.
Sorun giderme
Sihirbaz 80 veya 443 numaralı portun kullanımda olduğunu söylüyor
Başka bir web sunucusu çalışıyor. sudo lsof -i :80 ve sudo lsof -i :443 ile bulun, ardından durdurup devre dışı bırakın; örneğin sudo systemctl disable --now nginx veya apache2. Sonra kurulum aracını yeniden çalıştırın.
Alan adı kontrolü başarısız oluyor
A kaydı henüz bu sunucuyu göstermiyor ya da yayılmadı. dig +short forum.example.com ile kontrol edin. Sihirbaz yine de devam etmek için --skip-connection-test seçeneğini kabul eder; ancak Let's Encrypt doğru DNS'e ihtiyaç duyar, bu nedenle mümkünse önce kaydı düzeltin.
Derleme veya başlatma başarısız oluyor
Konteyner çıktısını sudo ./launcher logs app ile okuyun, sudo ./launcher enter app ile bir kabuk açın ve /var/discourse/shared/standalone/log/rails/production.log dosyasına bakın. Küçük sunucularda en sık neden belleğin yetmemesidir; swap ekleyin (Adım 2) ve yeniden derleyin.
Onay e-postaları gelmiyor
containers/app.yml içindeki SMTP sunucusunu, portu (587) ve bilgileri kontrol edin, ardından yeniden derleyin. Gönderen alan adınızın, e-posta sağlayıcınızın istediği SPF ve DKIM kayıtlarına sahip olduğundan emin olun. Admin → Email altındaki e-posta logları teslim denemelerini gösterir.
Sonraki adımlar
- Ekibiniz için Matrix Synapse ve Element ile gerçek zamanlı sohbet ekleyin.
- Federasyonlu bir mikroblog sunucusuyla karşılaştırmak için Mastodon kurulumu rehberine bakın.
- Resmi Discourse kurulum rehberini ve meta.discourse.org üzerindeki rehberleri okuyun.
- Topluluklar için sunucuları sosyal ağ hosting sayfasında görün.
Sık sorulan sorular
Discourse için hâlâ bir SMTP sağlayıcısına ihtiyacım var mı?
Başlamak için hayır. Kurulum sihirbazında SMTP'yi atlarsanız kullanıcılar Discourse ID (e-posta ve sosyal girişler) ile oturum açar. Etkinlik özetleri, posta listesi modu ve e-postayla yanıtlama yine SMTP gerektirir; bunu daha sonra Admin, Email bölümünden veya sihirbazı yeniden çalıştırarak ekleyebilirsiniz.
Discourse ne kadar bellek ister?
Resmi en düşük gereksinim 64 bit Linux üzerinde swap ile 1 GB RAM, 1 CPU çekirdeği ve 10 GB disktir. Discourse bir Ubuntu LTS sürümünde 2 GB veya daha fazla RAM, 2 veya daha fazla çekirdek ve 20 GB veya daha fazla disk önerir.
Aynı sunucuda başka web siteleri çalıştırabilir miyim?
Varsayılan olarak Discourse konteyneri 80 ve 443 numaralı portları alır. Discourse'un topluluk rehberi konteyneri bir Unix soketine geçirip önüne ana makinede Nginx ve Certbot koymayı gösterir; ancak bu durumda sertifikaları ana makinede kendiniz yönetirsiniz. Discourse için ayrı bir sunucu daha basittir.
Discourse yedekleri nerede saklanır?
Yerel yedekler /var/discourse/shared/standalone/backups/default klasörüne yazılır. Varsayılan olarak Discourse 7 günde bir yedek alır, 5 tanesini saklar ve yüklenen dosyaları dahil eder. Yedekleri S3 uyumlu depolamaya da gönderebilirsiniz; her durumda sunucunun dışına kopyalamalısınız.
Kendi alan adım yerine ücretsiz bir alt alan adı kullanabilir miyim?
Evet. Kurulum aracı Discourse ID hesabınız üzerinden ücretsiz bir discourse.diy alt alan adı alabilir ve DNS kaydını sizin için oluşturur. Kendi alan adınızla A kaydını kurulumdan önce kendiniz oluşturursunuz.
Kaynaklar
- raw.githubusercontent.com/discourse/discourse/main/docs/INSTALL-clo…
- raw.githubusercontent.com/discourse/discourse_docker/main/install-d…
- raw.githubusercontent.com/discourse/discourse_docker/main/README.md
- raw.githubusercontent.com/discourse/discourse/main/config/site_sett…
- meta.discourse.org/t/configure-automatic-backups-for-discourse/14855
- meta.discourse.org/t/restore-a-backup-from-the-command-line/108034
- meta.discourse.org/t/run-other-websites-on-the-same-machine-as-disc…