openclassify/docker-compose.dev.yml
copilot-swe-agent[bot] 64930897c3 feat: Install FilamentPHP v5, add Admin/Partner modules, Docker support
- Fix CI workflow: actions/checkout@v6 → v4
- Install FilamentPHP ^5.0 and spatie/laravel-permission ^7.2
- Remove laravel/breeze from require-dev (replaced by Filament auth)
- Update User model: implements FilamentUser, HasTenants, HasRoles
- Publish Spatie permission migrations for role-based access
- Create Admin module with FilamentPHP panel at /admin
  - UserResource, CategoryResource, ListingResource, LocationResource
  - Role-based access (admin role required)
- Create Partner module with tenant-isolated panel at /partner/{id}
  - ListingResource scoped to authenticated user
- Update modules_statuses.json: add Admin and Partner modules
- Update DatabaseSeeder: create admin/partner users with roles
- Improve seeders: LocationSeeder (10 countries), CategorySeeder (8 categories with children), ListingSeeder (10 sample listings)
- Add Docker support: Dockerfile, docker-compose.yml, docker-compose.dev.yml
- Add GitHub Codespaces: .devcontainer/devcontainer.json
- Update .env.example with Filament-relevant settings
- Update README.md with full documentation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-03 08:07:28 +00:00

65 lines
1.3 KiB
YAML

services:
app:
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "8000:80"
- "5173:5173"
environment:
APP_ENV: local
APP_DEBUG: "true"
DB_CONNECTION: mysql
DB_HOST: db
DB_PORT: 3306
DB_DATABASE: openclassify
DB_USERNAME: openclassify
DB_PASSWORD: secret
REDIS_HOST: redis
CACHE_STORE: redis
SESSION_DRIVER: redis
QUEUE_CONNECTION: redis
volumes:
- .:/var/www/html
- /var/www/html/vendor
- /var/www/html/node_modules
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
db:
image: mysql:8.0
environment:
MYSQL_DATABASE: openclassify
MYSQL_USER: openclassify
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: rootsecret
ports:
- "3306:3306"
volumes:
- db_data_dev:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data_dev:/data
mailpit:
image: axllent/mailpit:latest
ports:
- "8025:8025"
- "1025:1025"
volumes:
db_data_dev:
redis_data_dev: