PHPackages                             cakmoel/scriptlog - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. cakmoel/scriptlog

ActiveProject[Framework](/categories/framework)

cakmoel/scriptlog
=================

A simple, secure, modular PHP blog engine

101↓100%8[1 PRs](https://github.com/cakmoel/Scriptlog/pulls)PHPCI passing

Since Mar 16Pushed 1mo ago5 watchersCompare

[ Source](https://github.com/cakmoel/Scriptlog)[ Packagist](https://packagist.org/packages/cakmoel/scriptlog)[ RSS](/packages/cakmoel-scriptlog/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

Scriptlog
=========

[](#scriptlog)

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE.md)[![PHP Version](https://camo.githubusercontent.com/f4fc7ecce2891193b534bdc0d77b32e344dca2308daa243d070c699cd4a34a25/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d372e342532422d3737374242342e737667)](https://www.php.net/)[![MySQL Version](https://camo.githubusercontent.com/a51f1d8d46a436bb9fbcacf3ce1dab3a8e830a1a0e5f2d62720038ba62c7e04b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d7953514c2d352e362532422d3434373941312e737667)](https://www.mysql.com/)[![MariaDB Version](https://camo.githubusercontent.com/12c248368e1d18da8e04ab6556e2f86aea420d28d9c094cba26da4515474b721/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6172696144422d31302e332532422d3030333534352e737667)](https://mariadb.org/)[![PSR-12](https://camo.githubusercontent.com/bd048460c97b978820242bacca7aecf14e372fb7a7c28516e1d6bdbda0d58726/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5053522d2d31322d436f6d706c69616e742d3243324332432e737667)](https://www.php-fig.org/psr/psr-12/)[![Tests](https://camo.githubusercontent.com/a93287a1c1903a640bb3387c09428982c776261fb9c568e559bfb6f50a1cc384/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f54657374732d3234362d3434423237332e737667)](https://phpunit.de/)

Scriptlog is a simple, secure, modular, and robust personal blogging platform. It is a refactored fork of Piluscart 1.4.1, engineered to emphasize simplicity, privacy, and security without the overhead of a complex Content Management System.

Project Overview
----------------

[](#project-overview)

Scriptlog is not designed to replace full-scale CMS frameworks. Instead, it is meticulously engineered to:

- Power personal weblogs that do not require a heavy CMS.
- Provide a secure foundation for blogging with modern security practices.
- Run fast with minimal overhead.

### Core Technologies

[](#core-technologies)

- **Backend:** PHP 7.4+ (PSR-12 compliant)
- **Database:** MySQL 5.7+ / MariaDB 10.3+
- **Architecture:** Multi-layered MVC-like (`Request` → `Controller` → `Service` → `DAO` → `Database`)
- **Security:** Laminas (Escaper, Crypt), Defuse PHP Encryption, voku Anti-XSS, HTMLPurifier.

Requirements
------------

[](#requirements)

Ensure your hosting environment meets the following requirements:

- **PHP:** 7.4.33 or higher
- **Web Server:** Apache (with `mod_rewrite` enabled) or Nginx
- **Database:** MySQL 5.6+ or MariaDB 10.3+
- **Extensions:** `pdo`, `mysqli`, `curl`, `gd`, `mbstring`, `fileinfo`, `zip`, `exif`

Installation
------------

[](#installation)

1. **Download &amp; Extract**Unzip the package into your web root directory.
2. **Install Dependencies**Scriptlog uses Composer for dependency management.

    ```
    composer install
    ```
3. **Set Permissions**Ensure the following directories are writeable by the web server user:

    - `install/`
    - `public/log/`
    - `public/cache/`
    - `public/themes/`
    - `admin/plugins/` (if present)
4. **Database Setup**Create a new empty database (use `utf8mb4_general_ci` collation).
5. **Run the Installer**Navigate to `/install/` in your web browser (e.g., `http://your-site.com/install/`) and follow the wizard:

    - Requirement Check
    - Database Configuration
    - Administrator Account Setup
6. **Cleanup (Critical)**For security purposes, **delete the `install/` directory** immediately after installation is complete.

Configuration
-------------

[](#configuration)

If the installer cannot write the configuration file, rename `config.sample.php` to `config.php` and update it manually:

```
return [
    'db' => [
         'host' => 'localhost',
         'user' => 'your_db_user',
         'pass' => 'your_db_password',
         'name' => 'your_db_name'
      ],
    'app' => [
         'url'   => 'http://your-site.com',
         'email' => 'admin@example.com',
         'key'   => 'generated-app-key'
     ]
];
```

Directory Structure
-------------------

[](#directory-structure)

- `admin/`: Administrator panel logic and UI.
- `lib/`: Core application logic (Controllers, Services, DAOs).
- `public/`: Web root for assets, themes, and user uploads.
    - `themes/`: Frontend templates.
    - `files/`: User uploads.
- `tests/`: PHPUnit test suite.
- `docs/`: Developer guides and API documentation.

Development
-----------

[](#development)

Scriptlog adheres to **PSR-12** coding standards and uses **Conventional Commits**.

### Key Commands

[](#key-commands)

- **Run Tests:** `vendor/bin/phpunit`
- **Setup Test DB:** `php tests/setup_test_db.php`

### Architecture Pattern

[](#architecture-pattern)

When adding features, follow the layered implementation pattern:

1. **DAO:** `lib/dao/` (Database interactions)
2. **Service:** `lib/service/` (Business logic)
3. **Controller:** `lib/controller/` (Request handling)

Security Features
-----------------

[](#security-features)

- **Authentication:** Custom secure session handler (`SessionMaker`).
- **CSRF:** Protected via `CSRFGuard` and `csrf_defender`.
- **XSS:** Multi-layered prevention using `Anti-XSS` and `HTMLPurifier`.
- **Encryption:** Sensitive data encrypted using `defuse/php-encryption`.

Contributing
------------

[](#contributing)

Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting pull requests.

Code of Conduct
---------------

[](#code-of-conduct)

Please read our [Code of Conduct](CODE_OF_CONDUCT.md) to keep our community approachable and respectable.

Security
--------

[](#security)

For security vulnerabilities, please read our [Security Policy](SECURITY.md) for responsible disclosure guidelines.

License
-------

[](#license)

Scriptlog is Open Source and Free PHP Blog Software licensed under the [MIT License](LICENSE.md).

---

*Thank you for creating with Scriptlog.*

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance63

Regular maintenance activity

Popularity11

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 78% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/a460413426516c93fd2bd87133dfe9ebef053e6182b4f1028a61e3b8abd4c45f?d=identicon)[cakmoel](/maintainers/cakmoel)

---

Top Contributors

[![cakmoel](https://avatars.githubusercontent.com/u/414011?v=4)](https://github.com/cakmoel "cakmoel (1872 commits)")[![nirmalakhanza](https://avatars.githubusercontent.com/u/30873808?v=4)](https://github.com/nirmalakhanza "nirmalakhanza (507 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (13 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (7 commits)")[![fossabot](https://avatars.githubusercontent.com/u/29791463?v=4)](https://github.com/fossabot "fossabot (1 commits)")

---

Tags

blogblog-engineblog-platformmariadbmysqlphpscriptlogweblog

### Embed Badge

![Health badge](/badges/cakmoel-scriptlog/health.svg)

```
[![Health](https://phpackages.com/badges/cakmoel-scriptlog/health.svg)](https://phpackages.com/packages/cakmoel-scriptlog)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M190](/packages/laravel-telescope)[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M529](/packages/laravel-passport)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M255](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M591](/packages/laravel-prompts)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
