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
=================

Blog engine

v1.5.0(1mo ago)1078MITPHPPHP &gt;=7.4

Since Apr 7Pushed 1mo ago5 watchersCompare

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

READMEChangelog (10)Dependencies (93)Versions (24)Used By (0)

Scriptlog
=========

[](#scriptlog)

**Empowering Your Personal Weblog**

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE.md)[![PHP Version](https://camo.githubusercontent.com/2242dda5edc48226d187013718a2b3c57abebefcda11454b519613e457456595/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d372e342532302d2d253230382e352d3737374242342e737667)](https://www.php.net/)[![MySQL Version](https://camo.githubusercontent.com/be6d0de4e567783b5d45e97f466956ff2f1dd461b366fdbb419a4efc1ef4a8b5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d7953514c2d352e372532422d3434373941312e737667)](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://github.com/cakmoel/Scriptlog/actions/workflows/tests.yml/badge.svg)](https://github.com/cakmoel/Scriptlog/actions/workflows/tests.yml)[![Scriptlog Mascot](assets/scriptlog-mascot-min.png)](assets/scriptlog-mascot-min.png)

---

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 – 8.5 (PSR-12 compliant)
- **Database:** MySQL 5.7+ / MariaDB 10.3+
- **Architecture:** Multi-layered MVC-like (`Request` → `Bootstrap` → `Dispatcher` → `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 – 8.5 (with extensions: `pdo`, `pdo_mysql`, `json`, `mbstring`, `curl`)
- **Web Server:** Apache (with `mod_rewrite` enabled) or Nginx
- **Database:** MySQL 5.7+ or MariaDB 10.3+
- **Composer:** Latest (for dependency management)

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

[](#installation)

1. **Clone the Repository**

    ```
    git clone https://github.com/cakmoel/Scriptlog.git
    cd Scriptlog
    ```
2. **Install Dependencies**

    ```
    composer install
    ```

    > **Note:** Composer's `platform.php` config locks dependency resolution to PHP 7.4, ensuring all packages stay compatible across PHP 7.4 through 8.5. No runtime warnings occur on newer PHP versions.
3. **Set Permissions**

    ```
    # Directories: readable and executable, Files: readable only
    find public -type d -exec chmod 755 {} \;
    find public -type f -exec chmod 644 {} \;

    # Writable directories (web server needs write access)
    chmod -R 775 public/cache public/log

    # Writable uploads — directories only, files stay non-executable
    find public/files -type d -exec chmod 775 {} \;
    find public/files -type f -exec chmod 644 {} \;

    # Restrict access to configuration files
    chmod 640 config.php .env
    ```

    > **Note:** Adjust ownership if needed — the web server user (e.g., `www-data`) must own or be in the group of `public/cache`, `public/log`, and `public/files`.
4. **Database Setup**Create a new empty database (use `utf8mb4_general_ci` collation).
5. **Run the Installer**Navigate to `/install/` in your web browser and follow the wizard:

    - Step 1: System Requirements Check (`install/index.php`)
    - Step 2: Database Setup (`install/setup-db.php`) - creates 21 tables
    - Step 3: Complete Setup (`install/finish.php`)
6. **Cleanup (Critical)**For security purposes, **delete the `install/` directory** immediately after installation is complete.

### Configuration Files

[](#configuration-files)

After installation, two configuration files are generated:

FilePurpose`config.php`Main configuration with `$_ENV` fallbacks`.env`Environment variables (auto-generated)`storage/keys/[random_filename].php`Defuse encryption key for authentication cookiesConfiguration
-------------

[](#configuration)

Scriptlog supports both `.env` and `config.php` files for configuration. During installation, both files are automatically generated and kept in sync.

### config.php Structure

[](#configphp-structure)

```
