GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal layanan Gitea Git di Debian 11

Gitea adalah server Git gratis, open-source, self-hosted, dan terkenal yang ditulis dalam bahasa pemrograman Go. Ini adalah platform kontrol versi yang mirip dengan Github. Ini kuat, terukur dan menawarkan banyak fitur termasuk masalah dan pelacakan waktu, percabangan repositori, penguncian file, dan penandaan, penggabungan, dan banyak lainnya. Jika Anda mencari layanan Git yang dihosting sendiri, mungkin Gitea adalah opsi terbaik yang dapat Anda gunakan.

Dalam tutorial ini, saya akan menunjukkan cara menginstal Gitea di Debian 11.

Prasyarat

  • Server yang menjalankan Debian 11.
  • Kata sandi root dikonfigurasi di server.

Instal dan Konfigurasikan Database MariaDB

Gitea menggunakan MariaDB/MySQL sebagai backend database. Jadi server database harus diinstal di server Anda. Jika belum terinstal, Anda dapat menginstalnya dengan menjalankan perintah berikut:

apt-get install mariadb-server -y

Setelah MariaDB diinstal, Anda perlu mengatur kata sandi MariaDB dan mengamankan instalasi. Anda dapat melakukannya dengan menjalankan skrip mysql_secure_installation:

mysql_secure_installation

Jawab semua pertanyaan seperti yang ditunjukkan di bawah ini:

Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Set root password? [Y/n] Y
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

Selanjutnya, sambungkan ke antarmuka MariaDB menggunakan perintah berikut:

mysql -u root -p

Setelah Anda terhubung, buat database dan pengguna untuk Gitea dengan perintah berikut:

MariaDB [(none)]> CREATE DATABASE gitea;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password';

Selanjutnya, flush hak istimewa dan keluar dari MariaDB dengan perintah berikut:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> QUIT;

Instal Gitea

Pertama, Anda perlu membuat pengguna khusus untuk menjalankan Gitea. Anda dapat membuatnya dengan perintah berikut:

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

Anda akan melihat output berikut:

Adding system user `git' (UID 109) ...
Adding new group `git' (GID 115) ...
Adding new user `git' (UID 109) with group `git' ...
Creating home directory `/opt/git' ...

Selanjutnya, unduh Gitea versi terbaru dengan perintah berikut:

curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |grep browser_download_url | cut -d '"' -f 4 | grep '\linux-amd64$' | wget -i -

Selanjutnya, pindahkan biner Gitea ke jalur sistem dengan perintah berikut:

mv gitea-*-linux-amd64 /usr/local/bin/gitea

Selanjutnya, atur izin yang dapat dieksekusi ke biner Gitea:

chmod +x /usr/local/bin/gitea

Selanjutnya, verifikasi versi Gitea menggunakan perintah berikut:

gitea --version

Anda akan melihat output berikut:

Gitea version 1.15.3 built with GNU Make 4.1, go1.16.8 : bindata, sqlite, sqlite_unlock_notify

Selanjutnya, Anda perlu membuat struktur direktori untuk Gitea. Anda dapat membuatnya dengan perintah berikut:

mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}

Selanjutnya, atur izin dan kepemilikan yang tepat dengan perintah berikut:

chown git:git /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chown root:git /etc/gitea
chmod 770 /etc/gitea

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Buat File Layanan Systemd untuk Gitea

Selanjutnya, Anda perlu membuat file layanan systemd untuk Gitea. Anda dapat membuatnya dengan perintah berikut:

nano /etc/systemd/system/gitea.service

Tambahkan baris berikut:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysql.service

[Service]
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=/opt/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target

Simpan dan tutup file kemudian muat ulang daemon systemd dengan perintah berikut:

systemctl daemon-reload

Selanjutnya, mulai dan aktifkan layanan Gitea dengan perintah berikut:

systemctl start gitea
systemctl enable gitea

Untuk memeriksa layanan Gitea, jalankan perintah berikut:

systemctl status gitea

Anda akan melihat output berikut:

? gitea.service - Gitea (Git with a cup of tea)
     Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 12:59:27 UTC; 9s ago
   Main PID: 19179 (gitea)
      Tasks: 8 (limit: 4679)
     Memory: 128.3M
        CPU: 1.415s
     CGroup: /system.slice/gitea.service
             ??19179 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 cmd/web.go:102:runWeb() [I] Starting Gitea on PID: 19179
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/setting/setting.go:569:NewContext() [W] Custom config '/etc/gitea/app.ini' not>
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/custom
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/log
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:25:PreloadSettings() [I] Preparing to run install page
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:28:PreloadSettings() [I] SQLite3 Supported
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 cmd/web.go:196:listen() [I] Listen: http://0.0.0.0:3000
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 ...s/graceful/server.go:62:NewServer() [I] Starting new Web server: tcp:0.0.0.0:300>

Pada titik ini, Gitea dimulai dan mendengarkan pada port 3000. Anda dapat memeriksanya dengan perintah berikut:

ss -antpl | grep 3000

Anda akan melihat output berikut:

LISTEN 0      4096               *:3000             *:*    users:(("gitea",pid=19179,fd=6))

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasi Nginx untuk Gitea

Selanjutnya, Anda perlu menginstal dan mengkonfigurasi Nginx sebagai proxy terbalik untuk Gitea. Pertama, instal Nginx dengan perintah berikut:

apt-get install nginx -y

Selanjutnya, buat file konfigurasi virtual host Nginx dengan perintah berikut:

nano /etc/nginx/conf.d/gitea.conf

Tambahkan baris berikut:

server {
    listen 80;
    server_name gitea.example.com;
    access_log /var/log/nginx/gitea_access.log;
    error_log /var/log/nginx/gitea_error.log;


    location / {
        proxy_pass http://localhost:3000;
    }
}

Simpan dan tutup file kemudian verifikasi Nginx untuk kesalahan sintaks:

nginx -t

Anda akan melihat output berikut:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Selanjutnya, restart layanan Nginx dengan perintah berikut:

systemctl restart nginx

Untuk memeriksa status Nginx, jalankan perintah berikut:

systemctl status nginx

Anda akan melihat output berikut:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 13:00:33 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 19209 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19211 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19212 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 3.2M
        CPU: 50ms
     CGroup: /system.slice/nginx.service
             ??19212 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19213 nginx: worker process
             ??19214 nginx: worker process

Oct 02 13:00:33 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 02 13:00:33 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

Selanjutnya, Anda perlu mengedit file Gitea app.ini dan menentukan informasi domain Anda:

nano /etc/gitea/app.ini

Ubah baris berikut:

DOMAIN           = gitea.example.com
ROOT_URL         = http://gitea.example.com/

Simpan dan tutup file, lalu mulai ulang layanan Gitea untuk menerapkan perubahan:

systemctl restart gitea

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Akses Antarmuka Web Gitea

Sekarang, buka browser web Anda dan akses antarmuka web Gitea menggunakan URL http://gitea.example.com . Anda akan diarahkan ke halaman berikut:

Berikan informasi database Gitea Anda, URL, nama pengguna admin, kata sandi, port dan klik tombol Instal Gitea tombol. Anda akan melihat dasbor Gitea di halaman berikut:

Kesimpulan

Selamat! Anda telah berhasil menginstal Gitea dengan Nginx sebagai proxy terbalik di Debian 11. Anda dapat mengimplementasikan Gitea di lingkungan pengembangan Anda untuk melacak dan mengelola proyek Anda.


Debian
  1. Cara Menginstal Apache ZooKeeper di Debian 10

  2. Cara Menginstal WildFly di Debian 11

  3. Cara Menginstal Gitea di Debian 9

  1. Cara Menginstal Git di Debian 9

  2. Cara Menginstal osquery di Debian 10

  3. Cara Menginstal Suricata di Debian 11

  1. Cara Menginstal Git di Debian 10 Linux

  2. Cara Menginstal PHP 8 di Debian 11

  3. Cara Menginstal GitLab di Debian 11