Ubuntu 20.04te Kolay Kurulum Kod Sunucusu

Ubuntu 20.04te Kolay Kurulum Kod Sunucusu

Bu yazıda, Ubuntu 20.04'te Code-Server'ı kurmanız için size rehberlik edeceğiz.

Code-server, herhangi bir yerde herhangi bir makinede VS Code sunan ve ona tarayıcıdan erişen açık kaynaklı bir sunucu uygulamasıdır. Derlemeleri ve testleri hızlandırmak ve hareket halindeyken pilden tasarruf etmek için güçlü bulut sunucularından yararlanmaya olanak tanır.

Önkoşullar

  • Bir Ubuntu 20.04, min. önerilen: 4GB RAM, 2 vCPU.
  • VPS'ye işaret eden geçerli bir alan adı.
  • Yönetici ayrıcalıklarına sahip bir kök kullanıcı erişimi veya normal kullanıcı.

Ubuntu 20.04'te Code-Server'ı kurun

1. Sunucuyu güncelleyin

Sunucuyu güncel tutun.

# apt update -y

# apt upgrade -y

2. Kod Sunucusunu Kurun

Aşağıdaki komutu kullanarak kod sunucusunu resmi depodan indirin:

# cd /home
# wget https://github.com/cdr/code-server/releases/download/v3.11.0/code-server-3.11.0-linux-amd64.tar.gz

Tar dosyasını ayıklayın ve aşağıdaki komutu kullanarak kod sunucusuyla yeniden adlandırın :

# tar xzf code-server-3.11.0-linux-amd64.tar.gz && rm code-server-3.11.0-linux-amd64.tar.gz
# mv code-server-3.11.0-linux-amd64 code-server

Kod sunucusu ikili dosyasını yürütülebilir yapın.

# cd code-server

Kod sunucusunu çalıştırın.

./code-server --port 8000

Bilgisayarınızın tarayıcısını açın ve http://YOUR_IP_ADDRESS:8000'e gidin. Sizden bir şifre istenecektir. SSH terminalinde görüntülenen şifreyi kullanın. Visual Studio Code arayüzü açılacaktır. Sunucuyu durdurmak için  SSH terminalinde CTRL + C tuşlarına basın  .

3. Bir Sistem Başlatma Hizmeti Oluşturun

Linux'un systemd servis yöneticisini kullanarak bir servis oluşturabiliriz . Bu adımları takip et:

Aşağıdaki komutu kullanarak code-server.service adıyla yeni bir dosya oluşturun :

# vi /lib/systemd/system/code-server.service

Aşağıdaki içeriği kopyalayıp yapıştırın ve ayarlamak istediğiniz şifre ile değiştirin. Bu, kod sunucusuna giriş yapmak için kullanacağınız şifre olacaktır.

[Unit]
Description=Code Server Service
After=network.target

[Service]
Type=simple
Restart=on-failure
RestartSec=10
WorkingDirectory=/home/code-server
Environment='PASSWORD='
ExecStart=/home/code-server/code-server --port 8000
StandardOutput=file:/var/log/code-server-output.log
StandardError=file:/var/log/code-server-error.log

[Install]
WantedBy=multi-user.target

Dosyayı kaydedin ve kapatın.

Şimdi, aşağıdaki komutları kullanarak code-server.service'i başlatın ve etkinleştirin :

# systemctl daemon-reload

# systemctl start code-server

# systemctl enable code-server

Bilgisayarınızın tarayıcısını açın ve http://YOUR_IP_ADDRESS:8000'e gidin. Sizden bir şifre istenecektir. code-server.service dosyasında belirttiğiniz parolayı kullanın .

4. Nginx'i Kurun ve Yapılandırın

Kuruluma bir alan adı üzerinden erişmek ve bir SSL sertifikası eklemek için bir ters proxy kurulması önerilir. Bu gösterim amacıyla Nginx web sunucusunu ters proxy olarak kullanıyoruz.

Nginx'i kurmak için aşağıdaki komutu kullanın:

# apt-get install nginx -y

Varsayılan Nginx site yapılandırma dosyasını devre dışı bırakın.

# rm /etc/nginx/sites-enabled/default

Kod sunucusu için yeni bir Nginx site yapılandırma dosyası oluşturun.

# vi /etc/nginx/sites-available/code-server

Aşağıdaki parçacığı, example.com'u kendi alan adınızla değiştirerek dosyaya yapıştırın.

server {
listen 80;
listen [::]:80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8000/;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Yapılandırmayı etkinleştirin ve Nginx web sunucusunu yeniden başlatın.

# ln -s /etc/nginx/sites-available/code-server /etc/nginx/sites-enabled/

Nginx yapılandırma dosyasını test edin.

# nginx -t

Herhangi bir hata oluşmazsa, nginx hizmetini yeniden başlatın .

# systemctl restart nginx

Güvenlik duvarı olarak UFW kullanıyorsanız, güvenlik duvarı üzerinden SSH ve Nginx bağlantılarına izin verin ve güvenlik duvarını etkinleştirin. Bu, kod sunucusu kurulumuna yalnızca Nginx ters proxy üzerinden erişilebilir olmasını sağlayacaktır.

# ufw allow ssh
# ufw allow 'Nginx Full'
# ufw enable

Kurulumu test etmek için alan adınıza gidin.

5. Let's Encrypt SSL'yi kurun

Sunucu ve son kullanıcı arasındaki bağlantıyı güvende tutun, SSL sertifikası yüklemeniz şiddetle tavsiye edilir. Let's Encrypt 90 gün geçerliliği olan ücretsiz bir SSL sertifikasıdır ve her 90 günde bir yenilenir. SSL sertifikasını yüklemek için certbot kullanıyoruz .

Certbot'u indirin ve yükleyin.

# apt-get install python3-certbot-nginx

Certbot'un komut satırı yükleyicisini başlatmak için aşağıdaki komutu yürütün ve example.com'u kendi alan adınızla değiştirin.

# certbot --nginx -d example.com

Etkileşimli yükleyici ile devam edin. HTTP trafiğinin HTTPS'ye yönlendirilip yönlendirilmeyeceği sorulduğunda, yeniden yönlendirmeyi seçin.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/code-server

6. fail2ban'ı yükleyin (Önerilen)

Fail2ban, bir sunucudaki otomatik saldırıları tespit etmek ve azaltmak için günlükleri ayrıştıran bir uygulamadır. Önceden tanımlanmış sayıda başarısız oturum açma girişimi tespit edildiğinde fail2ban, sunucunun iptables'ını saldırganı önceden tanımlanmış bir süre boyunca engelleyecek şekilde değiştirir.

Kurulum araçlarını yükleyin. Bu fail2ban'ı yüklemek için gereklidir.

# apt-get install python3-setuptools -y

fail2ban.dll indirin ve kurun.

git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban
sudo python3 setup.py install
cp build/fail2ban.service /lib/systemd/system/fail2ban.service
cd .. && rm -rf fail2ban

Jails.conf varsayılan yapılandırma dosyasını jails.local'a kopyalayın ve kopyalanan dosyayı bir metin düzenleyicide açın.

# cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# vi /etc/fail2ban/jail.local

Aşağıdaki parçacığı dosyanın altına yapıştırın. Maxretry, findtime ve bantime parametrelerini değiştirebilirsiniz.

[code-server]
enabled = true
logpath = /var/log/code-server-output.log
# maxretry: The amount of unsuccessful login attempts after which a ban is issued.
maxretry = 5
# findtime: The amount of time within which the login attempts must occur.
findtime = 10m
# bantime: The amount of time for which an IP is banned from accessing the server.
bantime = 10m

Kod sunucusu günlüğünde başarısız oturum açma girişimlerini bulmak için filtre modelini tanımlamak için yeni bir filtre yapılandırma dosyası oluşturun.

# vi /etc/fail2ban/filter.d/code-server.conf

Aşağıdaki parçacığı dosyaya yapıştırın.

[Definition]
failregex = Failed login attempt {\'xForwardedFor\':\'\'.*
ignoreregex =
datepattern = "timestamp':{EPOCH}}$

rsyslog hizmetini yeniden başlatın ve fail2ban hizmetini etkinleştirip başlatın.

# systemctl restart rsyslog.service

# systemctl start fail2ban.service
# systemctl enable fail2ban.service

Bu kadar. Kurulum başarıyla tamamlandı.

Bu yazımızda sizlere Ubuntu 20.04 üzerine Code-Server kurulumunu anlattık.


nCr Değeri Nasıl Hesaplanır

nCr Değeri Nasıl Hesaplanır

Kombinasyon matematiksel bir kavramdır. Sıralarının alakasız olduğu birkaç nesnenin düzenlenmesini ifade eder. Temel bir formül, geçerli kombinasyonların sayısını tanımlar.

İlk Solidity Kodunuzu Nasıl Yazabilir ve Derleyebilirsiniz?

İlk Solidity Kodunuzu Nasıl Yazabilir ve Derleyebilirsiniz?

Solidity, Ethereum blok zincirindeki akıllı sözleşmeler tarafından kullanılan programlama dilidir. Statik olarak yazılmış, nesne yönelimli bir programlama dilidir.

SQL ve NoSQL: Bir Sonraki Projeniz İçin En İyi Veritabanı Nedir?

SQL ve NoSQL: Bir Sonraki Projeniz İçin En İyi Veritabanı Nedir?

SQL ve NoSQL: Bir Sonraki Projeniz İçin En İyi Veritabanı Nedir?

Python, C++ ve JavaScript Kullanarak N-Rakamlı Mükemmel Küpler ve Kareler Nasıl Bulunur?

Python, C++ ve JavaScript Kullanarak N-Rakamlı Mükemmel Küpler ve Kareler Nasıl Bulunur?

Birçok programcı, kod kullanarak zor matematik problemlerini çözmeyi sever. Zihni keskinleştirmeye ve problem çözme becerilerini geliştirmeye yardımcı olur. Bu makalede Python, C++ ve JavaScript kullanarak en küçük ve en büyük n basamaklı tam kareleri ve küpleri nasıl bulacağınızı öğreneceksiniz. Her örnek ayrıca birkaç farklı değer için örnek çıktı içerir.

Pythonu Komut Satırı Hesaplayıcısı Olarak Kullanma

Pythonu Komut Satırı Hesaplayıcısı Olarak Kullanma

Bilgisayarınızda bir grafik hesap makinesi kullanabilirsiniz, ancak Python programlama dili yorumlayıcısı bir masa hesap makinesi olarak da kullanılabilir. Python topluluğunda o kadar popüler bir koşu şakası ki, resmi eğitimde bahsedildi. Python'u hesap makinesi olarak nasıl kullanabileceğinizi buradan öğrenebilirsiniz.

WordPress Gönderilerinize Tweetler Nasıl Gömülür?

WordPress Gönderilerinize Tweetler Nasıl Gömülür?

WordPress gönderilerinize üçüncü taraf hizmetleri gömmek, bir ziyaretçinin ilgisini çekmenin heyecan verici bir yoludur. Gömülü içerik ayrıca taramayı kolaylaştıran görsel ipuçları sağlar. WordPress, bu tür içeriği eklemeyi kolaylaştırdı.

Jupyter Notebooku Kullanmaya Başlayın: Bir Eğitim

Jupyter Notebooku Kullanmaya Başlayın: Bir Eğitim

Python veya R ile çalışan gelecek vadeden bir veri bilimcisiyseniz, Jupyter Notebook'u nasıl kullanacağınızı bilmeniz gerekir. Verileri işlemek, canlı kodu paylaşmak ve veri bilimi iş akışını yönetmek için açık kaynaklı ve sunucu tabanlı bir IDE.

Kodlama Herkes İçin Değil: Kodlama Olmadan Alabileceğiniz 9 Teknoloji İşi

Kodlama Herkes İçin Değil: Kodlama Olmadan Alabileceğiniz 9 Teknoloji İşi

Teknoloji, şüphesiz geleceğin endüstrisidir. Kariyerinizin ilk ayağına atılmak üzere olan milyonlarca gençten biriyseniz, kodlamayı sevmiyorsanız ne yapacağınızı merak ediyor olabilirsiniz.

Yeni Başlayanlar İçin Pythonu Kullanmaya Başlamak İçin 7 Önemli Komut

Yeni Başlayanlar İçin Pythonu Kullanmaya Başlamak İçin 7 Önemli Komut

Yeni başlayanlar için hangi kavramları öğreneceğinizi ve bir sonraki dönüm noktasına ulaşmak için nasıl ilerleyeceğinizi ayrıntılı olarak açıklayan kapsamlı bir yol haritanız varsa, Python gibi yeni bir programlama dili öğrenmek zahmetsiz hale gelir. Orta seviye programcılar bile kendileri için sağlam bir temel oluşturmak için sık sık temellerini tazelemelidir.

İlk ASP.NET Web Uygulamanız: Nasıl Başlanır?

İlk ASP.NET Web Uygulamanız: Nasıl Başlanır?

ASP.NET, Microsoft'un web uygulamaları ve hizmetleri oluşturmaya yönelik ücretsiz çapraz platform çerçevesidir. ASP.NET platformu, farklı uygulamalar oluşturmak için kullanılan araçlar, programlama dilleri ve kitaplıklardan oluşan bir geliştirici platformu olan .NET'in bir uzantısıdır.