25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Daniel Covington 605b27efe9 Support distro-default PHP packages on Raspberry Pi 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 Support distro-default PHP packages on Raspberry Pi 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 Support distro-default PHP packages on Raspberry Pi 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.