M. Niyazi Alpay
M. Niyazi Alpay
M. Niyazi Alpay

Çok küçük yaştan itibaren bilgisayar sistemleriyle ilgileniyorum ve 2005 yılından beri programlama ile uğraşıyorum, PHP, MySQL, Python, MongoDB ve Linux konularında bilgi sahibiyim

 

about.me/Cryptograph

  • admin@niyazi.org
Laravel Blog Sistemi - AlphaBlog

Bir süredir mesaimden arta kalan zamanlarımda kendi web sitem için geliştirmekte olduğum blog sistemini tamamladım ve Github hesabımda açık kaynak olarak paylaştım.

Bu blog sistemini Laravel ile geliştirip veritabanı olarak MongoDB kullanıldım. Site içi arama motorunu da Meilisearch ile oluşturdum. Laravel'in MongoDB ile çalışabilmesi için MongoDB tarafından resmi olarak paylaşılan "mongodb/laravel-mongodb" paketini kullandım.

Blog veya sayfa içeriğine resim eklemek ve boyutlandırmak için Spatie Media Library kullandım, ancak bu paket MongoDB ile uyumlu değil. Uyumluluğu sağlamak için spatie/laravel-medialibrary deposunu kendi GitHub hesabıma fork ederek gerekli düzenlemeleri yaptıktan sonra, bu projeye composer ile dahil ettim.

Daha sonrasında webauthn için kullandığım paketin MongoDB ile uyumsuzluğu sebebiyle o paket için de fork ederek düzenlemeye çalıştım ancak kullanıcı yetkilendirmesi kısmında Laravel'in kendi sistemini kullanması ve buranın doğrudan Mysql üzerinden çalışması sebebiyle bu tarafa müdahale edemediğimden tüm sistemi MongoDB'den çıkararak veritabanını Mysql kullanacak şekilde yeniden düzenledim. Github'da hem ilk tasarlamış olduğum MongoDB hali hem de Mysql hali aynı repoda farklı branchlarda yer almakta.

Bu sistemin çalışabilmesi için sunucuda aşağıdaki PHP fonksiyonlarının aktif olması gerekmektedir:

escapeshellarg, escapeshellcmd, proc_open, proc_get_status, proc_close 

Git clone işleminden sonra kurulum için aşağıdaki adımları uygulayın:

composer update --no-dev
cp .env.example .env

.env dosyasını veritabanı bilgileriyle, Meilisearch, SMTP ve Cloudflare Turnstile tanımlamalarıyla düzenledikten sonra aşağıdaki komutlarla devam ediyoruz

php artisan key:generate
php artisan storage:link
php artisan migrate:fresh --seed

Tüm bu adımlardan sonra isterseniz admin panel yolunu .env dosyasındaki ADMIN_PANEL_PATH değişkeninden değiştirebilirsiniz.

php artisan optimize

Kurulum işlemleri tamamlandı. Son olarak admin kullanıcısını oluşturmak için aşağıdaki komutu çalıştırıyoruz.

php artisan app:create-user

Bu komutun çalıştırılması sonrasında sırasıyla isim, soyisim, kullanıcı adı, takma ad, eposta adresi ve parolamızı belirtiyoruz. Siteye giriş yapılan kullanıcı adı ve konularda görüntülenen kullanıcı isimleri birbirinden farklı. Bu durumda kullanıcı adı sadece kullanıcının kendisi ve sistemin yöneticisi tarafından biliniyor.

Sistemin Genel Özellikleri

  • Kategori ile birlikte blog oluşturma
  • Sayfalar
  • Kişisel notlar
    • Kişisel notlarınız veritabanında şifrelenmiş olarak saklanır.
    • Şifreleme anahtarınız veritabanında saklanmaz. Şifreleme anahtarınızı unutursanız, notlarınıza erişemezsiniz.
    • Notlarınıza yönetici veya başka bir kullanıcı tarafından erişilemez.
  • Site içi arama motoru (Meilisearch)
  • Admin panel
  • Webauthn
  • 2 Adımlı doğrulama
  • Yapay Zeka Chatbot - Gemini ya da ChatGPT
  • IP Filtresi (Kara Liste ve Beyaz Liste)
  • Kullanıcı yönetimi
  • Cloudflare Turnstile (Google Recaptcha benzeri)
  • E-posta SMTP
  • Medya Kütüphanesi
  • MongoDB
  • Laravel 11
  • PHP 8.3
  • Bootstrap 5
  • Font Awesome 6.5.1 (Pro)

https://github.com/niyazialpay/AlphaBlog

Muhammed Niyazi ALPAY - Cryptograph

Senior Software Developer & Senior Linux System Administrator

Meraklı

PHP MySQL MongoDB Python Linux Cyber Security

Bunları da okumak isteyebilirsiniz

Hiç yorum yok

Yorum Bırakın

E-posta adresiniz yayınlanmayacaktır. Zorunlu alanlar * ile işaretlenmiştir