GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Gitea menggunakan Docker di Ubuntu 20.04

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.


Ubuntu
  1. Cara Menginstal Docker di Ubuntu 16.04

  2. Cara Menginstal Docker di Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  3. Bagaimana Cara Menginstal Docker di Ubuntu 18.04?

  1. Cara Menginstal Docker Di Ubuntu 18.04

  2. Cara Menginstal Kubernetes di Ubuntu 18.04

  3. Cara Menginstal Docker Compose di Ubuntu 18.04

  1. Cara Menginstal Rancher di Ubuntu

  2. Cara Menginstal Docker Compose di Ubuntu 20.04

  3. Cara menginstal Docker di Ubuntu 22.04