Raspberry Pi'de Forgejo Çalıştırma

Bu yazı, PiMyLifeUp - Running Forgejo on the Raspberry Pi kaynağından Türkçe'ye çevrilerek hazırlanmıştır.

Bu eğitimde, Raspberry Pi'de Forgejo'yu nasıl çalıştıracağınızı göstereceğiz.

Raspberry Pi Forgejo

Forgejo, GitHub gibi bulut hizmetlerinden beklediğiniz hizmet ve özelliklerin çoğunu sunan, kendi kendine barındırılan (self-hosted), hafif bir Git hizmetidir.

Bu özel yazılım paketi aslında popüler Gitea projesinin bir çatalıdır (fork). Bu çatal, Gitea'nın yönetilme şeklinde önemli değişiklikler olduktan sonra oluşturuldu.

Hafif olması, Forgejo'yu Raspberry Pi'nizde kod depolarınızı kendi kendinize barındırmak için mükemmel bir çözüm haline getirir. Tüm kaynakları tüketmeden Pi'nin sınırlı donanımında kolayca çalışabilir.

Kullandığımız Forgejo konteyneri yalnızca ARM64'ü desteklediğinden, 64-bit bir işletim sistemi çalıştırıyor olmanız gerektiğini lütfen unutmayın. Ayrıca, bir Raspberry Pi 3 veya daha yenisini çalıştırıyor olmanız gerekecek.

Raspberry Pi'de Forgejo Kurulumu

Aşağıdaki adımlarda, Raspberry Pi'nizde Forgejo'yu çalışır hale getirmek için gereken tüm adımlarda size rehberlik edeceğiz.

Devam etmeden önce, bu rehber için 64-bit bir işletim sistemi çalıştırıyor olmanız gerektiğini unutmayın. Ayrıca, Pi'nizi statik bir IP adresiyle ayarlamalısınız.

Forgejo İçin Raspberry Pi'nizi Hazırlama

1. Raspberry Pi'ye Forgejo kurabilmemiz için, bazı ilk kurulum adımlarını gerçekleştirmemiz gerekiyor.

İlk komutla paket listesi önbelleğini en son sürüme güncelleyeceğiz. İkinci komut, bu güncellenmiş listeyi kullanarak güncel olmayan paketleri yükseltecek.

sudo apt update
sudo apt upgrade

2. Güncelledikten sonra, Raspberry Pi'nize Docker çalışma zamanını kurmanız gerekiyor.

Zaten Docker kurulu ise, doğrudan bir sonraki adıma geçebilirsiniz. Aksi takdirde, aşağıda bağlantısını verdiğimiz rehberi takip edin.

3. Docker çalışma zamanı kurulduktan sonra, bir sonraki adımımız Raspberry Pi'mizde Forgejo için Compose dosyasını saklamak amacıyla bir dizin oluşturmaktır.

Bu dizini oluşturmak için, mkdir komutunu "-p" seçeneğiyle birlikte kullanacağız.

sudo mkdir -p /opt/stacks/forgejo

4. Dizin oluşturulduktan sonra, cd komutunu kullanarak içine geçebiliriz.

cd /opt/stacks/forgejo

Forgejo İçin Bir Docker Compose Dosyası Yazma

5. Artık oluşturduğumuz dizinde olduğumuza göre, Raspberry Pi'mizde Forgejo için Docker Compose dosyasını yazmaya geçebiliriz.

Bir Compose dosyası, Docker'ın bir veya birden fazla konteyner kurmak için takip edeceği bir talimatlar kümesidir. Bu dosyayı, nispeten kullanımı kolay olduğundan nano metin editörünü kullanarak yazacağız.

sudo nano compose.yaml

6. Bu Compose dosyasının içine, aşağıdaki satırları doldurmalısınız. Bu Compose dosyasını, Raspberry Pi'mizde hem Forgejo'yu hem de Postgres'i çalıştırmak için kullanacağız.

Bu dosyada, değiştirmeniz gereken bir yer tutucu var.

  • <DBPASSWORD>: Bu yer tutucuyu, Forgejo'nun veritabanıyla etkileşim kurmak için kullanacağı şifreyle değiştirin. Dosyada bu yer tutucunun iki tekrarı var.

Raspberry Pi'nizde depolarınızı saklamak istediğiniz belirli bir yer varsa, "./forgejo" kısmını tam yolla değiştirin.

services:
  server:
    image: codeberg.org/forgejo/forgejo:16
    container_name: forgejo
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - FORGEJO__database__DB_TYPE=postgres
      - FORGEJO__database__HOST=db:5432
      - FORGEJO__database__NAME=forgejo
      - FORGEJO__database__USER=forgejo
      - FORGEJO__database__PASSWD=<DBPASSWORD>
    restart: always
    networks:
      - forgejo
    volumes:
      - ./forgejo:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: postgres:14
    restart: always
    environment:
      - POSTGRES_USER=forgejo
      - POSTGRES_PASSWORD=<DBPASSWORD>
      - POSTGRES_DB=forgejo
    networks:
      - forgejo
    volumes:
      - ./postgres:/var/lib/postgresql/data

networks:
  forgejo:
    external: false

7. Bu Compose dosyasını doldurduktan sonra, CTRL + X, Y ve ardından ENTER tuşuna basarak kaydedip çıkın.

Raspberry Pi'nizde Forgejo'yu Başlatma

8. Artık her şey ayarlandığına göre, aşağıdaki komutu çalıştırarak Raspberry Pi'mizde Forgejo'yu başlatabiliriz.

Pi'nin hem Forgejo hem de Postgres konteynerlerini indirmesi gerektiğinden, başlatma süreci birkaç dakika sürebilir.

docker compose up -d

Forgejo Web Arayüzüne Erişim

9. Forgejo artık Raspberry Pi'de çalışır durumda olduğuna göre, web arayüzüne nasıl erişeceğinizi bilmek isteyeceksiniz.

Web arayüzüne erişmek için, Pi'nizin IP adresini bilmeniz gerekir. Bu adresi hostname komutunu kullanarak kolayca alabilirsiniz.

hostname -I

10. Raspberry Pi'nizin IP'sini öğrendikten sonra, Forgejo'ya erişmek için aşağıdaki adrese gidin.

"<IPADRESI>" kısmını Pi'nizin IP'siyle değiştirdiğinizden emin olun.

http://<IPADRESI>:3000

İlk Kurulum Ekranını Tamamlama

11. Forgejo'ya ilk kez eriştiğinizde, bazı ilk kurulum adımlarını tamamlamanız gerekecek. Bu ayarların çoğu varsayılan olarak bırakılmalıdır; ancak, değiştirmek isteyeceğiniz birkaç seçenek var.

  1. Ayarlamak isteyebileceğiniz ilk seçenek "Server domain"dir. Bu seçeneği kullanarak, Raspberry Pi'nizin IP'sini, harici IP adresinizi veya Pi'nize yönlendirdiğiniz bir alan adını ayarlamak isteyeceksiniz. Bu eğitimde, Forgejo'yu sadece yerel ağımız için çalıştırdığımızdan, bunu Pi'mizin yerel IP'sinde tuttuk.
  2. Ayarlamak isteyeceğiniz diğer seçenek ise "Base URL"dir. Bu URL, e-posta bildirimleri ve klonlama URL'leri için yollar oluşturmak amacıyla kullanılacaktır. Genellikle, bu protokolle (http, https) başlar, ardından Forgejo kurulumunuza erişmek için kullanmayı planladığınız IP veya alan adı gelir.

Raspberry Pi'de Forgejo için alan adı ve temel URL belirleme

12. Ardından yönetici kullanıcı adını ve şifresini yapılandırmak isteyeceksiniz. "Administrator account settings" açılır menüsüne tıklayarak bu seçenekleri getirin.

Artık admin hesabınız için kullanmak istediğiniz bilgileri doldurmak amacıyla metin kutularını (1.) kullanabilmeniz gerekir.

Bir kullanıcı adı ve şifre girdikten sonra, kurulumu tamamlamak için "Install Forgejo" düğmesine tıklayın (2.).

Forgejo için bir yönetici kullanıcı oluşturma

13. Bu noktada, Raspberry Pi'nizde Forgejo'yu başarıyla çalışır hale getirdiniz. Artık depo eklemeye ve kodunuzu saklamaya başlayabilirsiniz.

Boş Forgejo Gösterge Paneli

Raspberry Pi'nizde Forgejo'yu Güncelleme

Bu bölümde, Raspberry Pi'nizde Forgejo konteynerinizi en son sürüme güncellemek için basit adımları göstereceğiz.

1. Forgejo'yu en son sürüme güncellemeden önce, Compose dosyasını orijinal olarak yazdığımız dizine geçmeniz gerekir.

Bu rehberi daha önce takip ettiyseniz, aşağıdaki komutu kullanarak doğru dizine geçebilirsiniz.

cd /opt/stacks/forgejo

2. Doğru yere geldiğinizde, terminalde aşağıdaki komutu kullanarak Docker'ın Forgejo'nun en son sürümünü indirmesini sağlayabilirsiniz.

Bu komut yeni bir imaj indirecek ancak çalışan konteynerlerinizi güncellemeyecektir.

docker compose pull

3. Neyse ki, Docker konteynerleri yeni bir imaja taşımayı da basit hale getiriyor.

Aşağıdaki komutu kullanarak, Docker Compose dosyasında belirtilen tüm konteynerleri kontrol edecek. Docker bir konteyner için yeni bir imajın mevcut olduğunu görürse, onu durdurup yeni sürümü kullanarak yeniden başlatacaktır.

docker compose up -d

Sonuç

Bu rehberin bu aşamasında, artık Raspberry Pi'nizde Forgejo Git sunucusu çalışıyor olmalıdır.

Forgejo, hafif olmasına rağmen özellik bakımından zengin kalması sayesinde, kod depolarınızı kendi kendinize barındırmak için mükemmel bir çözümdür.

Bu yazılımı Pi'nizde çalıştırırken herhangi bir sorunla karşılaştıysanız, aşağıya yorum bırakın.