Deploy su Render.com (Guida Completa)
Render.com è una delle piattaforme cloud PaaS più semplici ed economiche per ospitare EasyEA in pochi minuti direttamente dall’immagine Docker ufficiale (ghcr.io/lhackyup/easy-ea:latest), senza dover gestire server o infrastrutture complesse.
Questa guida ti accompagna passo dopo passo sia nel deploy automatico tramite Blueprint (render.yaml), sia nella configurazione manuale e nell’abbinamento a un database PostgreSQL persistente gratuito (es. Neon.tech o Supabase).
1. Architettura del Deploy su Render.com
Su Render, l’installazione di EasyEA si compone di due elementi:
- Web Service (
easyea-app): Esegue l’immagine containerghcr.io/lhackyup/easy-ea:latestsulla porta8000. - Database PostgreSQL (
easyea-postgres): Ospita i workspace, gli elementi ArchiMate, le relazioni, gli schemi, gli utenti RBAC e i package.eap.
2. Metodo A: Deploy Automatico con Blueprint (render.yaml)
Puoi scaricare il file ufficiale render.yaml e inserirlo in un tuo repository GitHub per avviare l’intero stack con un solo clic:
services: - type: web name: easyea-app runtime: image image: url: ghcr.io/lhackyup/easy-ea:latest plan: free region: frankfurt # oppure oregon, ohio, singapore envVars: - key: PORT value: 8000 - key: EASYEA_ENV value: production - key: EASYEA_SECRET_KEY generateValue: true - key: EASYEA_SEED_DEMO_USERS value: "false" - key: EASYEA_RBAC_MODE value: hybrid - key: DATABASE_URL fromDatabase: name: easyea-postgres property: connectionString
databases: - name: easyea-postgres databaseName: easyea_db user: easyea_user plan: free region: frankfurtProcedura:
- Accedi alla dashboard di Render.com.
- Clicca su New + ➔ Blueprint.
- Collega il repository contenente il file
render.yaml. - Render creerà automaticamente sia il database PostgreSQL (
easyea-postgres) nella regione di Francoforte (frankfurt), sia il servizio web (easyea-app), iniettando la stringa di connessioneDATABASE_URLe generando una chiave crittografica sicura perEASYEA_SECRET_KEY.
3. Metodo B: Configurazione Manuale dalla Dashboard Render
Se preferisci non usare un repository Git ma fare il deploy diretto dell’immagine Docker dalla UI di Render:
- Crea il Database PostgreSQL:
- Clicca su New + ➔ PostgreSQL.
- Imposta il nome (es.
easyea-postgres), la Region (Frankfurt (EU Central)) e scegli il piano (Free per test o Basic/Pro per produzione). - Una volta creato, copia l’Internal Database URL (se nella stessa region) o l’External Database URL.
- Crea il Web Service EasyEA:
- Clicca su New + ➔ Web Service.
- Seleziona l’opzione Deploy an existing image from a registry.
- Inserisci come Image URL:
ghcr.io/lhackyup/easy-ea:latest
- Scegli il nome del servizio (es.
easyea-app) e la stessa Region (Frankfurt).
- Configura le Variabili d’Ambiente (
Environment Variables):
| Variabile | Valore Consigliato | Descrizione |
|---|---|---|
PORT | 8000 | Porta su cui il server Uvicorn/FastAPI resta in ascolto dentro il container. |
DATABASE_URL | postgresql://... | La Connection String copiata dal database PostgreSQL. |
EASYEA_ENV | production | Abilita le ottimizzazioni e i controlli di sicurezza di produzione. |
EASYEA_SECRET_KEY | (Stringa casuale lunga) | Chiave segreta per la firma dei token JWT di autenticazione. |
EASYEA_RBAC_MODE | hybrid (o strict) | hybrid consente la consultazione guidata e richiede login per modifiche/admin; strict richiede autenticazione su ogni rotta. |
EASYEA_SEED_DEMO_USERS | false (o true per demo) | Se impostato a true, crea gli utenti dimostrativi al primo avvio. In produzione si raccomanda false. |
- Clicca su Create Web Service. In circa 60–90 secondi il tuo portale EasyEA sarà online con certificato HTTPS automatico (
https://easyea-app.onrender.com).
4. Persistenza Permanente Gratuita con Neon.tech o Supabase
Se desideri mantenere un’istanza 100% gratuita e senza scadenza temporale per i tuoi modelli ArchiMate:
- Crea un progetto PostgreSQL gratuito su Neon.tech (Serverless Postgres, regione AWS Europe Frankfurt) oppure su Supabase.
- Copia la stringa di connessione fornita da Neon (assicurandoti che termini con
?sslmode=require):postgresql://<user>:<password>@ep-xyz.eu-central-1.aws.neon.tech/neondb?sslmode=require - Vai nella dashboard di Render.com ➔ seleziona il servizio
easyea-app➔ scheda Environment. - Sovrascrivi la variabile
DATABASE_URLincollando la stringa di Neon.tech e salva. - Render riavvierà il container collegandosi al database permanente esterno. A quel punto potrai eliminare il DB temporaneo su Render.