Cara menginstal Gitea menggunakan Docker di Ubuntu 20.04

Posted on

[ad_1] Cara menginstal Gitea menggunakan Docker di Ubuntu 20.04

Gitea adalah paket server Git self-hosted gratis dan open source. Ini juga menawarkan fitur umum seperti pelacakan bug, wiki, dan ulasan kode. Gitea adalah solusi kode ringan berbasis komunitas yang ditulis dalam Go.

Pengembang harus secara teratur menggabungkan perubahan kode mereka saat mereka bekerja ke dalam repositori pusat. Mungkin saja Anda memerlukan repositori pusat pribadi untuk tim yang Anda host dan kelola sendiri. Anda dapat menggunakan Gitea untuk tujuan ini. Mirip dengan GitHub, Bitbucket, dll.

Dalam tutorial ini kita akan belajar bagaimana Instal Gitea menggunakan buruh pelabuhan Pada Ubuntu 20.04.

prasyarat

  • Sebuah node diinstal dengan Ubuntu 20.04
  • Seorang pengguna dengan hak sudo

Langkah 1: Instal Docker di Ubuntu

Gitea menyediakan gambar Docker versi stabil terbaru dari Docker Hub. Itu dapat diinstal dari sumber, biner dan juga sebagai paket. 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 daya APT. Secara otomatis memperbarui cache.

$ 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 dia dapat menggunakan perintah buruh pelabuhan tanpa hak sudo:

$ sudo usermod -aG docker username

Langkah 2: Jalankan buruh pelabuhan Nginx

Anda dapat menggunakan proxy terminasi TLS seperti Nginx, Apache2 atau Caddy untuk mengaktifkan HTTPS. Dalam kasus kami, kami akan menjalankan wadah mandiri 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

Saat Anda mengintegrasikan sertifikat Anda, ini membantu kami mengalihkan semua lalu lintas HTTP default ke HTTPS. Anda perlu memperhatikan volume yang dipetakan untuk menggabungkan sertifikat Anda /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 diaktifkan

$ sudo ufw allow 'OpenSSH'

Sekarang jika Anda belum mengaktifkan UFW

$ 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 menjalankan wadah MySQL untuk menampung 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 berfungsi atau tidak

$ 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

Secara default, Gitea mendengarkan koneksi pada port 3000 dan membalikkan proxy pada port HTTP dan HTTPS. Jika Anda memiliki firewall, pastikan port terbuka untuk mengakses antarmuka web Gitea.

Mari kita lihat detail container 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 baris perintah MySQL

# mysql -u root -po$su876HG@zvsRt3BT

Sekarang buat database dan pengguna 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 juga keluar dari wadah

# 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 gratis dari Let’s Encrypt atau sertifikat 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 Docker Gitea

Untuk menjalankan Gitea, kita perlu menampilkan informasi tentang container MySQL yang sudah dimulai, seperti:

  • Tipe databasenya adalah mysql
  • Alamat IP wadah mysql
  • Nama basis data
  • 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 sedang 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

Anda sekarang dapat mencoba mengakses Gitea menggunakan URL https://giteadomain.com

Halaman utama antarmuka web Gitea

Sekarang pergi ke “Login” untuk melanjutkan proses instalasi. Anda dapat menyesuaikan beberapa informasi seperti judul situs.

Pengaturan basis data antarmuka web Gitea

Pastikan untuk menentukan nama domain jika diperlukan. Tentukan juga informasi tentang akun administrator

Domain antarmuka web Gitea dan pengaturan akun admin

Setelah instalasi, Anda akan masuk

Dasbor Gitea

Anda dapat membuat repositori baru

Buat repositori baru

Anda memiliki tangki pertama

Repositori pertama Gitea

Hasil

Sekarang Anda tahu semua langkah untuk menginstal Gitea menggunakan Docker di Ubuntu 20.04 – repositori pusat pribadi dari kode Anda. Anda akan dapat mengelolanya sesuai dengan kebutuhan Anda.

[ad_2]

Source link

Leave a Reply

Your email address will not be published. Required fields are marked *