Skip to content

CLI and Makefile ​

Skillr provides Makefile targets for Docker operations and Composer scripts for local development.

Makefile Targets (Docker) ​

All targets operate on the Docker Compose stack defined in docker-compose.yml.

Service Management ​

bash
make up          # Start all containers in detached mode
make down        # Stop and remove all containers
make build       # Rebuild all images from scratch (--no-cache)
make logs        # Tail logs from all containers

Database ​

bash
make migrate     # Run migrations and seeders
make fresh       # Drop all tables, re-run migrations and seeders

WARNING

make fresh destroys all data. Use it only during development to reset to a clean state.

Testing ​

bash
make test        # Run the Pest PHP test suite inside the container

Shell Access ​

bash
make shell       # Open a bash shell in the PHP container
make tinker      # Open Laravel Tinker (interactive REPL) in the PHP container

Composer Scripts (Local Development) ​

These commands run directly on your machine without Docker.

Start Development ​

bash
composer dev

Runs four processes concurrently:

  • Laravel development server (php artisan serve)
  • Queue worker (php artisan queue:work)
  • Log watcher (php artisan pail)
  • Vite dev server (for the React SPA)

Run Tests ​

bash
composer test

Clears the config cache and runs the Pest PHP test suite.

TypeScript Type Checking ​

The React SPA has its own type checking:

bash
cd ui
npx tsc --noEmit

This checks all TypeScript files for type errors without producing output files.

Docker Compose Services ​

The docker-compose.yml defines these services:

ServicePortDescription
php8000PHP 8.4 CLI running php artisan serve
mariadb3306MariaDB 11 database

The React SPA runs locally outside Docker for faster HMR:

bash
cd ui && npm install && npm run dev

Environment Variables ​

Key variables in .env:

VariableDescription
PROJECTS_HOST_PATHHost path mounted into the PHP container for project file access
DB_HOST127.0.0.1 for local, mariadb for Docker
DB_DATABASEDatabase name (default: skillr)
ANTHROPIC_API_KEYAPI key for Claude models
OPENAI_API_KEYAPI key for OpenAI models
GEMINI_API_KEYAPI key for Gemini models
OLLAMA_URLURL for local Ollama instance (default: http://localhost:11434)
PROJECTS_BASE_PATHInternal mount path for project directories

Released under the MIT License.