CakeBlog is a CakePHP-based multi-blog application with posts, users, and optional domain-based blog routing. It includes admin tooling, RSS output, and a Docker setup for local development.
  • PHP 90.6%
  • CSS 6.1%
  • Shell 1.7%
  • HTML 0.9%
  • Dockerfile 0.4%
  • Other 0.3%
Find a file
MayMeow 935f726f11
Update README with project status and licensing details
Added project status and licensing information to README.
2026-01-19 10:40:35 +01:00
.agent/rules after separation 2026-01-13 15:05:36 +01:00
.github Implement Domains feature with CRUD operations and related views 2026-01-14 09:54:57 +01:00
_examples Add accent color enum and color selection to blogs 2026-01-16 10:57:17 +01:00
bin after separation 2026-01-13 15:05:36 +01:00
config Add is_public field to blogs and update related logic 2026-01-17 20:50:19 +01:00
plugins after separation 2026-01-13 15:05:36 +01:00
resources after separation 2026-01-13 15:05:36 +01:00
src Add homepage cell for displaying blog landing content 2026-01-18 18:51:42 +01:00
templates Fix empty posts check in Posts index view 2026-01-18 18:58:55 +01:00
tests Add homepage cell for displaying blog landing content 2026-01-18 18:51:42 +01:00
webroot Add accent color enum and color selection to blogs 2026-01-16 10:57:17 +01:00
.dockerignore Implement Domains feature with CRUD operations and related views 2026-01-14 09:54:57 +01:00
.editorconfig after separation 2026-01-13 15:05:36 +01:00
.gitattributes after separation 2026-01-13 15:05:36 +01:00
.gitignore after separation 2026-01-13 15:05:36 +01:00
.htaccess after separation 2026-01-13 15:05:36 +01:00
CODEOWNERS Add CODEOWNERS file with owner assignment 2026-01-16 23:53:10 +01:00
composer.json Add commercial license enforcement middleware 2026-01-14 22:18:16 +01:00
composer.lock smapp updates 2026-01-16 21:55:00 +01:00
database.sqlite Fix empty posts check in Posts index view 2026-01-18 18:58:55 +01:00
docker-compose.yml Update docker-compose.yml 2026-01-16 20:35:34 +01:00
docker-entrypoint.sh smapp updates 2026-01-16 21:55:00 +01:00
Dockerfile smapp updates 2026-01-16 21:55:00 +01:00
index.php after separation 2026-01-13 15:05:36 +01:00
LICENSE Add MIT License to the project 2026-01-14 22:19:40 +01:00
LICENSE-COMMERCIAL Add commercial license enforcement middleware 2026-01-14 22:18:16 +01:00
phpcs.xml after separation 2026-01-13 15:05:36 +01:00
phpstan.neon after separation 2026-01-13 15:05:36 +01:00
phpunit.xml.dist after separation 2026-01-13 15:05:36 +01:00
proposed-style.css after separation 2026-01-13 15:05:36 +01:00
psalm.xml after separation 2026-01-13 15:05:36 +01:00
README.md Update README with project status and licensing details 2026-01-19 10:40:35 +01:00
VERSION Add VERSION file and license key config 2026-01-17 10:34:53 +01:00

CakeBlog

CakeBlog is a CakePHP-based multi-blog application with posts, users, and optional domain-based blog routing. It includes admin tooling, RSS output, and a Docker setup for local development.

⚠️ Project Status: Licensing Experiment

Note

Cakeblog is an open-source project, primarily intended as a technical experiment for learning how software licensing and usage restrictions work.

Please note:

  • Usage Limit: By default, the app supports only 1 blog. This is intentional for testing licensing logic.
  • Licensing: Some parts of the project are licensed under a COMMERCIAL-LICENSE, as indicated in the comments at the top of the relevant files.
  • Non-Commercial: This project is not for sale and does not include any payment gateway.
  • How to Unlock: If you wish to use the app for more than 1 blog (up to 5), contact me directly. I can generate a free license key for you.
  • Support Policy: The project is provided “as-is”. I do not accept feature requests or provide active support or bug fixes for other users.

Features

  • Multi-blog support with posts and users
  • Admin panel for managing blogs, posts, and domains
  • RSS feed output
  • Domain-based blog routing via middleware
  • Dockerized development environment
  • SQLite and MySQL-ready configuration examples

Requirements

  • PHP 8.1+ (or compatible with the projects CakePHP version)
  • Composer 2
  • A database (SQLite/MySQL)
  • Optional: Docker + Docker Compose

Quick start (local)

  1. Install dependencies:
    • composer install
  2. Copy the local config and adjust DB settings:
  3. Run migrations and seed data:
    • bin/cake migrations migrate
    • bin/cake migrations seed
  4. Start the dev server:
    • bin/cake server
  5. Open http://localhost:8765

Quick start (Docker)

  1. Build and start containers:
    • docker compose up --build
  2. Run migrations inside the container:
    • docker compose exec app bin/cake migrations migrate
    • docker compose exec app bin/cake migrations seed
  3. Open the app at the containers exposed port.

Configuration

Database

Migrations are located in config/Migrations. Seed data is in config/Seeds. Example SQLite configuration is provided in config/app_sqlite.php.

Admin area

Admin templates live under templates/Admin. Controllers are in src/Controller/Admin.

RSS

RSS templates are in templates/Posts/rss and view classes in src/View.

Testing

Run the test suite with:

  • vendor/bin/phpunit

Linting & Static Analysis

  • PHP_CodeSniffer: vendor/bin/phpcs
  • PHPStan: vendor/bin/phpstan analyse
  • Psalm: vendor/bin/psalm

License

See LICENSE and LICENSE-COMMERCIAL.