# Web Arayüzünün Başlatılması

Web arayüzünü başlatmak için web/ dizininden basitçe aşağıdaki komutu çalıştırabilirsiniz:

> $ cuckoo web runserver

Web arayüzünü belirli bir portta herhangi bir IP'yi dinleyecek şekilde yapılandırmak istiyorsanız, aşağıdaki komutu kullanabilirsiniz (PORT'u istediğiniz port numarasıyla değiştirin):

> $ cuckoo web runserver 0.0.0.0:PORT

Veya doğrudan aşağıdaki gibi runserver bölümü olmadan ve dinlenilecek host'u belirterek kullanabilirsiniz:

> $ cuckoo web -H 0

**Web Dağıtımı**

Web Arayüzü sunucuyu başlatmanın varsayılan yöntemi birçok durum için uygundur, ancak bazı kullanıcılar sunucuyu daha güvenilir bir şekilde dağıtmak isteyebilir. Web Arayüzünü bir WSGI uygulaması olarak bir web sunucusuna açmak bunu mümkün kılar. Bu bölüm, Web Arayüzünün uWSGI ve nginx üzerinden nasıl dağıtılacağını basit bir örnek gösterir. Bu talimatlar Ubuntu GNU/Linux göz önüne alınarak yazılmıştır, ancak diğer platformlara uyarlanabilir.

Bu çözüm, uWSGI, uWSGI Python eklentisi ve nginx gerektirir. Tümü paketler olarak mevcuttur:

> $ sudo apt-get install uwsgi uwsgi-plugin-python nginx

**uWSGI Kurulumu**

İlk olarak, uWSGI'yi Web Arayüzü sunucusunu bir uygulama olarak çalıştırmak için kullanın.

Başlamak için, `cuckoo web --uwsgi` komutu tarafından rapor edilen gerçek konfigürasyonu içeren `/etc/uwsgi/apps-available/cuckoo-web.ini` adında bir uWSGI yapılandırma dosyası oluşturun, örneğin:

> $ cuckoo web --uwsgi  
> \[uwsgi\]  
> plugins = python  
> virtualenv = /home/cuckoo/cuckoo  
> module = cuckoo.web.web.wsgi  
> uid = cuckoo  
> gid = cuckoo  
> static-map = /static=/home/..somepath..  
> \# If you're getting errors about the PYTHON\_EGG\_CACHE, then  
> \# uncomment the following line and add some path that is  
> \# writable from the defined user.  
> \# env = PYTHON\_EGG\_CACHE=  
> env = CUCKOO\_APP=web  
> env = CUCKOO\_CWD=/home/..somepath..

Bu yapılandırma, dağıtımın varsayılan uWSGI yapılandırmasından bir dizi ayarı devralır ve gerçek işi yapmak için Cuckoo paketinden cuckoo.web.web.wsgi'yi içe aktarır. Bu örnekte, Cuckoo'yu /home/cuckoo/cuckoo konumunda bir sanal ortamda kurduk. Cuckoo global olarak yüklendiyse sanal ortam seçeneği gerekli değildir (ve cuckoo web --uwsgi bunu bildirmez).

Uygulama yapılandırmasını etkinleştirin ve sunucuyu başlatın.

> $ sudo ln -s /etc/uwsgi/apps-available/cuckoo-web.ini /etc/uwsgi/apps-enabled/  
> $ sudo service uwsgi start cuckoo-web # or reload, if already running

<p class="callout info">Uygulama için günlükler, dağıtım uygulama örnekleri için standart dizinde bulunabilir, yani /var/log/uwsgi/app/cuckoo-web.log. UNIX soketi de geleneksel bir konumda oluşturulur, yani /run/uwsgi/app/cuckoo-web/socket.</p>

#### **nginx Kurulumu**

Web Arayüzü sunucusu uWSGI'de çalışırken, nginx artık bir web sunucusu/ters proxy olarak ayarlanabilir ve HTTP isteklerini ona yönlendirebilir.

Başlamak için, cuckoo web --nginx komutu tarafından bildirilen gerçek konfigürasyonu içeren bir nginx konfigürasyon dosyası oluşturun:

> $ cuckoo web --nginx  
> upstream \_uwsgi\_cuckoo\_web {  
>  server unix:/run/uwsgi/app/cuckoo-web/socket;  
> }
> 
> server {  
>  listen localhost:8000;
> 
>  # Cuckoo Web Interface  
>  location / {  
>  client\_max\_body\_size 1G;  
>  uwsgi\_pass \_uwsgi\_cuckoo\_web;  
>  include uwsgi\_params;  
>  }  
> }

nginx'nin uWSGI soketine bağlanabilmesi için kullanıcısını cuckoo grubuna ekleyerek emin olun:

> $ sudo adduser www-data cuckoo

Sunucu yapılandırmasını etkinleştirin ve sunucuyu başlatın:

> $ sudo ln -s /etc/nginx/sites-available/cuckoo-web /etc/nginx/sites-enabled/  
> $ sudo service nginx start # or reload, if already running

Bu noktada, Web Arayüzü sunucusunun sunucuda 8000 numaralı portta kullanılabilir olması gerekmelidir. Bu yapılandırmayı genişletmek için çeşitli konfigürasyonlar uygulanabilir, örneğin sunucu performansını ayarlamak, kimlik doğrulama eklemek veya HTTPS kullanarak iletişimi güvence altına almak gibi. Ancak, bunu kullanıcıya bir egzersiz bırakıyoruz.