Discourse açık kaynak kodlu, Ruby ve Javascript dilleri ile yazılmış İnternet forumu yazılımı. GNU Genel Kamu Lisansı ile dağıtılan Discourse, Ruby on Rails ile Ember.js çatıları kullanılarak geliştirilmektedir.
Gerekli olan Rails Bağımlılıklarının kurulması işlemini aşağıdaki bash script aracılığı ile yapıyoruz.
cd ~ && wget https://git.io/RailsInstall -O RailsInstall.sh
chmod +x RailsInstall.sh
./RailsInstall.sh
Ardından en güncel repoyu sisteminize git vasıtası ile dahil ediyoruz.
git clone https://github.com/discourse/discourse.git ~/discourse
Veritabanı işlemleri için PostgreSQL üzerinde aşağıdaki işlemleri gerçekleştirmeyi ihmal etmiyoruz.
sudo -u postgres psql
CREATE DATABASE <db_name>;
CREATE USER <db_operator_name> WITH encrypted PASSWORD '<password>';
ALTER USER <db_operator_name> SET client_encoding TO 'utf8';
ALTER USER <db_operator_name> SET default_transaction_isolation TO 'read committed';
ALTER USER <db_operator_name> SET TimeZone TO 'Europe/Istanbul';
GRANT ALL PRIVILEGES ON DATABASE <db_name> TO <db_operator_name>;
REVOKE CONNECT ON DATABASE <db_name> FROM PUBLIC, <db_operator_name>;
Gereken diğer işlemler için PostgreSQL Üzerinde Kullanıcı, Veritabanı Oluşturma ve Yetkilendirme makalesine göz atmayı unutmayınız.
Nihayet her şey hazır olduğuna göre, kuruluma geçiş yapıyoruz.
cd ~/discourse
source ~/.bashrc
bundle install
bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=prod bundle exec rake db:create db:migrate
Veritabanı oluşturup, migrate işlemi yaptıktan hemen sonra uygulama özelliklerini çalıştırmayı deniyoruz
bundle exec rake autospec
Sunucuyu başlatıyoruz.
bundle exec rails server
Başlattıktan sonra http://localhost:3000 portundan çalışmaya başlayacak, buna erişebilmek amacıyla NGINX üzerinde yapılandırmamızı yapıyoruz.
server {
listen 80;
server_name discourse.mertcangokgoz.com;
return 301 https://discourse.mertcangokgoz.com$request_uri;
}
server {
listen 443 ssl http2;
server_name discourse.mertcangokgoz.com;
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
location / {
proxy_pass http://localhost:3000/;
proxy_read_timeout 90;
}
}
Bu kurulum yöntemi bir yana, direk olarak Docker aracılığı ile kurulumu gerçekleştirebilirsiniz.
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup
komutu ile gerekli yapılandırmayı oluşturuyoruz. app.yml
adında bir dosya oluşturacak bununla birlikte kurulum otomatik olarak başlar, bir değişiklik yapmak isterseniz tekrar aynı komutu vermeniz yeterlidir.
Kaynak: