Merhaba arkadaşlar bu makalemizde kendi sunucunuza docker compose aracılığı ile nasıl YOURLS kurabileceğinizi ve LDAP eklentisini entegre edebileceğinizi göstereceğim. Daha önceden normal YOURLS kurulumunu aşağıdaki makalede göstermiştim ancak LDAP için biraz daha farklı işlemler gerçekleştireceğimiz için sıfırdan anlatacağım.
Docker Portainer ile YOURLS Kurulumu
YOURLS bir link kısaltma aracıdır. Hepinizin bildiği bit.ly hizmetine benzer. Bu uygulamanın güzel yanı docker ile kendi local sunucumuzda kurup çalıştırabilmemizdir. Hadi kuruluma geçelim.
Mevcut durumda elimizde olması gerekenler:
- Docker (Sunucunuzun olduğu platforma kurmanız gerekmekte.)
- Portainer
- Docker kurduktan sonra Portainer ile docker uygulamalarınızı daha rahat bir şekilde yönetebilirsiniz. Bu makalede Portainer kullanacağız. Eğer sizin sisteminizde yüklü değilse aşağıdaki makale ile kurabilirsiniz.
İşlemlerimize başlamadan önce YOURLS için manuel bir imaj oluşturmamız gerekmekte. Bunun sebebi docker containerlarının kendine has PHP sürümleri olması. Şu an bir YOURLS kurulumu yaptığınızda güncel bir sürüm olan PHP 8.3.9 gelmekte. Ancak bu sürüm için halihazırda php-ldap gelmediği için bizim bunu imajı oluştururken içine gömmemiz gerekiyor:
- Aşağıda verdiğim kod ile sisteminizde bir dizinde Dockerfile dosyası oluşturun.
touch Dockerfile
Şimdi nano Dockerfile
komutu ile dosyamızın içine aşağıda verdiğim kodları yapıştıralım.
FROM yourls:latest
# PHP LDAP modülünü yükle
RUN apt-get update && \
apt-get install -y libldap2-dev && \
rm -rf /var/lib/apt/lists/* && \
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ && \
docker-php-ext-install ldap
Dockerfile oluşturduktan sonra terminal üzerinden dosyamızın bulunduğu konumda olduğumuza emin olup aşağıdaki komut ile imajımızı oluşturalım.
docker build -t yourls-ldap:latest -f Dockerfile .
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-ldap-create-image.png)
İmaj oluşturduktan sonra Portainer üzerinden sol menüdeki Images
sekmesine gelirsek aşağıdaki gibi bir görüntü ile karşılaşmamız gerekmekte. Bu imajımızın başarılı bir şekilde oluşturulduğu anlamına gelir.
![](https://yusufk.tr/wp-content/uploads/2025/01/portainer-yourls-ldap-image.png)
Şimdi YOURLS kurulumuna geçebiliriz.
Portainer sol menüsünden Stacks
sekmesine gelelim. Ardından sağ üstteki Add Stack
butonuna tıklayalım. Karşımıza çıkan menüde Name
kısmına istediğimiz bir ismi girelim. Ardından aşağıdaki Web Editor
kısmına verdiğim docker compose içeriğini yapıştıralım.
version: '3'
services:
yourls:
image: yourls-ldap:latest
container_name: yourls
environment:
- YOURLS_DB_HOST=yourls-db
- YOURLS_DB_USER=databasekullaniciadiniz
- YOURLS_DB_PASS=databasesifreniz
- YOURLS_DB_NAME=yourls
- YOURLS_SITE=http://sunucunuzunipadresi:8080
- YOURLS_USER=kullaniciadiniz
- YOURLS_PASS=sifreniz
ports:
- "8080:80"
volumes:
- /yourls klasör konumu/yourls/data:/var/www/html
depends_on:
- yourls-db
restart: unless-stopped
yourls-db:
image: mysql:5.7
container_name: yourls-db
environment:
- MYSQL_ROOT_PASSWORD=rootsifreniz
- MYSQL_DATABASE=yourls
- MYSQL_USER=databasekullaniciadiniz
- MYSQL_PASSWORD=databasesifreniz
volumes:
- /yourls klasör konumu/yourls/db:/var/lib/mysql
restart: unless-stopped
Gerekli düzenlemeleri yaptıktan sonra aşağıdan Deploy the stack
diyelim. Kurulum tamamlandıktan sonra YOURLS uygulamamız artık http://sunucunuzunipadresi:8080/admin
adresinde kullanıma açık olacak.
Bu ekranda Install YOURLS
diyerek devam edelim.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-install-1-1024x614.png)
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-go-admin-page-1-1024x614.png)
Artık yönetici sayfasına ilerleyebiliriz. Bizi bu sefer giriş sayfasına yönlendirecek. Buradan compose kodunda ayarladığımız bilgiler ile giriş yapalım.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-login-1-1024x614.png)
Aşağıdaki gibi bir ekran ile karşılaşacağız. Burada varsayılan olarak gelen bağlantıları silebilirsiniz.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-default-links-1-1024x614.png)
Örnek olması açısından ben bir bağlantı oluşturdum. Mevcut YouTube kanalı bağlantımı kısa bir bağlantıya çevirdim.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-link-created-1-1024x614.png)
Artık karışık uzun bir bağlantı yerine daha kısa bir bağlantı halinde paylaşabilirim. İşin hoşunuza gidebilecek kısmı YOURLS üzerinden bu bağlantılara giden kişilerin ülkelerini ya da hangi kaynaktan tıkladıklarını da görebiliyorsunuz. Bununla da bitmiyor. Bağlantısını verdiğim GitHub reposunda YOURLS için geliştirilmiş çok fazla sayıda eklenti bulunuyor. Bunlarla birlikte çok daha güzel hale getirebilirsiniz.
Şimdi sırada makalemizin ana konularından olan LDAP eklentisinin entegrasyonu ve ayarlamaları var.
Öncelikle terminal üzerinden yourls
dizinimize gelelim. Aşağıdaki komut ile plugins
klasörümüze girelim.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-plugins-folder.png)
Şimdi aşağıdaki git komutu ile eklentimizi indirelim.
git clone https://github.com/mattv8/yourls-ldap-plugin.git
Eğer permission denied
hatası alırsanız komutu sudo ile girin.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-ldap-plugin.png)
Şimdi sırada config ayarlarını yapılandırmada. Bu aşamada bir dosya gezgini kullanmak işimizi kolaylaştıracaktır. Bunun için filebrowser
kullanacağım. Eğer siz de yoksa aşağıdaki makale aracılığıyla kurabilirsiniz.
Docker Portainer ile Dosya Gezgini Kurulumu
yourls
dizinimize gelelim ve data/user/config.php
dosyasını açalım. Dosyanın en aşağısına bundan sonra kuracağımız eklentiler ile alakalı konfigürasyonları ekleyebiliriz. LDAP kurulumumuz için aşağıdaki kodu girelim ve gerekli düzenlemeleri gerçekleştirelim.
// LDAP ana bilgisayar adı, IP veya URL. TLS ile LDAP için ldaps://host kullanabilirsiniz.
define( 'LDAPAUTH_HOST', 'ldap://ldapsunucumuzunipadresi' );
define( 'LDAPAUTH_PORT', '389' );
// Ana DN (kullanıcıların konumu) -- gerekli ise OU bilgisini de giriniz.
define( 'LDAPAUTH_BASE', 'dc=example,dc=xyz' );
// Arama yapılacak ayrıcalıklı kullanıcı -- gerekli ise OU bilgisini de giriniz.
define( 'LDAPAUTH_SEARCH_USER', 'CN=kullaniciadi,DC=example,DC=xyz');
// Ayrıcalıklı kullanıcı şifresi
define( 'LDAPAUTH_SEARCH_PASS', 'sifre');
// Kullanıcı adının depolandığı LDAP alan adı, bu ayar sunucuya göre değişkenlik gösterebilir. "uid"
define( 'LDAPAUTH_USERNAME_FIELD', 'sAMAccountName');
// Geçerli kullanıcı adı için yer tutucu olarak %s kullanın
define( 'LDAPAUTH_SEARCH_FILTER', '(&(objectClass=user)(sAMAccountName=%s))');
// LDAP bilgileri ile giriş yapan kullanıcıları config.php dosyasına kaydeder.
define( 'LDAPAUTH_ADD_NEW', true );
// Kullanıcıları önbelleğe kaydeder ancak bu fazla sayıdaki kullanıcılarda sıkıntı çıkarabileceği için devre dışı bırakıyoruz.
define( 'LDAPAUTH_USERCACHE_TYPE', 0);
// Varsayılan olarak tüm LDAP kullanıcılarını yönetici yapar ve erişime izin verir. Bu ayarı devre dışı bırakarak AuthMgrPlus eklentisini kullanacağız.
define( 'LDAPAUTH_ALL_USERS_ADMIN', false);
authMgrPlus Eklentisi Kurulumu
Terminal üzerinde tekrar plugins
klasörüne gelelim ve aşağıdaki komut ile eklentiyi indirelim.
git clone https://github.com/joshp23/YOURLS-AuthMgrPlus.git
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-authMgrPlus-plugin.png)
İndirdikten sonra dosya gezgininden bu klasörün içindeki authMgrPlus
klasörünü bir üste klasöre taşıyalım ve diğer klasörü silelim.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-move-authMgr-folder-1024x614.png)
Şimdi tekrar config.php
dosyamıza gelelim ve authMgrPlus eklentisi için gerekli argümanları yazalım. Aşağıdaki kodu LDAP kodlarının altına yapıştırın.
$amp_role_assignment = array(
'administrator' => array(
'adminkullaniciadi',
),
'editor' => array(
'kullanici1',
),
'contributor' => array(
'kullanici2',
),
);
Bu ayarlamaları yaptıktan sonra YOURLS arayüzüne girelim ve eklentileri yönet kısmını açalım. Buradan önce authMgrPlus
eklentisini daha sonradan LDAP
eklentisini etkinleştirelim.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-manage-plugins-1024x614.png)
Şimdi oturumumuzu kapatıp LDAP sunucumuzda ki başka bir kullanıcı bilgisiyle giriş yapalım. Bu kullanıcı adının daha önceden authMgrPlus
kodları içinde belirtildiğinden emin olun!
Kullanıcı bilgilerini girdikten sonra aşağıdaki gibi bir hata alabilirsiniz. Bunun için düzenlememiz gereken bir yer var.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-add-user-issue-1024x614.png)
plugins/yourls-ldap-plugin
klasörü altında plugin.php
dosyasını açalım. Dosyada $new_contents
değerini aratalım. Karşımıza çıkan satır şuna benzer olacaktır.
$new_contents = preg_replace('/(yourls_user_passwords\s=\sarray()/', '$0 ' . PHP_EOL . $user_line, $configdata, -1, $count);
Bu satırdaki kodu aşağıdaki kod ile değiştirelim.
$new_contents = preg_replace('/(yourls_user_passwords\s*=\s*[)/', '$1' . PHP_EOL . $user_line, $configdata, -1, $count);
İlk girişinizde herhangi bir hata vermeyip sizi sisteme sokmamış olabilir. Burada herhangi bir sorun yok. Çünkü her yeni LDAP kullanıcısı için ilk giriş seferinde bilgileri config dosyasına ekliyor. Şifre hashlenmiş şekilde config dosyasında saklanıyor. İkinci bir giriş denemesi yaptığınızda sisteme girebildiğinizi göreceksiniz.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-manage-plugins-denied-1024x614.png)
Burada bu kullanıcıyı Editor
olarak ayarladığım için Manage Plugins sayfasına giremiyorum. Contributor
yetkisine sahip kullanıcılar ise sadece kendi oluşturdukları bağlantıları görebiliyor ve yönetebiliyorlar.
Artık bu durumda sisteme LDAP kullanıcıları giriş yapabilecekler. İzinler ise yönetici tarafından config.php
dosyası üzerinden ayarlanacak. Şimdi LDAP’tan bağımsız farklı bir kullanıcı eklemek isterseniz config.php
dosyasını açıp $yourls_user_passwords
kısmına gelmelisiniz. Buraya aşağıdaki gibi kullanıcı adı ve şifre girişi yapın.
'yusufkilinc' => 'sifreniz',
config dosyasını kaydedin ve YOURLS giriş sayfasını bir kere yenileyin. Bu yenilemenin ardından config dosyasındaki şifre hashlenecek ve kullanıcı bilgileri ile oturum açılabilir hale gelecek.
![](https://yusufk.tr/wp-content/uploads/2025/01/yourls-manual-user-add-1024x614.png)
Evet uzun bir makalenin sonuna geldik. Bundan sonraki tüm özelleştirmeler sizin merak, deneme ve yaratıcılığınıza kaldı. Sistem bu haliyle internete açılıp kullanılabilir hale gelebilir.
İleride bu rehber ile bağlantılı makaleler yazılırsa aşağıda bağlantı linki paylaşılacaktır. Eğer paylaşılmamış olursa blog sayfam üzerinde YOURLS araması yaparak alakalı tüm makaleleri bulabilirsiniz!
Kendinize iyi bakın!
Leave a Reply