Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Deploy stack su Proxmox / deploy (push) Failing after 3s

Monorepo npm con apps/public (Angular SSR), apps/private (Angular SPA),
apps/api (Fastify), packages/shared e packages/styles; Medusa 2.21 in medusa/;
infrastruttura Docker (Postgres PostGIS+pgvector, Redis, Caddy, backup) e
workflow Gitea Actions per il deploy via SSH a ogni push su master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jQyT6dR9czzGwqb7FkG6u
This commit is contained in:
Lorenzo Sanesi
2026-10-20 09:30:48 +02:00
co-authored by Claude Opus 5.5
commit b83ce039fb
505 changed files with 84544 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
# Backend Medusa (medusa/apps/backend). Copia in `.env` e compila. Non committare `.env`.
# Postgres dedicato a Medusa: credenziali MEDUSA_DB_* del .env di root
DATABASE_URL=postgres://iti_medusa:change-me@localhost:5432/iti_medusa
REDIS_URL=redis://localhost:6379
# CORS (liste separate da virgola). Il dashboard admin in dev gira su :9000/app;
# lo storefront non chiama Medusa direttamente (passa da apps/api), STORE_CORS resta minimale.
STORE_CORS=http://localhost:4200
ADMIN_CORS=http://localhost:9000
AUTH_CORS=http://localhost:9000
# Segreti: genera valori casuali lunghi, es.
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
JWT_SECRET=change-me
COOKIE_SECRET=change-me
AUTH_MFA_ENCRYPTION_KEY=change-me
# Storage file locale. Relativo alla cartella del backend o assoluto (in produzione: volume Docker).
FILE_UPLOAD_DIR=static
FILE_BACKEND_URL=http://localhost:9000/static
MEDUSA_ADMIN_ONBOARDING_TYPE=default
# Stripe (chiavi di TEST in sviluppo: https://dashboard.stripe.com/test/apikeys).
# Senza STRIPE_API_KEY il provider non viene registrato e seed-base.ts si ferma.
# Webhook da registrare in Stripe: {URL pubblico Medusa}/hooks/payment/stripe_stripe
STRIPE_API_KEY=
STRIPE_WEBHOOK_SECRET=
# Segreto condiviso con apps/api per le route /internal/* (header x-internal-secret).
# Stesso valore di INTERNAL_API_SECRET in apps/api/.env. Senza, le route rispondono sempre 401.
INTERNAL_API_SECRET=
# Webhook verso apps/api: POST {FASTIFY_WEBHOOK_URL}/webhooks/medusa firmato HMAC-SHA256 (header x-signature).
# WEBHOOK_SECRET deve coincidere con quello di apps/api/.env. Senza una delle due variabili l'invio viene saltato.
FASTIFY_WEBHOOK_URL=http://localhost:3000
WEBHOOK_SECRET=
# Opzionale: base del backoff tra i tentativi (ms, default 2000 -> 2s, 4s, 8s, 16s)
# WEBHOOK_RETRY_BASE_MS=2000