{"id":35933,"date":"2025-12-05T19:40:45","date_gmt":"2025-12-05T16:40:45","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35933"},"modified":"2025-12-05T19:40:45","modified_gmt":"2025-12-05T16:40:45","slug":"recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/","title":{"rendered":"Recess&#8217;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu"},"content":{"rendered":"<p><body><\/p>\n<h2>Recess&#8217;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda proje y\u00f6netimi, ekip i\u00e7i i\u015fbirli\u011fi ve g\u00f6rev takibi, verimlili\u011fin anahtar\u0131 haline gelmi\u015ftir. Bu ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak \u00fczere geli\u015ftirilen bir\u00e7ok ara\u00e7 bulunmaktad\u0131r. Recess, bu ara\u00e7lardan biri olarak, ekiplerin projeleri daha etkin bir \u015fekilde y\u00f6netmelerine, g\u00f6revleri organize etmelerine ve i\u015fbirli\u011fini g\u00fc\u00e7lendirmelerine olanak tan\u0131yan bir platformdur. A\u00e7\u0131k kaynakl\u0131 veya belirli bir amaca y\u00f6nelik olarak tasarlanm\u0131\u015f bu t\u00fcr bir arac\u0131n en b\u00fcy\u00fck avantajlar\u0131ndan biri, kendi sunucunuzda bar\u0131nd\u0131rarak veri gizlili\u011fi, \u00f6zelle\u015ftirme esnekli\u011fi ve maliyet kontrol\u00fc gibi konularda tam denetime sahip olabilmenizdir.<\/p>\n<p>Bu makalede, Recess&#8217;i bir Sanal \u00d6zel Sunucu (VPS) \u00fczerine nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve kullanaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m detayland\u0131raca\u011f\u0131z. Kendi sunucunuzda Recess&#8217;i bar\u0131nd\u0131rmak, \u00f6zellikle hassas verilerle \u00e7al\u0131\u015fan veya \u00f6zel gereksinimleri olan kurulu\u015flar i\u00e7in ideal bir \u00e7\u00f6z\u00fcmd\u00fcr. Bir VPS, size adanm\u0131\u015f kaynaklar ve root eri\u015fimi sa\u011flayarak, uygulaman\u0131z\u0131 kendi tercihlerinize g\u00f6re yap\u0131land\u0131rma ve optimize etme \u00f6zg\u00fcrl\u00fc\u011f\u00fc sunar. Bu k\u0131lavuz, teknik bilgiye sahip ancak bu t\u00fcr bir kurulumu ilk kez yapacak olan kullan\u0131c\u0131lardan, deneyimli sistem y\u00f6neticilerine kadar geni\u015f bir kitleye hitap etmektedir.<\/p>\n<h3>Recess&#8217;i Anlamak<\/h3>\n<p>Recess, genellikle g\u00f6rev y\u00f6netimi, proje takibi, zaman \u00e7izelgesi olu\u015fturma, dosya payla\u015f\u0131m\u0131 ve ekip i\u00e7i ileti\u015fim gibi temel i\u015flevleri bir araya getiren bir web tabanl\u0131 uygulamad\u0131r. Modern web teknolojileriyle geli\u015ftirilmi\u015f olup, kullan\u0131c\u0131 dostu bir aray\u00fcze sahip olmas\u0131 beklenir. Recess&#8217;in temel mimarisi, genellikle bir \u00f6n u\u00e7 (frontend) ve bir arka u\u00e7 (backend) bile\u015feninden olu\u015fur. Arka u\u00e7, veritaban\u0131 ile etkile\u015fime girer ve i\u015f mant\u0131\u011f\u0131n\u0131 y\u00fcr\u00fct\u00fcrken, \u00f6n u\u00e7 kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc sa\u011flar.<\/p>\n<p>Recess&#8217;i bir VPS&#8217;e kurman\u0131n temel nedenleri \u015funlard\u0131r:<br \/>\n*   <strong>Veri Egemenli\u011fi:<\/strong> T\u00fcm verilerinizin sizin kontrol\u00fcn\u00fczde, kendi sunucunuzda kalmas\u0131n\u0131 sa\u011flar. \u00dc\u00e7\u00fcnc\u00fc taraf hizmet sa\u011flay\u0131c\u0131lar\u0131na ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ortadan kald\u0131r\u0131r.<br \/>\n*   <strong>\u00d6zelle\u015ftirme ve Esneklik:<\/strong> Yaz\u0131l\u0131m\u0131n kaynak koduna veya sunucu ortam\u0131na tam eri\u015fiminiz oldu\u011fu i\u00e7in, Recess&#8217;i kendi \u00f6zel ihtiya\u00e7lar\u0131n\u0131za g\u00f6re uyarlayabilir, entegrasyonlar geli\u015ftirebilir veya performans\u0131n\u0131 optimize edebilirsiniz.<br \/>\n*   <strong>Maliyet Kontrol\u00fc:<\/strong> B\u00fcy\u00fck ekipler i\u00e7in \u00fc\u00e7\u00fcnc\u00fc taraf SaaS (Software as a Service) \u00e7\u00f6z\u00fcmlerinin maliyetleri h\u0131zla artabilir. Kendi VPS&#8217;inizde bar\u0131nd\u0131rmak, uzun vadede daha ekonomik olabilir.<br \/>\n*   <strong>Performans:<\/strong> Uygulaman\u0131n performans\u0131n\u0131 ve kaynak kullan\u0131m\u0131n\u0131 do\u011frudan izleyebilir ve gerekti\u011finde sunucu kaynaklar\u0131n\u0131 y\u00fckselterek performans\u0131 art\u0131rabilirsiniz.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> Kendi g\u00fcvenlik politikalar\u0131n\u0131z\u0131 uygulayabilir, g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 belirleyebilir ve sunucunuzu istedi\u011finiz g\u00fcvenlik seviyesine y\u00fckseltebilirsiniz.<\/p>\n<h3>VPS Se\u00e7imi ve Haz\u0131rl\u0131\u011f\u0131<\/h3>\n<p>Recess&#8217;i kurmaya ba\u015flamadan \u00f6nce uygun bir VPS se\u00e7meli ve temel sunucu haz\u0131rl\u0131klar\u0131n\u0131 yapmal\u0131s\u0131n\u0131z.<\/p>\n<h4>VPS Sa\u011flay\u0131c\u0131 Se\u00e7imi<\/h4>\n<p>Piyasada bir\u00e7ok g\u00fcvenilir VPS sa\u011flay\u0131c\u0131s\u0131 bulunmaktad\u0131r. Se\u00e7im yaparken b\u00fct\u00e7enizi, ihtiyac\u0131n\u0131z olan kaynaklar\u0131 (CPU, RAM, depolama) ve sa\u011flay\u0131c\u0131n\u0131n sundu\u011fu ek hizmetleri g\u00f6z \u00f6n\u00fcnde bulundurun. Pop\u00fcler se\u00e7enekler aras\u0131nda DigitalOcean, Vultr, Linode, AWS Lightsail ve Google Cloud Compute Engine bulunmaktad\u0131r. Ba\u015flang\u0131\u00e7 i\u00e7in, 1-2 vCPU, 2-4 GB RAM ve 40-60 GB SSD depolama alan\u0131 sunan bir plan yeterli olacakt\u0131r. Kullan\u0131c\u0131 say\u0131n\u0131z ve Recess \u00fczerindeki aktivite artt\u0131k\u00e7a bu kaynaklar\u0131 kolayca y\u00fckseltebilirsiniz.<\/p>\n<h4>\u0130\u015fletim Sistemi Se\u00e7imi<\/h4>\n<p>Recess gibi web uygulamalar\u0131 genellikle Linux tabanl\u0131 sistemlerde daha iyi performans g\u00f6sterir ve daha kolay y\u00f6netilir. Ubuntu Server LTS (Uzun S\u00fcreli Destek) s\u00fcr\u00fcmleri, kararl\u0131l\u0131\u011f\u0131, geni\u015f topluluk deste\u011fi ve g\u00fcncel paketleri sayesinde en \u00e7ok tercih edilen i\u015fletim sistemlerinden biridir. Bu k\u0131lavuzda da Ubuntu 20.04 LTS veya 22.04 LTS kulland\u0131\u011f\u0131n\u0131z varsay\u0131lacakt\u0131r.<\/p>\n<h4>Temel Sunucu Ayarlar\u0131<\/h4>\n<p>VPS&#8217;inizi kurduktan sonra, ilk yapman\u0131z gerekenler \u015funlard\u0131r:<\/p>\n<p>1.  <strong>SSH Eri\u015fimi:<\/strong> Sa\u011flay\u0131c\u0131n\u0131z\u0131n kontrol panelinden veya SSH anahtarlar\u0131 kullanarak sunucunuza ba\u011flan\u0131n. Genellikle <code>ssh root@<VPS_IP_ADRESINIZ><\/code> komutunu kullan\u0131rs\u0131n\u0131z.<br \/>\n2.  <strong>Sistem G\u00fcncellemeleri:<\/strong> Sunucunuzun g\u00fcncel oldu\u011fundan emin olun. Bu, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve en yeni paketlere eri\u015fim sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt upgrade -y<\/code><\/pre>\n<p>3.  <strong>Yeni Bir Kullan\u0131c\u0131 Olu\u015fturma:<\/strong> <code>root<\/code> kullan\u0131c\u0131s\u0131 olarak do\u011frudan \u00e7al\u0131\u015fmak g\u00fcvenlik riski ta\u015f\u0131r. Y\u00f6netim i\u00e7in <code>sudo<\/code> ayr\u0131cal\u0131klar\u0131na sahip yeni bir kullan\u0131c\u0131 olu\u015fturun.<\/p>\n<pre><code class=\"language-bash\">sudo adduser <kullanici_adiniz>\n    sudo usermod -aG sudo <kullanici_adiniz><\/code><\/pre>\n<p>    Ard\u0131ndan bu yeni kullan\u0131c\u0131ya ge\u00e7i\u015f yap\u0131n: <code>su - <kullanici_adiniz><\/code>.<br \/>\n4.  <strong>G\u00fcvenlik Duvar\u0131 Kurulumu (UFW):<\/strong> UFW (Uncomplicated Firewall), Ubuntu&#8217;da g\u00fcvenlik duvar\u0131 y\u00f6netimini kolayla\u015ft\u0131r\u0131r. Yaln\u0131zca gerekli portlara (SSH i\u00e7in 22, HTTP i\u00e7in 80, HTTPS i\u00e7in 443) izin verin.<\/p>\n<pre><code class=\"language-bash\">sudo apt install ufw -y\n    sudo ufw allow OpenSSH\n    sudo ufw allow http\n    sudo ufw allow https\n    sudo ufw enable\n    sudo ufw status<\/code><\/pre>\n<p>5.  <strong>SSH G\u00fcvenli\u011fi:<\/strong> SSH ba\u011flant\u0131lar\u0131n\u0131z\u0131 daha g\u00fcvenli hale getirin.<br \/>\n    *   <strong>Parola ile giri\u015fi devre d\u0131\u015f\u0131 b\u0131rakma ve SSH anahtar\u0131 ile giri\u015f yapma:<\/strong> Bu, en g\u00fcvenli y\u00f6ntemdir. Kendi bilgisayar\u0131n\u0131zda bir SSH anahtar\u0131 olu\u015fturup (e\u011fer yoksa) genel anahtar\u0131n\u0131z\u0131 VPS&#8217;teki <code>.ssh\/authorized_keys<\/code> dosyas\u0131na eklemelisiniz.<br \/>\n    *   <strong>Varsay\u0131lan SSH portunu de\u011fi\u015ftirme:<\/strong> Yayg\u0131n taramalardan korunmak i\u00e7in 22 numaral\u0131 portu farkl\u0131 bir porta (\u00f6rne\u011fin 2222) de\u011fi\u015ftirebilirsiniz. Bunun i\u00e7in <code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131n\u0131 d\u00fczenleyin ve <code>Port 22<\/code> sat\u0131r\u0131n\u0131 <code>Port 2222<\/code> olarak de\u011fi\u015ftirin. Ard\u0131ndan <code>sudo systemctl restart sshd<\/code> komutuyla SSH servisini yeniden ba\u015flat\u0131n ve UFW \u00fczerinden yeni porta izin vermeyi unutmay\u0131n.<br \/>\n    *   <strong>Root ile giri\u015fi yasaklama:<\/strong> <code>\/etc\/ssh\/sshd_config<\/code> dosyas\u0131nda <code>PermitRootLogin yes<\/code> sat\u0131r\u0131n\u0131 <code>PermitRootLogin no<\/code> olarak de\u011fi\u015ftirin.<\/p>\n<h3>Recess Kurulum \u00d6n Gereksinimleri<\/h3>\n<p>Recess, modern bir web uygulamas\u0131 oldu\u011fu i\u00e7in kurulumu genellikle Docker ve Docker Compose kullan\u0131larak yap\u0131l\u0131r. Bu, ba\u011f\u0131ml\u0131l\u0131k y\u00f6netimini basitle\u015ftirir ve uygulaman\u0131n farkl\u0131 ortamlar aras\u0131nda ta\u015f\u0131nabilirli\u011fini sa\u011flar.<\/p>\n<h4>Docker ve Docker Compose Kurulumu<\/h4>\n<p>Docker, uygulamalar\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 izole edilmi\u015f konteynerler i\u00e7inde \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. Docker Compose ise birden fazla Docker konteynerini tan\u0131mlama ve \u00e7al\u0131\u015ft\u0131rma arac\u0131d\u0131r.<\/p>\n<p>1.  <strong>Docker Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt update\n    sudo apt install apt-transport-https ca-certificates curl software-properties-common -y\n    curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg\n    echo \"deb [arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null\n    sudo apt update\n    sudo apt install docker-ce docker-ce-cli containerd.io -y<\/code><\/pre>\n<p>    Kullan\u0131c\u0131n\u0131z\u0131 <code>docker<\/code> grubuna ekleyerek <code>sudo<\/code> olmadan Docker komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmas\u0131n\u0131 sa\u011flay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo usermod -aG docker ${USER}\n    newgrp docker # Veya oturumu kapat\u0131p tekrar a\u00e7\u0131n<\/code><\/pre>\n<p>    Docker&#8217;\u0131n do\u011fru kuruldu\u011funu test edin: <code>docker run hello-world<\/code><\/p>\n<p>2.  <strong>Docker Compose Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo curl -L \"https:\/\/github.com\/docker\/compose\/releases\/download\/v2.5.0\/docker-compose-$(uname -s)-$(uname -m)\" -o \/usr\/local\/bin\/docker-compose\n    sudo chmod +x \/usr\/local\/bin\/docker-compose\n    docker-compose --version<\/code><\/pre>\n<p>    <em>Not: Yukar\u0131daki <code>v2.5.0<\/code> s\u00fcr\u00fcm\u00fcn\u00fc en g\u00fcncel Docker Compose s\u00fcr\u00fcm\u00fcyle de\u011fi\u015ftirmeniz \u00f6nerilir. En g\u00fcncel s\u00fcr\u00fcm\u00fc GitHub sayfas\u0131ndan kontrol edebilirsiniz.<\/em><\/p>\n<h4>Git Kurulumu<\/h4>\n<p>Recess&#8217;in kaynak kodunu GitHub veya benzeri bir depodan \u00e7ekmek i\u00e7in Git&#8217;e ihtiyac\u0131n\u0131z olacak.<\/p>\n<pre><code class=\"language-bash\">sudo apt install git -y<\/code><\/pre>\n<h3>Recess&#8217;i Kurulumu (Ad\u0131m Ad\u0131m)<\/h3>\n<p>\u015eimdi Recess&#8217;i sunucunuza kurmaya ba\u015flayabiliriz. Bu ad\u0131mlar, Recess&#8217;in a\u00e7\u0131k kaynak bir proje oldu\u011funu ve genellikle bir GitHub deposundan klonlanarak kuruldu\u011funu varsayar.<\/p>\n<p>1.  <strong>Recess GitHub Deposunu Klonlama:<\/strong><br \/>\n    \u00d6ncelikle Recess&#8217;in kaynak kodunu sunucunuza indirin. Genellikle bu, projenin GitHub sayfas\u0131nda belirtilen bir depodur. Varsay\u0131lan olarak, <code>\/opt<\/code> dizini alt\u0131nda veya kullan\u0131c\u0131n\u0131z\u0131n ana dizininde bir dizin olu\u015fturarak \u00e7al\u0131\u015fmak iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">cd ~ # Veya \/opt\/recess gibi bir dizine gidin\n    git clone https:\/\/github.com\/recess-project\/recess.git # Bu URL'yi Recess'in ger\u00e7ek deposuyla de\u011fi\u015ftirin\n    cd recess<\/code><\/pre>\n<p>2.  <strong>Yap\u0131land\u0131rma Dosyalar\u0131n\u0131 Anlama ve D\u00fczenleme:<\/strong><br \/>\n    Recess projesi genellikle bir <code>docker-compose.yml<\/code> dosyas\u0131 ve bir <code>.env.example<\/code> veya benzeri bir ortam de\u011fi\u015fkenleri dosyas\u0131 ile birlikte gelir.<br \/>\n    *   <strong><code>.env<\/code> Dosyas\u0131:<\/strong> Bu dosya, uygulaman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan ortam de\u011fi\u015fkenlerini (veritaban\u0131 ba\u011flant\u0131 bilgileri, gizli anahtarlar, debug ayarlar\u0131 vb.) i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">cp .env.example .env\n        nano .env<\/code><\/pre>\n<p>        <code>nano<\/code> d\u00fczenleyicisi ile <code>.env<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n ve a\u015fa\u011f\u0131daki temel de\u011fi\u015fkenleri yap\u0131land\u0131r\u0131n:<br \/>\n        *   <code>SECRET_KEY<\/code>: Django tabanl\u0131 uygulamalar i\u00e7in kritik bir g\u00fcvenlik anahtar\u0131d\u0131r. G\u00fc\u00e7l\u00fc ve rastgele bir anahtar olu\u015fturun.<br \/>\n        *   <code>DEBUG<\/code>: \u00dcretim ortam\u0131nda <code>False<\/code> olarak ayarlanmal\u0131d\u0131r. Hata ay\u0131klama modunu kapat\u0131r.<br \/>\n        *   <code>DATABASE_URL<\/code>: Veritaban\u0131 ba\u011flant\u0131 dizesi. Genellikle <code>postgresql:\/\/user:password@db:5432\/dbname<\/code> format\u0131nda olur.<br \/>\n        *   <code>ALLOWED_HOSTS<\/code>: Recess&#8217;in eri\u015filebilir olaca\u011f\u0131 alan adlar\u0131n\u0131 veya IP adreslerini belirtin (\u00f6rn. <code>yourdomain.com,www.yourdomain.com,your_vps_ip<\/code>).<br \/>\n        *   <code>EMAIL_HOST<\/code>, <code>EMAIL_PORT<\/code>, <code>EMAIL_HOST_USER<\/code>, <code>EMAIL_HOST_PASSWORD<\/code>: E-posta bildirimleri i\u00e7in SMTP ayarlar\u0131.<\/p>\n<p>    *   <strong><code>docker-compose.yml<\/code> Dosyas\u0131:<\/strong> Bu dosya, Recess&#8217;i olu\u015fturan servisleri (web uygulamas\u0131, veritaban\u0131, ters proxy vb.) tan\u0131mlar. Genellikle oldu\u011fu gibi kullan\u0131labilir, ancak port e\u015flemelerini veya birim ba\u011flamalar\u0131n\u0131 (volume mounts) de\u011fi\u015ftirmek isteyebilirsiniz.<\/p>\n<p>3.  <strong>Veritaban\u0131 Yap\u0131land\u0131rmas\u0131:<\/strong><br \/>\n    Recess genellikle PostgreSQL gibi ili\u015fkisel bir veritaban\u0131 kullan\u0131r. <code>docker-compose.yml<\/code> dosyan\u0131zda bir PostgreSQL servisi tan\u0131ml\u0131 olacakt\u0131r. <code>.env<\/code> dosyas\u0131ndaki <code>DATABASE_URL<\/code>&#8216;in bu servis ile uyumlu oldu\u011fundan emin olun.<br \/>\n    \u00d6rnek <code>DATABASE_URL<\/code> format\u0131: <code>postgresql:\/\/recess_user:recess_password@db:5432\/recess_db<\/code><br \/>\n    Burada <code>db<\/code>, <code>docker-compose.yml<\/code> dosyas\u0131ndaki PostgreSQL servisinin ad\u0131d\u0131r.<\/p>\n<p>4.  <strong>Ortam De\u011fi\u015fkenleri ve Di\u011fer Ayarlar:<\/strong><br \/>\n    <code>.env<\/code> dosyas\u0131nda, uygulaman\u0131n gerektirdi\u011fi di\u011fer t\u00fcm de\u011fi\u015fkenleri (\u00f6rne\u011fin, zaman dilimi, dil ayarlar\u0131, medya depolama ayarlar\u0131) projenin belgelerine g\u00f6re yap\u0131land\u0131r\u0131n.<\/p>\n<p>5.  <strong>Docker Compose ile Servisleri Ba\u015flatma:<\/strong><br \/>\n    T\u00fcm yap\u0131land\u0131rmalar\u0131 yapt\u0131ktan sonra, <code>recess<\/code> dizinindeyken Docker Compose ile servisleri ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">docker-compose build # Gerekirse Docker imajlar\u0131n\u0131 olu\u015fturur\n    docker-compose up -d # Servisleri arka planda ba\u015flat\u0131r<\/code><\/pre>\n<p>    <code>docker-compose ps<\/code> komutu ile servislerin durumunu kontrol edebilirsiniz. T\u00fcm servislerin <code>Up<\/code> durumda olmas\u0131 gerekir.<\/p>\n<p>6.  <strong>\u0130lk Kurulum ve Y\u00f6netici Hesab\u0131 Olu\u015fturma:<\/strong><br \/>\n    Recess, genellikle Django tabanl\u0131 oldu\u011fu i\u00e7in, ilk veritaban\u0131 \u015femas\u0131n\u0131 olu\u015fturmak ve bir y\u00f6netici hesab\u0131 olu\u015fturmak i\u00e7in baz\u0131 komutlar \u00e7al\u0131\u015ft\u0131rman\u0131z gerekebilir. Bu komutlar, uygulaman\u0131n web konteyneri i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131lmal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">docker-compose exec web python manage.py migrate\n    docker-compose exec web python manage.py createsuperuser<\/code><\/pre>\n<p>    <code>createsuperuser<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, y\u00f6netici kullan\u0131c\u0131 ad\u0131, e-posta adresi ve parola girmeniz istenecektir.<\/p>\n<p>7.  <strong>Statik Dosyalar\u0131n Toplanmas\u0131:<\/strong><br \/>\n    Web sunucusunun statik dosyalar\u0131 (CSS, JS, resimler) do\u011fru bir \u015fekilde sunabilmesi i\u00e7in toplanmas\u0131 gerekebilir.<\/p>\n<pre><code class=\"language-bash\">docker-compose exec web python manage.py collectstatic --noinput<\/code><\/pre>\n<h3>Recess&#8217;i Yap\u0131land\u0131rma ve \u00d6zelle\u015ftirme<\/h3>\n<p>Kurulum tamamland\u0131ktan sonra, Recess&#8217;e web taray\u0131c\u0131n\u0131zdan eri\u015febilir ve daha fazla yap\u0131land\u0131rma yapabilirsiniz.<\/p>\n<p>1.  <strong>Y\u00f6netici Paneli Eri\u015fimi:<\/strong><br \/>\n    Taray\u0131c\u0131n\u0131zda <code>http:\/\/<VPS_IP_ADRESINIZ><\/code> veya <code>http:\/\/<ALAN_ADINIZ><\/code> adresine giderek Recess&#8217;e eri\u015fin. Y\u00f6netici hesab\u0131n\u0131zla giri\u015f yaparak y\u00f6netici paneline ula\u015f\u0131n. Y\u00f6netici paneli genellikle <code>http:\/\/<ALAN_ADINIZ>\/admin<\/code> gibi bir URL&#8217;de bulunur.<\/p>\n<p>2.  <strong>Kullan\u0131c\u0131 Y\u00f6netimi:<\/strong><br \/>\n    Y\u00f6netici panelinden yeni kullan\u0131c\u0131lar olu\u015fturabilir, mevcut kullan\u0131c\u0131lar\u0131 d\u00fczenleyebilir ve onlara farkl\u0131 roller (y\u00f6netici, proje y\u00f6neticisi, \u00fcye vb.) atayabilirsiniz.<\/p>\n<p>3.  <strong>Proje ve G\u00f6rev Olu\u015fturma:<\/strong><br \/>\n    Recess&#8217;in temel amac\u0131 proje ve g\u00f6rev y\u00f6netimidir. Yeni projeler olu\u015fturun, bu projelere g\u00f6revler ekleyin, g\u00f6revleri kullan\u0131c\u0131lara atay\u0131n, son teslim tarihlerini belirleyin ve ilerlemeyi takip edin.<\/p>\n<p>4.  <strong>Entegrasyonlar:<\/strong><br \/>\n    Recess, Slack, GitHub, GitLab gibi \u00fc\u00e7\u00fcnc\u00fc taraf hizmetlerle entegrasyonlar sunabilir. Bu entegrasyonlar\u0131, projenin belgelerinde belirtilen ad\u0131mlar\u0131 izleyerek yap\u0131land\u0131r\u0131n.<\/p>\n<p>5.  <strong>E-posta Ayarlar\u0131:<\/strong><br \/>\n    G\u00f6rev atamalar\u0131, yorumlar veya di\u011fer \u00f6nemli etkinlikler hakk\u0131nda bildirim almak i\u00e7in e-posta ayarlar\u0131n\u0131 yap\u0131land\u0131r\u0131n. <code>.env<\/code> dosyas\u0131nda belirtti\u011finiz SMTP ayarlar\u0131n\u0131n do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<\/p>\n<p>6.  <strong>Zaman Dilimi ve Dil Ayarlar\u0131:<\/strong><br \/>\n    Uygulaman\u0131n genel ayarlar\u0131ndan zaman dilimini ve varsay\u0131lan dili kendi tercihinize g\u00f6re ayarlay\u0131n.<\/p>\n<h3>Recess&#8217;i G\u00fcvenli Hale Getirme<\/h3>\n<p>Bir web uygulamas\u0131n\u0131 internete a\u00e7arken g\u00fcvenlik en \u00f6nemli konulardan biridir.<\/p>\n<p>1.  <strong>SSL\/TLS Kurulumu (HTTPS):<\/strong><br \/>\n    Recess&#8217;e g\u00fcvenli bir \u015fekilde eri\u015fmek i\u00e7in HTTPS kullanman\u0131z \u015fartt\u0131r. Bunun i\u00e7in bir ters proxy (Nginx veya Caddy) ve Let&#8217;s Encrypt ile \u00fccretsiz SSL sertifikalar\u0131 kullanabilirsiniz.<\/p>\n<p>    *   <strong>Nginx Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx -y<\/code><\/pre>\n<p>    *   <strong>Nginx Yap\u0131land\u0131rmas\u0131:<\/strong> <code>docker-compose.yml<\/code> dosyas\u0131ndaki Recess web servisinin hangi portta \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 \u00f6\u011frenin (genellikle 8000 veya 5000). Ard\u0131ndan Nginx i\u00e7in bir yap\u0131land\u0131rma dosyas\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/recess<\/code><\/pre>\n<p>        \u0130\u00e7ine a\u015fa\u011f\u0131daki gibi bir yap\u0131land\u0131rma ekleyin (alan ad\u0131n\u0131z\u0131 ve portu de\u011fi\u015ftirin):<\/p>\n<pre><code class=\"language-nginx\">server {\n            listen 80;\n            server_name yourdomain.com www.yourdomain.com;\n\n            location \/ {\n                proxy_pass http:\/\/localhost:8000; # Recess web servisinizin \u00e7al\u0131\u015ft\u0131\u011f\u0131 port\n                proxy_set_header Host $host;\n                proxy_set_header X-Real-IP $remote_addr;\n                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n                proxy_set_header X-Forwarded-Proto $scheme;\n            }\n\n            location \/static\/ {\n                alias \/path\/to\/recess\/static_files\/; # Recess'in collectstatic ile toplad\u0131\u011f\u0131 statik dosyalar\u0131n yolu\n            }\n\n            location \/media\/ {\n                alias \/path\/to\/recess\/media_files\/; # Kullan\u0131c\u0131lar\u0131n y\u00fckledi\u011fi medya dosyalar\u0131n\u0131n yolu\n            }\n        }<\/code><\/pre>\n<p>        <em>Not: <code>\/path\/to\/recess\/static_files\/<\/code> ve <code>\/path\/to\/recess\/media_files\/<\/code> yollar\u0131n\u0131 Recess projenizin Docker volume&#8217;lerine veya sunucunuzdaki ger\u00e7ek statik\/medya dizinlerine g\u00f6re ayarlaman\u0131z gerekecektir.<\/em><br \/>\n        Yap\u0131land\u0131rma dosyas\u0131n\u0131 etkinle\u015ftirin ve Nginx&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/recess \/etc\/nginx\/sites-enabled\/\n        sudo nginx -t # Yap\u0131land\u0131rma dosyas\u0131n\u0131 test edin\n        sudo systemctl restart nginx<\/code><\/pre>\n<p>    *   <strong>Certbot (Let&#8217;s Encrypt) Kurulumu:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo snap install core\n        sudo snap refresh core\n        sudo snap install --classic certbot\n        sudo ln -s \/snap\/bin\/certbot \/usr\/bin\/certbot\n        sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com<\/code><\/pre>\n<p>        Certbot, Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak g\u00fcncelleyecek ve SSL sertifikalar\u0131n\u0131 kuracakt\u0131r.<\/p>\n<p>2.  <strong>G\u00fcvenlik Duvar\u0131 Kurallar\u0131 (UFW):<\/strong><br \/>\n    Daha \u00f6nce UFW kurmu\u015ftuk. Nginx ve Certbot&#8217;u kurduktan sonra, Nginx&#8217;in HTTP ve HTTPS trafi\u011fine izin verdi\u011finden emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx Full'\n    sudo ufw delete allow 'Nginx HTTP' # E\u011fer sadece HTTP'ye izin verdiyseniz\n    sudo ufw status<\/code><\/pre>\n<p>3.  <strong>SSH G\u00fcvenli\u011fi:<\/strong><br \/>\n    Daha \u00f6nce belirtilen SSH g\u00fcvenlik ad\u0131mlar\u0131n\u0131 uygulad\u0131\u011f\u0131n\u0131zdan emin olun (anahtar tabanl\u0131 kimlik do\u011frulama, root eri\u015fimini kapatma, varsay\u0131lan portu de\u011fi\u015ftirme).<\/p>\n<p>4.  <strong>D\u00fczenli G\u00fcncellemeler:<\/strong><br \/>\n    \u0130\u015fletim sisteminizi, Docker&#8217;\u0131 ve Recess uygulamas\u0131n\u0131 d\u00fczenli olarak g\u00fcncel tutun. Bu, bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n kapat\u0131lmas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<pre><code class=\"language-bash\">sudo apt update && sudo apt upgrade -y<\/code><\/pre>\n<p>    Recess i\u00e7in ise projenin GitHub deposundan en son kodu \u00e7ekip Docker imajlar\u0131n\u0131 yeniden olu\u015fturman\u0131z gerekebilir.<\/p>\n<p>5.  <strong>Yedekleme Stratejileri:<\/strong><br \/>\n    Verilerinizin kaybolmamas\u0131 i\u00e7in d\u00fczenli yedeklemeler kritik \u00f6neme sahiptir.<br \/>\n    *   <strong>Veritaban\u0131 Yedeklemesi:<\/strong> PostgreSQL veritaban\u0131n\u0131z\u0131 d\u00fczenli olarak yedekleyin. Docker konteyneri i\u00e7inden <code>pg_dump<\/code> komutunu kullanabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">docker-compose exec db pg_dump -U recess_user recess_db > backup_$(date +%Y%m%d%H%M%S).sql<\/code><\/pre>\n<p>    *   <strong>Medya Dosyalar\u0131 Yedeklemesi:<\/strong> Kullan\u0131c\u0131lar\u0131n y\u00fckledi\u011fi dosyalar\u0131n bulundu\u011fu dizini yedekleyin.<br \/>\n    *   <strong>Yap\u0131land\u0131rma Dosyalar\u0131 Yedeklemesi:<\/strong> <code>.env<\/code> ve Nginx yap\u0131land\u0131rma dosyalar\u0131 gibi kritik dosyalar\u0131 yedekleyin.<br \/>\n    *   Bu yedekleri sunucunuzdan farkl\u0131 bir konuma (bulut depolama, ba\u015fka bir sunucu) ta\u015f\u0131y\u0131n.<\/p>\n<h3>Recess&#8217;i Kullanma<\/h3>\n<p>Recess art\u0131k kuruldu ve g\u00fcvenli bir \u015fekilde eri\u015filebilir durumda. \u015eimdi temel kullan\u0131m senaryolar\u0131na g\u00f6z atal\u0131m.<\/p>\n<p>1.  <strong>Ana Kontrol Paneli:<\/strong><br \/>\n    Giri\u015f yapt\u0131ktan sonra, genellikle size atanm\u0131\u015f g\u00f6revleri, yak\u0131nda bitecek projeleri ve genel etkinlik ak\u0131\u015f\u0131n\u0131 g\u00f6steren bir kontrol paneliyle kar\u015f\u0131la\u015f\u0131rs\u0131n\u0131z.<\/p>\n<p>2.  <strong>G\u00f6rev Takibi ve Y\u00f6netimi:<\/strong><br \/>\n    *   <strong>G\u00f6rev Olu\u015fturma:<\/strong> Yeni g\u00f6revler olu\u015fturun, ba\u015fl\u0131k, a\u00e7\u0131klama, son teslim tarihi, \u00f6ncelik ve atanan ki\u015fiyi belirleyin.<br \/>\n    *   <strong>Durum G\u00fcncelleme:<\/strong> G\u00f6revlerin durumunu (Yap\u0131lacak, Devam Ediyor, Tamamland\u0131 vb.) g\u00fcncelleyin.<br \/>\n    *   <strong>Yorumlar ve Ekler:<\/strong> G\u00f6revler \u00fczerine yorumlar yap\u0131n, dosya ekleyin ve ekip \u00fcyeleriyle ileti\u015fim kurun.<\/p>\n<p>3.  <strong>\u0130\u015fbirli\u011fi \u00d6zellikleri:<\/strong><br \/>\n    *   <strong>Ekip \u00dcyelerini Davet Etme:<\/strong> Projelere ekip \u00fcyelerini davet edin ve onlara uygun izinler verin.<br \/>\n    *   <strong>Bildirimler:<\/strong> Yeni g\u00f6rev atamalar\u0131, yorumlar veya durum de\u011fi\u015fiklikleri hakk\u0131nda e-posta veya uygulama i\u00e7i bildirimler al\u0131n.<\/p>\n<p>4.  <strong>Raporlama ve Analiz:<\/strong><br \/>\n    Recess, genellikle projelerin ilerlemesini, g\u00f6rev tamamlama oranlar\u0131n\u0131 ve ekip performans\u0131n\u0131 g\u00f6steren raporlama ara\u00e7lar\u0131 sunar. Bu raporlar\u0131 kullanarak projelerinizi daha iyi y\u00f6netebilir ve darbo\u011fazlar\u0131 belirleyebilirsiniz.<\/p>\n<h3>Bak\u0131m ve Sorun Giderme<\/h3>\n<p>Bir uygulaman\u0131n s\u00fcrekli ve sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in d\u00fczenli bak\u0131m ve sorun giderme becerileri \u00f6nemlidir.<\/p>\n<p>1.  <strong>Loglar\u0131 Kontrol Etme:<\/strong><br \/>\n    Bir sorunla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, ilk bakman\u0131z gereken yer loglard\u0131r. Docker Compose ile \u00e7al\u0131\u015f\u0131rken, belirli bir servisin loglar\u0131n\u0131 \u015fu komutla g\u00f6r\u00fcnt\u00fcleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">docker-compose logs <servis_adi>\n    # \u00d6rnek: docker-compose logs web\n    # T\u00fcm servislerin loglar\u0131 i\u00e7in: docker-compose logs<\/code><\/pre>\n<p>    Nginx loglar\u0131 <code>\/var\/log\/nginx\/error.log<\/code> ve <code>\/var\/log\/nginx\/access.log<\/code> adresinde bulunur.<\/p>\n<p>2.  <strong>Docker Konteyner Y\u00f6netimi:<\/strong><br \/>\n    *   <code>docker-compose ps<\/code>: T\u00fcm servislerin durumunu g\u00f6sterir.<br \/>\n    *   <code>docker-compose stop <servis_adi><\/code>: Belirli bir servisi durdurur.<br \/>\n    *   <code>docker-compose start <servis_adi><\/code>: Belirli bir servisi ba\u015flat\u0131r.<br \/>\n    *   <code>docker-compose restart <servis_adi><\/code>: Belirli bir servisi yeniden ba\u015flat\u0131r.<br \/>\n    *   <code>docker-compose down<\/code>: T\u00fcm servisleri durdurur ve konteynerleri kald\u0131r\u0131r (verileri kaybetmemek i\u00e7in dikkatli olun, volume&#8217;leri kontrol edin).<br \/>\n    *   <code>docker-compose up -d --build<\/code>: De\u011fi\u015fiklikler yapt\u0131ysan\u0131z veya imajlar\u0131 yeniden olu\u015fturmak istiyorsan\u0131z kullan\u0131n.<\/p>\n<p>3.  <strong>Sistem Kaynaklar\u0131 \u0130zleme:<\/strong><br \/>\n    VPS&#8217;inizin CPU, RAM ve disk kullan\u0131m\u0131n\u0131 d\u00fczenli olarak izleyin. <code>htop<\/code>, <code>free -h<\/code>, <code>df -h<\/code> gibi komutlar veya sa\u011flay\u0131c\u0131n\u0131z\u0131n izleme ara\u00e7lar\u0131 bu konuda yard\u0131mc\u0131 olabilir. Kaynaklar yetersiz kal\u0131rsa, VPS plan\u0131n\u0131z\u0131 y\u00fckseltmeyi d\u00fc\u015f\u00fcn\u00fcn.<\/p>\n<p>4.  <strong>G\u00fcncelleme S\u00fcreci:<\/strong><br \/>\n    Recess&#8217;i g\u00fcncellemek i\u00e7in genellikle projenin GitHub deposundan en son kodu \u00e7ekmeniz, ard\u0131ndan Docker imajlar\u0131n\u0131 yeniden olu\u015fturup servisleri yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">cd \/path\/to\/recess\n    git pull origin main # Veya projenin varsay\u0131lan dal\u0131\n    docker-compose build\n    docker-compose up -d\n    docker-compose exec web python manage.py migrate # Gerekirse veritaban\u0131 ge\u00e7i\u015flerini \u00e7al\u0131\u015ft\u0131r\u0131n\n    docker-compose exec web python manage.py collectstatic --noinput # Gerekirse statik dosyalar\u0131 yeniden toplay\u0131n<\/code><\/pre>\n<p>5.  <strong>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri:<\/strong><br \/>\n    *   <strong>502 Bad Gateway (Nginx):<\/strong> Nginx, Recess web servisine ula\u015fam\u0131yor demektir. Recess konteynerinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 ve do\u011fru portta dinledi\u011fini kontrol edin (<code>docker-compose logs web<\/code>).<br \/>\n    *   <strong>500 Internal Server Error:<\/strong> Recess uygulamas\u0131n\u0131n i\u00e7inde bir hata var. <code>docker-compose logs web<\/code> komutuyla uygulama loglar\u0131n\u0131 kontrol edin. <code>DEBUG=False<\/code> oldu\u011fu \u00fcretim ortam\u0131nda bu t\u00fcr hatalar\u0131n detaylar\u0131n\u0131 g\u00f6rmek i\u00e7in loglar\u0131 incelemek \u00f6nemlidir.<br \/>\n    *   <strong>Veritaban\u0131 Ba\u011flant\u0131 Sorunlar\u0131:<\/strong> <code>.env<\/code> dosyas\u0131ndaki <code>DATABASE_URL<\/code>&#8216;in do\u011fru oldu\u011fundan ve veritaban\u0131 konteynerinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun (<code>docker-compose logs db<\/code>).<br \/>\n    *   <strong>SSL Sertifikas\u0131 Hatalar\u0131:<\/strong> Certbot&#8217;un sertifikalar\u0131 do\u011fru bir \u015fekilde yenileyip yenilemedi\u011fini kontrol edin (<code>sudo certbot renew --dry-run<\/code>).<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 k\u0131lavuzda, Recess&#8217;i bir VPS \u00fczerine kurma, yap\u0131land\u0131rma, g\u00fcvenli hale getirme ve kullanma s\u00fcrecini ad\u0131m ad\u0131m ele ald\u0131k. Kendi sunucunuzda Recess&#8217;i bar\u0131nd\u0131rmak, veri egemenli\u011fi, \u00f6zelle\u015ftirme esnekli\u011fi ve uzun vadeli maliyet kontrol\u00fc gibi \u00f6nemli avantajlar sunar. Docker ve Docker Compose gibi modern ara\u00e7lar sayesinde bu s\u00fcre\u00e7, ge\u00e7mi\u015fe g\u00f6re \u00e7ok daha y\u00f6netilebilir hale gelmi\u015ftir.<\/p>\n<p>Unutmay\u0131n ki bir sunucuyu y\u00f6netmek s\u00fcrekli bir \u00f6\u011frenme ve dikkat gerektiren bir s\u00fcre\u00e7tir. G\u00fcvenlik g\u00fcncellemelerini takip etmek, yedeklemeleri d\u00fczenli olarak yapmak ve sistem loglar\u0131n\u0131 izlemek, uygulaman\u0131z\u0131n s\u00fcrekli ve g\u00fcvenli bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flaman\u0131n anahtar\u0131d\u0131r. Bu k\u0131lavuzdaki ad\u0131mlar\u0131 uygulayarak, ekibinizin proje y\u00f6netimi ve i\u015fbirli\u011fi ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131layacak g\u00fc\u00e7l\u00fc ve \u00f6zelle\u015ftirilebilir bir Recess kurulumuna sahip olacaks\u0131n\u0131z. Bu sayede, ekibiniz daha verimli \u00e7al\u0131\u015fabilir, projeleri daha etkin y\u00f6netebilir ve i\u015fbirli\u011fini en \u00fcst d\u00fczeye \u00e7\u0131karabilir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Recess&#8217;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda proje y\u00f6netimi, ekip i\u00e7i i\u015fbirli\u011fi ve g\u00f6rev takibi, ver","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-35933","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Recess&#039;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Recess&#039;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu\" \/>\n<meta property=\"og:description\" content=\"Recess&#039;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu Giri\u015f G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda proje y\u00f6netimi, ekip i\u00e7i i\u015fbirli\u011fi ve g\u00f6rev takibi, ver\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-05T16:40:45+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Recess&#8217;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu\",\"datePublished\":\"2025-12-05T16:40:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/\"},\"wordCount\":2829,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/\",\"name\":\"Recess'i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-05T16:40:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recess&#8217;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Recess'i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/","og_locale":"tr_TR","og_type":"article","og_title":"Recess'i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu","og_description":"Recess'i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu Giri\u015f G\u00fcn\u00fcm\u00fcz i\u015f d\u00fcnyas\u0131nda proje y\u00f6netimi, ekip i\u00e7i i\u015fbirli\u011fi ve g\u00f6rev takibi, ver","og_url":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-05T16:40:45+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Recess&#8217;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu","datePublished":"2025-12-05T16:40:45+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/"},"wordCount":2829,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/","url":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/","name":"Recess'i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-05T16:40:45+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/recessi-bir-vps-uzerine-kurma-ve-kullanma-kilavuzu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Recess&#8217;i Bir VPS \u00dczerine Kurma ve Kullanma K\u0131lavuzu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35933","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35933"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35933\/revisions"}],"predecessor-version":[{"id":35934,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35933\/revisions\/35934"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}