選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
dcovington cdda1cbe2e Add 'AGENTS.MD' 2ヶ月前
app Add framework guide and fix session/migration/error-handler bugs 2ヶ月前
config Switch default database to SQLite and add phpLiteAdmin 2ヶ月前
database/migrations init 2ヶ月前
docker Switch default database to SQLite and add phpLiteAdmin 2ヶ月前
docs Add framework guide and fix session/migration/error-handler bugs 2ヶ月前
framework Add framework guide and fix session/migration/error-handler bugs 2ヶ月前
public init 2ヶ月前
resources Add framework guide and fix session/migration/error-handler bugs 2ヶ月前
storage init 2ヶ月前
tests init 2ヶ月前
.env.example Switch default database to SQLite and add phpLiteAdmin 2ヶ月前
.gitignore init 2ヶ月前
AGENTS.MD Add 'AGENTS.MD' 2ヶ月前
Dockerfile Switch default database to SQLite and add phpLiteAdmin 2ヶ月前
command.php init 2ヶ月前
composer.json init 2ヶ月前
composer.lock init 2ヶ月前
docker-compose.yml Switch default database to SQLite and add phpLiteAdmin 2ヶ月前
phpunit.xml init 2ヶ月前
readme.md Add framework guide and fix session/migration/error-handler bugs 2ヶ月前
server.php init 2ヶ月前

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.