Flarum, hızlı ve modern bir forum yazılımı. Ancak klasik forum yapısı her zaman toplulukların tamamına yetmiyor. Kullanıcılar artık sadece konu açıp yanıt yazmak değil; kısa bir akışta paylaşım yapmak, fotoğraf ve video yüklemek, anlık mesajlaşmak, hatta sesli odalarda bir araya gelmek istiyor.
Flarum Social, tam olarak bu ihtiyaç için geliştirdiğim bir Flarum 2.0 eklentisi. Flarum’un kullanıcı, oturum, yetki ve tema altyapısını koruyarak forumun üzerine Discord benzeri bir sosyal topluluk katmanı ekliyor. Çekirdek dosyalarda değişiklik yapmıyor; her şey yerel bir Flarum eklentisi olarak çalışıyor.
Bu yazıda eklentinin öne çıkan özelliklerini, sesli oda altyapısını, kurulum adımlarını ve yönetim tarafını anlatıyorum.
Klasik forumun ötesine geçmek
Flarum Social’in merkezinde herkese açık bir topluluk akışı var. Kullanıcılar gönderi paylaşabiliyor, gönderilere yorum yapabiliyor, tepki verebiliyor ve kaydedebiliyor. Akışta metin, fotoğraf, video ve bağlantı içerikleri bir arada görünebiliyor. Instagram tarzı kısa hikâyeler, hashtag’ler ve medya galerisi de aynı yapının parçası.
Önemli bir tasarım kararı şu: Flarum Social ikinci bir profil oluşturmuyor. Kullanıcının Flarum’daki görünen adı, kullanıcı adı, avatarı, biyografisi ve kapak görseli neyse burada da aynısı kullanılıyor. Böylece forum ile sosyal katman arasında veri kopyası oluşmuyor; profil düzenlemesi yine Flarum’un kendi ayarlar sayfasından yapılıyor.
Odalar, metin kanalları ve sesli sohbet
Eklentinin en dikkat çekici tarafı, Discord’dan alıştığımız sol menü düzenini Flarum’a taşıması. Kalıcı sesli odalar, canlı katılımcı listeleri ve katılımcı sayıları doğrudan kenar çubuğunda görünüyor. Bir sesli odaya katıldığınızda bağlantı arka planda başlarken o odanın kendi metin sohbeti açılıyor.

Sesli odalar LiveKit üzerine kurulu. Mikrofonu kapatma, kulaklığı sağırlaştırma, bas-konuş (push-to-talk) tuşu, ekran paylaşımı, üye başına ses seviyesi ve Discord benzeri bildirim sesleri destekleniyor. Ekran paylaşımı ayrı bir LiveKit track’i olarak yayınlanıyor; paylaşan kişi yerel önizlemeyi görürken diğer katılımcılar videoyu tam ekran açabiliyor.

Geçici odalar da düşünülmüş: son katılımcı ayrıldıktan on saniye sonra siliniyorlar. Kalıcı odalar ise açık kalıyor ve canlı katılımcı sayısını göstermeye devam ediyor. Davet bağlantılarına son kullanma tarihi ve maksimum kullanım sayısı eklenebiliyor.
Mesajlaşma ve topluluk araçları
Sesli odaların yanında metin kanalları, doğrudan mesajlar, bildirimler, takip/arkadaşlık ve raporlama akışları var. Metin kanallarına sürükle-bırak, çoklu dosya ve panodan görsel yapıştırma desteği eklendi. Flarum’un resmî flarum/messages eklentisi etkinse Social, mesaj ekranında Flarum’un kendi gelen kutusunu kullanıyor; böylece iki ayrı mesajlaşma sistemi oluşmuyor.

Topluluk tarafında ayrıca gönderi ve yorumlar için zengin metin desteği, otomatik YouTube ve X/Twitter gömme, medya için klavye ve dokunmatik hareketlerle çalışan bir lightbox, profil hover kartları ve sosyal istatistikler bulunuyor. Flarum forum kategorileri istenirse Social menüsünün içinde de gösterilebiliyor.
Yönetim ve moderasyon
Bu kadar geniş bir yapının yönetim paneli de aynı ölçüde önemli. Flarum Social, kendi ACP ekranlarıyla geliyor: genel bakış, ayarlar, oda/kategori/kanal yönetimi, raporlar, temizlik işlemleri ve moderasyon kayıtları. Tüm yetkiler Flarum’un yerel izin sistemi üzerinden veriliyor.

flarum/audit eklentisi etkinse gönderi, yorum, oda, medya, rapor, profil, hikâye ve moderasyon işlemleri audit kaydına yazılıyor. FoF widget’ları ve FoF News Widget da Social sağ sütununda ve üst alanında görüntülenebiliyor. Yöneticiler için bir Custom CSS alanı da var; tema değişkenlerine dokunmadan görünümü uyarlayabiliyorsunuz.
Kurulum
Eklenti Flarum 2.0, PHP 8.3 ve üzeri sürümlerle çalışıyor. MySQL/MariaDB, PostgreSQL ve SQLite destekleniyor. Sesli oda kullanmayacaksanız LiveKit kurmanız gerekmiyor; Centrifugo ve S3 uyumlu medya depolama da isteğe bağlı.
Composer ile kurulum:
composer require cengizkemec/flarum-social
php flarum extension:enable cengizkemec-social
php flarum migrate
php flarum cache:clear
php flarum assets:publish
Ardından /social adresini açabilirsiniz. Eklenti varsayılan olarak etkin geliyor; ayarları Yönetim → Flarum Social altından yapılandırabilirsiniz. Sesli oda kullanacaksanız ACP’deki Voice bölümüne LiveKit WebSocket adresini, API anahtarını ve secret değerini girmeniz gerekiyor. Üretim ortamında wss:// kullanmanız ve tarayıcının mikrofon iznini yalnızca güvenli kaynaklarda vermesi nedeniyle HTTPS şart.
LiveKit sunucusu, Cloudflare DNS/cache kuralları, TURN ve üretim ayarları için adım adım rehber: Flarum Social LiveKit Kurulumu: Cloudflare, WSS ve TURN Rehberi.
Güvenlik ve performans notları
Flarum Social çekirdek dosyaları değiştirmiyor; Flarum’un kendi oturum, yetki ve CSRF mekanizmalarını kullanıyor. LiveKit, Centrifugo, S3, Flarum Messages, Audit ve FoF entegrasyonları isteğe bağlı. İlgili eklenti kurulu değilse bu entegrasyonlar sessizce devre dışı kalıyor, yani gereksiz bağımlılık oluşturmuyor.
Sesli odalarda tarayıcı mikrofonu yalnızca HTTPS veya localhost üzerinde açabildiği için canlı ortamda sertifika ve doğru LiveKit yapılandırması kritik. Geçici oda temizliği için zamanlanmış görevlerin (cron) çalıştığından emin olmak da öneriliyor.
Sonuç
Flarum Social, bir forumu topluluk platformuna dönüştürmek isteyenler için kapsamlı ama Flarum’a yabancılaşmayan bir çözüm. Akış, medya, mesajlaşma ve sesli odalar aynı kullanıcı ve yetki yapısı üzerinde çalışıyor; yönetim tarafı da tek panelde toplanıyor.
Proje MIT lisanslı ve açık kaynak. Kod, ekran görüntüleri ve ayrıntılı dokümantasyon aşağıdaki bağlantılarda:
- GitHub: github.com/cengizkemec/flarum-social
- Packagist: packagist.org/packages/cengizkemec/flarum-social
- Dokümantasyon: github.com/cengizkemec/flarum-social/tree/main/docs
