MongooseIM çok çok kısa bir özetle erlang üzerine geliştirilmiş mobil odaklı (web desteği var) bir XMPP server. XMPP nedir derseniz https://xmpp.org/ adresinden daha detaylı bilgiyi edinebilirsiniz. Siteyi açtığınızda sizi karşılayan The universal messaging standard yazısı ne olduğunu özetliyor aslında.
Kurulum
Kurulumu macOS bir bilgisayarda gerçekleştirdiğim için macOS bazında anlatacağım. Diğer platformlarda kurulum konusunda detaylı bilgi için https://mongooseim.readthedocs.io/en/latest/user-guide/How-to-build/.
İlk olarak bağımlılıkları yükleyebilmek için brew kullanacağız sisteminizde brew kurulu değilse https://brew.sh/ sitesinden indirebilirsiniz.
Sonrasında aşağıdaki komut ile xcode command line toollarını indirelim.
$ xcode-select --install
Ve sonrasında brew ile bağımlılıkları indirelim.
$ brew install erlang openssl unixodbc
Sonrasında aşağıdaki env variablelarını .bashrc dosyasına ekleyelim ki terminali her açtığımızda define halde kullanıma hazır olsun.
$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CFLAGS="-I/usr/local/opt/openssl/include"
Ve sonrasında projenin kaynak kodlarını git üzerinden lokalimize çekelim.
git clone https://github.com/esl/MongooseIM.git
Kodları çektiğimiz dizine girerek projeyi make komutu ile derleyelim. Bu biraz uzun sürebilir. Komutu çalıştırıp bir kahve almak için gidiyorum.
$ make
Akşam akşam kahve içmeyeyim diyerek su ile geri döndüm ve build hala devam ediyor. Derken tamamlandı.
Derlenen kodlar _build/prod/rel/mongooseim içerisinde bulunuyor. Şimdi .bashrc (ya da .zshrc) dosyasına aşağıdaki export u ekleyelim ki mongooseim komutuna terminali her açtığımızda istediğimiz yerden erişebilelim. Projeyi nerede derlediyseniz o dizin yolunu verebilirsiniz.
$ export PATH=~/MongooseIM/_build/prod/rel/mongooseim/bin:$PATH
Ve source ~/.bashrc (ya da .zshrc) yaparak mongooseim komutunu çağıralım.
$ source .bashrc
Komutu çalıştırdığımızda yukarıdaki gibi bir sonuçla karşılaşıyorsak doğru yoldayız.
Aşağıdaki komut ile server ı ayağa kaldıralım.
$ mongooseim start
Sonrasında mongooseimctl ile server durumunu kontrol edelim.
$ mongooseimctl status
Aşağıdaki gibi log görüyorsak doğru yoldayız devam.
MongooseIM node mongooseim@localhost:
operating system pid: 38241
Erlang VM status: started (of: starting | started | stopping)
boot script status: started
version: 3.6.2-249-g2b6608a36 (as mongooseim)
uptime: 0 days 00:00:34
distribution protocol: inet_tcp
logs:
log/ejabberd.log
Şimdi adium u açıp oluşturduğumuz kullanıcının kullanıcı adı ve şifresiyle bağlanalım.
Sonrasında yeni bir chat açalım.
Ve kendimize bağlanalım.
Ve kendimize mesaj atalım.
Server doğru şekilde çalışıyor gibi gözüküyor. Daha karmaşık bir kurulum süreci olacağını düşünüyordum ama oldukça sancısız bir süreç oldu. Sonraki yazıda neden bahsedeceğim hakkında bir fikrim yok ama terminal komutlarını ve MongooseIM ile XMPP in genel yapısı üzerine olabilir sanırım.
Ve sonrasında projenin kaynak kodlarını git üzerinden lokalimize çekelim.
git clone https://github.com/esl/MongooseIM.git
Kodları çektiğimiz dizine girerek projeyi make komutu ile derleyelim. Bu biraz uzun sürebilir. Komutu çalıştırıp bir kahve almak için gidiyorum.
$ make
Akşam akşam kahve içmeyeyim diyerek su ile geri döndüm ve build hala devam ediyor. Derken tamamlandı.
Derlenen kodlar _build/prod/rel/mongooseim içerisinde bulunuyor. Şimdi .bashrc (ya da .zshrc) dosyasına aşağıdaki export u ekleyelim ki mongooseim komutuna terminali her açtığımızda istediğimiz yerden erişebilelim. Projeyi nerede derlediyseniz o dizin yolunu verebilirsiniz.
$ export PATH=~/MongooseIM/_build/prod/rel/mongooseim/bin:$PATH
Ve source ~/.bashrc (ya da .zshrc) yaparak mongooseim komutunu çağıralım.
$ source .bashrc
Komutu çalıştırdığımızda yukarıdaki gibi bir sonuçla karşılaşıyorsak doğru yoldayız.
Aşağıdaki komut ile server ı ayağa kaldıralım.
$ mongooseim start
Sonrasında mongooseimctl ile server durumunu kontrol edelim.
$ mongooseimctl status
Aşağıdaki gibi log görüyorsak doğru yoldayız devam.
MongooseIM node mongooseim@localhost:
operating system pid: 38241
Erlang VM status: started (of: starting | started | stopping)
boot script status: started
version: 3.6.2-249-g2b6608a36 (as mongooseim)
uptime: 0 days 00:00:34
distribution protocol: inet_tcp
logs:
log/ejabberd.log
Buraya kadar nasıl derleneceğini anlattıktan sonra Erlang Solutions resmi sitesinde derlenmiş dosyaların indirilebileceği linklerin olduğunu farkettim. İsterseniz orandan da indirebilirsiniz. https://www.erlang-solutions.com/resources/download.html
Şimdi XMPP client olarak kullanabileceğimiz macOS aracı olan https://adium.im/ u indirelim.
Terminalden yeni bir kullanıcıyı aşağıdaki komutla oluşturabilirsiniz.
$ mongooseimctl register_identified test_user localhost password
Sonrasında yeni bir chat açalım.
Ve kendimize bağlanalım.
Ve kendimize mesaj atalım.
Server doğru şekilde çalışıyor gibi gözüküyor. Daha karmaşık bir kurulum süreci olacağını düşünüyordum ama oldukça sancısız bir süreç oldu. Sonraki yazıda neden bahsedeceğim hakkında bir fikrim yok ama terminal komutlarını ve MongooseIM ile XMPP in genel yapısı üzerine olabilir sanırım.
Hiç yorum yok:
Yorum Gönder