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

I've been interested in computer systems since a very young age, and I've been programming since 2005. I have knowledge in PHP, MySQL, Python, MongoDB, and Linux.



  • admin@niyazi.org
Laravel Blog System - AlphaBlog

I have completed developing a blog system for my own website in my spare time, and I have open-sourced it on my Github account.

This blog system was developed with Laravel and MongoDB was used as the database. I also implemented the site search engine with Meilisearch. To make Laravel work with MongoDB, I used the "mongodb/laravel-mongodb" package officially shared by MongoDB.

To add and resize images for blog or page content, I used Spatie Media Library, but this package is not compatible with MongoDB. To ensure compatibility, I forked the spatie/laravel-medialibrary repository to my own GitHub account and made necessary modifications, then included it in this project with composer.

The following PHP functions need to be enabled on the server for this system to work:

escapeshellarg, escapeshellcmd, proc_open, proc_get_status, proc_close 

After cloning the Git repository, follow these steps for installation:

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

After editing the .env file with database information, Meilisearch, SMTP, and Cloudflare Turnstile settings, continue with the following commands:

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

After all these steps, if you wish, you can change the admin panel path from the ADMIN_PANEL_PATH variable in the .env file.

php artisan optimize

Installation is complete. Finally, to create an admin user, run the following command:

php artisan app:create-user

After running this command, specify the name, surname, username, nickname, email address, and password in order. The username used for logging into the site and the usernames displayed on posts are different. In this case, the username is only known by the user themselves and the system administrator.

General Features of the System

  • Create blogs with categories
  • Pages
  • Personal notes
    • Your personal notes are stored encrypted in the database.
    • Your encryption key is not stored in the database. If you forget your encryption key, you won't be able to access your notes.
    • Your notes cannot be accessed by an administrator or another user.
  • In-site search engine (Meilisearch)
  • Admin panel
  • IP Filter (Blacklist and Whitelist)
  • User management
  • Cloudflare Turnstile (Similar to Google Recaptcha)
  • Email SMTP
  • Media Library
  • MongoDB
  • Laravel 11
  • PHP 8.3
  • Bootstrap 5
  • Font Awesome 6.5.1 (Pro)


You may also want to read these

There are none comment

Leave a comment

Your email address will not be published. Required fields are marked *