GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menginstal Gitea di Ubuntu Menggunakan Docker

Pengantar

Saat mengerjakan pengembangan perangkat lunak, penting untuk dapat mengelola kode sumber dengan cara yang efisien dan dapat dilacak. Manajemen kode sumber (SCM ) sistem adalah cara terbaik untuk menyediakan proses yang efisien dan fleksibel untuk mengerjakan proyek dengan ukuran berapa pun dengan sejumlah pengembang. Banyak perangkat lunak SCM yang berbeda telah ada selama bertahun-tahun, dari CVS hingga SubVersion, Perforce hingga Mercurial, tetapi pemimpin industri saat ini adalah Git, yang telah mengalami pertumbuhan besar dengan popularitas situs seperti GitHub dan GitLab.

Namun, dengan akun gratis pada layanan ini yang ditujukan untuk penyimpanan publik sumber terbuka, kemampuan untuk bekerja pada perangkat lunak pribadi atau berpemilik menimbulkan biaya bagi pengembang. Selain itu, akses seseorang ke repositori terikat pada organisasi eksternal, dan banyak yang lebih memilih untuk mengontrol perangkat lunak mereka sendiri dari awal hingga akhir.

Untuk itu, beberapa solusi yang dihosting sendiri seperti Gogs, Gitea, dan GitLab telah dikembangkan selama beberapa tahun terakhir. Tutorial ini berfokus pada pengaturan salah satu solusi yang lebih populer, Gitea, untuk memungkinkan Anda meng-host repositori pribadi dan mengelola proyek Anda sendiri di seluruh siklus hidupnya. Gitea berukuran kecil, mandiri, dan ringan, menjadikannya proses yang cepat untuk diterapkan tanpa merusak persyaratan perangkat keras. Anda akan menggunakan instalasi Docker dari Gitea, yang memastikan bahwa perangkat lunak akan terus diperbarui.

Prasyarat

Sebelum memulai tutorial ini, Anda harus memiliki yang berikut:

  • Server Ubuntu 20.04 dengan pengguna non-root yang dikonfigurasi dengan sudo hak istimewa seperti yang dijelaskan dalam pengaturan server awal untuk Ubuntu 20.04.
  • Docker terpasang di server Anda. Ikuti Langkah 1 dan 2 Cara Menginstal Docker di Ubuntu 20.04 untuk menginstal Docker.
  • Docker Compose terinstal di server Anda. Ikuti Langkah 1 dari panduan kami tentang Cara Menginstal dan Menggunakan Docker Compose di Ubuntu 20.04 untuk menyiapkannya.
  • Nama domain yang diarahkan ke server Anda. Jika Anda menggunakan Droplet DigitalOcean, Anda dapat melakukannya dengan mengikuti dokumentasi Domain dan DNS kami. Tutorial ini akan menggunakan your_domain dalam contoh di seluruh.

Langkah 1 — Membuat pengguna Git

Gitea, seperti banyak repositori kode sumber, menggunakan SSH untuk mengakses repositori jarak jauh. Ini memungkinkan pengguna untuk mengontrol akses ke kode mereka dengan mengelola kunci SSH mereka di dalam Gitea itu sendiri. Agar pengguna dapat mengakses host melalui SSH, Anda harus membuat git pengguna di mesin host. Langkah ini diselesaikan terlebih dahulu agar Anda dapat mengakses ID pengguna dan grup pengguna.

Pertama, buat pengguna di host yang akan menerima koneksi ini:

  1. sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

Dalam perintah ini, Anda membuat pengguna sistem yang menggunakan bash sebagai shell-nya, tetapi tidak memiliki kata sandi login. Ini memungkinkan Anda untuk menggunakan sudo untuk menjalankan perintah sebagai pengguna itu tetapi mencegah masuk seperti itu. Anda juga mengatur direktori home pengguna ke /home/git .

Perintah ini akan menampilkan beberapa informasi tentang pengguna yang baru saja dibuat:

OutputAdding system user `git' (UID 112) ...
Adding new group `git' (GID 119) ...
Adding new user `git' (UID 112) with group `git' ...
Creating home directory `/home/git' …

Catat nilai UID dan GID yang diberikan di sini (dalam hal ini, UID 112 dan GID 119 ), karena akan digunakan di langkah mendatang.

Langkah 2 — Memasang Gambar Gitea Docker

Gitea memiliki image yang tersedia di repositori Docker global, artinya, menggunakan Docker Compose, Anda dapat menginstal dan menjalankan image tersebut sebagai layanan dengan sedikit kerja ekstra. Gambar itu sendiri menjalankan layanan web dan SSH Gitea, memungkinkan Git mengakses baik dari browser maupun baris perintah.

Untuk menjalankan wadah Gitea, Anda akan menggunakan Docker Compose, alat deklaratif untuk menyiapkan lingkungan.

Untuk memulainya, buat direktori untuk meng-host layanan Anda dan masukkan:

  1. mkdir ~/gitea
  2. cd ~/gitea

Sesampai di sana, buat file bernama docker-compose.yml menggunakan editor teks pilihan Anda. Contoh berikut menggunakan nano . File ini akan berisi deskripsi container yang akan dijalankan sebagai bagian dari instalasi Gitea Anda:

  1. nano docker-compose.yml

Tambahkan yang berikut ini ke dalam file baru ini:

~/gitea/docker-compose.yml
version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:1.16.5
    container_name: gitea
    environment:
      - USER_UID=UID_from_step_1
      - USER_GID=GID_from_step_1
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /home/git/.ssh/:/data/git/.ssh
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "127.0.0.1:3000:3000"
      - "127.0.0.1:2222:22"

Mari kita telusuri apa yang dilakukan file ini:

  • version: "3" :ini memungkinkan Docker Menyusun versi file konfigurasi apa ini.
  • networks :bagian ini mendeklarasikan pengaturan jaringan dari koleksi container kami. Dalam hal ini, sebuah gitea jaringan dibuat, tetapi tidak diekspos secara eksternal.
  • services
    • image: gitea/gitea:1.16.5 :ini menentukan bahwa kita akan menggunakan Gitea versi 1.16.5; namun Anda dapat mengubah nilai setelah titik dua untuk menentukan versi lain, apakah rilis tertentu, versi utama seperti :1 , atau tag seperti :latest atau :dev .
    • environment :bagian lingkungan menentukan variabel lingkungan yang akan tersedia untuk gambar selama instalasi dan berjalan. Dalam hal ini, kami menetapkan ID pengguna dan grup untuk lingkungan, menggunakan UID dan GID yang disediakan dalam output adduser perintah di Langkah 1.
    • restart: always :baris ini menginstruksikan Docker untuk selalu me-restart kontainer jika turun, baik karena kontainer itu sendiri turun atau mesin host melakukannya; intinya, Gitea akan mulai saat boot.
    • networks :ini menetapkan bahwa layanan Gitea akan memiliki akses dan dapat diakses pada jaringan yang disebutkan di atas.
    • ./gitea:/data dan /home/git/.ssh/:/data/git/.ssh :ini adalah lokasi di mana Gitea akan menyimpan repositori dan data terkaitnya. Saat ini, ini dipetakan ke folder bernama gitea di direktori saat ini. Docker akan membuat folder ini ketika wadah dimulai jika tidak ada. .ssh folder akan dijelaskan lebih lanjut nanti di Langkah 6.
    • /etc/timezone dan /etc/localtime :kedua file ini berisi informasi tentang zona waktu dan waktu di mesin host. Dengan memetakan ini langsung ke dalam wadah sebagai file hanya-baca (ditentukan dengan :ro final final bagian dari definisi), wadah akan memiliki informasi yang sama dengan host.
    • ports :Gitea mendengarkan koneksi pada dua port. Itu mendengarkan koneksi HTTP pada port 3000 , di mana ia melayani antarmuka web untuk repositori kode sumber, dan mendengarkan koneksi SSH pada port 22 . Dalam hal ini, Anda menyimpan port 3000 untuk koneksi HTTP dengan memetakannya ke nomor yang sama, dan Anda memetakan port pada container Gitea dari 22 biasa ke 2222 untuk menghindari bentrokan port. Pada Langkah 6, Anda akan menyiapkan shim SSH untuk mengarahkan lalu lintas ke Gitea saat diminta.

Catatan: Ini adalah contoh minimal file Docker Compose untuk Gitea. Ada beberapa opsi lain yang dapat disertakan, seperti menggunakan MySQL atau PostGreSQL sebagai basis data pendukung atau volume bernama untuk penyimpanan. Pengaturan minimal ini menggunakan SQLite sebagai basis data pendukung dan volume menggunakan direktori bernama gitea untuk penyimpanan. Anda dapat membaca selengkapnya tentang opsi ini di dokumentasi Gitea.

Simpan dan tutup file. Jika Anda menggunakan nano untuk mengedit file, Anda dapat melakukannya dengan menekan CTRL + X , Y , lalu ENTER .

Dengan file ini di tempat Anda kemudian dapat membawa wadah menggunakan Docker Compose:

  1. docker-compose up

Perintah ini akan menarik gambar ke bawah, memulai wadah Gitea, dan akan mengembalikan output seperti ini:

Output[+] Running 9/9
 ⠿ server Pulled                                                                                                  8.2s
   ⠿ e1096b72685a Pull complete                                                                                   1.4s
   ⠿ ac9df86bb932 Pull complete                                                                                   3.3s
   ⠿ 6d34ed99b58a Pull complete                                                                                   3.4s
   ⠿ a8913d040fab Pull complete                                                                                   3.6s
   ⠿ a5d3a72a2366 Pull complete                                                                                   5.3s
   ⠿ 1f0dcaae29cc Pull complete                                                                                   5.6s
   ⠿ f284bcea5adb Pull complete                                                                                   7.3s
   ⠿ 0f09c34c97e3 Pull complete                                                                                   7.5s
[+] Running 2/2
 ⠿ Network gitea_gitea  Created                                                                                   0.2s
 ⠿ Container gitea      Created                                                                                   0.2s
Attaching to gitea
gitea  | Generating /data/ssh/ssh_host_ed25519_key...
gitea  | Generating /data/ssh/ssh_host_rsa_key...
gitea  | Generating /data/ssh/ssh_host_dsa_key...
gitea  | Generating /data/ssh/ssh_host_ecdsa_key...
gitea  | Server listening on :: port 22.
gitea  | Server listening on 0.0.0.0 port 22.
gitea  | 2022/03/31 17:26:21 cmd/web.go:102:runWeb() [I] Starting Gitea on PID: 14
gitea  | 2022/03/31 17:26:21 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
gitea  | 2022/03/31 17:26:21 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /app/gitea
gitea  | 2022/03/31 17:26:21 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /data/gitea
gitea  | 2022/03/31 17:26:21 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /data/gitea/log
gitea  | 2022/03/31 17:26:21 ...s/install/setting.go:25:PreloadSettings() [I] Configuration file: /data/gitea/conf/app.ini
gitea  | 2022/03/31 17:26:21 ...s/install/setting.go:26:PreloadSettings() [I] Prepare to run install page
gitea  | 2022/03/31 17:26:21 ...s/install/setting.go:29:PreloadSettings() [I] SQLite3 is supported
gitea  | 2022/03/31 17:26:21 cmd/web.go:208:listen() [I] Listen: http://0.0.0.0:3000
gitea  | 2022/03/31 17:26:21 cmd/web.go:212:listen() [I] AppURL(ROOT_URL): http://localhost:3000/

Namun, ini akan membuat wadah berjalan di latar depan, dan akan berhenti segera setelah Anda keluar dari proses dengan Ctrl + C atau dengan kehilangan koneksi Anda. Agar penampung berjalan di latar belakang sebagai proses terpisah, Anda dapat menambahkan -d tandai ke perintah Tulis:

  1. docker-compose up -d

Anda akan diberi tahu saat penampung dimulai dan kemudian dikembalikan ke cangkang Anda.

Langkah 3 — Menginstal Nginx sebagai Proxy Terbalik

Menjalankan layanan web seperti Gitea di belakang proxy terbalik adalah praktik umum, karena perangkat lunak server modern seperti Apache atau Nginx dapat lebih mudah menangani beberapa layanan pada satu mesin, menyeimbangkan beban di beberapa server, dan menangani SSL. Selain itu, ini akan memungkinkan Anda untuk menyiapkan nama domain yang menunjuk ke instance Gitea Anda yang berjalan pada port HTTP(S) standar.

Untuk keperluan tutorial ini, kami akan menggunakan Nginx. Pertama, perbarui daftar paket di mesin host Anda:

  1. sudo apt update

Selanjutnya, instal Nginx menggunakan apt :

  1. sudo apt install nginx

Sekarang, saat Anda menggunakan firewall ufw , Anda harus mengizinkan akses ke port ini:

  1. sudo ufw allow "Nginx Full"

Setelah ini diinstal, Anda seharusnya dapat mengakses server di browser Anda dengan mengunjungi http://your_domain . Ini akan membawa Anda ke halaman yang sangat sederhana yang menyambut Anda di Nginx.

Pada titik ini, Anda harus membuat entri proxy terbalik untuk mengarahkan lalu lintas masuk melalui Nginx ke instance Gitea yang berjalan di Docker. Buat file baru di Nginx sites-available direktori menggunakan editor teks pilihan Anda. Contoh berikut menggunakan nano :

  1. sudo nano /etc/nginx/sites-available/gitea

Dalam file ini, siapkan blok server baru dengan permintaan ke / diproksikan ke instance Gitea Anda:

/etc/nginx/sites-available/gitea
server {
    # Listen for requests on your domain/IP address.
    server_name your_domain;

    root /var/www/html;

    location / {
        # Proxy all requests to Gitea running on port 3000
        proxy_pass http://localhost:3000;
        
        # Pass on information about the requests to the proxied service using headers
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Setelah Anda selesai mengedit file, simpan dan tutup.

Catatan: Untuk informasi lebih lanjut tentang memahami apa yang terjadi dalam arahan ini, lihat tutorial Memahami Nginx HTTP Proxying, Load Balancing, Buffering, dan Caching.

Nginx menentukan situs apa yang sebenarnya akan dilayaninya berdasarkan apakah file tersebut ada di sites-enabled atau tidak. direktori. Ini dikelola melalui tautan simbolik yang menunjuk ke file di sites-available direktori. Anda perlu membuat salah satu tautan simbolis tersebut untuk Nginx agar dapat mulai melayani Gitea:

  1. sudo ln -s /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/gitea

Sebelum Anda memulai ulang Nginx untuk membuat perubahan Anda aktif, Anda harus meminta Nginx sendiri untuk memeriksa apakah perubahan tersebut valid dengan menguji konfigurasinya.

  1. sudo nginx -t

Jika semuanya baik-baik saja, perintah ini akan mengembalikan output seperti berikut:

Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Jika ada masalah, itu akan memberi tahu Anda apa dan di mana masalahnya.

Saat Anda siap untuk melanjutkan dengan perubahan ini, mulai ulang layanan sistem Nginx:

  1. sudo systemctl restart nginx

Sekarang, ketika Anda mengunjungi http://your_domain di browser Anda, Anda akan berada di halaman penyiapan awal untuk Gitea yang siap Anda isi.

Langkah 4 — Memasang Certbot dan Menyiapkan Sertifikat TLS

Berkat Certbot dan otoritas sertifikat gratis Let's Encrypt, menambahkan enkripsi TLS ke aplikasi penginstalan Gitea Anda hanya memerlukan dua perintah.

Pertama, instal Certbot dan plugin Nginx-nya:

  1. sudo apt install certbot python3-certbot-nginx

Selanjutnya, jalankan certbot di --nginx mode, dan tentukan domain yang sama yang Anda gunakan di Nginx server_name arahan konfigurasi:

  1. sudo certbot --nginx -d your_domain_here

Anda akan diminta untuk menyetujui persyaratan layanan Let's Encrypt, dan untuk memasukkan alamat email.

Setelah itu, Anda akan ditanya apakah Anda ingin mengalihkan semua lalu lintas HTTP ke HTTPS. Terserah Anda, tetapi ini umumnya disarankan dan aman untuk dilakukan.

Setelah itu, Let's Encrypt akan mengonfirmasi permintaan Anda dan Certbot akan mengunduh sertifikat Anda:

OutputCongratulations! You have successfully enabled https://your_domain

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=your_domain
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/your_domain/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/your_domain/privkey.pem
   Your cert will expire on 2022-05-09. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Certbot akan secara otomatis memuat ulang Nginx dengan konfigurasi dan sertifikat baru. Muat ulang situs Anda di browser Anda dan itu akan mengalihkan Anda ke HTTPS secara otomatis jika Anda memilih opsi pengalihan.

Situs Anda sekarang aman dan aman untuk melanjutkan langkah penyiapan berbasis web.

Anda dapat menemukan informasi lebih lanjut tentang mengamankan domain dengan Let's Encrypt di tutorial Cara Mengamankan Nginx dengan Let's Encrypt di Ubuntu 20.04.

Langkah 5 — Mengonfigurasi Gitea dan Menambahkan Pengguna Pertama

Sekarang Anda dapat melanjutkan untuk mengonfigurasi Gitea itu sendiri dan membuat pengguna admin pertama. Kunjungi instance Gitea Anda dengan membuka https://your_domain di peramban. Pada layar konfigurasi awal Gitea, akan ada beberapa opsi untuk layanan:

Beberapa di antaranya seperti judul situs sesuai dengan kasus penggunaan khusus Anda, meskipun untuk tujuan tutorial ini, Anda harus mengubah yang berikut:

  • Domain server: domain server yang Anda siapkan di Langkah 3
  • URL Basis Gitea: URL lengkap yang akan Anda gunakan untuk mengakses Gitea di browser, termasuk protokolnya. Misalnya, https://your_domain .

Saat Anda menyimpan perubahan konfigurasi, Anda akan diarahkan ke halaman login Gitea.

Catatan: Setelah konfigurasi disimpan, layanan Gitea akan dimulai ulang. Karena ini mungkin memakan waktu beberapa detik, Anda mungkin mengalami kesalahan Nginx yang menyatakan 502 Gerbang Buruk . Jika Anda menemukan kesalahan ini, tunggu beberapa detik dan mulai ulang halaman.

Karena Anda belum memiliki pengguna, Anda harus membuatnya terlebih dahulu. Klik tombol Butuh akun? Daftar sekarang link di bawah formulir login untuk mendaftarkan pengguna baru. Sebagai pengguna pertama pada sistem, pengguna ini akan dibuat sebagai administrator. Jika Anda mengatur pengaturan email pada layar konfigurasi, Anda mungkin perlu memverifikasi akun Anda terlebih dahulu.

Setelah Anda masuk sebagai pengguna tersebut, klik ikon pengguna Anda di sudut kanan atas halaman, lalu klik Administrasi Situs dari menu tarik-turun akan membawa Anda ke halaman tempat Anda dapat menjalankan tugas pemeliharaan, mengelola akun pengguna dan organisasi, dan mengonfigurasi Gitea lebih lanjut.

Membuat Tempat Penyimpanan Percobaan

Untuk menguji Gitea, baik di antarmuka web dan menggunakan Git itu sendiri, buat repositori pengujian. Anda selalu dapat menghapus repositori ini nanti.

Klik pada + masuk di sudut kanan atas laman, lalu klik + Repositori Baru dari menu tarik-turun. Di sini, Anda akan disajikan dengan layar yang memungkinkan Anda memberi nama dan menyesuaikan repositori Anda dengan informasi seperti deskripsinya, pengaturan seperti apakah itu pribadi atau tidak, dan konten default apa pun seperti README atau .gitignore berkas.

Setelah Anda menekan Buat Repositori , Anda akan memiliki repositori baru untuk dimainkan.

Langkah 6 — Mengonfigurasi SSH Shim

Langkah terakhir dari proses ini adalah menyiapkan mesin host dengan shim SSH. Karena Gitea berjalan dalam wadah Docker, ia tidak dapat menerima koneksi SSH pada port default 22 , karena ini akan berbenturan dengan tuan rumah. Di docker-compose.yml file yang Anda buat di atas, Docker diperintahkan untuk memetakan port pada host ke port 22 pada container sehingga menerima koneksi SSH ke port 2222 . Selain itu, authorized_keys SSH file tidak akan dapat diakses oleh seseorang yang SSHing ke host secara default.

Untuk mempertimbangkan hal ini, Anda perlu membuat shim SSH yang akan meneruskan koneksi SSH ke git pengguna di Host ke wadah. Dalam file penulisan, Anda juga menetapkan bahwa USER dalam wadah akan memiliki ID pengguna dan grup 1000, dan pada layar konfigurasi Gitea, Anda memberi tahu layanan untuk menggunakan pengguna bernama git .

Membuat pengguna Git dan kunci SSH-nya

Selanjutnya, Anda perlu membuat kunci SSH untuk pengguna. Ini hanya akan digunakan pada langkah di bawah dan tidak dibagikan dengan siapa pun di luar host.

  1. sudo -u git ssh-keygen -t rsa -b 4096 -C "Gitea Host Key"

Perintah ini menggunakan sudo untuk membuat kunci SSH sebagai pengguna yang Anda buat di atas. Dalam hal ini, kuncinya akan menjadi kunci RSA 4096-bit. Anda akan ditanyai serangkaian pertanyaan seperti kata sandi apa yang Anda inginkan untuk kunci tersebut dan apa nama file kunci tersebut. Tekan ENTER untuk masing-masing, biarkan kosong untuk menerima default.

Peringatan :Jika Anda menetapkan kata sandi pada kunci, Anda tidak akan dapat menggunakan shim.

Anda perlu memastikan bahwa pengguna di dalam wadah Gitea akan menerima kunci ini. Anda dapat melakukannya dengan menambahkannya ke .ssh/authorized_keys berkas:

  1. sudo -u git cat /home/git/.ssh/id_rsa.pub | sudo -u git tee -a /home/git/.ssh/authorized_keys
  2. sudo -u git chmod 600 /home/git/.ssh/authorized_keys

Semua perintah ini bekerja dengan shim karena fakta bahwa direktori /home/git/.ssh pada host dipasang sebagai volume pada wadah, artinya konten dibagikan di antara mereka. Ketika koneksi ke host melalui git over SSH diterima, koneksi akan menggunakan authorized_keys yang sama file sebagai wadah.

Membuat SSH Shim Script

Langkah terakhir untuk shim adalah membuat rintisan gitea perintah pada tuan rumah. Inilah yang memungkinkan perintah git untuk bekerja melalui SSH:ketika koneksi SSH dibuat, perintah default akan dijalankan. Ini gitea perintah pada host adalah yang akan mem-proxy koneksi SSH ke container.

Untuk skrip ini, gunakan cat untuk menulis ke file /usr/local/bin/gitea :

  1. cat <<"EOF" | sudo tee /usr/local/bin/gitea
  2. #!/bin/sh
  3. ssh -p 2222 -o StrictHostKeyChecking=no [email protected] "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
  4. EOF

Perintah dalam skrip ini SSH ke wadah Gitea Docker, meneruskan isi dari perintah asli yang digunakan oleh git .

Terakhir, pastikan skrip dapat dieksekusi:

  1. sudo chmod +x /usr/local/bin/gitea

Menguji Koneksi Git SSH

Anda dapat menguji penarikan dari dan mendorong ke repositori Git pada instans Gitea Anda dengan menambahkan kunci SSH Anda ke pengguna Gitea Anda.

Anda akan memerlukan konten kunci publik SSH Anda. Ini biasanya tinggal di file bernama sesuatu seperti ~/.ssh/id_rsa.pub , bergantung pada algoritme yang Anda gunakan saat membuat kunci:

  1. cat ~/.ssh/id_rsa.pub

Catatan: Jika Anda perlu membuat kunci SSH untuk pertama kalinya, Anda dapat mempelajari cara melakukannya dengan tutorial Cara Mengatur Kunci SSH di Ubuntu 20.04 ini.

Salin output dari perintah ini.

Di Gitea, klik ikon pengguna Anda di sudut kanan atas dan pilih Setelan . Pada halaman pengaturan, akan ada serangkaian tab di bagian atas. Klik Kunci SSH/GPG , lalu Tambahkan Kunci tombol di samping Kelola Kunci SSH . Tempelkan kunci Anda ke dalam area teks besar di formulir, lalu klik Tambahkan Kunci tombol di bawahnya.

Sekarang, navigasikan ke repositori pengujian yang Anda buat di Langkah 3 dan salin URL SSH yang disediakan. Di mesin lokal Anda, klon repositori:

  1. git clone git@your_domain:username/test

Ini akan menggunakan SSH untuk mengkloning repositori. Jika Anda memiliki kata sandi yang ditetapkan pada kunci SSH Anda, Anda akan diminta untuk memberikannya.

Pindah ke direktori itu, buat file baru:

  1. cd test
  2. touch just_testing

Selanjutnya, tambahkan ke perubahan bertahap Anda:

  1. git add just_testing

Terakhir, komit file itu:

  1. git commit -am "Just testing pushing over SSH!"

Sekarang, Anda seharusnya dapat mendorong perubahan Anda ke repositori jarak jauh:

  1. git push origin master

Saat Anda me-refresh halaman di browser Anda, file baru Anda akan muncul di repositori.

Kesimpulan

Anda telah menyiapkan layanan Gitea menggunakan Docker untuk menghosting sendiri repositori kode sumber Anda. Dari sini, Anda akan dapat bekerja di repositori publik dan pribadi, menggunakan alur kerja yang sudah dikenal seperti tinjauan kode permintaan tarik dan proyek yang diatur oleh organisasi. Gitea juga bekerja dengan baik dengan berbagai alat continuous integration and deployment (CI/CD) seperti Drone, Jenkins, dan GoCD. Selain itu, menggunakan volume Docker seperti ini memungkinkan Anda memperluas penyimpanan agar sesuai dengan konten Git LFS (penyimpanan file besar) di jaringan atau memblokir penyimpanan.


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

  2. Cara Menginstal Docker di CentOS

  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