Gitea adalah paket perangkat lunak sumber terbuka dan gratis untuk hosting sendiri server Git. Ini juga menawarkan fitur kolaboratif seperti pelacakan bug, wiki, dan tinjauan kode. Gitea adalah solusi kode ringan berbasis komunitas yang ditulis dalam Go.
Pengembang perlu secara teratur menggabungkan perubahan kode mereka ke dalam repositori pusat saat bekerja. Bisa jadi Anda perlu memiliki repositori pusat pribadi untuk tim Anda yang akan Anda host dan kelola sendiri. Anda dapat menggunakan Gitea untuk tujuan ini. Ini mirip dengan GitHub, Bitbucket, dan sebagainya.
Dalam tutorial ini, kita mempelajari cara menginstal Gitea menggunakan buruh pelabuhan di Ubuntu 20.04 .
Prasyarat
- Sebuah simpul yang diinstal dengan Ubuntu 20.04
- Pengguna dengan hak istimewa sudo
Langkah 1:Instal Docker di Ubuntu
Gitea menyediakan versi stabil terbaru dari image Docker-nya dari hub Docker. Itu dapat diinstal dari sumber, biner, dan sebagai paket juga. Di sini kami menerapkan sebagai gambar Docker.
Untuk menginstal buruh pelabuhan, Anda perlu menginstal beberapa prasyarat:
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Sekarang mari tambahkan kunci GP dari repositori buruh pelabuhan:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Sekarang tambahkan Docker ke sumber APT. Ini akan memperbarui cache secara otomatis.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Sekarang instal buruh pelabuhan menggunakan perintah berikut:
$ sudo apt install docker-ce
Tambahkan pengguna ke grup buruh pelabuhan sehingga dapat menggunakan perintah buruh pelabuhan tanpa hak sudo:
$ sudo usermod -aG docker username
Langkah 2:Jalankan buruh pelabuhan Nginx
Untuk mengaktifkan HTTPS, Anda dapat menggunakan proxy terminasi TLS seperti Nginx, Apache2, atau Caddy. Dalam kasus kami, kami akan menjalankan wadah independen sebagai proxy terbalik Nginx kami.
$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy
Ini akan membantu kami untuk mengarahkan ulang semua lalu lintas HTTP default ke HTTPS saat Anda mengintegrasikan sertifikat Anda. Anda akan melihat volume yang dipetakan untuk mengintegrasikan sertifikat Anda yaitu /etc/nginx/certs
Sekarang buka port 80 dan 443 di firewall:
$ sudo ufw allow 80,443/tcp
Juga, pastikan untuk membuka ssh sebelum mengaktifkan UFW jika belum
$ sudo ufw allow 'OpenSSH'
Sekarang aktifkan UFW jika belum
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Langkah 3:Jalankan buruh pelabuhan MySQL
Gitea membutuhkan database untuk menyimpan datanya. Gitea mendukung MySQL/MariaDB, PostgreSQL, SQLite, dan MSSQL. Di sini kita akan menjalankan wadah MySQL untuk menyimpan semua data.
$ docker run -d --name mysql-gitea -e MYSQL_ROOT_PASSWORD=o$su876HG@zvsRt3BT -v /opt/docker-volume/mysql-gitea:/var/lib/mysql mysql:5.7
Kami dapat memeriksa apakah wadah kami berjalan
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6d41fec8b0e4 mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 2 hours 3306/tcp, 33060/tcp mysql-gitea
ec9d83a3944e etopian/nginx-proxy "forego start -r" 3 days ago Up 24 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx
Gitea secara default mendengarkan koneksi pada port 3000 dan proxy pembalik pada port HTTP dan HTTPS. Jika Anda memiliki firewall, pastikan port terbuka untuk mengakses antarmuka web Gitea.
Mari kita lihat beberapa detail penampung MySQL kita seperti alamat IP karena kita akan membutuhkannya nanti
$ docker inspect mysql-gitea
[
{
"Id": "6d41fec8b0e4b6ca465444d5cfea11913decddfd7586f4796702463cf08897fe",
"Created": "2021-10-21T23:48:20.709365573Z",
...
...
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "3f0b32613606db9e0761af15b7fa5d7f7c3b86f4d3b4668d574c579b9468915f",
"EndpointID": "f029fc1797c70d090da19d30cb31ca34c1b6baf4537a807397e931f87262f867",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.3",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:03",
"DriverOpts": null
}
...
...
Sekarang mari kita sambungkan ke wadah MySQL
$ docker container exec -it mysql-gitea bash
Kemudian akses ke baris perintah MySQL
# mysql -u root -po$su876HG@zvsRt3BT
Sekarang buat database dan pengguna untuk Gitea
mysql> CREATE USER 'gitea-user'@'%' IDENTIFIED BY '34@zv$TKji@s097BB';
mysql> CREATE DATABASE giteadb;
mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea-user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;
Sekarang keluar juga wadahnya
# exit;
Langkah 4:Konfigurasikan sertifikat SSL
Untuk mengakses Gitea Anda melalui nama domain yang aman, Anda perlu menyalin sertifikat SSL ke folder Nginx. Anda dapat menggunakan sertifikat Let's Encrypt atau sertifikat gratis dari otoritas sertifikat.
Salin sertifikat
$ cp gitea.websitefortesting.com.crt /etc/nginx/certs/
Salin kuncinya
$ cp gitea.websitefortesting.com.key /etc/nginx/certs/
Langkah 5:Jalankan buruh pelabuhan Gitea
Untuk menjalankan Gitea, kita perlu menunjukkan beberapa informasi tentang wadah MySQL yang telah diluncurkan sebelumnya seperti:
- Jenis database yaitu mysql
- ip alamat wadah mysql
- nama databasenya
- nama pengguna basis data
- kata sandi pengguna basis data
- port yang digunakan oleh gitea
$ docker run -d --name gitea-selfhosted -v /opt/docker-volume/gitea-selfhosted:/data -p 3000:3000 -e VIRTUAL_HOST=gitea.websitefortesting.com -e VIRTUAL_PORT=3000 -e USER_UID=1001 -e USER_GID=1001 -e DB_TYPE=mysql -e DB_HOST=172.17.0.3:3306 -e DB_NAME=giteadb -e DB_USER=gitea-user -e DB_PASSWD=34@zv$TKji@s097BB gitea/gitea:1.8
Kami dapat memeriksa apakah itu berjalan
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
321b870a0735 gitea/gitea:1.8 "/usr/bin/entrypoint…" 11 seconds ago Up 10 seconds 22/tcp, 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp gitea-selfhosted
6d41fec8b0e4 mysql:5.7 "docker-entrypoint.s…" 2 hours ago Up 3 minutes 3306/tcp, 33060/tcp mysql-gitea
ec9d83a3944e etopian/nginx-proxy "forego start -r" 3 days ago Up 29 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nginx
Sekarang Anda dapat mencoba mengakses Gitea dengan menggunakan URL https://giteadomain.com
Sekarang pergi ke "masuk" untuk melanjutkan proses instalasi. Anda dapat mempersonalisasi beberapa informasi seperti judul situs.
Pastikan untuk menunjukkan nama domain jika diperlukan. Tunjukkan juga informasi untuk akun administrator
Setelah instalasi, Anda akan masuk
Anda dapat membuat repositori baru
Anda memiliki repositori pertama
Kesimpulan
Sekarang Anda tahu semua langkah untuk menginstal Gitea menggunakan Docker di Ubuntu 20.04 - repositori pusat pribadi Anda untuk kode Anda. Anda akan dapat mengelolanya tergantung pada kebutuhan Anda.