Gitea adalah sumber terbuka alternatif, sistem kawalan versi yang dihoskan sendiri yang dikuasakan oleh git. Gitea ditulis dalam Golang dan merupakan penyelesaian yang ringan untuk dihoskan di mana-mana platform.
Prasyarat
- Contoh baru Vultr Ubuntu 18.04 dengan sekurang-kurangnya 2 teras CPU dan 1 GB RAM
- Pengguna bukan root dengan hak istimewa sudo.
- Nginx
- Git
- MariaDB
Langkah 1: Pasang Nginx
Kemaskini contoh Server Vultr Ubuntu 18.04 anda.
sudo apt update
Pasang Nginx.
sudo apt -y install nginx
Sebaik sahaja Nginx dipasang, menguji sama ada ia berfungsi atau tidak dengan melayari halaman ujian nginx dalam penyemak imbas. Buka penyemak imbas web anda dan arahkan kehttp://example.com
Perintah berikut boleh digunakan untuk menghentikan, memuat semula, memulakan semula, menyemak status dan dayakan Nginx.
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
Langkah 2: Pasang Git
Pasang Git.
sudo apt -y install git
Setelah dipasang, semak versi:
git --version
git version 2.17.1
Langkah 3: Pasang Pelayan Pangkalan Data MariaDB
Gitea menyokong pangkalan data berikut
- MariaDB / MySQL
- PostgreSQL
- SQLite
- TiDB
Untuk tutorial ini, kami akan memasang pelayan dan klien MariaDB.
sudo apt -y install mariadb-server mariadb-client
Selepas memasang MariaDB, arahan di bawah boleh digunakan untuk berhenti, mula, mula semula, semak status dan aktifkannya.
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
Selepas itu, jalankan arahan di bawah untuk mengamankan pelayan MariaDB dengan membuat kata laluan root dan tidak membenarkan akses akar jauh.
sudo mysql_secure_installation
Apabila digesa, jawab soalan di bawah dengan mengikuti panduan.
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
Mulakan semula MariaDB.
sudo systemctl restart mariadb.service
Untuk menguji jika MariaDB dipasang, taipkan arahan di bawah untuk log masuk ke pelayan MariaDB
sudo mysql -u root -p
Kemudian ketik kata laluan yang anda buat di atas untuk log masuk. Anda akan melihat mesej sambutan MariaDB.
Buat pangkalan data yang dipanggil gitea
.
CREATE DATABASE gitea;
Buat pengguna pangkalan data dipanggil giteauser
dengan kata laluan baru.
CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';
Kemudian memberikan pengguna akses penuh ke pangkalan data.
GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Akhirnya, simpan perubahan anda dan keluar.
FLUSH PRIVILEGES;
EXIT;
Langkah 4: Sediakan Alam Sekitar Gitea
Buat pengguna untuk menjalankan Gitea.
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
Buat struktur direktori yang diperlukan.
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
Langkah 5: Pasang Gitea
Perduaan Gitea boleh dimuat turun dengan menjalankan perintah berikut.
sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64
sudo chmod +x gitea
Salin perduaan ke lokasi global.
sudo cp gitea /usr/local/bin/gitea
Langkah 6: Buat fail perkhidmatan untuk memulakan Gitea secara automatik
Buat fail perkhidmatan linux.
sudo nano /etc/systemd/system/gitea.service
Isi fail dengan yang berikut.
[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
Aktifkan dan mulakan Gitea pada boot.
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
Jalankan arahan status.
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
Padamkan fail konfigurasi nginx lalai.
sudo rm /etc/nginx/sites-enabled/default
Buat konfigurasi proksi terbalik untuk Gitea.
sudo nano /etc/nginx/sites-available/git
Tandakan fail dengan konfigurasi berikut.
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;
}
}
Dayakan konfigurasi proksi terbalik Gitea Nginx.
sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled
Kemudian tambah semula Perkhidmatan Nginx.
sudo systemctl reload nginx.service
Seterusnya, buka penyemak imbas anda dan semak imbas ke nama hos pelayan atau alamat IP.
http://example.com/install
Ikuti arahan pada skrin untuk menyelesaikan persediaan Gitea.