選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
Daniel Covington 36bd4c8588 Require separate SSH user in Pi deploy script 1週間前
.claude Add Raspberry Pi nginx deployment setup 1週間前
.idea Add Raspberry Pi nginx deployment setup 1週間前
app Replace rocket-shop demo with a warehouse management app 1週間前
config Replace rocket-shop demo with a warehouse management app 1週間前
database/migrations Replace rocket-shop demo with a warehouse management app 1週間前
docker Initial commit 1週間前
docs Require separate SSH user in Pi deploy script 1週間前
framework Replace rocket-shop demo with a warehouse management app 1週間前
public Initial commit 1週間前
resources Replace rocket-shop demo with a warehouse management app 1週間前
scripts Require separate SSH user in Pi deploy script 1週間前
storage Initial commit 1週間前
tests Replace rocket-shop demo with a warehouse management app 1週間前
.env.example Replace rocket-shop demo with a warehouse management app 1週間前
.gitattributes Replace rocket-shop demo with a warehouse management app 1週間前
.gitignore Initial commit 1週間前
AGENTS.md Replace rocket-shop demo with a warehouse management app 1週間前
CLAUDE.md Replace rocket-shop demo with a warehouse management app 1週間前
Dockerfile Initial commit 1週間前
command.php Initial commit 1週間前
composer.json Replace rocket-shop demo with a warehouse management app 1週間前
composer.lock Initial commit 1週間前
docker-compose.yml Replace rocket-shop demo with a warehouse management app 1週間前
phpunit.xml Initial commit 1週間前
readme.md Add Raspberry Pi nginx deployment setup 1週間前
server.php Initial commit 1週間前

readme.md

Warehouse

A warehousing app: define storage locations, create items, then receive, withdraw, and adjust stock, with an audit trail and low-stock email alerts.

To run the local development server, try:

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

Running with Docker

docker compose up -d --build

This starts two services:

  • app — nginx + php-fpm, served at http://localhost:9092
  • 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:9091, password admin (change it via the PHPLITEADMIN_PASSWORD environment variable in docker-compose.yml). It's a development-only tool — don't expose this port outside your local machine.

Note: host ports 9092/9091 map to the app's internal 80/8081 — the host side is deliberately different from the container side because Windows reserves 8081 and 9090 in its dynamic TCP port exclusion range (Hyper-V/WSL2), which blocks Docker from binding either. Check with netsh interface ipv4 show excludedportrange protocol=tcp if you hit a similar “ports are not available ... forbidden by its access permissions” error on another port.

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.

Raspberry Pi deployment

If you want to run this app directly on a Raspberry Pi with nginx and php-fpm, see docs/deploy-raspberry-pi.md and use scripts/deploy-raspi.sh.

Powered by TurnKey Linux.