This repository provides a realistic, MySQL-backed weblog demo built in CodeIgniter 2.2.0 style for student pentesting practice in a controlled environment.
- CodeIgniter core
system/directory is sourced from the official2.2.0release: https://github.com/bcit-ci/CodeIgniter/releases/tag/2.2.0
- Public blog with slug-based post pages
- Public comment submission on posts
- Login/logout flow with session storage in MySQL
- Admin dashboard with post CRUD (create/edit/delete)
- Draft/published post workflow
- Seeded demo data (users, posts, comments)
- Public blog:
http://localhost:8080/index.php/blog - Login:
http://localhost:8080/index.php/login - Admin dashboard:
http://localhost:8080/index.php/admin
- Admin user:
admin - Admin password:
admin123
docker compose up --buildServices:
- App: Apache + PHP exposed on container port
80(ingress/proxy should route traffic) - MySQL: container port
3306inside compose network (ci_weblog,ci_user,ci_password)
For local machine testing with direct host access, temporarily add a ports mapping (for example 8080:80) to weblog.
Deployment note:
- The
weblogservice intentionally does not use a source bind mount in compose so Apache serves the image contents reliably in orchestration environments.
MySQL schema + seed data load automatically from:
docker/mysql/init/01_schema.sql
application/controllers/blog.php- public blog + commentsapplication/controllers/auth.php- login/logoutapplication/controllers/admin.php- admin CRUDapplication/models/blog_model.php- posts data accessapplication/models/comment_model.php- comments data accessapplication/models/user_model.php- user auth data accessapplication/views/blog/*- public pagesapplication/views/auth/*- auth pagesapplication/views/admin/*- admin pages
This app is intentionally suitable for security training in non-production environments. Do not deploy it to public infrastructure.