Skip to content
Mirat Can Bayrak edited this page Apr 5, 2015 · 17 revisions

Kurulum

Resm.in için geliştirme yapmak için bir sanal makine içerisinde çalışmamız gerekiyor. Bunun için Vagrant kullanacağız. Dökümanı okumaya devam etmeden önce Vagrant ve VirtualBox kurulumunu yapmak gerekli.

## Resm.in'in kaynak kodunun indirilmesi

Favori Git aracınla resm.in'in kaynak kodunu indir. Github'un GUI aracını kullanmak da bir seçenek:

git clone https://github.com/miratcan/resmin.git

Sanal Makinenin Ayağa Kaldırılması

Eğer daha önce eklenmediyse chef/ubuntu-13.10 adlı Vagrant kutusunu sisteme ekle:

vagrant box add chef/ubuntu-13.10

Ardından resm.in'i indirdiğin klasörde sanal makineyi initialize et

cd resmin
vagrant init chef/ubuntu-13.10

İçinde bulunduğun klasörde (yani resmin klasöründe) bir VagrantFile oluşmuş olacak. Bu dosyayı açıp aşağıdaki şu satırı,

# config.vm.network "forwarded_port", guest: 80, host: 8080

Aşağıdaki satırla değiştirmelisin.

config.vm.network "forwarded_port", guest: 8000, host: 8000

Bu yaptığın değişiklik bilgisayarındaki 8000 portuna gelen http isteklerinin sanal makinenin 8000 portuna yönlendirmesini sağlayacak. Değişikliği yaptıktan sonra aşağıdaki komutu kullanarak sanal makineye login olabilirsin.

vagrant ssh

## Gerekli Sistem Paketlerinin Yüklenmesi

Şimdi artık sanal makinemiz hazır ve giriş yapmış durumdayız. İlk olarak yapman gereken şey eksik olan sistem paketlerini kurmak:

sudo apt-get update
sudo apt-get install -y python-dev python-setuptools libjpeg62-dev build-essential libssl-dev curl ffmpeg libxml2-dev libxslt-dev redis-server ffmpeg

## NodeJs Kurulması Ve Gerekli RPM Paketlerinin Yüklenmesi

Resm.in html ve css sıkıştırıcı olarak yuglify, css çatısı olarak less adlı nodejs paketlerini kullanmakta. Bunun için önce nodejs kurulumu, ardından da bahsettiğim paketlerin npm ile kurulumunu gerçekleştireceğiz:

curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
sudo npm install -g yuglify less

Python Sanal Ortamının Ayağa Kaldırılması

Sanal makinemiz gerekli Python ortamının oluşturulması için hazır. Python ortamını oluşturmak için önce easy_install ile pip, ardından pip ile virtualenv ve virtualenvrapper kurulumu yapacağız:

sudo easy_install pip
sudo pip install virtualenv virtualenvwrapper
echo "source virtualenvwrapper.sh" > ~/.bashrc

Şimdi Resm.in için ortam oluşturalım, ve gerekli Python paketlerini yükleyelim:

source virtualenvwrapper.sh
mkvirtualenv R
workon R
cd /vagrant/
pip install -r vendor/requirements-dev

## Proje Ayarlarının Belirlenmesi

Son olarak resmin/config/ içerisinde bulunan local_settings.py.template dosyasını local_settings.py ismiyle kopyalamamız gerekiyor.

cp resmin/config/local_settings.py.template resmin/config/local_settings.py

## Veritabanının senkronize edilmesi.

Veritabanında gerekli tabloların oluşturulabilmesi için aşağıdaki komutun çalıştırılması gerekiyor.

python manage.py syncdb

Artık elimizdeki Resm.in örneğini çalıştırabiliriz. Burada önemli olan nokta sunucuyu çalıştırırken 0.0.0.0 üzerinden servis etmesini söylemek yoksa dışarıdan gelen taleplere (yani gerçek makinemizden sanal makinemize olan taleplere) cevap vermez:

python manage.py runserver 0.0.0.0:8000

## Notlar

Eğer MacOS kullanıyorsanız ve sunucuyu çalıştırabildiğiniz halde ulaşamıyorsanız ipfw ile port forwarding yapmanız gerekiyor. Asıl makinenizin terminalinde:

sudo ipfw add 100 fwd 127.0.0.1,80 tcp from any to any 8000 in