Tutte le sezioni del manuale

DocumentazioneApplicazioni Node.js e Python

Applicazioni Node.js e Python

Un sito può essere un'applicazione Node.js o Python invece di PHP: Express, Next.js, NestJS, Django, Flask, FastAPI e simili. Si imposta nella pagina del sito, scheda Node.js / Python.

Come funziona

  • L'applicazione gira come servizio di sistema con l'utente del sito: stessi permessi dei file del sito, nessun accesso agli altri siti. Il servizio ha un limite di memoria e di CPU (di base 512 MB e un core) e riparte da solo se si ferma per un errore.
  • nginx resta davanti: certificato HTTPS, HTTP/2, WebSocket. Passa tutte le richieste all'applicazione, che deve ascoltare su 127.0.0.1 sulla porta indicata nella variabile PORT (il pannello la sceglie e la imposta).
  • Le versioni vengono installate dal pannello quando servono: Node.js dai pacchetti ufficiali di nodejs.org (verificati con il loro SHA-256), Python con uv; ogni applicazione Python ha il suo ambiente virtuale .venv.

Crearla

  1. Scegli linguaggio e versione, la cartella (dentro la home del sito, fuori da public_html; di base app) e il comando di avvio. Vuoto vuol dire npm start (o node server.js) per Node.js e python app.py per Python. Esempi: gunicorn -b 127.0.0.1:$PORT progetto.wsgi, uvicorn main:app --host 127.0.0.1 --port $PORT, node dist/main.js.
  2. Aggiungi le variabili d'ambiente (una per riga, NOME=valore): PORT, HOST e PATH le imposta il pannello, NODE_ENV vale production se non lo cambi.
  3. Premi Avvia l'applicazione. Se la cartella è vuota il pannello scrive un piccolo esempio che risponde subito; carica poi i tuoi file con il file manager o SFTP, oppure usa il deploy da Git.

Prima dell'avvio il pannello installa le dipendenze (npm ci o npm install se c'è package.json; uv pip install -r requirements.txt o del pyproject.toml per Python) ed esegue il comando di build, se c'è.

Deploy da Git

Indica il repository (https://… pubblico o git@github.com:azienda/app.git) e il ramo. Per un repository privato premi Mostra la chiave di deploy e aggiungila al repository come chiave in sola lettura (GitHub: Settings › Deploy keys; GitLab: Settings › Repository › Deploy keys).

Deploy scarica l'ultima versione del ramo, installa le dipendenze, esegue la build, riavvia il servizio e fa il controllo di salute: se l'applicazione non risponde (errore 500 o nessuna risposta sul percorso indicato, di base /), il deploy viene segnalato come non riuscito e trovi il motivo nel log.

Gestirla

  • Riavvia, Ferma, Avvia, Controlla (controllo di salute immediato).
  • Log: le ultime righe scritte dall'applicazione (quello che stampa su standard output ed errore).
  • Togli l'applicazione ferma il servizio e il sito torna servito da PHP; i file nella cartella restano.
  • I backup del sito includono la cartella dell'applicazione (è nella home del sito); il database, se usa MySQL o PostgreSQL, è nei backup anche lui.

Da sapere

  • Su un sito con WordPress o con un'applicazione di Installa app non si può attivare un'applicazione Node.js o Python: usa un altro sito (per esempio un sottodominio come api.example.com).
  • Il servizio può scrivere solo nella home del sito; /tmp è privato per ogni applicazione.