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.