Menu

Tree [cc6e34] main /
 History

HTTPS access


File Date Author Commit
 .github 2021-12-09 M.Noermoehammad M.Noermoehammad [9396fb] updating third party vendor
 src 2026-03-28 nirmalakhanza nirmalakhanza [7c7f69] remove src/lib/utility/.lts/lts.txt
 tests 2026-03-28 Nirmala Adiba Khanza Nirmala Adiba Khanza [cc6e34] chore: append some tests (#102)
 .gitignore 2026-03-28 nirmalakhanza nirmalakhanza [69f265] docs: update .gitignore
 CODE_OF_CONDUCT.md 2026-03-15 nirmalakhanza nirmalakhanza [a054f2] docs: update documentation files with comprehen...
 CONTRIBUTING.md 2026-03-15 nirmalakhanza nirmalakhanza [a054f2] docs: update documentation files with comprehen...
 LICENSE.md 2026-03-16 nirmalakhanza nirmalakhanza [eefe5d] Update license header and formatting
 README.md 2026-03-15 nirmalakhanza nirmalakhanza [a054f2] docs: update documentation files with comprehen...
 SECURITY.md 2026-03-15 nirmalakhanza nirmalakhanza [a054f2] docs: update documentation files with comprehen...
 composer.json 2026-03-18 nirmalakhanza nirmalakhanza [c19d50] fix: composer.json
 composer.lock 2026-03-18 nirmalakhanza nirmalakhanza [1775d8] fix: composer.locl
 phpunit.xml 2026-03-15 nirmalakhanza nirmalakhanza [8a63c9] Configure project for Packagist: move composer....

Read Me

Scriptlog

License
PHP Version
MySQL Version
MariaDB Version
PSR-12
Tests

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

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

  • Backend: PHP 7.4+ (PSR-12 compliant)
  • Database: MySQL 5.7+ / MariaDB 10.3+
  • Architecture: Multi-layered MVC-like (RequestControllerServiceDAODatabase)
  • Security: Laminas (Escaper, Crypt), Defuse PHP Encryption, voku Anti-XSS, HTMLPurifier.

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

  1. Download & Extract
    Unzip the package into your web root directory.

  2. Install Dependencies
    Scriptlog uses Composer for dependency management.
    bash composer install

  3. Set Permissions
    Ensure the following directories are writeable by the web server user:

  4. install/
  5. public/log/
  6. public/cache/
  7. public/themes/
  8. admin/plugins/ (if present)

  9. Database Setup
    Create a new empty database (use utf8mb4_general_ci collation).

  10. Run the Installer
    Navigate to /install/ in your web browser (e.g., http://your-site.com/install/) and follow the wizard:

  11. Requirement Check
  12. Database Configuration
  13. Administrator Account Setup

  14. Cleanup (Critical)
    For security purposes, delete the install/ directory immediately after installation is complete.

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

  • 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

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

Key Commands

  • Run Tests: vendor/bin/phpunit
  • Setup Test DB: php tests/setup_test_db.php

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

  • 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

Contributions are welcome! Please read our Contributing Guidelines before submitting pull requests.

Code of Conduct

Please read our Code of Conduct to keep our community approachable and respectable.

Security

For security vulnerabilities, please read our Security Policy for responsible disclosure guidelines.

License

Scriptlog is Open Source and Free PHP Blog Software licensed under the MIT License.


Thank you for creating with Scriptlog.

MongoDB Logo MongoDB