{"id":35300,"date":"2025-11-28T02:40:55","date_gmt":"2025-11-27T23:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35300"},"modified":"2025-11-28T02:40:55","modified_gmt":"2025-11-27T23:40:55","slug":"code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/","title":{"rendered":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]"},"content":{"rendered":"<p><body><\/p>\n<h2>code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda esneklik ve eri\u015filebilirlik, \u00fcretkenli\u011fin anahtarlar\u0131 haline gelmi\u015ftir. Geli\u015ftiricilerin herhangi bir yerden, herhangi bir cihazdan projelerine eri\u015febilmeleri, kesintisiz bir i\u015f ak\u0131\u015f\u0131 sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir. \u0130\u015fte tam da bu noktada, pop\u00fcler bir kod d\u00fczenleyici olan Visual Studio Code&#8217;un (VS Code) taray\u0131c\u0131 tabanl\u0131 bir versiyonu olan <code>code-server<\/code> devreye girer. Bu makalede, <code>code-server<\/code>&#8216;\u0131 Ubuntu 18.04 sunucunuz \u00fczerine nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve g\u00fcvenli bir \u015fekilde nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m, detayl\u0131 bir \u015fekilde a\u00e7\u0131klayaca\u011f\u0131z.<\/p>\n<h3>Giri\u015f: code-server Nedir ve Neden Kullanmal\u0131y\u0131z?<\/h3>\n<p><code>code-server<\/code>, Microsoft&#8217;un pop\u00fcler ve a\u00e7\u0131k kaynakl\u0131 kod d\u00fczenleyicisi Visual Studio Code&#8217;u bir sunucu \u00fczerinde \u00e7al\u0131\u015ft\u0131rman\u0131za ve web taray\u0131c\u0131n\u0131z arac\u0131l\u0131\u011f\u0131yla eri\u015fmenize olanak tan\u0131yan bir projedir. Temel olarak, VS Code&#8217;un t\u00fcm \u00f6zelliklerini (uzant\u0131lar, temalar, entegre terminal, hata ay\u0131klay\u0131c\u0131 vb.) bir bulut ortam\u0131nda kullanman\u0131z\u0131 sa\u011flar. Bu, geli\u015ftirme ortam\u0131n\u0131z\u0131 yerel makinenizin k\u0131s\u0131tlamalar\u0131ndan kurtar\u0131r ve size benzersiz bir esneklik sunar.<\/p>\n<p><code>code-server<\/code> kullanman\u0131n ba\u015fl\u0131ca avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong>Her Yerden Eri\u015fim:<\/strong> \u0130nternet ba\u011flant\u0131s\u0131 olan herhangi bir cihazdan (diz\u00fcst\u00fc bilgisayar, tablet, hatta ak\u0131ll\u0131 telefon) geli\u015ftirme ortam\u0131n\u0131za eri\u015febilirsiniz.<br \/>\n*   <strong>Tutarl\u0131 Geli\u015ftirme Ortam\u0131:<\/strong> T\u00fcm geli\u015ftiriciler ayn\u0131 sunucu \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131nda, &#8220;benim makinemde \u00e7al\u0131\u015f\u0131yordu&#8221; sorunlar\u0131 ortadan kalkar. Herkes ayn\u0131 ara\u00e7 setine, ba\u011f\u0131ml\u0131l\u0131klara ve yap\u0131land\u0131rmalara sahip olur.<br \/>\n*   <strong>Kaynak Verimlili\u011fi:<\/strong> Daha az g\u00fc\u00e7l\u00fc yerel cihazlarda bile, t\u00fcm yo\u011fun i\u015flem gerektiren g\u00f6revler sunucu \u00fczerinde ger\u00e7ekle\u015ftirildi\u011fi i\u00e7in sorunsuz bir deneyim sunar. Bu, \u00f6zellikle eski veya d\u00fc\u015f\u00fck \u00f6zellikli bilgisayarlar kullanan geli\u015ftiriciler i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r.<br \/>\n*   <strong>G\u00fcvenlik ve Yedekleme:<\/strong> Kodunuz ve geli\u015ftirme ortam\u0131n\u0131z merkezi bir sunucuda bar\u0131nd\u0131r\u0131ld\u0131\u011f\u0131 i\u00e7in, yerel makine ar\u0131zalar\u0131 veya kay\u0131plar\u0131 durumunda veri kayb\u0131 riski azal\u0131r. Sunucu yedeklemeleri ile verileriniz daha g\u00fcvende olur.<br \/>\n*   <strong>Kolay \u0130\u015fbirli\u011fi:<\/strong> Birden fazla geli\u015ftirici ayn\u0131 <code>code-server<\/code> \u00f6rne\u011fini kullanarak ayn\u0131 proje \u00fczerinde e\u015f zamanl\u0131 \u00e7al\u0131\u015fabilir (payla\u015f\u0131ml\u0131 bir oturum olmasa da ayn\u0131 dosya sistemine eri\u015febilirler).<br \/>\n*   <strong>H\u0131zl\u0131 Kurulum:<\/strong> Yeni bir geli\u015ftirme ortam\u0131 kurmak, sadece <code>code-server<\/code>&#8216;a eri\u015fmek kadar kolayd\u0131r. Her yeni makineye ayr\u0131 ayr\u0131 VS Code ve uzant\u0131lar\u0131n\u0131 kurmakla u\u011fra\u015fman\u0131za gerek kalmaz.<\/p>\n<p>Bu makalede, Ubuntu 18.04 LTS (Long Term Support) s\u00fcr\u00fcm\u00fcn\u00fc kullanarak <code>code-server<\/code> kurulumunu ele alaca\u011f\u0131z. Ubuntu 18.04, kararl\u0131l\u0131\u011f\u0131 ve geni\u015f topluluk deste\u011fi nedeniyle sunucu ortamlar\u0131 i\u00e7in pop\u00fcler bir se\u00e7imdir. Kurulumu tamamlad\u0131\u011f\u0131n\u0131zda, kendi \u00f6zel bulut tabanl\u0131 IDE&#8217;nize sahip olacak ve geli\u015ftirme s\u00fcrecinizi bir \u00fcst seviyeye ta\u015f\u0131yabileceksiniz.<\/p>\n<h3>\u00d6n Ko\u015fullar ve Sistem Gereksinimleri<\/h3>\n<p><code>code-server<\/code> kurulumuna ba\u015flamadan \u00f6nce, baz\u0131 temel \u00f6n ko\u015fullar\u0131 yerine getirmeniz ve sistem gereksinimlerini g\u00f6z \u00f6n\u00fcnde bulundurman\u0131z gerekmektedir.<\/p>\n<h4>Sunucu<\/h4>\n<p>*   <strong>\u0130\u015fletim Sistemi:<\/strong> Ubuntu 18.04 (64-bit). Bu makale \u00f6zellikle bu s\u00fcr\u00fcme odaklanacakt\u0131r.<br \/>\n*   <strong>Eri\u015fim:<\/strong> Sunucunuza SSH (Secure Shell) eri\u015fiminizin olmas\u0131 gerekmektedir. Genellikle, bir bulut sa\u011flay\u0131c\u0131s\u0131ndan (AWS, Google Cloud, DigitalOcean, Vultr vb.) bir Sanal \u00d6zel Sunucu (VPS) veya \u00f6zel bir sunucu kiralayabilirsiniz.<br \/>\n*   <strong>Kullan\u0131c\u0131 Yetkileri:<\/strong> Kurulumu ger\u00e7ekle\u015ftirmek i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131na ihtiyac\u0131n\u0131z olacakt\u0131r. Genellikle, SSH ile ba\u011fland\u0131\u011f\u0131n\u0131z ilk kullan\u0131c\u0131 bu yetkilere sahiptir.<\/p>\n<h4>Donan\u0131m Kaynaklar\u0131<\/h4>\n<p><code>code-server<\/code>&#8216;\u0131n performansl\u0131 \u00e7al\u0131\u015fabilmesi i\u00e7in belirli miktarda donan\u0131m kayna\u011f\u0131na ihtiyac\u0131 vard\u0131r. Gerekli kaynaklar, \u00fczerinde \u00e7al\u0131\u015faca\u011f\u0131n\u0131z projelerin b\u00fcy\u00fckl\u00fc\u011f\u00fcne ve ayn\u0131 anda ka\u00e7 kullan\u0131c\u0131n\u0131n eri\u015fece\u011fine ba\u011fl\u0131 olarak de\u011fi\u015fir:<\/p>\n<p>*   <strong>CPU:<\/strong> Minimum 1 \u00e7ekirdekli i\u015flemci, ancak daha b\u00fcy\u00fck projeler veya \u00e7oklu kullan\u0131c\u0131lar i\u00e7in 2 veya daha fazla \u00e7ekirdek \u00f6nerilir.<br \/>\n*   <strong>RAM:<\/strong> Minimum 1 GB RAM, ancak 2 GB veya daha fazlas\u0131 daha iyi bir deneyim sunacakt\u0131r. \u00d6zellikle Java, Go, C++ gibi dillerde veya \u00e7ok say\u0131da uzant\u0131 kullan\u0131yorsan\u0131z daha fazla RAM faydal\u0131 olacakt\u0131r.<br \/>\n*   <strong>Depolama:<\/strong> Minimum 10 GB bo\u015f disk alan\u0131. Bu, i\u015fletim sistemi, <code>code-server<\/code> ve projeleriniz i\u00e7in yeterli olacakt\u0131r. SSD diskler, performans a\u00e7\u0131s\u0131ndan HDD&#8217;lere g\u00f6re \u00e7ok daha iyi bir deneyim sunar.<\/p>\n<h4>A\u011f Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>*   <strong>G\u00fcvenlik Duvar\u0131 (Firewall):<\/strong> Sunucunuzda bir g\u00fcvenlik duvar\u0131 (\u00f6rne\u011fin UFW &#8211; Uncomplicated Firewall) etkinse, <code>code-server<\/code>&#8216;\u0131n varsay\u0131lan portu olan 8080&#8217;i ve daha sonra HTTPS i\u00e7in 80 ve 443 portlar\u0131n\u0131 a\u00e7man\u0131z gerekecektir.<br \/>\n*   <strong>Alan Ad\u0131 (Domain Name):<\/strong> G\u00fcvenli bir HTTPS ba\u011flant\u0131s\u0131 kurmak ve Let&#8217;s Encrypt sertifikas\u0131 almak i\u00e7in bir alan ad\u0131na sahip olman\u0131z ve bu alan ad\u0131n\u0131 sunucunuzun IP adresine y\u00f6nlendirmi\u015f olman\u0131z \u015fiddetle tavsiye edilir.<\/p>\n<p>Bu \u00f6n ko\u015fullar\u0131 sa\u011flad\u0131ktan sonra, <code>code-server<\/code> kurulumuna ge\u00e7meye haz\u0131r\u0131z.<\/p>\n<h3>Ad\u0131m 1: Sistemi G\u00fcncelleme ve Gerekli Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Kurma<\/h3>\n<p>Herhangi bir yeni yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin paket listesini g\u00fcncellemek ve mevcut paketleri y\u00fckseltmek iyi bir uygulamad\u0131r. Bu, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nler ve en son g\u00fcvenlik yamalar\u0131na sahip olman\u0131z\u0131 sa\u011flar. Ayr\u0131ca, <code>code-server<\/code>&#8216;\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in baz\u0131 temel ara\u00e7lara ihtiyac\u0131m\u0131z olacak.<\/p>\n<p>Sunucunuza SSH ile ba\u011fland\u0131ktan sonra a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>*   <code>sudo apt update<\/code>: Bu komut, yerel paket indeksinizi g\u00fcnceller. Yani, APT (Advanced Package Tool) paket y\u00f6neticisinin, mevcut paketlerin ve bunlar\u0131n s\u00fcr\u00fcmlerinin en son bilgilerini almas\u0131n\u0131 sa\u011flar. Bu, yeni yaz\u0131l\u0131mlar\u0131 bulmak ve mevcut yaz\u0131l\u0131mlar\u0131 g\u00fcncellemek i\u00e7in gereklidir.<br \/>\n*   <code>sudo apt upgrade -y<\/code>: Bu komut, <code>update<\/code> ile al\u0131nan bilgilere dayanarak, sisteminizdeki y\u00fckl\u00fc paketlerin yeni s\u00fcr\u00fcmleri varsa bunlar\u0131 y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 verilmesini sa\u011flar, b\u00f6ylece y\u00fckseltme i\u015flemi kesintisiz devam eder.<\/p>\n<p>Sisteminiz g\u00fcncellendikten sonra, <code>code-server<\/code> kurulum beti\u011finin veya baz\u0131 ba\u011f\u0131ml\u0131l\u0131klar\u0131n ihtiya\u00e7 duyabilece\u011fi birka\u00e7 temel arac\u0131 kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo apt install curl wget git build-essential -y<\/code><\/pre>\n<p>*   <code>curl<\/code>: Uzak sunuculardan veri indirmek i\u00e7in kullan\u0131lan bir komut sat\u0131r\u0131 arac\u0131d\u0131r. <code>code-server<\/code> kurulum beti\u011fini indirmek i\u00e7in kullan\u0131lacakt\u0131r.<br \/>\n*   <code>wget<\/code>: <code>curl<\/code>&#8216;a benzer \u015fekilde, web&#8217;den dosya indirmek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <code>git<\/code>: Versiyon kontrol sistemi. Geli\u015ftirme ortam\u0131n\u0131zda Git kullanmak isteyece\u011finiz i\u00e7in \u015fimdiden kurmak mant\u0131kl\u0131d\u0131r.<br \/>\n*   <code>build-essential<\/code>: Derleme ara\u00e7lar\u0131 (GCC, G++ ve make gibi) i\u00e7erir. Baz\u0131 Node.js mod\u00fclleri veya di\u011fer yaz\u0131l\u0131mlar derleme gerektirebilir, bu paket bu t\u00fcr durumlar i\u00e7in gereklidir.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, sisteminiz <code>code-server<\/code> kurulumuna haz\u0131rd\u0131r.<\/p>\n<h3>Ad\u0131m 2: code-server Kurulumu<\/h3>\n<p><code>code-server<\/code>&#8216;\u0131 kurman\u0131n en kolay yolu, geli\u015ftiriciler taraf\u0131ndan sa\u011flanan resmi kurulum beti\u011fini kullanmakt\u0131r. Bu betik, do\u011fru <code>code-server<\/code> s\u00fcr\u00fcm\u00fcn\u00fc indirir, sisteminize kurar ve PATH&#8217;inize ekler.<\/p>\n<p>A\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak <code>code-server<\/code>&#8216;\u0131 kurun:<\/p>\n<pre><code class=\"language-bash\">curl -fsSL https:\/\/code-server.dev\/install.sh | sh<\/code><\/pre>\n<p>Bu komutun ne anlama geldi\u011fini a\u00e7\u0131klayal\u0131m:<\/p>\n<p>*   <code>curl -fsSL https:\/\/code-server.dev\/install.sh<\/code>: <code>curl<\/code> komutunu kullanarak <code>code-server<\/code>&#8216;\u0131n resmi kurulum beti\u011fini indirir.<br \/>\n    *   <code>-f<\/code>: HTTP hatalar\u0131nda sessiz kal\u0131r (hata durumunda \u00e7\u0131kt\u0131 vermez).<br \/>\n    *   <code>-s<\/code>: Sessiz modda \u00e7al\u0131\u015f\u0131r (ilerleme \u00e7ubu\u011fu veya hata mesajlar\u0131 g\u00f6stermez).<br \/>\n    *   <code>-S<\/code>: <code>-s<\/code> ile birlikte kullan\u0131ld\u0131\u011f\u0131nda, e\u011fer bir hata olu\u015fursa yine de hata mesajlar\u0131n\u0131 g\u00f6sterir.<br \/>\n    *   <code>-L<\/code>: Y\u00f6nlendirmeleri takip eder (URL de\u011fi\u015fse bile do\u011fru adresi bulur).<br \/>\n*   <code>| sh<\/code>: \u0130ndirilen beti\u011fi do\u011frudan <code>sh<\/code> (Bourne Shell) yorumlay\u0131c\u0131s\u0131na y\u00f6nlendirir ve \u00e7al\u0131\u015ft\u0131r\u0131r. Bu, beti\u011fi \u00f6nce diske kaydetmeden do\u011frudan \u00e7al\u0131\u015ft\u0131rman\u0131z\u0131 sa\u011flar.<\/p>\n<p>Kurulum beti\u011fi, <code>code-server<\/code>&#8216;\u0131n en son kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc indirir ve <code>\/usr\/local\/bin\/code-server<\/code> konumuna kurar. Ayr\u0131ca, Node.js ve di\u011fer gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131 da otomatik olarak kurabilir veya g\u00fcncelleyebilir.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, <code>code-server<\/code>&#8216;\u0131n do\u011fru bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 ve eri\u015filebilir olup olmad\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in s\u00fcr\u00fcm\u00fcn\u00fc kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">code-server --version<\/code><\/pre>\n<p>Bu komut, y\u00fckl\u00fc <code>code-server<\/code> s\u00fcr\u00fcm\u00fcn\u00fc ve Node.js s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6stermelidir. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-\">3.11.1 528e67a0e8c894e77531c34a1795b8d29871589d\nNode.js 14.15.4<\/code><\/pre>\n<p>E\u011fer bu \u00e7\u0131kt\u0131y\u0131 g\u00f6r\u00fcyorsan\u0131z, <code>code-server<\/code> ba\u015far\u0131yla kurulmu\u015ftur.<\/p>\n<h3>Ad\u0131m 3: code-server&#8217;\u0131 Ba\u015flatma ve Eri\u015fim<\/h3>\n<p><code>code-server<\/code> ba\u015far\u0131yla kurulduktan sonra, onu manuel olarak ba\u015flatabilir ve web taray\u0131c\u0131n\u0131zdan eri\u015febilirsiniz. \u0130lk \u00e7al\u0131\u015ft\u0131rmada, <code>code-server<\/code> size bir \u015fifre atayacak ve bu \u015fifreyi kullanarak aray\u00fcze giri\u015f yapman\u0131z gerekecektir.<\/p>\n<p><code>code-server<\/code>&#8216;\u0131 ba\u015flatmak i\u00e7in basit\u00e7e a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">code-server<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, <code>code-server<\/code> varsay\u0131lan olarak 8080 portunda dinlemeye ba\u015flayacakt\u0131r. Konsolda, <code>code-server<\/code>&#8216;a eri\u015fmek i\u00e7in kullanman\u0131z gereken bir \u015fifre g\u00f6receksiniz. \u00c7\u0131kt\u0131 \u015f\u00f6yle bir \u015feye benzeyecektir:<\/p>\n<pre><code class=\"language-\">[INFO] code-server 3.11.1\n[INFO] Using user-data-dir \/home\/youruser\/.local\/share\/code-server\n[INFO] Using config file \/home\/youruser\/.config\/code-server\/config.yaml\n[INFO] Starting code-server on 0.0.0.0:8080\n[INFO]   - Password: YOUR_GENERATED_PASSWORD\n[INFO]   - Using cert: no\n[INFO] To use a self-signed HTTPS certificate, pass --cert\n[INFO] To use your own certificate, pass --cert-key and --cert<\/code><\/pre>\n<p>Yukar\u0131daki \u00e7\u0131kt\u0131da <code>YOUR_GENERATED_PASSWORD<\/code> yazan k\u0131s\u0131m, sizin i\u00e7in olu\u015fturulan ge\u00e7ici \u015fifredir. Bu \u015fifreyi not al\u0131n.<\/p>\n<p>\u015eimdi bir web taray\u0131c\u0131s\u0131 a\u00e7\u0131n ve sunucunuzun IP adresini ve 8080 portunu kullanarak <code>code-server<\/code>&#8216;a eri\u015fin:<\/p>\n<pre><code class=\"language-\">http:\/\/SUNUCU_IP_ADRESINIZ:8080<\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131zda bir \u015fifre ekran\u0131 belirecektir. Not ald\u0131\u011f\u0131n\u0131z \u015fifreyi girin ve &#8220;Submit&#8221; (G\u00f6nder) d\u00fc\u011fmesine t\u0131klay\u0131n. Ba\u015far\u0131l\u0131 bir \u015fekilde giri\u015f yapt\u0131ktan sonra, tan\u0131d\u0131k VS Code aray\u00fcz\u00fc taray\u0131c\u0131n\u0131zda a\u00e7\u0131lacakt\u0131r.<\/p>\n<p><strong>\u00d6nemli Not:<\/strong> \u015eu anda <code>code-server<\/code>&#8216;a HTTP \u00fczerinden eri\u015fiyorsunuz, bu da ba\u011flant\u0131n\u0131z\u0131n \u015fifresiz oldu\u011fu anlam\u0131na gelir. Bu, \u00f6zellikle hassas verilerle \u00e7al\u0131\u015f\u0131rken veya genel internet \u00fczerinden eri\u015firken g\u00fcvenlik riskleri ta\u015f\u0131r. Sonraki ad\u0131mlarda bu g\u00fcvenlik sorununu HTTPS kullanarak \u00e7\u00f6zece\u011fiz.<\/p>\n<p><code>code-server<\/code>&#8216;\u0131 bu \u015fekilde ba\u015flatt\u0131\u011f\u0131n\u0131zda, SSH oturumunuzu kapatt\u0131\u011f\u0131n\u0131zda veya komutu durdurdu\u011funuzda <code>code-server<\/code> da kapanacakt\u0131r. Bunu \u00f6nlemek ve <code>code-server<\/code>&#8216;\u0131n arka planda s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in, onu bir sistem servisi olarak yap\u0131land\u0131rmam\u0131z gerekecektir.<\/p>\n<h3>Ad\u0131m 4: code-server&#8217;\u0131 Bir Sistem Servisi Olarak Yap\u0131land\u0131rma (systemd)<\/h3>\n<p><code>code-server<\/code>&#8216;\u0131n s\u00fcrekli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak, sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak ve kaynak y\u00f6netimini kolayla\u015ft\u0131rmak i\u00e7in onu bir <code>systemd<\/code> servisi olarak yap\u0131land\u0131rmak en iyi y\u00f6ntemdir.<\/p>\n<p><code>systemd<\/code>, Linux sistemlerinde sistem ve servis y\u00f6neticisidir. Bir servis dosyas\u0131 olu\u015fturarak <code>systemd<\/code>&#8216;ye <code>code-server<\/code>&#8216;\u0131 nas\u0131l ba\u015flataca\u011f\u0131n\u0131, durduraca\u011f\u0131n\u0131, yeniden ba\u015flataca\u011f\u0131n\u0131 ve hata durumunda ne yapaca\u011f\u0131n\u0131 s\u00f6yleyebiliriz.<\/p>\n<p>\u00d6ncelikle, <code>code-server<\/code>&#8216;\u0131n \u00e7al\u0131\u015faca\u011f\u0131 bir kullan\u0131c\u0131 olu\u015fturmak iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r. <code>code-server<\/code>&#8216;\u0131 do\u011frudan <code>root<\/code> kullan\u0131c\u0131s\u0131 alt\u0131nda \u00e7al\u0131\u015ft\u0131rmak \u00f6nerilmez. Bu \u00f6rnekte mevcut kullan\u0131c\u0131 ad\u0131m\u0131z\u0131 kullanaca\u011f\u0131z, ancak dilerseniz <code>code-server<\/code> i\u00e7in \u00f6zel bir kullan\u0131c\u0131 olu\u015fturabilirsiniz.<\/p>\n<p>A\u015fa\u011f\u0131daki komutla yeni bir <code>systemd<\/code> servis dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/systemd\/system\/code-server.service<\/code><\/pre>\n<p>A\u00e7\u0131lan edit\u00f6re a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n. <code>YOUR_USERNAME<\/code> yazan yerleri kendi kullan\u0131c\u0131 ad\u0131n\u0131zla, <code>YOUR_PASSWORD<\/code> yazan yeri ise g\u00fcvenli bir \u015fifre ile de\u011fi\u015ftirmeyi unutmay\u0131n.<\/p>\n<pre><code class=\"language-ini\">[Unit]\nDescription=code-server\nAfter=network.target\n\n[Service]\nType=exec\nUser=YOUR_USERNAME\nGroup=YOUR_USERNAME\nWorkingDirectory=\/home\/YOUR_USERNAME\/\nExecStart=\/usr\/local\/bin\/code-server --bind-addr 127.0.0.1:8080 --auth password --password YOUR_PASSWORD\nRestart=always\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<p>Yukar\u0131daki yap\u0131land\u0131rma dosyas\u0131ndaki \u00f6nemli noktalar:<\/p>\n<p>*   <strong><code>[Unit]<\/code> B\u00f6l\u00fcm\u00fc:<\/strong><br \/>\n    *   <code>Description<\/code>: Servisin ne i\u015fe yarad\u0131\u011f\u0131n\u0131 a\u00e7\u0131klar.<br \/>\n    *   <code>After=network.target<\/code>: <code>code-server<\/code> servisinin a\u011f ba\u011flant\u0131s\u0131 kurulduktan sonra ba\u015flamas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong><code>[Service]<\/code> B\u00f6l\u00fcm\u00fc:<\/strong><br \/>\n    *   <code>Type=exec<\/code>: Servisin bir \u00e7al\u0131\u015ft\u0131r\u0131labilir dosya oldu\u011funu belirtir.<br \/>\n    *   <code>User=YOUR_USERNAME<\/code>: <code>code-server<\/code>&#8216;\u0131n hangi kullan\u0131c\u0131 alt\u0131nda \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirtir. <strong>Bu alan\u0131 kendi kullan\u0131c\u0131 ad\u0131n\u0131zla de\u011fi\u015ftirin.<\/strong><br \/>\n    *   <code>Group=YOUR_USERNAME<\/code>: <code>code-server<\/code>&#8216;\u0131n hangi grup alt\u0131nda \u00e7al\u0131\u015faca\u011f\u0131n\u0131 belirtir. <strong>Bu alan\u0131 kendi kullan\u0131c\u0131 ad\u0131n\u0131zla de\u011fi\u015ftirin.<\/strong><br \/>\n    *   <code>WorkingDirectory=\/home\/YOUR_USERNAME\/<\/code>: <code>code-server<\/code>&#8216;\u0131n hangi dizinde \u00e7al\u0131\u015fmaya ba\u015flayaca\u011f\u0131n\u0131 belirtir. Bu, varsay\u0131lan olarak projelerinizi arayaca\u011f\u0131 dizin olacakt\u0131r. <strong>Bu alan\u0131 kendi kullan\u0131c\u0131 ad\u0131n\u0131zla de\u011fi\u015ftirin.<\/strong><br \/>\n    *   <code>ExecStart=\/usr\/local\/bin\/code-server --bind-addr 127.0.0.1:8080 --auth password --password YOUR_PASSWORD<\/code>: <code>code-server<\/code>&#8216;\u0131 ba\u015flatmak i\u00e7in kullan\u0131lan komuttur.<br \/>\n        *   <code>--bind-addr 127.0.0.1:8080<\/code>: Bu \u00f6nemli bir ayard\u0131r. <code>code-server<\/code>&#8216;\u0131n sadece yerel makineden (localhost) eri\u015filebilir olmas\u0131n\u0131 sa\u011flar. Bu, daha sonra bir Nginx ters proxy&#8217;si kurdu\u011fumuzda, <code>code-server<\/code>&#8216;\u0131n do\u011frudan internete a\u00e7\u0131k olmamas\u0131n\u0131 ve sadece Nginx \u00fczerinden eri\u015filmesini garanti eder.<br \/>\n        *   <code>--auth password<\/code>: Kimlik do\u011frulama y\u00f6nteminin \u015fifre oldu\u011funu belirtir.<br \/>\n        *   <code>--password YOUR_PASSWORD<\/code>: <code>code-server<\/code>&#8216;a giri\u015f yapmak i\u00e7in kullan\u0131lacak \u015fifreyi belirler. <strong>Bu alan\u0131 g\u00fc\u00e7l\u00fc ve g\u00fcvenli bir \u015fifre ile de\u011fi\u015ftirin.<\/strong><br \/>\n    *   <code>Restart=always<\/code>: Servis herhangi bir nedenle durursa, <code>systemd<\/code>&#8216;nin onu otomatik olarak yeniden ba\u015flatmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong><code>[Install]<\/code> B\u00f6l\u00fcm\u00fc:<\/strong><br \/>\n    *   <code>WantedBy=multi-user.target<\/code>: Bu, sistem \u00e7ok kullan\u0131c\u0131l\u0131 modda ba\u015flad\u0131\u011f\u0131nda servisin de ba\u015flamas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n (Nano&#8217;da <code>CTRL+X<\/code>, <code>Y<\/code>, <code>Enter<\/code>).<\/p>\n<p>\u015eimdi, <code>systemd<\/code>&#8216;ye yeni servisi tan\u0131tmak ve onu etkinle\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable code-server\nsudo systemctl start code-server<\/code><\/pre>\n<p>*   <code>sudo systemctl daemon-reload<\/code>: <code>systemd<\/code>&#8216;nin yeni servis dosyas\u0131n\u0131 okumas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>sudo systemctl enable code-server<\/code>: <code>code-server<\/code> servisinin sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>sudo systemctl start code-server<\/code>: Servisi hemen ba\u015flat\u0131r.<\/p>\n<p>Servisin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status code-server<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>Active: active (running)<\/code> ifadesini g\u00f6rmelisiniz. Ayr\u0131ca, <code>journalctl -u code-server<\/code> komutu ile servisin loglar\u0131n\u0131 g\u00f6r\u00fcnt\u00fcleyebilir ve olas\u0131 hatalar\u0131 kontrol edebilirsiniz.<\/p>\n<p>Bu ad\u0131mla birlikte, <code>code-server<\/code> art\u0131k arka planda s\u00fcrekli \u00e7al\u0131\u015facak ve sunucunuz yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flayacakt\u0131r. Ancak, <code>--bind-addr 127.0.0.1:8080<\/code> ayar\u0131 nedeniyle, <code>code-server<\/code>&#8216;a do\u011frudan IP adresiniz ve 8080 portu \u00fczerinden d\u0131\u015far\u0131dan eri\u015femezsiniz. Bu, g\u00fcvenlik i\u00e7in kas\u0131tl\u0131 bir ad\u0131md\u0131r. Bir sonraki ad\u0131mda, Nginx kullanarak g\u00fcvenli HTTPS eri\u015fimi sa\u011flayaca\u011f\u0131z.<\/p>\n<h3>Ad\u0131m 5: G\u00fcvenli\u011fi Sa\u011flama (HTTPS ve Ters Proxy &#8211; Nginx ile)<\/h3>\n<p><code>code-server<\/code>&#8216;a sadece yerel makineden eri\u015filebilir hale getirdi\u011fimiz i\u00e7in, ona d\u0131\u015far\u0131dan g\u00fcvenli bir \u015fekilde eri\u015fmek i\u00e7in bir ters proxy (reverse proxy) kullanmam\u0131z gerekecek. Nginx, bu ama\u00e7 i\u00e7in pop\u00fcler ve y\u00fcksek performansl\u0131 bir web sunucusudur. Ayr\u0131ca, Let&#8217;s Encrypt ve Certbot kullanarak \u00fccretsiz bir SSL\/TLS sertifikas\u0131 alarak HTTPS ba\u011flant\u0131s\u0131n\u0131 etkinle\u015ftirece\u011fiz.<\/p>\n<h4>Nginx Kurulumu<\/h4>\n<p>Nginx&#8217;i sunucunuza kural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo apt install nginx -y<\/code><\/pre>\n<p>Nginx kurulduktan sonra, otomatik olarak ba\u015flayacakt\u0131r. Durumunu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status nginx<\/code><\/pre>\n<h4>G\u00fcvenlik Duvar\u0131n\u0131 Yap\u0131land\u0131rma (UFW)<\/h4>\n<p>E\u011fer UFW (Uncomplicated Firewall) kullan\u0131yorsan\u0131z, Nginx&#8217;in HTTP (80) ve HTTPS (443) portlar\u0131ndan gelen ba\u011flant\u0131lara izin vermesi i\u00e7in g\u00fcvenlik duvar\u0131n\u0131z\u0131 yap\u0131land\u0131rman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx Full'\nsudo ufw reload<\/code><\/pre>\n<p>E\u011fer UFW etkin de\u011filse ve etkinle\u015ftirmek istiyorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<h4>SSL Sertifikas\u0131 Alma (Let&#8217;s Encrypt ve Certbot)<\/h4>\n<p>HTTPS i\u00e7in bir SSL sertifikas\u0131na ihtiyac\u0131m\u0131z var. Let&#8217;s Encrypt, \u00fccretsiz ve otomatik sertifikalar sa\u011flayan bir sertifika yetkilisidir. Certbot ise Let&#8217;s Encrypt sertifikalar\u0131n\u0131 kolayca al\u0131p y\u00f6netmek i\u00e7in kullan\u0131lan bir ara\u00e7t\u0131r.<\/p>\n<p>Ubuntu 18.04&#8217;te Certbot&#8217;u Snap \u00fczerinden kurmak en kolay yoldur:<\/p>\n<pre><code class=\"language-bash\">sudo snap install core\nsudo snap refresh core\nsudo snap install --classic certbot\nsudo ln -s \/snap\/bin\/certbot \/usr\/bin\/certbot<\/code><\/pre>\n<p>\u015eimdi Nginx ile uyumlu bir \u015fekilde sertifika almak i\u00e7in Certbot&#8217;u \u00e7al\u0131\u015ft\u0131r\u0131n. <code>your_domain.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 yaz\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --nginx -d your_domain.com<\/code><\/pre>\n<p>Certbot sizden bir e-posta adresi isteyecek (acil durumlar ve yenileme bildirimleri i\u00e7in) ve hizmet ko\u015fullar\u0131n\u0131 kabul etmenizi isteyecektir. Ard\u0131ndan, Certbot Nginx yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak alg\u0131layacak ve sertifikay\u0131 al\u0131p Nginx&#8217;i HTTPS&#8217;i kullanacak \u015fekilde yap\u0131land\u0131racakt\u0131r. Ayr\u0131ca, HTTP trafi\u011fini HTTPS&#8217;e y\u00f6nlendirip y\u00f6nlendirmeme konusunda bir se\u00e7enek sunacakt\u0131r; genellikle &#8220;Redirect&#8221; (Y\u00f6nlendir) se\u00e7ene\u011fini (<code>2<\/code>) se\u00e7mek en iyisidir.<\/p>\n<h4>Nginx Ters Proxy Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>\u015eimdi Nginx&#8217;i <code>code-server<\/code>&#8216;a gelen istekleri y\u00f6nlendirecek \u015fekilde yap\u0131land\u0131ral\u0131m. Yeni bir Nginx yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/code-server<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n ve <code>your_domain.com<\/code> yazan yerleri kendi alan ad\u0131n\u0131zla de\u011fi\u015ftirin. Certbot&#8217;un zaten otomatik olarak SSL yap\u0131land\u0131rmas\u0131n\u0131 eklemi\u015f olmas\u0131 beklenir, ancak yine de temel ters proxy ayarlar\u0131n\u0131 eklememiz gerekiyor.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    listen [::]:80;\n    server_name your_domain.com;\n\n    return 301 https:\/\/$host$request_uri;\n}\n\nserver {\n    listen 443 ssl http2;\n    listen [::]:443 ssl http2;\n    server_name your_domain.com;\n\n    ssl_certificate \/etc\/letsencrypt\/live\/your_domain.com\/fullchain.pem;\n    ssl_certificate_key \/etc\/letsencrypt\/live\/your_domain.com\/privkey.pem;\n    ssl_session_cache shared:SSL:10m;\n    ssl_session_timeout 1d;\n    ssl_session_tickets off;\n    ssl_protocols TLSv1.2 TLSv1.3;\n    ssl_prefer_server_ciphers on;\n    ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;\n    ssl_stapling on;\n    ssl_stapling_verify on;\n    add_header Strict-Transport-Security \"max-age=63072000\" always;\n    add_header X-Frame-Options DENY;\n    add_header X-Content-Type-Options nosniff;\n\n    location \/ {\n        proxy_pass http:\/\/localhost:8080\/;\n        proxy_set_header Host $host;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection upgrade;\n        proxy_set_header Accept-Encoding gzip;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}<\/code><\/pre>\n<p><strong>A\u00e7\u0131klamalar:<\/strong><\/p>\n<p>*   \u0130lk <code>server<\/code> blo\u011fu, HTTP (80) \u00fczerinden gelen t\u00fcm istekleri HTTPS&#8217;e (443) y\u00f6nlendirir. Bu, Certbot taraf\u0131ndan otomatik olarak eklenmi\u015f veya de\u011fi\u015ftirilmi\u015f olabilir.<br \/>\n*   \u0130kinci <code>server<\/code> blo\u011fu, HTTPS (443) isteklerini dinler.<br \/>\n*   <code>ssl_certificate<\/code> ve <code>ssl_certificate_key<\/code>: Certbot taraf\u0131ndan olu\u015fturulan SSL sertifikas\u0131 ve anahtar\u0131n\u0131n yollar\u0131n\u0131 belirtir.<br \/>\n*   <code>location \/ {}<\/code>: T\u00fcm gelen isteklerin nas\u0131l i\u015flenece\u011fini tan\u0131mlar.<br \/>\n    *   <code>proxy_pass http:\/\/localhost:8080\/;<\/code>: Bu, Nginx&#8217;in gelen t\u00fcm istekleri <code>code-server<\/code>&#8216;\u0131n dinledi\u011fi yerel 8080 portuna y\u00f6nlendirmesini sa\u011flar.<br \/>\n    *   <code>proxy_set_header ...<\/code>: Bu ba\u015fl\u0131klar, <code>code-server<\/code>&#8216;\u0131n istemcinin ger\u00e7ek IP adresi, ana bilgisayar ad\u0131 ve protokol\u00fc gibi bilgilere eri\u015fmesini sa\u011flar. Bu, \u00f6zellikle loglama ve g\u00fcvenlik i\u00e7in \u00f6nemlidir.<\/p>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n.<\/p>\n<p>Yeni yap\u0131land\u0131rmay\u0131 etkinle\u015ftirmek i\u00e7in bir sembolik ba\u011flant\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/code-server \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n<p>Varsay\u0131lan Nginx yap\u0131land\u0131rmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131n, aksi takdirde \u00e7ak\u0131\u015fmalar ya\u015fanabilir:<\/p>\n<pre><code class=\"language-bash\">sudo rm \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p>Nginx yap\u0131land\u0131rman\u0131zda bir hata olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t<\/code><\/pre>\n<p>E\u011fer <code>syntax is ok<\/code> ve <code>test is successful<\/code> mesajlar\u0131n\u0131 g\u00f6r\u00fcyorsan\u0131z, her \u015fey yolundad\u0131r. \u015eimdi Nginx&#8217;i yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart nginx<\/code><\/pre>\n<p>Art\u0131k web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve alan ad\u0131n\u0131z\u0131 kullanarak <code>code-server<\/code>&#8216;a eri\u015fin:<\/p>\n<pre><code class=\"language-\">https:\/\/your_domain.com<\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131z\u0131n adres \u00e7ubu\u011funda bir kilit simgesi g\u00f6rmelisiniz, bu da ba\u011flant\u0131n\u0131z\u0131n HTTPS ile g\u00fcvenli oldu\u011funu g\u00f6sterir. <code>code-server<\/code> sizden daha \u00f6nce <code>systemd<\/code> servisinde belirledi\u011finiz \u015fifreyi isteyecektir.<\/p>\n<h3>Ad\u0131m 6: code-server Yap\u0131land\u0131rmas\u0131 ve \u00d6zelle\u015ftirmeler<\/h3>\n<p><code>code-server<\/code>&#8216;\u0131 kurduktan ve g\u00fcvenli bir \u015fekilde eri\u015filebilir hale getirdikten sonra, deneyiminizi daha da iyile\u015ftirmek i\u00e7in baz\u0131 yap\u0131land\u0131rma ayarlar\u0131 ve \u00f6zelle\u015ftirmeler yapabilirsiniz.<\/p>\n<h4>Yap\u0131land\u0131rma Dosyas\u0131<\/h4>\n<p><code>code-server<\/code>&#8216;\u0131n ana yap\u0131land\u0131rma dosyas\u0131 genellikle kullan\u0131c\u0131n\u0131n ev dizinindeki <code>.config\/code-server\/config.yaml<\/code> yolunda bulunur. Bu dosyay\u0131 d\u00fczenleyerek <code>code-server<\/code>&#8216;\u0131n ba\u015flang\u0131\u00e7 davran\u0131\u015flar\u0131n\u0131 kontrol edebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">nano ~\/.config\/code-server\/config.yaml<\/code><\/pre>\n<p>Bu dosya, <code>systemd<\/code> servisinde <code>ExecStart<\/code> i\u00e7inde belirtti\u011finiz komut sat\u0131r\u0131 arg\u00fcmanlar\u0131n\u0131n bir\u00e7o\u011funu i\u00e7erebilir. \u00d6rne\u011fin, \u015fifreyi veya dinleme adresini buradan da ayarlayabilirsiniz. Ancak, <code>systemd<\/code> servisinde belirtti\u011finiz arg\u00fcmanlar, bu yap\u0131land\u0131rma dosyas\u0131ndaki ayarlar\u0131 ge\u00e7ersiz k\u0131lacakt\u0131r. Bu nedenle, <code>systemd<\/code> servisi daha \u00f6nceliklidir.<\/p>\n<p>E\u011fer <code>systemd<\/code> servisinde \u015fifre yerine yap\u0131land\u0131rma dosyas\u0131n\u0131 kullanmak isterseniz, <code>ExecStart<\/code> sat\u0131r\u0131n\u0131 a\u015fa\u011f\u0131daki gibi d\u00fczenleyebilir ve \u015fifreyi <code>config.yaml<\/code> dosyas\u0131na ta\u015f\u0131yabilirsiniz:<\/p>\n<p><strong><code>code-server.service<\/code> i\u00e7inde (\u015fifreyi kald\u0131r\u0131n):<\/strong><\/p>\n<pre><code class=\"language-ini\">ExecStart=\/usr\/local\/bin\/code-server --bind-addr 127.0.0.1:8080<\/code><\/pre>\n<p><strong><code>~\/.config\/code-server\/config.yaml<\/code> i\u00e7inde (\u015fifreyi buraya ekleyin):<\/strong><\/p>\n<pre><code class=\"language-yaml\">bind-addr: 127.0.0.1:8080\nauth: password\npassword: YOUR_SECURE_PASSWORD<\/code><\/pre>\n<p>Herhangi bir de\u011fi\u015fiklik yapt\u0131ktan sonra <code>systemd<\/code> servisini veya <code>code-server<\/code>&#8216;\u0131 yeniden ba\u015flatmay\u0131 unutmay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart code-server<\/code><\/pre>\n<h4>VS Code Uzant\u0131lar\u0131 ve Ayarlar\u0131<\/h4>\n<p><code>code-server<\/code>, standart VS Code uzant\u0131lar\u0131n\u0131 ve ayarlar\u0131n\u0131 destekler. Taray\u0131c\u0131n\u0131zdaki <code>code-server<\/code> aray\u00fcz\u00fcnden sol taraftaki uzant\u0131lar simgesine t\u0131klayarak uzant\u0131lar\u0131 arayabilir, kurabilir ve y\u00f6netebilirsiniz.<\/p>\n<p>Pop\u00fcler uzant\u0131lar aras\u0131nda:<\/p>\n<p>*   <strong>Dil Uzant\u0131lar\u0131:<\/strong> Python, JavaScript\/TypeScript, Go, PHP, Java vb.<br \/>\n*   <strong>GitLens:<\/strong> Git entegrasyonunu geli\u015ftirir.<br \/>\n*   <strong>Docker:<\/strong> Docker konteynerleri ile \u00e7al\u0131\u015fmay\u0131 kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Prettier\/ESLint:<\/strong> Kod bi\u00e7imlendirme ve linting i\u00e7in.<br \/>\n*   <strong>Remote &#8211; SSH:<\/strong> (E\u011fer ba\u015fka sunuculara SSH ile ba\u011flanmak isterseniz)<\/p>\n<p>Ayr\u0131ca, VS Code&#8217;un sol alt k\u00f6\u015fesindeki di\u015fli simgesine t\u0131klayarak veya <code>CTRL+,<\/code> (Windows\/Linux) \/ <code>CMD+,<\/code> (macOS) tu\u015f kombinasyonuyla ayarlar men\u00fcs\u00fcne eri\u015febilirsiniz. Burada temalar\u0131, yaz\u0131 tiplerini, klavye k\u0131sayollar\u0131n\u0131 ve di\u011fer t\u00fcm VS Code ayarlar\u0131n\u0131 ki\u015fiselle\u015ftirebilirsiniz. Bu ayarlar, <code>code-server<\/code>&#8216;\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sunucu \u00fczerinde sakland\u0131\u011f\u0131 i\u00e7in, farkl\u0131 cihazlardan eri\u015fti\u011finizde bile ayarlar\u0131n\u0131z tutarl\u0131 kal\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p><code>code-server<\/code> kurulumu s\u0131ras\u0131nda veya sonras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve bunlar\u0131n \u00e7\u00f6z\u00fcmleri a\u015fa\u011f\u0131da listelenmi\u015ftir:<\/p>\n<h4>1. Taray\u0131c\u0131dan Eri\u015filemiyor (Ba\u011flant\u0131 Kurulam\u0131yor)<\/h4>\n<p>*   <strong>G\u00fcvenlik Duvar\u0131:<\/strong> <code>code-server<\/code>&#8216;a do\u011frudan eri\u015fmeye \u00e7al\u0131\u015f\u0131yorsan\u0131z (Nginx olmadan), sunucunuzun g\u00fcvenlik duvar\u0131nda 8080 portunun a\u00e7\u0131k oldu\u011fundan emin olun (<code>sudo ufw allow 8080<\/code>). E\u011fer Nginx kullan\u0131yorsan\u0131z, 80 ve 443 portlar\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olun (<code>sudo ufw allow 'Nginx Full'<\/code>).<br \/>\n*   <strong>code-server \u00c7al\u0131\u015f\u0131yor mu?<\/strong>: <code>sudo systemctl status code-server<\/code> komutuyla servisin aktif ve \u00e7al\u0131\u015f\u0131r durumda oldu\u011funu do\u011frulay\u0131n. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, <code>sudo systemctl start code-server<\/code> ile ba\u015flat\u0131n ve <code>journalctl -u code-server<\/code> ile loglar\u0131 kontrol edin.<br \/>\n*   <strong>Nginx \u00c7al\u0131\u015f\u0131yor mu?<\/strong>: E\u011fer Nginx kullan\u0131yorsan\u0131z, <code>sudo systemctl status nginx<\/code> ile Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n.<br \/>\n*   <strong><code>--bind-addr<\/code> Ayar\u0131:<\/strong> <code>systemd<\/code> servis dosyas\u0131nda <code>--bind-addr 127.0.0.1:8080<\/code> ayar\u0131n\u0131 yapt\u0131ysan\u0131z, <code>code-server<\/code> sadece localhost \u00fczerinden eri\u015filebilir demektir. Bu durumda do\u011frudan IP:8080 \u00fczerinden eri\u015femezsiniz, Nginx ters proxy&#8217;si \u00fczerinden eri\u015fmeniz gerekir.<\/p>\n<h4>2. \u015eifre Hatas\u0131<\/h4>\n<p>*   <strong>Do\u011fru \u015eifre:<\/strong> <code>systemd<\/code> servisinde <code>YOUR_PASSWORD<\/code> olarak belirledi\u011finiz \u015fifreyi do\u011fru girdi\u011finizden emin olun. K\u00fc\u00e7\u00fck\/b\u00fcy\u00fck harf duyarl\u0131d\u0131r.<br \/>\n*   <strong>Yap\u0131land\u0131rma Dosyas\u0131:<\/strong> E\u011fer \u015fifreyi <code>config.yaml<\/code> dosyas\u0131na ta\u015f\u0131d\u0131ysan\u0131z, bu dosyay\u0131 kontrol edin ve do\u011fru \u015fifreyi girdi\u011finizden emin olun.<br \/>\n*   <strong>Servisi Yeniden Ba\u015flatma:<\/strong> \u015eifreyi de\u011fi\u015ftirdiyseniz, <code>sudo systemctl restart code-server<\/code> komutuyla servisi yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h4>3. Nginx Hatalar\u0131 (502 Bad Gateway veya Di\u011fer Hatalar)<\/h4>\n<p>*   <strong>Nginx Yap\u0131land\u0131rma Testi:<\/strong> <code>sudo nginx -t<\/code> komutuyla Nginx yap\u0131land\u0131rma dosyan\u0131zda s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Nginx Yeniden Ba\u015flatma:<\/strong> Herhangi bir Nginx yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra <code>sudo systemctl restart nginx<\/code> komutuyla Nginx&#8217;i yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zdan emin olun.<br \/>\n*   <strong>code-server Dinliyor mu?<\/strong>: <code>code-server<\/code>&#8216;\u0131n <code>localhost:8080<\/code> \u00fczerinde dinledi\u011finden emin olun. <code>sudo ss -tulpn | grep 8080<\/code> komutuyla kontrol edebilirsiniz. <code>code-server<\/code>&#8216;\u0131n IP&#8217;ye de\u011fil, sadece <code>localhost<\/code>&#8216;a ba\u011fl\u0131 oldu\u011fundan emin olun.<br \/>\n*   <strong>Certbot Sertifikalar\u0131:<\/strong> SSL sertifikalar\u0131n\u0131n ge\u00e7erli ve do\u011fru yollarda oldu\u011fundan emin olun. <code>sudo certbot certificates<\/code> komutuyla mevcut sertifikalar\u0131n\u0131z\u0131 listeleyebilirsiniz.<\/p>\n<h4>4. Performans Sorunlar\u0131<\/h4>\n<p>*   <strong>Sistem Kaynaklar\u0131:<\/strong> Sunucunuzun CPU, RAM ve disk I\/O kullan\u0131m\u0131n\u0131 kontrol edin (<code>htop<\/code>, <code>free -h<\/code>, <code>iostat<\/code>). Yetersiz kaynaklar performans\u0131 d\u00fc\u015f\u00fcrebilir.<br \/>\n*   <strong>Uzant\u0131lar:<\/strong> \u00c7ok fazla uzant\u0131 kullanmak veya baz\u0131 uzant\u0131lar\u0131n bellek s\u0131z\u0131nt\u0131lar\u0131 olmas\u0131 performans\u0131 etkileyebilir. Gereksiz uzant\u0131lar\u0131 devre d\u0131\u015f\u0131 b\u0131rakmay\u0131 veya kald\u0131rmay\u0131 deneyin.<br \/>\n*   <strong>A\u011f Ba\u011flant\u0131s\u0131:<\/strong> \u0130nternet ba\u011flant\u0131n\u0131z\u0131n h\u0131z\u0131 ve kararl\u0131l\u0131\u011f\u0131 da <code>code-server<\/code> deneyiminizi etkiler. Yava\u015f veya dengesiz bir ba\u011flant\u0131 gecikmelere neden olabilir.<\/p>\n<h4>5. Sertifika Yenileme Sorunlar\u0131<\/h4>\n<p>*   Certbot taraf\u0131ndan al\u0131nan Let&#8217;s Encrypt sertifikalar\u0131 90 g\u00fcn ge\u00e7erlidir. Certbot, sertifikalar\u0131 otomatik olarak yenilemek i\u00e7in bir cron i\u015fi veya systemd zamanlay\u0131c\u0131s\u0131 kurar.<br \/>\n*   Yenileme i\u015fleminin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in test edebilirsiniz: <code>sudo certbot renew --dry-run<\/code>. Herhangi bir hata yoksa, otomatik yenileme \u00e7al\u0131\u015facakt\u0131r.<\/p>\n<p>Bu sorun giderme ad\u0131mlar\u0131, kar\u015f\u0131la\u015fabilece\u011finiz \u00e7o\u011fu problemi \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. E\u011fer sorun devam ederse, <code>journalctl -u code-server<\/code> ve <code>journalctl -u nginx<\/code> gibi komutlarla sistem loglar\u0131n\u0131 daha detayl\u0131 incelemek, sorunun k\u00f6k nedenini bulmak i\u00e7in \u00f6nemlidir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 makalede, <code>code-server<\/code> bulut IDE platformunu Ubuntu 18.04 sunucunuza nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, bir <code>systemd<\/code> servisi olarak nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve Nginx ile g\u00fcvenli HTTPS eri\u015fimini nas\u0131l sa\u011flayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011frendiniz. Art\u0131k, internet ba\u011flant\u0131s\u0131 olan herhangi bir cihazdan, taray\u0131c\u0131n\u0131z arac\u0131l\u0131\u011f\u0131yla tam te\u015fekk\u00fcll\u00fc bir VS Code geli\u015ftirme ortam\u0131na eri\u015febilirsiniz.<\/p>\n<p><code>code-server<\/code>, geli\u015ftirme i\u015f ak\u0131\u015f\u0131n\u0131za esneklik, tutarl\u0131l\u0131k ve eri\u015filebilirlik katarak \u00fcretkenli\u011finizi art\u0131rman\u0131za olanak tan\u0131r. Sunucu \u00fczerindeki g\u00fc\u00e7l\u00fc kaynaklar\u0131 kullanarak, yerel makinenizin k\u0131s\u0131tlamalar\u0131ndan ba\u011f\u0131ms\u0131z olarak b\u00fcy\u00fck projeler \u00fczerinde \u00e7al\u0131\u015fabilir, uzant\u0131larla ortam\u0131n\u0131z\u0131 zenginle\u015ftirebilir ve her yerden kod yazma \u00f6zg\u00fcrl\u00fc\u011f\u00fcn\u00fc ya\u015fayabilirsiniz.<\/p>\n<p>Kurulum s\u00fcrecinde dikkat edilmesi gereken en \u00f6nemli noktalar, g\u00fcvenlik duvar\u0131 ayarlar\u0131, <code>systemd<\/code> servisi i\u00e7in do\u011fru kullan\u0131c\u0131 ve \u015fifre yap\u0131land\u0131rmas\u0131, ve Nginx ters proxy&#8217;sinin do\u011fru \u015fekilde SSL sertifikalar\u0131 ile entegre edilmesidir. Bu ad\u0131mlar\u0131 titizlikle takip ederek, kendi ki\u015fisel veya ekip bulut IDE&#8217;nizi ba\u015far\u0131yla devreye alabilirsiniz.<\/p>\n<p>Geli\u015ftirme yolculu\u011funuzda <code>code-server<\/code>&#8216;\u0131n size sundu\u011fu avantajlardan tam olarak yararlanmak i\u00e7in, farkl\u0131 uzant\u0131lar\u0131 ke\u015ffetmeyi, VS Code ayarlar\u0131n\u0131z\u0131 ki\u015fiselle\u015ftirmeyi ve projelerinizi bu yeni, g\u00fc\u00e7l\u00fc ortamda denemeyi unutmay\u0131n. Mutlu kodlamalar!<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\nG\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda esneklik ve eri","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":[1468],"tags":[],"class_list":{"0":"post-35300","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","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>code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - 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\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\" \/>\n<meta property=\"og:description\" content=\"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda esneklik ve eri\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-27T23:40:55+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=\"23 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\",\"datePublished\":\"2025-11-27T23:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/\"},\"wordCount\":3870,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/\",\"name\":\"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-27T23:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]\"}]},{\"@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":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - 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\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/","og_locale":"tr_TR","og_type":"article","og_title":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]","og_description":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda esneklik ve eri","og_url":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-27T23:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"23 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]","datePublished":"2025-11-27T23:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/"},"wordCount":3870,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/","url":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/","name":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7] - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-27T23:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/code-server-bulut-ide-platformunu-ubuntu-18-04-uzerine-kurulumu-hizli-baslangic\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"code-server Bulut IDE Platformunu Ubuntu 18.04 \u00dczerine Kurulumu [H\u0131zl\u0131 Ba\u015flang\u0131\u00e7]"}]},{"@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\/35300","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=35300"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35300\/revisions"}],"predecessor-version":[{"id":35301,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35300\/revisions\/35301"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}