first commit

This commit is contained in:
Giuseppe Naponiello
2026-06-14 19:01:02 +02:00
commit 36bcc9a842
98 changed files with 26936 additions and 0 deletions

94
.env.example Normal file
View File

@@ -0,0 +1,94 @@
# =============================================================================
# dyncoll.v2 — file di esempio delle variabili d'ambiente
# Copia in `.env` e compila i valori (i segreti restano vuoti qui).
# cp .env.example .env && (cd backend && php artisan key:generate)
# NB: `.env` NON va versionato (vedi .gitignore).
# =============================================================================
# --- Applicazione ------------------------------------------------------------
APP_NAME="Dynamic Collection"
APP_ENV=local # local | staging | production
APP_KEY= # generata con: php artisan key:generate
APP_DEBUG=true # false in produzione
APP_URL=https://dyncoll-dev.local
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_TIMEZONE=Europe/Rome
# Porte pubblicate sull'host (mappate nei compose)
APP_BACKEND_PORT=8000
APP_FRONTEND_PORT=8080
# Porta del dev server Vite (solo sviluppo, override compose; Traefik instrada qui)
APP_FRONTEND_DEVPORT=5173
# --- Logging -----------------------------------------------------------------
LOG_CHANNEL=stack
LOG_STACK=single
LOG_LEVEL=debug # warning/error in produzione
# --- Database (v2, MySQL — nomi canonici Laravel) ----------------------------
# Usati sia da Laravel sia dal container mysql (mappati nel compose).
DB_CONNECTION=mysql
DB_HOST=db # nome del servizio docker
DB_PORT=3306
DB_DATABASE=dyncoll
DB_USERNAME=dyncoll
DB_PASSWORD= # segreto: compilare
DB_ROOT_PASSWORD= # segreto: solo per il container mysql (root)
# --- Database legacy (v1) — sorgente per l'ETL `php artisan v1:import` --------
# Connessione in SOLA LETTURA verso il MySQL di dyncoll.v1.
# Attiva solo durante l'import; richiede rete docker condivisa o tunnel.
DB_LEGACY_CONNECTION=mysql
DB_LEGACY_HOST=dyncoll_v1_db # container/host del DB v1
DB_LEGACY_PORT=3306
DB_LEGACY_DATABASE=lund
DB_LEGACY_USERNAME=readonly
DB_LEGACY_PASSWORD= # segreto: compilare
# --- Redis (cache, sessioni, code, Horizon) ----------------------------------
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD= # segreto: compilare
REDIS_CLUSTER=false
CACHE_STORE=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=120
QUEUE_CONNECTION=redis
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
# --- Autenticazione (Sanctum / Fortify) --------------------------------------
SANCTUM_STATEFUL_DOMAINS=dyncoll-dev.local,localhost,localhost:8080
SESSION_DOMAIN=.dyncoll-dev.local
# --- Mail (SMTP) -------------------------------------------------------------
# DEV: Mailpit (servizio nel docker-compose.override.yml). UI: http://localhost:8025
# MAIL_HOST=mailpit MAIL_PORT=1025 (nessuna autenticazione)
# PROD: SMTP dell'Ente — esempio (mettere i valori reali nel .env di produzione):
# MAIL_HOST=smtps.lu.se MAIL_PORT=587 MAIL_USERNAME=smtps_...@lu.se MAIL_PASSWORD=<segreto>
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=
MAIL_PASSWORD= # segreto in prod
MAIL_SCHEME= # vuoto = STARTTLS (es. porta 587); irrilevante per Mailpit
MAIL_FROM_ADDRESS="dynamic_collections@ark.lu.se"
MAIL_FROM_NAME="Dynamic Collection Crew"
# --- Documentazione OpenAPI (Scramble) ---------------------------------------
# Generata automaticamente dal codice; UI su /docs/api (proxy frontend: /api-docs).
# Config avanzata in backend/config/scramble.php (nessuna env obbligatoria).
# --- Linked Art / Harvesting KSamsök 2 (RAÄ) ---------------------------------
# Base URI per il mapping ontologico (vedi memoria progetto + workfile/.../shm-2b).
# provider = ente che pubblica; canonical = id stabile; retrieval = URI dereferenziabile.
LOD_PROVIDER_URI=https://kulturarvsdata.se/lund
LOD_CANONICAL_BASE=https://kulturarvsdata.se/lund/object
LOD_RETRIEVAL_BASE=https://dyncoll-dev.local/linkedart/v1/objects
LOD_BATCH_PAGE_SIZE=400 # default protocollo (max 2000)
# --- SonarQube (analisi qualità via pre-commit) ------------------------------
# Il token NON va qui: usare la variabile SONAR_TOKEN o il file .git/sonar.token.
# SonarQube locale: http://sonar.local (UI) — container su rete `sonarqube-internal`.