Gitea adalah layanan manajemen kode sumber (source code management) berbasis Git, mirip seperti GitHub, GitLab, atau Bitbucket. Bedanya, Gitea bersifat ringan, open-source, dan dapat di-hosting secara mandiri (self-hosted). Gitea bisa diinstal menggunakan binary, Docker, atau package manager, serta mendukung berbagai platform seperti Windows, macOS, Linux, ARM, dan lainnya.
Dalam panduan ini, kita akan menginstal Gitea menggunakan Docker, agar memudahkan instalasi runner untuk menjalankan action pipelines.
Persiapan #
1. Membuat User Git #
Buat user baru khusus untuk Git dengan perintah berikut:
adduser --shell /bin/bash --disabled-password --home /home/git git
2. Mengubah Port Default SSH #
Untuk menghindari konflik, ubah port SSH standar sehingga port 22 dapat digunakan untuk layanan Git. Edit konfigurasi SSH:
nano /etc/ssh/sshd_config
Cari baris Port
dan ubah nilainya, misalnya menjadi:
Port 2222
Simpan perubahan dan restart layanan SSH agar konfigurasi baru diterapkan.
Instalasi Docker #
1. Menginstal Docker #
Gunakan perintah berikut untuk menginstal Docker:
curl -L get.docker.com | sh
2. Verifikasi Instalasi #
Setelah instalasi selesai, verifikasi bahwa Docker telah terinstal dengan menjalankan:
docker version
Jika informasi versi Docker muncul, berarti instalasi berhasil.
Instalasi Gitea #
1. Membuat Folder Gitea #
Buat folder untuk menyimpan file docker-compose.yml
:
mkdir gitea
cd gitea
2. Menyiapkan Docker Compose #
Buat file docker-compose.yml
dan isi dengan konfigurasi berikut:
networks:
gitea:
driver: bridge
services:
gitea:
image: docker.gitea.com/gitea:1.23.6
container_name: gitea
environment:
USER_UID: 1000
USER_GID: 1000
GITEA__database__DB_TYPE: postgres
GITEA__database__HOST: db:5432
GITEA__database__NAME: gitea
GITEA__database__USER: gitea
GITEA__database__PASSWD: gitea
restart: always
networks:
- gitea
volumes:
- ./gitea/ssh:/data/ssh
- /home/git/.ssh:/data/git/.ssh
- /home/git/repositories:/data/git/repositories
- /home/git/lfs:/data/git/lfs
- /home/git/gitea:/data/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "80:3000"
- "22:22"
depends_on:
- db
db:
image: postgres:14
container_name: gitea_db
restart: always
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: gitea
POSTGRES_DB: gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
runner:
image: gitea/act_runner
container_name: gitea_runner
links:
- docker-in-docker
restart: unless-stopped
privileged: true
depends_on:
gitea:
condition: service_started
docker-in-docker:
condition: service_started
volumes:
- ./data/act_runner:/data
environment:
GITEA_INSTANCE_URL: http://<IP_or_domain>
DOCKER_HOST: tcp://docker-in-docker:2375
GITEA_RUNNER_REGISTRATION_TOKEN: <registration_token>
docker-in-docker:
image: docker:dind
container_name: docker_dind
privileged: true
command:
- dockerd
- -H
- tcp://0.0.0.0:2375
- --tls=false
restart: unless-stopped
Catatan:
Jangan lupa mengganti<IP_or_domain>
dan<registration_token>
sesuai dengan server Anda.
Jika memungkinkan, disarankan untuk memisahkan runner dan docker-in-docker ke server atau mesin berbeda dari Gitea.
Tujuannya adalah untuk menjaga performa Gitea tetap optimal, terutama saat runner menjalankan proses build yang berat.
3. Menjalankan Gitea #
Setelah konfigurasi selesai, jalankan Gitea menggunakan perintah:
docker compose up -d
4. Setup Gitea Melalui Browser #
Buka browser dan akses http://<IP_or_domain>
, kemudian ikuti langkah-langkah setup Gitea.

Pada tahap setup, Anda dapat membuat akun administrator.

Setelah proses instalasi selesai, Anda sudah bisa mulai membuat repository pertama Anda.

Instalasi Gitea Runner #
1. Mendapatkan Registration Token #
Untuk mendapatkan Registration Token, buka URL berikut melalui browser:
http://<IP_or_domain>/-/admin/actions/runners
Kemudian klik tombol Create new Runner.

Salin token yang telah dibuat.
2. Menambahkan Token ke Docker Compose #
Tambahkan token tersebut ke bagian environment pada service runner
di file docker-compose.yml
. Contohnya:
environment:
- GITEA_INSTANCE_URL=http://<IP_or_domain>
- DOCKER_HOST=unix:///var/run/docker.sock
- GITEA_RUNNER_REGISTRATION_TOKEN=88EineyRnUIbT6IN1YDoNB1KBq2eL3QhxZLMqPaL
Catatan:
Pastikan Anda mengganti<IP_or_domain>
danGITEA_RUNNER_REGISTRATION_TOKEN
dengan nilai yang sesuai.
3. Restart Gitea #
Setelah menambahkan token di file docker-compose.yml
, restart Gitea dengan perintah:
docker compose down
docker compose up -d
4. Verifikasi Registrasi Runner #
Jika token berhasil diregistrasikan, runner akan muncul di daftar seperti gambar berikut:

Jika runner belum muncul, Anda bisa mencoba me-restart container runner:
docker compose restart
Referensi: