GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Menginstal Platform Hosting Kode Gitea dengan HTTPS di CentOS 8

Gitea adalah aplikasi web hosting kode yang ditulis dalam Go. Seperti namanya, ia dirancang untuk digunakan dengan program kontrol sumber populer Git, mirip dengan Gitlab dan Github. Panduan ini akan menjelaskan penginstalan Gitea pada CentOS 8 dengan proxy terbalik HTTPS Nginx.

Persyaratan

  • Sistem CentOS 8 di mana Anda memiliki hak akses root.
  • Nama domain terdaftar yang menunjuk ke server Anda.
  • Variabel lingkungan $EDITOR harus disetel ke editor teks pilihan Anda.
  • 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.

CATATAN: Panduan ini mengasumsikan SELinux disetel ke nonaktif atau permisif.

Langkah 1:Mempersiapkan sistem

Mulailah dengan menginstal pembaruan yang tersedia dan mem-boot ulang:

dnf update -yreboot

Untuk penyiapan ini, diperlukan beberapa komponen perangkat lunak:

  • Git, ketergantungan Gitea.
  • PostgreSQL, karena Gitea membutuhkan database.
  • Nginx, yang akan digunakan sebagai proxy terbalik.
  • Sudo, untuk menjalankan perintah sebagai pengguna sistem postgres.
  • Dapatkan
  • Certbot, sebuah utilitas untuk mendapatkan sertifikat SSL Let's Encrypt. Certbot akan diinstal secara terpisah karena tidak tersedia di repositori perangkat lunak CentOS.

Instal sebagai berikut:

dnf install -y git postgresql postgresql-server nginx sudo wget

Certbot-auto adalah skrip yang mengatur instalasi certbot. Unduh:

wget https://dl.eff.org/certbot-auto -O /usr/local/bin/certbot-auto

Pastikan izin yang benar telah disetel:

chmod 0755 /usr/local/bin/certbot-auto

Jalankan yang berikut ini untuk menginstal certbot. Anda akan diminta oleh manajer paket untuk mengkonfirmasi instalasi dependensi, jawab 'y'.

certbot-auto --install-only

Selanjutnya, buat pengguna untuk menjalankan Gitea:

useradd --system --shell /bin/bash --create-home --home-dir /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/giteachown -R gitea:gitea /var/run/giteachown -R root:gitea /etc/giteachmod -R 750 /var/lib/giteachmod 770 /etc/gitea 

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

Aktifkan lalu lintas ke port 80 dan 443 secara permanen:

firewall-cmd --add-port 80/tcp --add-port 443/tcp --permanentfirewall-cmd --reload

Akses ke port 3000 hanya diperlukan sementara untuk pengaturan awal karena kami akan mengonfigurasi gitea untuk menggunakan soket Unix.

firewall-cmd --add-port 3000/tcp

Langkah 2:Penyiapan Basis Data

Inisialisasi Postgres:

postgresql-setup --initdb --unit postgresql

Pastikan itu diaktifkan dan dijalankan:

systemctl aktifkan --now postgresql.service

Masuk ke Postgres:

sudo -u postgres psql

Kemudian buat peran pengguna dan database untuk digunakan oleh Gitea:

postgres=# CREATE ROLE gitea LOGIN PASSWORD ENCRYPTED 'your_password';postgres=# CREATE DATABASE gitea;postgres=# HIBAH SEMUA HAK ISTIMEWA PADA DATABASE gitea TO gitea;postgres=# \q

Buka file konfigurasi otentikasi klien Postgres:

$EDITOR /var/lib/pgsql/data/pg_hba.conf

Tambahkan baris berikut tepat setelah # Koneksi lokal IPv4 :

# koneksi lokal IPv4:host gitea gitea 127.0.0.1/32 md5

Simpan file dan mulai ulang Postgres:

systemctl restart postgresql.service

Langkah 3:Menginstal Gitea

Unduh Gitea versi biner linux-amd64 dari halaman unduhan Gitea. Misalnya:

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

Setel izin yang benar pada biner yang diunduh:

chmod 755 /usr/local/bin/gitea

Selanjutnya, buat file unit systemd:

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

Dan masukkan berikut ini:

[Unit]Description=Gitea (Git dengan secangkir teh)After=syslog.targetAfter=network.targetRequires=postgresql.service[Service]Type=simpleUser=giteaGroup=giteaWorkingDirectory=/var/lib/gitea/RuntimeDirectory=giteaExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.iniRestart=alwaysEnvironment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea[Install]WantedBy=multi-pengguna. sasaran

Pastikan unit baru dimuat:

systemctl daemon-reload

Kemudian instruksikan systemd untuk memulai Gitea saat boot:

systemctl aktifkan gitea.service

Langkah 4:Mengonfigurasi Gitea

Untuk konfigurasi awal, kami akan menggunakan web installer 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/giteachown root:gitea /etc/gitea/app.inichmod 640 /etc/gitea/app.ini

Buka file konfigurasinya:

$EDITOR /etc/gitea/app.ini

Hapus baris berikut dari bagian server:

HTTP_PORT =3000

Dan tambahkan baris berikut di bagian server:

HTTP_ADDR =/run/gitea/gitea.sockPROTOCOL =unixUNIX_SOCKET_PERMISSION =666

Langkah 5:Pengaturan Proxy Terbalik

Hentikan Nginx jika sedang berjalan, untuk mengizinkan certbot mendengarkan pada port 80:

systemctl stop nginx.service

Gunakan perintah berikut untuk mendapatkan sertifikat untuk domain Anda:

certbot-auto 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/conf.d/gitea.conf

Dan masukkan blok server berikut:

server { dengarkan 80; dengarkan [::]:80; server_name your_domain; kembalikan 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 { dengarkan 443 ssl; dengarkan [::]:443 ssl; server_name your_domain; ssl aktif; ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem; lokasi / { 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 telah mengonfigurasi Gitea untuk mendengarkan.

Setelah Anda menyimpan konfigurasi di atas, periksa kesalahan sintaks dan edit konfigurasi Anda jika perlu:

nginx -t

Terakhir, mulai Nginx dan Gitea:

systemctl start nginx.service gitea.service

Instance Gitea Anda sekarang harus berjalan dengan sukses. Akses di https://domain_anda

Langkah Opsional

Konfigurasi Logging

Secara default, pesan log Gitea tentang Info tingkat keparahan dan di atasnya. Kemungkinan besar Anda ingin mengubahnya menjadi Warn atau Error . 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 =fileLEVEL =warnROOT_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 =benar

Dan ubah port SSH ke sembarang angka di atas 1024, misalnya:

SSH_PORT =2222

Kemudian restart Gitea untuk menerapkan perubahan dan mengaktifkan lalu lintas ke port yang dipilih:

firewall-cmd --add-port 2222/tcp --permanentfirewall-cmd --reload

Cent OS
  1. Cara Menginstal CentOS 8 (dengan Tangkapan Layar)

  2. Cara menginstal Python 3 di CentOS 7 dengan SCL

  3. Cara Menginstal Platform Hosting Kode Gitea dengan HTTPS di Debian 10

  1. Cara Menginstal Gitea di CentOS 8

  2. Cara Instal phpMyAdmin dengan Nginx di CentOS 7

  3. Cara Menginstal Kode Visual Studio di CentOS 7

  1. Cara Menginstal Kode Visual Studio di CentOS 8

  2. Cara Menginstal Graylog dengan Elasticsearch di CentOS 8

  3. Cara Setup Apache Subversion dengan HTTPS Letsencrypt di CentOS 7