feat: Add local storage adapter and update CLAUDE.md with permanent rules
- Add local-storage.ts with smart folder structure:
/storage/products/{brand}/{state}/{product_id}/
- Add storage-adapter.ts unified abstraction
- Add docker-compose.local.yml (NO MinIO)
- Add start-local.sh convenience script
- Update CLAUDE.md with:
- PERMANENT RULES section (no data deletion)
- DEPLOYMENT AUTHORIZATION requirements
- LOCAL DEVELOPMENT defaults
- STORAGE BEHAVIOR documentation
- FORBIDDEN ACTIONS list
- UI ANONYMIZATION rules
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
64
docker-compose.local.yml
Normal file
64
docker-compose.local.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
# Local Development Stack - NO MinIO
|
||||
#
|
||||
# Usage:
|
||||
# docker-compose -f docker-compose.local.yml up
|
||||
#
|
||||
# Or use the convenience script:
|
||||
# ./start-local.sh
|
||||
#
|
||||
# This runs:
|
||||
# - PostgreSQL database
|
||||
# - Backend API server
|
||||
# - Local filesystem storage (./storage)
|
||||
#
|
||||
# NO MinIO, NO remote connections, NO Kubernetes
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15-alpine
|
||||
container_name: cannaiq-postgres
|
||||
environment:
|
||||
POSTGRES_DB: dutchie_menus
|
||||
POSTGRES_USER: dutchie
|
||||
POSTGRES_PASSWORD: dutchie_local_pass
|
||||
ports:
|
||||
- "54320:5432"
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U dutchie"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
backend:
|
||||
build:
|
||||
context: ./backend
|
||||
dockerfile: Dockerfile.dev
|
||||
container_name: cannaiq-backend
|
||||
environment:
|
||||
NODE_ENV: development
|
||||
PORT: 3000
|
||||
DATABASE_URL: "postgresql://dutchie:dutchie_local_pass@postgres:5432/dutchie_menus"
|
||||
# Local storage - NO MinIO
|
||||
STORAGE_DRIVER: local
|
||||
STORAGE_BASE_PATH: /app/storage
|
||||
STORAGE_PUBLIC_URL: /storage
|
||||
# No MinIO env vars - forces local storage
|
||||
# MINIO_ENDPOINT is intentionally NOT set
|
||||
JWT_SECRET: local_dev_jwt_secret_change_in_production
|
||||
ADMIN_EMAIL: admin@example.com
|
||||
ADMIN_PASSWORD: password
|
||||
ports:
|
||||
- "3010:3000"
|
||||
volumes:
|
||||
- ./backend:/app
|
||||
- /app/node_modules
|
||||
- ./storage:/app/storage
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
command: npm run dev
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
Reference in New Issue
Block a user