Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Deploy stack su Proxmox / deploy (push) Failing after 3s
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:
@@ -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/*
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user