mirror of
https://github.com/MayMeow/cakeblog.git
synced 2026-02-08 02:04:25 +00:00
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%
|
|
||
|---|---|---|
| .agent/rules | ||
| .github | ||
| _examples | ||
| bin | ||
| config | ||
| plugins | ||
| resources | ||
| src | ||
| templates | ||
| tests | ||
| webroot | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .htaccess | ||
| CODEOWNERS | ||
| composer.json | ||
| composer.lock | ||
| database.sqlite | ||
| docker-compose.yml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| index.php | ||
| LICENSE | ||
| LICENSE-COMMERCIAL | ||
| phpcs.xml | ||
| phpstan.neon | ||
| phpunit.xml.dist | ||
| proposed-style.css | ||
| psalm.xml | ||
| README.md | ||
| VERSION | ||
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 project’s CakePHP version)
- Composer 2
- A database (SQLite/MySQL)
- Optional: Docker + Docker Compose
Quick start (local)
- Install dependencies:
composer install
- Copy the local config and adjust DB settings:
- Run migrations and seed data:
bin/cake migrations migratebin/cake migrations seed
- Start the dev server:
bin/cake server
- Open http://localhost:8765
Quick start (Docker)
- Build and start containers:
docker compose up --build
- Run migrations inside the container:
docker compose exec app bin/cake migrations migratedocker compose exec app bin/cake migrations seed
- Open the app at the container’s exposed port.
Configuration
- Base configuration: config/app.php
- Local overrides: config/app_local.php
- Routes: config/routes.php
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.