Categories: Umum

Cara Install Gitea Git Server di NAT VPS

NATVPS.id – Gitea adalah sebuah layanan hosting Git (pengelola repositori kode) open-source yang dapat di self-host untuk menyimpan dan mengelola proyek pengembangan perangkat lunak Anda sendiri. Gitea adalah solusi Git service ringan yang ditulis dalam bahasa pemrograman Go, dengan penggunaan resource yang sangat efisien dan proses instalasi yang mudah.

Artikel ini membahas mengenai langkah-langkah instalasi Gitea server di NAT VPS menggunakan Docker Compose, beserta konfigurasi NGINX untuk reverse-proxy. Artikel ini menggunakan Ubuntu 22.04 sebagai acuan, namun Anda dapat menggunakan distribusi lain seperti Debian dan CentOS.

Konfigurasi Port Forwarding

Mengingat kita menggunakan NAT, kita perlu menambahkan 2 konfigurasi port forwarding pada panel Virtualizor (atau panel VPS lain sesuai provider), yaitu port forwarding HTTP dan HTTPS untuk domain Gitea.

Sebagai contoh, pada artikel ini akan menggunakan domain git.tutorial.mdinata.my.id untuk mengakses Gitea. Anda bebas mengganti domain sesuai pilihan Anda. Catat domain ini, karena kita akan menggunakannya lagi pada proses instalasi.

Jangan lupa untuk menambahkan DNS record yang menuju ke IP publik NAT VPS Anda, seperti ini:

Jika bingung, silahkan membaca artikel kami mengenai domain forwarding di sini: Penjelasan Domain Forwarding di NAT VPS.

Install Docker

Kita akan menggunakan Docker dan Docker Compose untuk deploy Gitea.

Pertama, Install curl menggunakan perintah:

apt update && apt install curl -y

Kemudian, jalankan script instalasi otomatis dari Docker dengan memasukkan:

curl -fsSL get.docker.com | sh

Tunggu hingga proses instalasi selesai.

Install Gitea

Pertama, buat direktori baru untuk Gitea:

mkdir /opt/gitea
cd /opt/gitea

Kemudian, buat file Docker Compose:

apt install nano -y # Jika belum
nano docker-compose.yml

Isi dengan konfigurasi berikut:

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/gitea:1.25.2
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=db:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "2222:22"
    depends_on:
      - db

  db:
    image: docker.io/library/mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    networks:
      - gitea
    volumes:
      - ./mysql:/var/lib/mysql

Simpan file tersebut dengan Ctrl-X, y, kemudian Enter.

Terakhir, jalankan Gitea:

docker compose up -d

Tunggu hingga proses deploy selesai. Deploy pertama kali dapat memakan waktu beberapa menit karena harus mengunduh image Gitea , serta mengonfigurasinya dari awal.

Konfigurasi NGINX (Reverse Proxy)

Agar kita dapat mengakses URL dengan koneksi HTTPS melalui domain seperti https://git.tutorial.mdinata.my.id, kita dapat menggunakan reverse proxy seperti NGINX.

Pertama, install NGINX melalui perintah:

# Hapus Apache2 dan pendukungnya (biasanya terpasang secara bawaan di VPS OpenVZ)
apt purge apache2* -y

# Install NGINX
apt install nginx -y

Buat konfigurasi host baru khusus untuk Gitea:

nano /etc/nginx/sites-available/git

Kemudian tempelkan konfigurasi berikut:

# https://natvps.id/gitea-server-nat-vps
# Reference: https://docs.gitea.com/administration/reverse-proxies

server {
    listen 80;
    listen [::]:80;
    server_name git.tutorial.mdinata.my.id;

    location / {
        client_max_body_size 512M;
        proxy_pass http://localhost:3000;
        proxy_set_header Connection $http_connection;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Ganti git.tutorial.mdinata.my.id dengan domain Anda.

Aktifkan konfigurasi tersebut dengan:

ln -sf /etc/nginx/sites-available/git /etc/nginx/sites-enabled/

# Restart NGINX
systemctl restart nginx

Generate Sertifikat SSL (Let’s Encrypt)

Agar domain kita dapat diakses melalui HTTPS, kita perlu membuat sertifikat SSL. Kita dapat menggunakan sertifikat SSL gratis dari Let’s Encrypt melalui Certbot.

Install Certbot dan plugin NGINX nya menggunakan perintah:

apt install python3-certbot python3-certbot-nginx

Lalu, generate sertifikat melalui Certbot dengan perintah

certbot --nginx -d git.tutorial.mdinata.my.id

Ganti git.tutorial.mdinata.my.id dengan domain Anda.

Gitea saat ini dapat diakses melalui koneksi aman HTTPS.

Mengakses Gitea

Gitea dapat diakses melalui domain Anda sebelumnya. Contoh: https://git.tutorial.mdinata.my.id.

Silahkan isi konfigurasi sesuai keinginan, kemudian klik Install Gitea pada bagian bawah.

Gitea telah selesai dipasang. Selamat!

Penutup

Demikianlah artikel ini mengenai langkah-langkah install Gitea di NAT VPS.

Jika bingung atau ragu, jangan sungkan untuk bertanya di grup Telegram @IPv6Indonesia. Terima kasih!

Hendra Manudinata

Recent Posts

Cara Install Gopeed Web Downloader di NAT VPS

NATVPS.id – Gopeed (Go Speed) adalah aplikasi pengunduh modern bersifat open-source yang yang mendukung berbagai…

9 bulan ago

Cara Streaming IPTV dengan ViniPlay + M3U

NATVPS.id – IPTV (Internet Protocol Television) adalah teknologi yang menyiarkan konten televisi, video, dan siaran…

9 bulan ago

Install Jellyfin Media Server di NAT VPS

NATVPS.id – Jellyfin adalah server media open-source yang memungkinkan Anda mengatur, melakukan streaming, dan mengelola…

9 bulan ago

Cara Install LibreOffice via Docker di NAT VPS

NATVPS.id – LibreOffice adalah perangkat lunak perkantoran (office) yang gratis, modern, dan open-source. LibreOffice dapat…

10 bulan ago

Install Pi-Hole + OpenVPN Server di NAT VPS

NATVPS.id – Pi-hole adalah software DNS Server yang berfokus pada pemblokiran iklan dan situs trackers.…

11 bulan ago

Install Matrix Server dengan Synapse + Element di NAT VPS

NATVPS.id – Matrix adalah standar protokol komunikasi real-time yang dirancang untuk menyediakan infrastruktur komunikasi yang aman dan…

11 bulan ago