Ubuntu 18.04 Üzerinde Gitea Kurulumu

Gitea, git tarafından desteklenen alternatif bir açık kaynak kodlu, kendi kendine barındırılan sürüm kontrol sistemidir. Gitea Golang'da yazılmıştır ve herhangi bir platformda barındırılacak hafif bir çözümdür.

Ön şartlar

  • En az 2 CPU çekirdeği ve 1 GB RAM ile yeni Vultr Ubuntu 18.04 örneği
  • Sudo ayrıcalıklarına sahip root olmayan kullanıcı.
  • nginx
  • Git
  • mariadb

Adım 1: Nginx'i yükleyin

Vultr Ubuntu 18.04 Sunucu örneğinizi güncelleyin.

sudo apt update

Nginx'i yükleyin.

sudo apt -y install nginx

Nginx kurulduktan sonra, tarayıcıdaki nginx test sayfasına göz atarak çalışıp çalışmadığını test edin. Web tarayıcınızı açın vehttp://example.com

Nginx'i durdurmak, yeniden yüklemek, yeniden başlatmak, durumu kontrol etmek ve etkinleştirmek için aşağıdaki komutlar kullanılabilir.

sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl restart nginx.service
sudo systemctl reload nginx.service
sudo systemctl enable nginx.service

Adım 2: Git'i yükleyin

Git'i yükleyin.

sudo apt -y install git

Yüklendikten sonra sürümü kontrol edin:

git --version
git version 2.17.1

Adım 3: MariaDB Veritabanı Sunucusunu Yükleyin

Gitea aşağıdaki veritabanlarını destekler

  • Mariadb / MySQL
  • PostgreSQL
  • SQLite
  • TSKB

Bu eğitim için MariaDB sunucusunu ve istemcisini kuracağız.

sudo apt -y install mariadb-server mariadb-client

MariaDB'yi yükledikten sonra, aşağıdaki komutları durdurmak, başlatmak, yeniden başlatmak, durumunu kontrol etmek ve etkinleştirmek için kullanılabilir.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl restart mariadb.service
sudo systemctl status mariadb.service
sudo systemctl enable mariadb.service

Bundan sonra, bir kök parola oluşturarak ve uzak kök erişimine izin vermeyerek MariaDB sunucusunu güvenceye almak için aşağıdaki komutu çalıştırın.

sudo mysql_secure_installation

İstendiğinde, kılavuzu izleyerek aşağıdaki soruları yanıtlayın.

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

MariaDB'yi yeniden başlatın.

sudo systemctl restart mariadb.service

MariaDB'nin kurulu olup olmadığını test etmek için MariaDB sunucusunda oturum açmak üzere aşağıdaki komutu yazın

sudo mysql -u root -p

Ardından, giriş yapmak için yukarıda oluşturduğunuz şifreyi yazın. MariaDB karşılama mesajını göreceksiniz.

Adlı bir veritabanı oluşturun gitea.

CREATE DATABASE gitea;

Yeni bir giteauserparola ile çağrılmış bir veritabanı kullanıcısı oluşturun .

CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';

Ardından kullanıcıya veritabanına tam erişim izni verin.

GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

Son olarak, değişikliklerinizi kaydedin ve çıkın.

FLUSH PRIVILEGES;
EXIT;

Adım 4: Gitea Ortamını Hazırlayın

Gitea'yı çalıştırmak için bir kullanıcı oluşturun.

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

Gerekli dizin yapısını oluşturun.

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

Adım 5: Gitea'yı yükleyin

Gitea ikili dosyası aşağıdaki komutlar çalıştırılarak indirilebilir.

sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64 
sudo chmod +x gitea

İkili dosyayı global bir konuma kopyalayın.

sudo cp gitea /usr/local/bin/gitea

Adım 6: Gitea'yı otomatik olarak başlatmak için bir hizmet dosyası oluşturun

Linux hizmet dosyası oluşturun.

sudo nano /etc/systemd/system/gitea.service

Dosyayı aşağıdakilerle doldurun.

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
#After=mysqld.service
#After=postgresql.service
#After=memcached.service
#After=redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

Gitea'yı önyüklemede etkinleştirin ve başlatın.

sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

Status komutunu çalıştırın.

sudo systemctl status gitea

● gitea.service - Gitea (Git with a cup of tea)
  Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: en
  Active: active (running) since Wed 2018-10-10 14:15:28 CDT; 19ms ago
 Main PID: 17769 (gitea)
   Tasks: 4 (limit: 2321)
  CGroup: /system.slice/gitea.service
       ├─17769 /usr/local/bin/gitea web -c /etc/gitea/app.ini
       └─17774 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Adım 7: Nginx'i ters proxy olarak yapılandırma

Varsayılan nginx yapılandırma dosyasını silin.

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

Gitea için bir ters proxy yapılandırması oluşturun.

sudo nano /etc/nginx/sites-available/git

Dosyayı aşağıdaki yapılandırmayla doldurun.

upstream gitea {
    server 127.0.0.1:3000;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com;
    root /var/lib/gitea/public;
    access_log off;
    error_log off;

    location / {
      try_files maintain.html $uri $uri/index.html @node;
    }

    location @node {
      client_max_body_size 0;
      proxy_pass http://localhost:3000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_max_temp_file_size 0;
      proxy_redirect off;
      proxy_read_timeout 120;
    }
}

Gitea Nginx ters proxy yapılandırmasını etkinleştirin.

sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled

Ardından Nginx Hizmetini yeniden yükleyin.

sudo systemctl reload nginx.service

Ardından, tarayıcınızı açın ve sunucu ana makine adına veya IP adresine göz atın.

http://example.com/install

Gitea kurulumunu tamamlamak için ekrandaki talimatları izleyin.



Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun