Ön Koşullar
Overleaf, tüm hizmetleri Docker’da çalışan, mikro hizmet mimarisine sahip tipik bir açık kaynak projesidir.- Resmi Community Edition kaynak kodu GitHub Overleaf Official adresindedir.
- Overleaf-CEP kaynak kodu GitHub Yu-i-i/Overleaf adresinde mevcuttur.
- Overleaf Pro Edition GitHub Ayaka-notes/overleaf-pro adresinde mevcuttur.
8 veya daha fazla CPU çekirdeğine sahip sunucular genellikle pahalı olduğundan, geliştirme için yerel bilgisayarınızı kullanmanız şiddetle önerilir.
- Geliştirme için güçlü bir sunucu/masaüstü bilgisayar
- Güncel ve kararlı bir Ubuntu LTS (ör. Ubuntu 24.04)
- Docker ve Git ortamı
Yapılandırma Eğitimi
Burada bir Overleaf geliştirme ortamının nasıl yapılandırılacağını göstermek için örnek olarak overleaf-cep kullanacağız.1
Kaynak Kodunu Çekin
Öncelikle depoyu klonlayalım:
bash
2
package-lock.json Dosyasını Eşitleyin
Overleaf bir dahili depoda geliştirildiğinden, bazı geliştirme sorunları nedeniyle nodejs kurulu değilse endişelenmeyin; aynı komutu doğrudan
package-lock.json dosyasının eşitliğini yitirmesi çok olasıdır. Eşitlemek için aşağıdaki komutu çalıştırmamız gerekir (yerel bir nodejs ortamınız varsa).bash
docker ile çalıştırabilirsiniz. Overleaf deposunun kök dizininden çalıştırın:bash
3
Geliştirme İmajını Derleyin
Overleaf, geliştirme betiklerini saklamak için özel bir
/develop dizini sağlar. Hizmetleri derlemeniz yeterlidir:bash
Hizmetler paralel olarak derlenirken Docker’ın RAM’i yetmezse, bu dizinde
COMPOSE_PARALLEL_LIMIT=1 içeren bir .env dosyası oluşturun.4
Tüm Mikro Hizmetleri Başlatın
Ardından hizmetleri başlatın:Hizmetler çalışmaya başladığında, ilk yönetici hesabını oluşturmak için http://localhost/launchpad adresini açın.
bash
bin/dev komutunu çalıştırmadan önce bin/up komutunu çalıştırmanız gerekir. Aksi halde bir dizi izin sorunuyla karşılaşabilirsiniz.Varsayılan olarak yönetici ayrıcalığı kullanılamaz. Bunu
develop/dev.env dosyasına eklemeniz gerekir. Bundan sonra Yönetici paneline erişebilirsiniz.TeX Live
PDF derlemek için, derlemeyi Docker içinde gerçekleştirecek bir TeX Live imajı oluşturmak gerekir:DOCKER_SOCKET_PATH=/var/run/docker.sock.raw içeren bir .env dosyası oluşturarak Docker soketinin yolunu geçersiz kılmanız gerekebilir.
Ayrıca ayaka-notes/texlive-full imajını da kullanabilirsiniz; bunun yerine texlive’ın en küçük sürümü olan base etiketini de kullanabilirsiniz.
Geliştirme
Her kod değişikliğinden sonrabin/build && bin/up çalıştırmak zorunda kalmamak için Overleaf Community Edition’ı, hizmetlerin kod değişikliklerinde otomatik olarak güncellendiği geliştirme modunda çalıştırabilirsiniz.
Bunu yapmak için birlikte gelen bin/dev betiğini kullanın:
node --watch kullanarak başlatır; bu da kodu otomatik olarak izler ve gerektiğinde hizmetleri yeniden başlatır.
Performansı artırmak için bin/dev betiğine boşlukla ayrılmış bir liste vererek hizmetlerin yalnızca bir alt kümesini geliştirme modunda başlatabilirsiniz:
web hizmetini geliştirme modunda başlatmak, web hizmetini yalnızca arka uç kodu değiştiğinde günceller. Ön uç kodunun da otomatik olarak güncellenmesi için webpack hizmetini de geliştirme modunda başlattığınızdan emin olun.Hata Ayıklama
Geliştirme modunda çalıştırıldığında çoğu hizmet, Chrome Dev Tools’daki denetleyici (inspector) veya bir IDE’ye entegre hata ayıklayıcı gibi bir hata ayıklayıcı bağlayabileceğiniz bir hata ayıklama bağlantı noktası açar. Aşağıdaki tablo, her hizmet için ana makinede açılan bağlantı noktasını gösterir:
Chrome’un uzaktan hata ayıklama özelliğini kullanarak bir hizmete bağlanmak için chrome://inspect/ adresine gidin ve Discover network targets seçeneğinin işaretli olduğundan emin olun. Ardından Configure… öğesine tıklayın ve hata ayıklayıcı bağlamak istediğiniz her hizmet için
localhost:[service port] girdisi ekleyin.
Bir girdi ekledikten sonra hizmet, denetleyebileceğiniz ve hata ayıklayabileceğiniz bir Remote Target olarak görünür.
Günlük Kaydı
Geliştirme ortamında Overleaf birbin/logs betiği sağlar; ancak bazı bağımlılıkları kurmanız gerekir:

