DigitalOcean VPS üzerine Discourse kurulumu

droplet
digitalocean
1gb
vps
discourse
kurulumu

(Muhammed Yalçınkaya) #1

Kurulum rehberi güncellenmiştir, görüntülemek için tıklayınız.


Merhaba arkadaşlar bir önceki Discourse kurulumu yazımda sizlere OVH üzerinde Cloud VPS için nasıl Discourse kurulumu yapabileceğinizi anlatmıştım. Bu yazımda ise sizlere Discourse yazılımını nasıl DigitalOcean VPS üzerine kurabileceğinizi anlatacağım.

Bu işlem öncesi kontrol etmeniz gereken sistem gereksinimlerini aşağıda belirttim, bir sorunuz olursa lütfen bunu yazmaktan çekinmeyin.

Sistem gereksinimleri:

Öncelikle yukarıdaki gereksinimleri tamamlandıktan sonra sunucumuza SSH (Putty kullanabilirsiniz) ile bağlanıp aşağıda size vermiş olduğum komutları manuel ya da dikkatli bir şekilde kopyala yapıştır şeklinde girmelisiniz.

Sistem güncellemelerini kontrol edip, yüklemek için:

apt-get update

Bu adımdan sonra yapacağımız tüm işlemler Discourse kurulumuna yöneliktir:

Önemli:
Eğer 1GB RAM kullanan bir sunucunuz var ise kesinlikle bir swap dosyası tanımlamanızı tavsiye ediyorum!
2 GB ve üzeri RAM kullanan bir sunucu için bu işleme gerek yoktur.
Linux sunucusunda swap dosyası oluşturma işlemi için şu konumu ziyaret ediniz.
Gerek yok ise aşağıdan işleme devam ediniz.

Git ile Docker kurulumu için:

wget -qO- https://get.docker.com/ | sh

Ekran alıntısı:

Önemli: İşlemler tamamlanıp sunucu sizden yeni komut satırı açana kadar bekleyiniz işleme müdahale etmeyiniz. Bazı komutlarda işlem 8-9 dakikayı bulabilmektedir. Bu sunucunuzun özellikleri ve internet bağlantısının hızına göre değişecektir.

Discourse kurulumu için:
Bu adımda öncelikle /var/ dizininde discourse adlı bir klasör açmalıyız ve varsayılan app.yml dosyasını gerekli dizine adını değiştirip atmalıyız. Bunun için aşağıdaki komutları kullanın;

/var/ dizininde discourse klasörünü oluşturmak için:
mkdir /var/discourse

Orijinal Discourse imajını bu klasöre klonlamak için:

git clone https://github.com/discourse/discourse_docker.git /var/discourse

Klasöre tekrar giriş yapmak için:
cd /var/discourse

Discourse yazılımı için önemli ayarların saklandığı app.yml dosyasını gerekli konuma adını değiştirip kopyalamak için:
cp samples/standalone.yml containers/app.yml

Ekran alıntısı:

Lütfen bu adımda oldukça dikkatli olun.
.yml dosyaları karakter ve boşluk konularında oldukça hassastır.

Şimdi ise Discourse yazılımının çalışması için gerekli ayarlamaları tanımlamalıyız:
Bunun için nano uygulaması (Linux editör uygulaması) ile aşağıdaki komutu verip app.yml dosyasını açmalısınız:

nano containers/app.yml

Bu ekranda ok tuşları hareket edip düzenleme işlemlerini yapabilirsiniz.

Bu ekranda aşağıdaki alanlara dikkat etmelisiniz ve bu alanları asla boş geçmemelisiniz.

DISCOURSE_DEVELOPER_EMAILS
Bu alan için mevcut e-posta adresiniz girmelisiniz.

DISCOURSE_HOSTNAME
Bu kısıma www ya da olmadan alt ya da direkt ana alan adınızı girmelisiniz.

Uyarı: Discourse kurulum esnasında bir yönetici tanımlamaktadır bu yöneticinin aktif olması için Discourse kurulumu sonrası girmiş olduğunuz e-posta adresi ile bir hesap oluşturmalısınız ve bu hesabı onaylamalısınız. Bu e-posta adresi otomatik olarak yönetici yetkisine sahip olacaktır.

Alttaki kısımlar için gerekli değerleri girdikten sonra başında yer alan # sembollerini kaldırmalısınız.
DISCOURSE_SMTP_ADDRESS
SMTP sunucusunun adresini girmelisiniz. Örneğin; smtp.destekforumlari.com gibi…

DISCOURSE_SMTP_PORT
SMTP sunucunuzun portunu girmelisiniz. Örneğin; 25 ya da 587 gibi…

DISCOURSE_SMTP_USER_NAME
Direkt e-posta adresinizi yazmalısınız. Örneğin; [email protected] gibi…

DISCOURSE_SMTP_PASSWORD
Direkt e-posta adresinizin şifresini girmelisiniz. Bu kısımda lütfen fazla sembol kullanmayın hata almanızı olası kılıyor.

Ek bilgi: Eğer 1 GB RAM kullanıyorsanız bu dosyada yer alan UNICORN_WORKERS kısmını 2 olarak ayarlamalı ve başında yer # sembolünü kaldırmalısınız. Aynı şekilde yine db_shared_buffers kısmınıda 128MB olarak ayarlamalısınız.

Şimdi ise ayarlarımızı kaydetmek ve Discourse yazılımının ayarlarımızla yüklenmesini başlatmak için:
Ctrl + X tuşları ile kayıt penceresini açıp. Y harfine basıp Enter tuşu ile kayıt işlemini gerçekleştirmelisiniz.

Daha sonra Discourse yazılımını bootstraplamak için:
./launcher bootstrap app

Bu işlem 10 dakika sürebilmektedir. Lütfen bekleyiniz. Bu komut Discourse yazılımını kuracak ve tüm ayarlarını otomatik olarak gerçekleştirecektir.

Son olarak ise Discourse yazılımımızı başlatmak için:
./launcher start app

Ekran alıntısı:

Bu işlemde tamamlandıktan sonra IP adresiniz ya da tanımladığınız alan adı ile yeni yazılımınızı kullanmaya başlayabilirsiniz.

Destek Forumları’nı ilk kurduğum zamanki halini referans olarak gösterebilirim :wink:

Unutmayın: Tanımladığınız e-posta adresinizle yeni bir hesap oluşturun ve yönetici olun!

Ayrıca lazım olabilir diye bir göz atın:

Lütfen yukarıdaki işlemler sırasında bir problem yaşarsanız bana bu konu altından ulaşın. Diğer rehberleri de aynı şekilde kısa sürede eklemeye devam edeceğim.


Genel Discourse Kurulum Rehberi (Güncel)
Discourse için otomatik güvenlik güncellemelerini yapılandırma
Discourse için Google ile oturum açma kurulumu (OAuth2)
[Rehber] OVH Cloud VPS üzerine Discourse kurulumu
Discourse için Twitter ile oturum açma kurulumu
Discourse'a nasıl eklenti yükleyebilirim?
Discourse için Facebook ile oturum açma kurulumu
(Bekir Cem Ünalan) #2

Rehber için çok teşekkürler. En yakın zamanda deneyeceğim.


(Muhammed Yalçınkaya) #3

Rica ederim ne demek bir sorun yaşarsan bana ulaşabilirsin konu altından.


(Can Dev) #4

2 GB RAM’li VPS’ye Discourse kurduğumuzda sistem tüketimi kaç MB oluyor? Direkt 4 GB ile başlamak daha iyi olur mu?


(Muhammed Yalçınkaya) #5

Fiziksel 2 GB RAM olan bir SSD diskli 2GB SWAP kurulu VPS üzerinde Discourse ortalama olarak anlık 1K hiti rahatlıkla kaldıracaktır Can. Normalde yaptığım testlerde Discourse, 4 GB Fiziksel RAM + SWAP olmadan anlık 5K hite 3 GB RAM kullanımı ile yanıt verdi. Şuan Destek Forumları için sidekiq kontrolü yaptım 15 MB RAM kullanıyor. Bu da bir forum yazılımı için oldukça iyi hatta çok iyi bir sonuç.

Ekran alıntısı:


(Can Dev) #6

Gayet güzel. Adamın dibisin MuhYal <3


(Muhammed Yalçınkaya) #7

Rica ederim @MCD ne demek yine bekleriz :wink: Bu arada e-posta sorununu giderdim, bildirimin için teşekkürler.


(Kemal) #8

Merhaba guzel bir konu olmus sirf bu sorunum icin uye oldum.

Benim soyle bir sorunum var.

Oncelikle ubuntu sunucu ile alakali hicbirsey bilmiyorum.
Discourse kurulumunu sekildeki gibi gerceklestiriyorum.
IP adresine ya da domaine baglanmiyor.

Nginx ya da apache2 kurmam gerekiyor.
http://www.destekforumlari.com/t/ubuntu-14-04-uzerine-linux-apache-mysql-php-lamp-kurulumu/21
Bu konudan yararlaniyorum eksiksiz bicimde ayarlamalari gerceklestiriyorum.

Burasi onemli :slight_smile:
Discourse kuruyorum, calistiramiyorum ve site indexinde apache2’nun sayfasini goruyorum.

Discourse kuruyorum LAMP kuruyorum gel gorki sitede goremiyorum.

Illaki ek yapmam gereken seyler vardir nelerdir?

Tesekkur ederim.


(Muhammed Yalçınkaya) #9

Merhaba teşekkür ederim,

Sanırım tek VPS üzerinde PHP bir yazılım ve Discourse’u kullanmak istiyorsun?

  1. Discourse zaten nginx yazılımı ile birlikte kuruluyor.
  2. Normal şartlarda geliştiriciside tavsiye etmiyor bu durumu.
  3. LAMP ya da LEMP kurmana gerek yok mevcut kurulum ile çakışacaktır.

Hiç bir işlem yapmadan yukarıdaki anlatım ile nginx ve Discourse kurmuş olacaksın. Eğer örnek vermek istersem, Discourse’u WordPress gibi bir blog ile aynı VPS üzerinde kullanacaksan port değişimi yapman gerekiyor. Bunuda apache değil nginx ile yapmalısın.

Detaylı bir şekilde isteğini dile getirirsen yardımcı olmaya çalışayım.


(Bekir Cem Ünalan) #10

Benim şimdilik böyle ihtiyacım yok, Discourse’u sadece test edeceğim ve bu işlemleri merak ettiğim için soruyorum. www alan adı üzerinde Wordpress kurulu olan, forum.site.com üzerinde ise Mybb sistemi kurulu olan bir sitem var. Ben Mybb sitemin yerine Discourse kurmak istesem nasıl bir yol izlemeliyim?


(Muhammed Yalçınkaya) #11

MyBB ve bir çok forum yazılımından Discourse’a geçiş işlemi mümkün.Bir çok stabil dönüştürücü var MyBB 1.6.x ve 1.8.x sürümleri için. Herşeyden önce şu mantığı anlamalıyız aslında Docker yani Discourse için gerekli yazılım kendi sunucusunda çalışmalıdır. Bu da Discourse’u hiç bir kontrol paneli ile birlikte stabil olarak çalıştıramazsın demektir (cPanel vb…).

Bunu ancak şöyle aşabilirsin;

  • İlk olarak bir VPS alırsın,
  • Farklı sistemlerin aynı alan adında çalışırken kontrol panelin ya da
    alan adı sağlayıcı panelinden bir CNAME ya da A kaydı açıp aldığın
    VPS’i gösterirsin.
  • DNS kayıtları oturduktan sonra VPS üzerine açtığın alt alan adı ile
    kurulum yaparsın.

Yani MyBB ve WordPress cPanel üzerinde çalışırken Discourse’a bir kullanıcı isteği olursa VPS devreye girer. Ki zaten WordPress ve Discourse bütünleşik olarak çalışabiliyor. Kullanıcı kaydı, oturum açma ve konu paylaşımlarında siteler arasında kolayca bağlantı kurabiliyor. Ve Discourse için en güzel taraf bence WordPress üzerinde ki çoklu site kurulumu gibi yine kolay bir şekilde tek Discourse kurulumunda birden çok alan adı barındırabilmen.


(Bekir Cem Ünalan) #12

Cevabınız için teşekkürler. Mybb’ye alternatif olabilecek ücretsiz bir forum yazılımı arıyordum. Discourse aradığım tüm özellikleri barındırıyor.

Bahsettiğim site şu anda Digital Ocean’ın 10$'lık paketinde Centos 6.5 64 bit + APC + Apache yapılandırmasıyla panelsiz olarak çalışıyor. Yani zaten VPS’imi panelsiz kullanıyorum. Panelsiz VPS’imde ihtiyacım olan tüm işlerimleri gerçekleştirebiliyorum şu anda ancak A DNS kaydı oluşturma vs. gibi konularda henüz VPS yapılandırması konusunda tecrübesiz olduğum için biraz bilgisizim. Şu anda denemek için Discourse kurulumu yapıyorum ve mesela o kısmı tam anlamadım. Bu rehberde kafamı karıştıran diğer sorular şunlar:

  1. Swap alanı oluşturma rehberinde sanıyorum 1GB ve 2GB swap alanı için
    örnekler vermişsiniz. 1GB RAM’li VPS için ideal swap alanı boyutu
    nedir? (256 diye tahmin yürütüp şimdilik öyle yaptım.)

  2. .yml dosyası üzerinde smtp ayarları kısmı var. Ben sitelerimi
    barındırdığım esas VPS’imde Yandex Kurumsal kullanıyorum. Yani mail
    sunucusu vs. kurmadım. Eğer bir siteye Discourse kuracaksam orada da
    Yandex Kurumsal kullanmayı tercih ederim. Bu durumda ben ayarları
    nasıl yapmalıyım?

  3. Bahsettiğim sitede şu sistemleri kullanıyorum: Wordpress (Blog) +
    Mybb (Forum) + Mediawiki (Viki). Bu dağılımda, diğer dinamikleri
    sabit kabul ederek Mybb yerine Discourse kursam sizce performans
    açısından nasıl bir geri dönüş alırım?


(Muhammed Yalçınkaya) #13

Rica ederim bende zamanında MyBB, phpBB ve SMF kullandım ama inanın şuan bir büyük forumumda XenForo kullanıyorum keşke zamanında Discourse kursaydım diyorum. O zamanlar dönüştürücüsü yoktu geçiş yapamıyordum.

A kayıtlarını DigitalOcean panelinden DNS sekmesinden yapabilirsin bu basit bir işlem yardımcı olabilirim.

  1. SWAP için ise 1GB RAM var ise sunucunda 2 GB bir alan oluşturmanı tavsiye ediyorum. SWAP RAM kullanmaz diskini kullanır. DigitalOcean için SSD disk bulunduğu için 2 GB tanımlaman seni uzun süre idare edecektir.

  2. E-posta konusunda Yandex için bayağı bir sorun yaşadım ve en sonu bıraktım. Daha doğrusu sadece Discourse için bıraktım. MuhYal.com ve AndroNetwork.com vb. tüm sitelerim Yandex ile çalışıyor. Discourse için Mandrill e-postasını kullanabilirsin ya da web hosting paketin var ise onu mail sunucusu olarak kullanabilirsin. Ben şuan Destek Forumları için mail sunucusu olarak WHM kurulu ana sunucumu kullanıyorum. Ama dediğim gibi tavsiye istersen Mandrill kullanabilirsin (Aylık 12K maili ücretsiz olarak sunuyor.)

  3. Kesinlikle düşünmemelisin bile. MyBB ve benzeri yazılımları ben artık ölü sayıyorum SEO vs. açısından. Discourse her konuda oldukça iyi. Ruby dilinde yazılmış olması da zaten güvenliğini ve performansını artırıyor. 2 GB Fiziksel bir RAM olan VPS ile 2 GB swap oluşturup anlık 1K hite kadar rahatlıkla erişebilirsin.

Şu yanıtımı bir incele derim: DigitalOcean VPS üzerine Discourse kurulumu


(Bekir Cem Ünalan) #14

Discourse kurulumunu deneyip ondan sonra kendi VPS’ime kurulumunu düşüneceğim. Sanıyorum daha önce yukarıda belirttiğim VPS’ime de direkt kurulumu yapabilirim, bunun için yeni bir sunucu yapılandırması yapmama gerek kalmaz?

Yandex Mail’in çalışmaması çok ilginç olmuş. VPS’im dışında mail sunucumun bulunduğu herhangi bir yer yok. Mandrill benim için yeterli olacaktır diye düşünüyorum ama tabii bunun kurulumunun nasıl yapıldığını vs. araştırmam gerek.

Benim şu an kullandığım ana VPS’te 500MB kadar bir swap alanı tanımlamıştım yanlış hatırlamıyorsam. Bunun boyutunu arttırmayı düşünmeli miyim yoksa bu verdiğiniz oranlar sadece Discourse için mi geçerli?


(Muhammed Yalçınkaya) #15

Yapabilirsin ama WordPress için nginx yapılandırman ve port değiştirmen gerekecektir. Yedek alıp ilk Discourse kurup daha sonra Wordpress kurabilirsin son olaraktan WordPress için yedeğini aktarabilirsin. Eğer MyBB siteni de aktarmak istersen bunun için yeni bir VPS yapılandırmalı Discourse + WordPress kurmalı WordPress yedeğini aktarıp daha sonra MyBB sistemini dönüştürmelisin (yani Discourse ve MyBB aynı anda çalışır durumda olmalı) ve işlemler tamamlandığı zaman eski dropletini silebilirsin. Yeni yapılandırmadan kastın bu sanırım.

Mandrill konusunda gelince ücretsiz bir hesap açıp yine DigitalOcean üzerinden sana verdiği değerleri tanımlaman gerekiyor bu işlem de DNS paneli ile oldukça kolay.

Apache her ne kadar popüler bir yazılım olsa da artık yetersiz kalabiliyor. Çünkü yazılımlar artık daha fazla fonksiyon ile geliyor. nginx ise stabillik ve güvenlik, hız açısından biçilmiş kaftan. Mevcut sistemlerin için SWAP kurmana gerek yok 512MB yeterli olacaktır. Discourse için 1/2GB swap önermemin sebebi özel bootstrap ve bazı işlemlerde (rebuild vb.) RAM kullanımı artıyor ve sunucu çökebiliyor. Bu işlem dışında Discourse boş RAM kullanımı 15 MB :wink:


(Bekir Cem Ünalan) #16

Ana VPS’imin önceki yapılandırmasında Nginx kullanıyordum. Performans açısından çok iyi ama ben Apache’ye daha hakim olduğum için değiştirmek durumunda kalmıştım. Eğer Discourse için gerekiyorsa tekrar Nginx’e dönebilirim, bu sorun olmaz. Mybb Discourse değişimini ana sitemde uygulamadan önce aklımdaki farklı bir projede Discourse kullanamayı deneyeceğim. Böylece Discourse kullanımına ve gereksinim duyduğu sistem yapılandırmasına da biraz aşina olmuş olurum ve bu öğrenme sürecini daha az kayıpla atlatabilirim.

Cevaplarınız çok bilgilendiriciydi, teşekkür ederim.


(Muhammed Yalçınkaya) #17

Zaten kaybettiğimiz noktada bu ben PHP dili, Apache web sunucusu ve MySQL veritabanı dışına çıkmadığım için bu zamana kadar çok kaybettim. Hakim olmaktan kastın her şeyini bilmek ya da düzenlemek ise, işte o zaman Ruby dili, Nginx web sunucusu ve Redis veritabanı yazılımını bir incele derim. İnan çok eğlenceli kendi kendine güleceksin.

Düşüncen çok güzel ilk kurduğun zaman bu ne diyebilirsin ama 2. gün cidden beğeneceksin ben şu Discourse’u kaç defa kurdum sildim en sonu üstüne gittim çözdüm ve şuan piyasada emsali yok buna eminim ve gönlüm rahat (Buna NodeBB’de dahil…).

Ben teşekkür ederim güzel bir sohbetti. Bir sorun yaşarsan bana ulaşabilirsin.


(Kemal) #18

Merhaba,

Cevabiniz icin tesekkurler benim sorunum.

Direk Ubuntu 14.10 x64 VPS acip discourse kurulumunu yapinca siteye http den baglanamiyorum yani ne domain ne ip calisiyor.


Ubuntu 14.10 x64 VPS üzerine Discourse kurulumunu yapınca siteye bağlanmıyorum
(Bekir Cem Ünalan) #19

@MuhYal Ben de aynı sorunu yaşayacakmışım gibi hissediyorum. A DNS ile alan adı ile VPS’i tam olarak nasıl bağlıyoruz, yöntemi anlatır mısınız?


(Kemal) #20

Merhaba!

Digitalocean kullaniyorsan;

DNS > Domain’e gir > “Add record” butonuna tikla > “A” record ekle > Ilk satiri “@”; ikinci satira actigin droplet’in “IP adresini” gir.

Bu kadar basit. Google’dan bu tarz sorunlar icinse “How to install/add … in DigitalOcean?” arama yaparsan Digitalocean Community’den ilgili konulara ulasabilirsin.