Salta ai contenuti

Installa Presentia

Presentia si compila da un singolo Dockerfile multi-stage (EXPOSE 80) che impacchetta l’intera app — backend, frontend e asset — quindi funziona su qualsiasi piattaforma capace di compilare da un Dockerfile.

Terminal window
git clone https://github.com/diegoparras/presentia.git
cd presentia
docker compose up -d --build production

Apri http://localhost:5001, crea il tuo login e scegli un provider di testo nell’onboarding — una chiave API di OpenRouter è il modo più rapido per sbloccare in un colpo solo tutti i modelli del catalogo.

Il file compose monta già ./app_data e include blocchi di servizio commentati per Escriba, Anonimal e una variante GPU. Su un host con GPU, docker compose up -d --build production-gpu abilita l’accelerazione NVIDIA per i modelli locali; cambia la porta con PRESENTON_HTTP_HOST_PORT.

  1. + Service → App, Source → GitHubdiegoparras/presentia (branch main), Build → Dockerfile.
  2. (Consigliato) + Service → Postgres nello stesso progetto (es. presentia-db). I servizi si parlano per nome — <project>_presentia-db:5432, non host.docker.internal.
  3. Nell’Environment dell’App:
    DATABASE_URL=postgresql://user:password@<project>_presentia-db:5432/presentia
    MIGRATE_DATABASE_ON_STARTUP=true
    Usa lo schema semplice postgresql:// — l’app aggiunge da sola il driver async. Lascia DATABASE_URL vuota per usare l’SQLite integrato.
  4. Mounts → Volume → monta un volume persistente su /app_data.
  5. Domains → Container Port 80, aggiungi il tuo dominio, abilita HTTPS.
  6. Deploy. Al primo avvio le migrazioni creano automaticamente lo schema completo.
Terminal window
docker build -t presentia .
docker run -d --name presentia --restart unless-stopped \
-p 5001:80 -v presentia_data:/app_data \
-e MIGRATE_DATABASE_ON_STARTUP=true \
presentia

Metti un reverse proxy davanti per il TLS. Esempio di Caddyfile:

presentia.example.com {
reverse_proxy localhost:5001
}

Tutto può essere configurato dall’interfaccia Settings — le variabili d’ambiente servono per deployment headless o blindati. Le più utili:

VariabilePredefinitoDescrizione
LLMProvider di testo: openai, anthropic, google, deepseek, openrouter, ollama, lmstudio, litellm, azure_openai, bedrock, vertex, custom.
<PROVIDER>_API_KEY / <PROVIDER>_MODELCredenziali e modello per provider (es. OPENROUTER_API_KEY + OPENROUTER_MODEL).
IMAGE_PROVIDERgpt-image-1.5, dall-e-3, gemini_flash, pexels, pixabay, comfyui.
WEB_GROUNDING / WEB_SEARCH_PROVIDERdisattivatoRicerca web: searchgirl, searxng, tavily, exa, brave o auto (nativa del modello).
AUTH_USERNAME / AUTH_PASSWORDPre-imposta il login al posto del modulo del primo avvio.
CAN_CHANGE_KEYStruefalse blocca le chiavi API così l’interfaccia non può modificarle.
DATABASE_URLSQLitePunta a PostgreSQL per i deployment multi-utente.
DATASET_MAX_ROWS200Tetto di righe per l’endpoint dei grafici dai dati.
DISABLE_ANONYMOUS_TRACKINGImposta true per disattivare la telemetria anonima dell’upstream.

La matrice completa dei provider (Azure, Bedrock, Vertex, ComfyUI e altri) è documentata nel docker-compose.yml del repository e in .env.example.

Leggi la documentazione