{"id":29596,"date":"2025-09-16T12:30:27","date_gmt":"2025-09-16T09:30:27","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/"},"modified":"2025-09-16T12:30:27","modified_gmt":"2025-09-16T09:30:27","slug":"fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/","title":{"rendered":"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#8217;ta Nginx ve CI\/CD ile Da\u011f\u0131tma"},"content":{"rendered":"<p>FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#8217;ta Nginx ve CI\/CD ile Da\u011f\u0131tma<\/p>\n<p>H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek ve da\u011f\u0131tmak her zaman zorlu bir s\u00fcre\u00e7tir. Bu makalede, pop\u00fcler Python web framework&#8217;\u00fc FastAPI&#8217;yi kullanarak bir uygulamay\u0131 Digital Ocean Droplet \u00fczerinde Nginx reverse proxy ile nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD)  pipeline&#8217;\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z.  Bu, uygulaman\u0131z\u0131n g\u00fcncellemelerini otomatik hale getirecek ve sunucu y\u00f6netimini kolayla\u015ft\u0131racakt\u0131r.  Haz\u0131rsan\u0131z,  ba\u015flayal\u0131m!<\/p>\n<h2>FastAPI, Nginx ve Digital Ocean: Temel Kavramlar<\/h2>\n<p>\u00d6ncelikle, projemizin temel bile\u015fenlerini anlamam\u0131z gerekiyor. FastAPI, modern ve performans odakl\u0131 bir Python web framework&#8217;\u00fcd\u00fcr.  Asenkron yap\u0131s\u0131 sayesinde y\u00fcksek performans sunar ve API geli\u015ftirmeyi olduk\u00e7a kolayla\u015ft\u0131r\u0131r.  Nginx, y\u00fcksek performansl\u0131 bir web sunucusu ve reverse proxy&#8217;dir.  Trafi\u011fi y\u00f6netir, statik dosyalar\u0131 sunar ve FastAPI uygulaman\u0131z\u0131n \u00f6n\u00fcne ge\u00e7erek g\u00fcvenlik ve performans katman\u0131 ekler.  Digital Ocean, \u00f6l\u00e7eklenebilir bulut sunucular\u0131 sunan bir platformdur.  Droplet&#8217;lerimiz, uygulamalar\u0131m\u0131z\u0131 bar\u0131nd\u0131raca\u011f\u0131m\u0131z sanal sunuculard\u0131r.<\/p>\n<p>Bu \u00fc\u00e7 bile\u015feni birle\u015ftirerek, g\u00fcvenli, h\u0131zl\u0131 ve \u00f6l\u00e7eklenebilir bir uygulama mimarisi kuraca\u011f\u0131z.  FastAPI, uygulaman\u0131n \u00e7ekirde\u011fini olu\u015fturacak, Nginx trafi\u011fi y\u00f6netecek ve Digital Ocean altyap\u0131s\u0131n\u0131 sa\u011flayacakt\u0131r. CI\/CD s\u00fcreci ise uygulaman\u0131n g\u00fcncellemelerini otomatikle\u015ftirecek ve manuel m\u00fcdahaleyi en aza indirecektir. Daha fazla bilgi i\u00e7in (https:\/\/fatihsoysal.com) inceleyebilirsiniz.<\/p>\n<h2>Digital Ocean Droplet&#8217;\u0131 Haz\u0131rlama: Ad\u0131m Ad\u0131m Kurulum<\/h2>\n<p>\u0130lk ad\u0131m\u0131m\u0131z, Digital Ocean&#8217;da bir Droplet olu\u015fturmakt\u0131r.  Bu s\u00fcre\u00e7, Digital Ocean kontrol panelinden birka\u00e7 t\u0131klamayla tamamlanabilir.  Ubuntu veya Debian gibi bir Linux da\u011f\u0131t\u0131m\u0131 se\u00e7meniz \u00f6nerilir. Droplet&#8217;\u0131n\u0131z\u0131 olu\u015fturduktan sonra SSH ile ba\u011flanarak gerekli yaz\u0131l\u0131mlar\u0131 kuraca\u011f\u0131z.  Bu ad\u0131mda, Python, pip,  Nginx ve gerekli di\u011fer paketleri kuraca\u011f\u0131z.  \u00d6zellikle g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 do\u011fru yapman\u0131z kritiktir. Sadece gerekli portlar\u0131n (\u00f6rne\u011fin, 80 ve 443 i\u00e7in HTTP ve HTTPS, ayr\u0131ca FastAPI uygulaman\u0131z\u0131n dinledi\u011fi port) a\u00e7\u0131k oldu\u011fundan emin olun.<\/p>\n<p>\u0130\u015fte \u00f6rnek bir kurulum komut dizisi:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y\nsudo apt install python3 python3-pip nginx -y<\/pre>\n<p><\/code><\/p>\n<p>Daha sonra, sisteminizin g\u00fcncel oldu\u011fundan ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131n kapat\u0131ld\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z.  Bunun i\u00e7in d\u00fczenli g\u00fcvenlik g\u00fcncellemelerini takip etmeniz ve g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmeniz \u00e7ok \u00f6nemlidir. G\u00fcvenlik duvar\u0131 hatalar\u0131, s\u0131zmalara ve verilerin \u00e7al\u0131nmas\u0131na neden olabilir.<\/p>\n<h2>FastAPI Uygulamas\u0131n\u0131n Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Digital Ocean Droplet'\u0131n\u0131za SSH ile ba\u011fland\u0131ktan sonra, FastAPI projenizi klonlayabilir veya yeni bir proje olu\u015fturabilirsiniz.  Projenizi sanal bir ortamda \u00e7al\u0131\u015ft\u0131rmak (virtualenv) iyi bir uygulamad\u0131r.  Bu, proje ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131z\u0131n sisteminizin genel Python kurulumunu etkilememesini sa\u011flar.  Projenizi olu\u015fturduktan sonra, gerekli paketleri <code>requirements.txt<\/code> dosyas\u0131na ekleyip <code>pip install -r requirements.txt<\/code> komutu ile y\u00fckleyebilirsiniz.<\/p>\n<p>\u0130\u015fte basit bir FastAPI uygulamas\u0131 \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-python\">from fastapi import FastAPI\n\napp = FastAPI()\n\n@app.get(\"\/\")\nasync def root():\n    return {\"message\": \"Hello World\"}<\/pre>\n<p><\/code><\/p>\n<p>Bu uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>uvicorn main:app --reload<\/code> komutunu kullanabilirsiniz (main.py dosyan\u0131zda \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z).  Uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olduktan sonra, Nginx ile entegre etmemiz gerekir.<\/p>\n<h2>Nginx Reverse Proxy'sinin Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>Nginx, FastAPI uygulaman\u0131z\u0131n \u00f6n\u00fcnde bir reverse proxy olarak \u00e7al\u0131\u015farak performans\u0131 art\u0131r\u0131r ve g\u00fcvenlik katman\u0131 ekler.  Nginx'in yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/nginx\/sites-available\/default<\/code>  konumunda bulunur.  Bu dosyay\u0131 d\u00fczenleyerek FastAPI uygulaman\u0131z\u0131n dinledi\u011fi porta y\u00f6nlendirme yapabilirsiniz.  HTTPS kullanmak i\u00e7in bir SSL sertifikas\u0131 (Let's Encrypt gibi) olu\u015fturman\u0131z ve yap\u0131land\u0131rman\u0131z gerekecektir.  Bu ad\u0131m, g\u00fcvenli\u011finiz i\u00e7in hayati \u00f6nem ta\u015f\u0131r.<\/p>\n<p>\u00d6rnek bir Nginx yap\u0131land\u0131rma dosyas\u0131:<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name your_domain.com;\n\n    location \/ {\n        proxy_pass http:\/\/127.0.0.1:8000; # FastAPI uygulaman\u0131z\u0131n portu\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    }\n}<\/pre>\n<p><\/code><\/p>\n<p>Yap\u0131land\u0131rmay\u0131 kaydettikten sonra <code>sudo nginx -t<\/code> komutu ile yap\u0131land\u0131rman\u0131n do\u011fru olup olmad\u0131\u011f\u0131n\u0131 kontrol edin ve ard\u0131ndan <code>sudo systemctl restart nginx<\/code> komutu ile Nginx'i yeniden ba\u015flat\u0131n.<\/p>\n<h2>CI\/CD Pipeline'\u0131n\u0131n Kurulumu<\/h2>\n<p>Uygulaman\u0131z\u0131n s\u00fcrekli entegrasyon ve s\u00fcrekli da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini otomatikle\u015ftirmek i\u00e7in bir CI\/CD pipeline'\u0131 kurman\u0131z \u00f6nerilir.  GitHub Actions, GitLab CI\/CD veya benzeri hizmetler kullanarak, kod de\u011fi\u015fikliklerinizi otomatik olarak Digital Ocean Droplet'\u0131n\u0131za da\u011f\u0131tabilirsiniz.  Bu, g\u00fcncellemeleri manuel olarak yapmak zorunda kalman\u0131z\u0131 \u00f6nler ve daha h\u0131zl\u0131 ve g\u00fcvenilir bir da\u011f\u0131t\u0131m sa\u011flar.  Bu s\u00fcre\u00e7, kodunuzu bir depoya (\u00f6rne\u011fin, GitHub) y\u00fcklemeniz, bir CI\/CD hizmetiyle entegre etmeniz ve da\u011f\u0131t\u0131m komutlar\u0131n\u0131z\u0131 bu hizmette tan\u0131mlaman\u0131z anlam\u0131na gelir.<\/p>\n<h2>Performans Optimizasyonu ve \u00d6l\u00e7eklendirme<\/h2>\n<p>Uygulaman\u0131z\u0131n performans\u0131n\u0131 optimize etmek i\u00e7in \u00e7e\u015fitli teknikler kullanabilirsiniz.  Bunlar aras\u0131nda FastAPI'nin asenkron yap\u0131s\u0131ndan tam olarak faydalanmak, veritaban\u0131 optimizasyonu, \u00f6nbellekleme ve Nginx'in performans ayarlar\u0131n\u0131 d\u00fczenlemek bulunur.  Uygulaman\u0131z\u0131n \u00f6l\u00e7eklenebilirli\u011fini art\u0131rmak i\u00e7in, Digital Ocean'da daha g\u00fc\u00e7l\u00fc Droplet'ler kullanabilir veya y\u00fck dengeleme (load balancing) kullanabilirsiniz.  Y\u00fck dengeleme, trafi\u011fi birden fazla sunucu aras\u0131nda da\u011f\u0131tarak tek bir sunucunun a\u015f\u0131r\u0131 y\u00fcklenmesini \u00f6nler.<\/p>\n<h2>Ger\u00e7ek D\u00fcnya Senaryolar\u0131 ve Vaka Analizleri<\/h2>\n<p>\u00d6rne\u011fin, e-ticaret uygulamas\u0131 geli\u015ftiren bir \u015firket, \u00fcr\u00fcn kataloglar\u0131n\u0131 ve sipari\u015f bilgilerini veritaban\u0131ndan h\u0131zl\u0131 bir \u015fekilde \u00e7ekmesi gereken bir API'ye ihtiya\u00e7 duyar.  FastAPI, bu y\u00fcksek performansl\u0131 API'yi geli\u015ftirmek i\u00e7in ideal bir se\u00e7imdir.  Nginx, trafi\u011fi y\u00f6netir ve statik dosyalar (resimler, CSS, JavaScript) sunarak sunucu y\u00fck\u00fcn\u00fc azalt\u0131r.  Digital Ocean, \u00f6l\u00e7eklenebilir altyap\u0131 sa\u011flar ve gerekti\u011finde daha fazla sunucu ekleme olana\u011f\u0131 sunar.  CI\/CD, g\u00fcncellemeleri otomatikle\u015ftirerek h\u0131zl\u0131 ve g\u00fcvenilir bir da\u011f\u0131t\u0131m sa\u011flar.  Bu \u015fekilde, e-ticaret \u015firketi, m\u00fc\u015fterilerine kesintisiz ve h\u0131zl\u0131 bir al\u0131\u015fveri\u015f deneyimi sunabilir.<\/p>\n<h2>\u0130leri D\u00fczey Teknikler ve \u0130pu\u00e7lar\u0131<\/h2>\n<p>Deneyimli geli\u015ftiriciler i\u00e7in baz\u0131 ileri d\u00fczey teknikler \u015funlard\u0131r:  Gunicorn'\u0131 FastAPI uygulaman\u0131z\u0131n \u00f6n\u00fcnde bir WSGI sunucusu olarak kullanmak, Nginx'i HTTPS ile yap\u0131land\u0131rmak ve Let's Encrypt kullanarak SSL sertifikalar\u0131 olu\u015fturmak, performans monit\u00f6rleme ara\u00e7lar\u0131 kullanmak ve loglar\u0131 analiz etmek, uygulama g\u00fcvenli\u011fini g\u00fc\u00e7lendirmek i\u00e7in g\u00fcvenlik duvar\u0131 kurallar\u0131 ve di\u011fer g\u00fcvenlik \u00f6nlemlerini yap\u0131land\u0131rmak.  Ayr\u0131ca, Docker ve Kubernetes gibi konteynerle\u015fme ve orkestrasyon teknolojilerini kullanarak uygulaman\u0131n da\u011f\u0131t\u0131m\u0131n\u0131 ve y\u00f6netimini daha da basitle\u015ftirebilirsiniz.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu makalede, FastAPI uygulamalar\u0131n\u0131 Digital Ocean Droplet'larda Nginx ve CI\/CD ile da\u011f\u0131tman\u0131n temel ad\u0131mlar\u0131n\u0131 inceledik.  Bu s\u00fcre\u00e7, uygulamalar\u0131n\u0131z\u0131n g\u00fcvenli\u011fini, performans\u0131n\u0131 ve \u00f6l\u00e7eklenebilirli\u011fini art\u0131r\u0131r.  Ancak unutmay\u0131n ki g\u00fcvenlik her zaman en \u00f6nemli husustur.  D\u00fczenli g\u00fcvenlik g\u00fcncellemelerini takip etmek ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak i\u00e7in proaktif ad\u0131mlar atman\u0131z kritiktir. Daha fazla bilgi i\u00e7in (https:\/\/fatihsoysal.com) inceleyebilirsiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular:<\/h3>\n<ul>\n<li><strong>Soru:<\/strong>  FastAPI'yi Nginx olmadan \u00e7al\u0131\u015ft\u0131rabilir miyim?  <strong>Cevap:<\/strong> Evet, ancak Nginx, performans, g\u00fcvenlik ve \u00f6l\u00e7eklenebilirlik avantajlar\u0131 sa\u011flar.\n    <\/li>\n<li><strong>Soru:<\/strong> Hangi CI\/CD platformunu kullanmal\u0131y\u0131m?  <strong>Cevap:<\/strong> GitHub Actions, GitLab CI\/CD, Jenkins gibi bir\u00e7ok se\u00e7enek mevcuttur.  \u0130htiya\u00e7lar\u0131n\u0131za ve tercihlerinize en uygun olan\u0131 se\u00e7in.\n    <\/li>\n<li><strong>Soru:<\/strong> SSL sertifikas\u0131 nas\u0131l olu\u015fturulur?  <strong>Cevap:<\/strong> Let's Encrypt gibi \u00fccretsiz SSL sertifika sa\u011flay\u0131c\u0131lar\u0131 kullanabilirsiniz.\n    <\/li>\n<li><strong>Soru:<\/strong> Uygulamam \u00e7ok yava\u015f \u00e7al\u0131\u015f\u0131yor.  Ne yapabilirim?  <strong>Cevap:<\/strong> Performans sorunlar\u0131n\u0131 gidermek i\u00e7in veritaban\u0131 optimizasyonu, \u00f6nbellekleme ve kod optimizasyonu tekniklerini uygulay\u0131n.\n    <\/li>\n<li><strong>Soru:<\/strong> Uygulaman\u0131n g\u00fcvenli\u011fini nas\u0131l art\u0131rabilirim?  <strong>Cevap:<\/strong> G\u00fc\u00e7l\u00fc parolalar kullan\u0131n, d\u00fczenli g\u00fcvenlik g\u00fcncellemelerini yap\u0131n, g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 do\u011fru yap\u0131land\u0131r\u0131n ve g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 d\u00fczenli olarak taray\u0131n.\n    <\/li>\n<\/ul>\n<p>Yazar: Fatih Soysal<\/p>\n<style>\n  @media (max-width: 768px) {\n    body {\n      font-size: 16px;\n    }\n    h1 {\n      font-size: 2em;\n    }\n    h2 {\n      font-size: 1.5em;\n    }\n    h3 {\n      font-size: 1.2em;\n    }\n    code {\n      font-size: 1em;\n    }\n    pre {\n      font-size: 1em;\n    }\n  }\n<\/style>\n","protected":false},"excerpt":{"rendered":"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#8217;ta Nginx ve CI\/CD ile Da\u011f\u0131tma H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek&hellip;","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-29596","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>FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#039;ta Nginx ve CI\/CD ile Da\u011f\u0131tma<\/title>\n<meta name=\"description\" content=\"H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek ve da\u011f\u0131tmak her zaman zorlu bir s\u00fcre\u00e7tir. Bu makalede, pop\u00fcler Python web framework&#039;\u00fc FastAPI&#039;yi kullanarak bir uygulamay\u0131 Digital Ocean Droplet \u00fczerinde Nginx reverse proxy ile nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) pipeline&#039;\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu, uygulaman\u0131z\u0131n g\u00fcncellemelerini otomatik hale getirecek ve sunucu y\u00f6netimini kolayla\u015ft\u0131racakt\u0131r. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\" \/>\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\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#039;ta Nginx ve CI\/CD ile Da\u011f\u0131tma\" \/>\n<meta property=\"og:description\" content=\"H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek ve da\u011f\u0131tmak her zaman zorlu bir s\u00fcre\u00e7tir. Bu makalede, pop\u00fcler Python web framework&#039;\u00fc FastAPI&#039;yi kullanarak bir uygulamay\u0131 Digital Ocean Droplet \u00fczerinde Nginx reverse proxy ile nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) pipeline&#039;\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu, uygulaman\u0131z\u0131n g\u00fcncellemelerini otomatik hale getirecek ve sunucu y\u00f6netimini kolayla\u015ft\u0131racakt\u0131r. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-16T09:30:27+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=\"7 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#8217;ta Nginx ve CI\/CD ile Da\u011f\u0131tma\",\"datePublished\":\"2025-09-16T09:30:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/\"},\"wordCount\":1358,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/\",\"name\":\"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet'ta Nginx ve CI\/CD ile Da\u011f\u0131tma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-16T09:30:27+00:00\",\"description\":\"H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek ve da\u011f\u0131tmak her zaman zorlu bir s\u00fcre\u00e7tir. Bu makalede, pop\u00fcler Python web framework'\u00fc FastAPI'yi kullanarak bir uygulamay\u0131 Digital Ocean Droplet \u00fczerinde Nginx reverse proxy ile nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) pipeline'\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu, uygulaman\u0131z\u0131n g\u00fcncellemelerini otomatik hale getirecek ve sunucu y\u00f6netimini kolayla\u015ft\u0131racakt\u0131r. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#8217;ta Nginx ve CI\/CD ile Da\u011f\u0131tma\"}]},{\"@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":"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet'ta Nginx ve CI\/CD ile Da\u011f\u0131tma","description":"H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek ve da\u011f\u0131tmak her zaman zorlu bir s\u00fcre\u00e7tir. Bu makalede, pop\u00fcler Python web framework'\u00fc FastAPI'yi kullanarak bir uygulamay\u0131 Digital Ocean Droplet \u00fczerinde Nginx reverse proxy ile nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) pipeline'\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu, uygulaman\u0131z\u0131n g\u00fcncellemelerini otomatik hale getirecek ve sunucu y\u00f6netimini kolayla\u015ft\u0131racakt\u0131r. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","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\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/","og_locale":"tr_TR","og_type":"article","og_title":"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet'ta Nginx ve CI\/CD ile Da\u011f\u0131tma","og_description":"H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek ve da\u011f\u0131tmak her zaman zorlu bir s\u00fcre\u00e7tir. Bu makalede, pop\u00fcler Python web framework'\u00fc FastAPI'yi kullanarak bir uygulamay\u0131 Digital Ocean Droplet \u00fczerinde Nginx reverse proxy ile nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) pipeline'\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu, uygulaman\u0131z\u0131n g\u00fcncellemelerini otomatik hale getirecek ve sunucu y\u00f6netimini kolayla\u015ft\u0131racakt\u0131r. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","og_url":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-16T09:30:27+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"7 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#8217;ta Nginx ve CI\/CD ile Da\u011f\u0131tma","datePublished":"2025-09-16T09:30:27+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/"},"wordCount":1358,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/","url":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/","name":"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet'ta Nginx ve CI\/CD ile Da\u011f\u0131tma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-16T09:30:27+00:00","description":"H\u0131zl\u0131, \u00f6l\u00e7eklenebilir ve g\u00fcvenilir bir web uygulamas\u0131 geli\u015ftirmek ve da\u011f\u0131tmak her zaman zorlu bir s\u00fcre\u00e7tir. Bu makalede, pop\u00fcler Python web framework'\u00fc FastAPI'yi kullanarak bir uygulamay\u0131 Digital Ocean Droplet \u00fczerinde Nginx reverse proxy ile nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve s\u00fcrekli entegrasyon\/s\u00fcrekli da\u011f\u0131t\u0131m (CI\/CD) pipeline'\u0131n\u0131 nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Bu, uygulaman\u0131z\u0131n g\u00fcncellemelerini otomatik hale getirecek ve sunucu y\u00f6netimini kolayla\u015ft\u0131racakt\u0131r. Haz\u0131rsan\u0131z, ba\u015flayal\u0131m!","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/fastapi-uygulamasini-digital-ocean-dropletta-nginx-ve-ci-cd-ile-dagitma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"FastAPI Uygulamas\u0131n\u0131 Digital Ocean Droplet&#8217;ta Nginx ve CI\/CD ile Da\u011f\u0131tma"}]},{"@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\/29596","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=29596"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/29596\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=29596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=29596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=29596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}