GNU/Linux >> Belajar Linux >  >> Debian

Cara Menginstal Platform Hosting Kode Gitea dengan HTTPS di Debian 10

Gitea adalah aplikasi web hosting kode yang ditulis dalam Go dan bercabang dari Gogs. Seperti namanya, ia dirancang untuk digunakan dengan program kontrol sumber populer Git, mirip dengan Gitlab dan Github. Panduan ini akan menjelaskan cara menginstal Gitea pada Debian 10 di belakang proxy terbalik HTTPS (Nginx).

Persyaratan

  • Sistem Debian 10 tempat Anda memiliki hak akses root.
  • Nama domain terdaftar yang menunjuk ke server Anda.
  • Variabel lingkungan $EDITOR harus disetel.
  • Akses ke server SMTP untuk pemberitahuan email (opsional).

Pastikan (sub) domain Anda mengarah ke alamat IPv4 server Anda dengan catatan A. Secara opsional, buat data AAAA yang menunjuk ke alamat IPv6 server Anda.

Langkah 1:Mempersiapkan sistem

Mulailah dengan memperbarui indeks paket Anda dan instal pembaruan yang tersedia:

apt update
apt upgrade -y
reboot

Untuk pengaturan ini, diperlukan beberapa paket perangkat lunak:

  • Git, ketergantungan Gitea.
  • PostgreSQL, karena Gitea membutuhkan database.
  • Nginx, yang akan digunakan sebagai proxy terbalik.
  • Certbot, utilitas untuk mendapatkan sertifikat SSL Let's Encrypt.
  • Sudo, untuk menjalankan perintah sebagai pengguna sistem postgres.

Instal sebagai berikut:

apt install -y git nginx certbot postgresql sudo

Selanjutnya, buat pengguna untuk menjalankan Gitea:

adduser --system --disabled-password --group --shell /bin/bash --home /home/gitea gitea

Kemudian buat struktur direktori untuk Gitea:

mkdir -p /var/lib/gitea/{data,log} /etc/gitea /run/gitea

Dan atur kepemilikan dan izin sebagai berikut:

chown -R gitea:gitea /var/lib/gitea
chown -R gitea:gitea /run/gitea
chown -R root:gitea /etc/gitea
chmod -R 750 /var/lib/gitea
chmod 770 /etc/gitea

Izin pada /etc/gitea bersifat sementara dan akan diperketat setelah menjalankan penginstal web.

Langkah 2:Penyiapan Basis Data

Pastikan Postgres diaktifkan dan dijalankan:

systemctl enable --now [email protected]

Kemudian buat peran pengguna dan database untuk digunakan oleh Gitea:

sudo -u postgres psql
postgres=# CREATE ROLE gitea LOGIN ENCRYPTED PASSWORD 'your_password';
postgres=# CREATE DATABASE gitea;
postgres=# GRANT ALL PRIVILEGES ON DATABASE gitea TO gitea;
postgres=# exit;

Langkah 3:Menginstal Gitea

Download biner linux-amd64 terbaru dari halaman download Gitea. Misalnya:

wget https://dl.gitea.io/gitea/master/gitea-master-linux-amd64 -O /usr/local/bin/gitea
chmod 755 /usr/local/bin/gitea

Selanjutnya, buat file unit systemd untuk Gitea:

$EDITOR /etc/systemd/system/gitea.service

Dan masukkan berikut ini:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Requires=postgresql.service
[Service]
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea/
RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target

Pastikan unit baru dimuat:

systemctl daemon-reload

Kemudian instruksikan systemd untuk memulai Gitea saat startup sistem:

systemctl enable gitea.service

Langkah 4:Mengonfigurasi Gitea

Untuk konfigurasi awal, kami akan menggunakan skrip pemasangan web yang disertakan. Pertama, mulai Gitea:

systemctl start gitea.service

Kemudian arahkan ke http://your_domain:3000/install dan isi parameter yang diperlukan sebagai berikut:

  • Jenis Basis Data:PostgreSQL
  • Tuan rumah:127.0.0.1:5432
  • Nama pengguna:gitea
  • Kata Sandi:Masukkan kata sandi yang Anda pilih selama pembuatan peran Postgres.
  • Nama Basis Data:gitea
  • SSL:Nonaktifkan
  • Judul Situs:Judul pilihan Anda.
  • Jalur Root Repositori:/var/lib/gitea/data/repositories
  • Jalur Akar Git LFS:/var/lib/gitea/data/lfs
  • Jalankan Sebagai Nama Pengguna:gitea
  • Domain Server SSH:domain_anda
  • Port Server SSH:22
  • Pos Dengar HTTP Gitea:3000
  • URL Basis Gitea:https://domain_anda/
  • Jalur Masuk:/var/lib/gitea/log

Konfigurasikan email dan sisa pengaturan yang dianggap pas, lalu klik "Install Gitea". Anda akan diarahkan ke URL yang salah. Ini normal, karena kami belum mengonfigurasi Nginx atau HTTPS. Untuk alasan kinerja, sekarang kami akan mengonfigurasi Gitea untuk mendengarkan pada soket unix alih-alih port TCP default.

Hentikan Gitea sebelum melanjutkan:

systemctl stop gitea.service

Kencangkan izin pada /etc/gitea seperti yang ditunjukkan di bawah ini. Ini mencegah siapa pun yang tidak berada dalam grup gitea membaca app.ini, yang berisi informasi sensitif, termasuk kredensial basis data.

chmod 750 /etc/gitea
chown root:gitea /etc/gitea/app.ini
chmod 640 /etc/gitea/app.ini

Buka file konfigurasinya:

$EDITOR /etc/gitea/app.ini
Remove the following line from the [server] section:
HTTP_PORT = 3000
And add the following lines to the [server] section:
HTTP_ADDR        = /run/gitea/gitea.sock
PROTOCOL         = unix
UNIX_SOCKET_PERMISSION = 666

Langkah 5:Menyiapkan Proksi Terbalik

Stop Nginx if it is running, as certbot will need to bind to port 80:
systemctl stop nginx.service

Gunakan perintah berikut untuk mendapatkan sertifikat untuk domain Anda:

certbot certonly --standalone --agree-tos -m [email protected] -d your_domain

Let's Encrypt akan memverifikasi kepemilikan domain sebelum mengeluarkan sertifikat. Sertifikat, rantai, dan kunci pribadi Anda akan disimpan di /etc/letsencrypt/live/your_domain/.

Sekarang kita dapat mengkonfigurasi Nginx. Buat file konfigurasi baru:

$EDITOR /etc/nginx/sites-available/gitea

Dan masukkan konfigurasi berikut:

server {
        listen 80;
        listen [::]:80;
        server_name your_domain;
        return 301 https://$server_name$request_uri;
	access_log /var/log/nginx/gitea-proxy_access.log;
	error_log /var/log/nginx/gitea-proxy_error.log;
}
server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name your_domain;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
        location / {
                proxy_pass http://unix:/var/run/gitea/gitea.sock;
	}
	access_log /var/log/nginx/gitea-proxy_access.log;
	error_log /var/log/nginx/gitea-proxy_error.log;
}

Blok server pertama hanya berfungsi untuk mengarahkan semua permintaan HTTP ke HTTPS. Blok kedua mendengarkan koneksi HTTPS dan mem-proxy-nya ke soket unix tempat kami mengonfigurasi Gitea untuk mendengarkan.

Setelah Anda menyimpan konfigurasi di atas, jalankan yang berikut untuk mengaktifkannya:

ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled

Periksa kesalahan sintaks dan edit konfigurasi Anda sesuai dengan itu:

nginx -t

Terakhir, mulai Nginx dan Gitea:

systemctl start nginx.service gitea.service

Instance Gitea Anda sekarang harus berjalan dengan sukses. Jika Anda tidak membuat akun administrator menggunakan penginstal web awal, pengguna pertama yang mendaftar akan diberikan peran administrator.

Langkah Opsional

Konfigurasi Logging

Secara default, Gitea mencatat pesan dari Info tingkat keparahan ke atas. Anda kemungkinan besar ingin mengubahnya menjadi Peringatkan atau Kesalahan. Untuk melakukannya, buka /etc/gitea/app.ini dan ubah parameter LEVEL di bagian [log] menjadi salah satu dari:trace, debug, info, warn, error, critical, fatal, none. Misalnya, untuk mencatat pesan dengan tingkat keparahan Peringatkan dan di atasnya, gunakan:

[log]
MODE = file
LEVEL = warn
ROOT_PATH = /var/lib/gitea/log

Mulai ulang Gitea agar perubahan diterapkan:

systemctl restart gitea.service

Server SSH terpisah

Gitea juga dapat menggunakan server SSH-nya sendiri. Untuk mengaktifkannya, tambahkan baris berikut ke bagian konfigurasi [server]:

START_SSH_SERVER = true

Dan ubah port SSH ke angka di atas 1000, misalnya:

SSH_PORT = 2222

Kemudian restart Gitea untuk menerapkan perubahan.


Debian
  1. Cara Menginstal Platform Hosting Kode Gitea dengan HTTPS di CentOS 8

  2. Cara Menginstal Gitea di Debian 9

  3. Cara Menginstal WonderCMS dengan Nginx di Debian 11

  1. Cara Install Steam dengan Steam Play di Debian 10 Buster

  2. Cara Menginstal Kode Visual Studio di Debian 10

  3. Cara Menginstal Kode Visual Studio di Debian 9

  1. Cara menginstal Rundeck di server Debian 8 (Jessie)

  2. Cara Menginstal WonderCMS dengan Nginx di Debian 9

  3. Cara Menginstal Gitea dengan PostgreSQL di Debian 11