Gitea adalah cabang dari Gogs, layanan Git yang dihosting sendiri dengan mudah. Ini mirip dengan GitHub, Bitbucket, dan Gitlab. Gitea adalah solusi hosting kode ringan yang ditulis dalam Go, dapat berjalan pada persyaratan perangkat keras minimal. Ini adalah aplikasi lintas platform, dapat dijalankan di mana saja Go dapat dikompilasi seperti Windows, Linux, MacOS, ARM dll.
Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan mengkonfigurasi layanan Git ringan menggunakan Gitea. Kami akan menyebarkan server Gitea menggunakan Docker dan akan menggunakan database PostgreSQL dan proxy Traefik Reverse. Untuk panduan ini, kami akan menggunakan Server Ubuntu 18.04 terbaru.
Prasyarat
- Ubuntu 18.04
- Hak istimewa root
Apa yang akan kita lakukan?
- Instal Docker-CE
- Instal Docker Compose
- Menerapkan Gitea sebagai Kontainer menggunakan Docker
- Pasca-Instalasi Gitea
- Buat Repositori Pertama
- Menguji Komitmen Pertama
Langkah 1 - Instal Docker-CE
Langkah pertama yang akan kami lakukan untuk panduan ini adalah menginstal edisi komunitas Docker ke server Ubuntu 18.04. Kami akan menginstal paket Docker CE dari repositori resmi Docker.
Tambahkan repositori Docker dan Docker dengan menjalankan perintah di bawah ini.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Perintah 'add-apt-repository' akan secara otomatis memperbarui repositori.
Sekarang instal paket Docker CE.
sudo apt policy docker-ce
sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu
Saat penginstalan selesai, mulai layanan buruh pelabuhan dan aktifkan untuk diluncurkan setiap kali sistem boot.
sudo systemctl start docker
sudo systemctl enable docker
Docker CE aktif dan berjalan di server Ubuntu 18.04. Verifikasi instalasi dengan memeriksa versi buruh pelabuhan.
docker version
atau jalankan buruh pelabuhan 'hello-world'.
docker run hello-world
Langkah 2 - Instal Docker Compose
Docker-Compose adalah alat baris perintah untuk mendefinisikan dan mengelola aplikasi buruh pelabuhan multi-kontainer. Ini memungkinkan Anda membuat wadah sebagai layanan, bagus untuk lingkungan pengembangan, pengujian, dan pementasan Anda.
Instal Docker Compose dengan mengunduh file biner dan membuatnya dapat dieksekusi.
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Sekarang periksa perintah docker-compose.
docker-compose version
Docker Compose sekarang telah terinstal.
Langkah 3 - Terapkan Gitea sebagai Docker Container
Pada langkah ini, kita akan membuat skrip docker-compose baru yang berisi semua konfigurasi layanan termasuk Database PostgreSQL dan reverse proxy Traefik. Kami akan menyiapkan semua file penerapan pada direktori bernama 'penyebaran'.
Buat Jaringan Docker Khusus
Sebelum membuat konfigurasi penerapan, mari buat jaringan jembatan kustom baru. Ini akan digunakan untuk traefik reverse proxy layanan eksternal.
Periksa jaringan buruh pelabuhan daftar.
docker network ls
Sekarang buat jaringan jembatan kustom baru bernama 'hakasenet'.
docker network create hakasenet
Periksa lagi.
docker network ls
Sekarang Anda akan mendapatkan jaringan 'hakasenet' dalam daftar.
Setup Deployment Directory dan Files
Buat direktori baru bernama 'deployment' dan skrip 'docker-compose.yml' di atasnya.
mkdir deployment; cd deployment
touch docker-compose.yml
Sekarang buat direktori baru 'gitea' dan volume data 'postgres'.
mkdir -p gitea/ postgres/
Buat file baru 'acme.json' dan ubah izin file. itu akan digunakan untuk menyimpan data Letsencrypt.
touch acme.json
chmod 600 acme.json
Sekarang buat file konfigurasi traefik global 'traefik.toml'.
touch traefik.toml
Dan di bawah ini adalah file dan direktori yang kami miliki untuk instalasi Gitea menggunakan Docker.
tree
Menyiapkan Layanan PostgreSQL
Layanan database PostgreSQL adalah layanan pertama yang ingin kami konfigurasikan. Layanan database hanya akan berjalan di jaringan buruh pelabuhan internal.
Dan kita akan menggunakan image Postgres 9.6, menggunakan 'gitea' sebagai nama database, user, dan password, dan mengatur volume data postgres.
Edit file 'docker-compose.yml' menggunakan vim.
vim docker-compose.yml
Tempelkan konfigurasi di bawah.
version: "3" networks: hakasenet: external: true internal: external: false services: db: image: postgres:9.6 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea labels: - "traefik.enable=false" networks: - internal volumes: - ./postgres:/var/lib/postgresql/data
Simpan dan keluar.
Setel Proksi Terbalik Traefik
Sekarang kita akan mengkonfigurasi proxy terbalik Traefik untuk instalasi Gitea kita.
Layanan traefik akan berjalan di bawah port default HTTP dan HTTPS, berjalan di jaringan jembatan khusus bernama 'hakasenet', dan kami akan mengonfigurasinya untuk menggunakan sertifikat Letsencrypt yang akan ditentukan pada file 'traefik.toml'.
Edit skrip penulisan.
vim docker-compose.yml
Tempelkan konfigurasi di bawah konfigurasi layanan db.
traefik: image: traefik:latest command: --docker ports: - 80:80 - 443:443 labels: - "traefik.enable=true" - "traefik.backend=dashboard" - "traefik.frontend.rule=Host:traefik.hakase-labs.io" - "traefik.port=8080" networks: - hakasenet volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json container_name: traefik restart: always
Simpan dan keluar.
Sekarang edit file konfigurasi 'traefik.toml'.
vim traefik.toml
Dan paste konfigurasi berikut.
#Traefik Global Configuration debug = false checkNewVersion = true logLevel = "ERROR" #Define the EntryPoint for HTTP and HTTPS defaultEntryPoints = ["https","http"] #Define the HTTP port 80 and #HTTPS port 443 EntryPoint #Enable automatically redirect HTTP to HTTPS [entryPoints] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls] #Enable Traefik Dashboard on port 8080 #with basic authentication method #hakase and password [entryPoints.dash] address=":8080" [entryPoints.dash.auth] [entryPoints.dash.auth.basic] users = [ "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.", ] [api] entrypoint="dash" dashboard = true #Enable retry sending a request if the network error [retry] #Define Docker Backend Configuration [docker] endpoint = "unix:///var/run/docker.sock" domain = "hakase-labs.io" watch = true exposedbydefault = false #Letsencrypt Registration #Define the Letsencrypt ACME HTTP challenge [acme] email = "[email protected]" storage = "acme.json" entryPoint = "https" OnHostRule = true [acme.httpChallenge] entryPoint = "http"
Simpan dan keluar.
Catatan:
- Ubah email acme letsencrypt dengan alamat email Anda yang valid.
Menyiapkan Layanan Gitea
Edit file konfigurasi 'docker-compose.yml'.
vim docker-compose.yml
Tempelkan konfigurasi layanan gitea di bagian bawah baris.
server: image: gitea/gitea:latest environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - internal volumes: - ./gitea:/data ports: - "3000" - "22" labels: - "traefik.enabled=true" - "traefik.backend=gitea" - "traefik.frontend.rule=Host:git.hakase-labs.io" - "traefik.docker.network=hakasenet" - "traefik.port=3000" networks: - internal - hakasenet depends_on: - db - traefik
Simpan dan keluar.
Layanan Gitea akan berjalan pada port TCP '3000', menggunakan dua jaringan buruh pelabuhan 'internal' dan 'hakasenet', dan akan berjalan di bawah traefik reverse proxy pada domain 'git.hakase-labs.io'.
Docker membuat konfigurasi untuk penerapan Gitea telah selesai.
Terapkan Semua Layanan
Sekarang terapkan tumpukan menggunakan perintah 'docker-compose' di bawah ini.
docker-compose up -d
Perintah akan mengunduh semua gambar buruh pelabuhan yang diperlukan dan menjalankan layanan yang ditentukan pada skrip pembuatan buruh pelabuhan.
Dan jika sudah selesai, cek service yang tersedia di docker menggunakan option ps seperti dibawah ini.
docker-compose ps
Sekarang Anda akan mendapatkan hasil seperti di bawah ini.
Basis data PostgreSQL, Gitea, dan wadah proxy terbalik traefik sekarang aktif dan berjalan. Layanan database berjalan pada port default '5432', server gitea berjalan pada port '3000', dan proxy traefik berjalan pada port HTTP dan HTTPS, dapat diakses dari jaringan/internet luar.
Jika Anda ingin memeriksa semua log dari pemeriksaan buruh pelabuhan, jalankan perintah di bawah ini.
docker-compose logs
Langkah 4 - Pasca-Instalasi Gitea
Buka browser web Anda dan ketik instalasi URL Gitea Anda. Milik saya adalah:
https://git.hakase-labs.io/
Sekarang Anda akan mendapatkan halaman default Gitea.
Tambahkan jalur penginstalan ke URL.
https://git.hakase-labs.io/install
Sekarang Anda akan mendapatkan halaman instalasi Gitea.
Konfigurasi basis data
Ketik detail database PostgreSQL, dan gunakan 'db ' sebagai tuan rumah.
Konfigurasi Umum Gitea
Ubah 'Judul situs' dengan judul Anda sendiri, 'Domain Server SSH' (tanpa https) dan 'URL Basis Gitea' dengan URL server gitea Anda.
Setelan Akun Admin
Pada pengaturan admin, ketik nama pengguna, kata sandi, dan alamat email admin.
Sekarang klik tombol 'Instal Gitea'.
Dan Anda akan diarahkan ke dasbor pengguna default Gitea.
Langkah 5 - Buat Repositori Pertama di Gitea
Di beranda pengguna, klik '+' tombol.
Sekarang ketik detail repositori yang ingin Anda buat.
dan klik tombol 'Buat Repositori'.
Repositori telah dibuat.
Langkah 6 - Menguji Komitmen Pertama
Kembali ke shell terminal Anda, dan atur pengguna dan email git default.
Jalankan perintah git di bawah ini.
git config --global user.name "hakase"
git config --global user.email "[email protected]"
Sekarang kloning repositori.
git clone https://git.hakase-labs.io/hakase/myrepo.git
Buka direktori repositori 'myyrepo' dan edit file README.md.
cd myrepo/
vim README.md
buat perubahan pada file README, lalu simpan dan keluar.
Sekarang komit repositori.
git add .
git commit -m 'Edit the README.md file by hakase-labs'
Dan dorong ke server.
git push origin master
Ketik nama pengguna dan kata sandi Anda.
Dan berikut hasilnya.
Periksa ke halaman repositori dan pastikan Anda mendapatkan perubahan seperti di bawah ini.
Instalasi Gitea dengan Docker di Ubuntu 18.04 telah berhasil diselesaikan.