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
+10
View File
@@ -0,0 +1,10 @@
# Postgres 16 + PostGIS 3.4 + pgvector
FROM postgis/postgis:16-3.4
# L'immagine è basata su Debian bullseye, che PGDG ha spostato su apt-archive.postgresql.org:
# il repo originale (apt.postgresql.org) risponde 404, quindi si punta all'archivio (stessa chiave GPG; http, i pacchetti sono firmati).
RUN sed -i 's#http://apt.postgresql.org/pub/repos/apt/\?#http://apt-archive.postgresql.org/pub/repos/apt/#' \
/etc/apt/sources.list.d/pgdg.list \
&& apt-get update \
&& apt-get install -y --no-install-recommends postgresql-16-pgvector \
&& rm -rf /var/lib/apt/lists/*
+43
View File
@@ -0,0 +1,43 @@
-- Eseguito una sola volta, al primo avvio con volume dati vuoto
-- (docker-entrypoint-initdb.d, come superuser POSTGRES_USER).
-- Le credenziali arrivano dalle variabili d'ambiente del container via \getenv (psql >= 15).
\set ON_ERROR_STOP on
\getenv app_db_name APP_DB_NAME
\getenv app_db_user APP_DB_USER
\getenv app_db_password APP_DB_PASSWORD
\getenv medusa_db_name MEDUSA_DB_NAME
\getenv medusa_db_user MEDUSA_DB_USER
\getenv medusa_db_password MEDUSA_DB_PASSWORD
-- Utenti distinti per app custom e Medusa
CREATE ROLE :"app_db_user" LOGIN PASSWORD :'app_db_password';
CREATE ROLE :"medusa_db_user" LOGIN PASSWORD :'medusa_db_password';
-- Database, ciascuno di proprietà del rispettivo utente
-- (in PG16 lo schema public appartiene a pg_database_owner, quindi l'owner del DB ci può creare tabelle)
CREATE DATABASE :"app_db_name" OWNER :"app_db_user" ENCODING 'UTF8' TEMPLATE template0;
CREATE DATABASE :"medusa_db_name" OWNER :"medusa_db_user" ENCODING 'UTF8' TEMPLATE template0;
REVOKE ALL ON DATABASE :"app_db_name" FROM PUBLIC;
REVOKE ALL ON DATABASE :"medusa_db_name" FROM PUBLIC;
-- Database dei test automatici di apps/api (<APP_DB_NAME>_test, stesso utente):
-- i test lo svuotano a ogni esecuzione, mai puntarli sul DB applicativo.
SELECT format('%s_test', :'app_db_name') AS app_test_db_name \gset
CREATE DATABASE :"app_test_db_name" OWNER :"app_db_user" ENCODING 'UTF8' TEMPLATE template0;
REVOKE ALL ON DATABASE :"app_test_db_name" FROM PUBLIC;
-- Estensioni del DB applicativo e di quello di test (create da superuser: postgis non è "trusted")
\connect :"app_db_name"
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS unaccent;
\connect :"app_test_db_name"
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS unaccent;