Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
dcovington 4abcfb3c52 Add 'CLAUDE.MD' pirms 1 nedēļas
app Add framework guide and fix session/migration/error-handler bugs pirms 1 nedēļas
config Switch default database to SQLite and add phpLiteAdmin pirms 1 nedēļas
database/migrations init pirms 1 nedēļas
docker Switch default database to SQLite and add phpLiteAdmin pirms 1 nedēļas
docs Add framework guide and fix session/migration/error-handler bugs pirms 1 nedēļas
framework Add framework guide and fix session/migration/error-handler bugs pirms 1 nedēļas
public init pirms 1 nedēļas
resources Add framework guide and fix session/migration/error-handler bugs pirms 1 nedēļas
storage init pirms 1 nedēļas
tests init pirms 1 nedēļas
.env.example Switch default database to SQLite and add phpLiteAdmin pirms 1 nedēļas
.gitignore init pirms 1 nedēļas
AGENTS.MD Add 'AGENTS.MD' pirms 1 nedēļas
CLAUDE.MD Add 'CLAUDE.MD' pirms 1 nedēļas
Dockerfile Switch default database to SQLite and add phpLiteAdmin pirms 1 nedēļas
command.php init pirms 1 nedēļas
composer.json init pirms 1 nedēļas
composer.lock init pirms 1 nedēļas
docker-compose.yml Switch default database to SQLite and add phpLiteAdmin pirms 1 nedēļas
phpunit.xml init pirms 1 nedēļas
readme.md Add framework guide and fix session/migration/error-handler bugs pirms 1 nedēļas
server.php init pirms 1 nedēļas

readme.md

Whoosh website

To run the local development server, try:

export PHP_ENV=prod && php -S 127.0.0.1:8000 -t .

To make requests with cURL, try:

curl -X DELETE http://127.0.0.1:8000/old-home

Running with Docker

docker compose up -d --build

This starts two services:

  • app — nginx + php-fpm, served at http://localhost:8080
  • db — MySQL 8, exposed on host port 33060 (only used if DB_CONNECTION=mysql)

The default database connection is SQLite (database/database.sqlite), configured via DB_CONNECTION in .env / docker-compose.yml. On first boot the app container automatically creates the SQLite file with the correct permissions and runs migrations. To switch to MySQL instead, set DB_CONNECTION=mysql in docker-compose.yml.

To run migrations manually (e.g. after adding a new migration file):

docker compose exec app php command.php migrate
docker compose exec app php command.php migrate --fresh   # drops all tables first, for a clean slate

phpLiteAdmin

A SQLite admin UI is available at http://localhost:8081, password admin (change it via the PHPLITEADMIN_PASSWORD environment variable in docker-compose.yml). It's a development-only tool — don't expose port 8081 outside your local machine.

Framework guide

This app is built on a small custom MVC framework in framework/. See docs/framework.md for how routing, controllers, views, models/migrations, validation, sessions, caching, queues, and the CLI commands all work.

Powered by TurnKey Linux.