Framework Francoforte, Germania

Fai il deploy di Streamlit su Nodion

Nodion esegue la build della tua app Streamlit con il suo buildpack Python e installa le tue dipendenze, ma non riconosce Streamlit in sé: è una riga web: in un Procfile ad avviare il server. A quel punto l'app gira a Francoforte.

Fai il deploy su Nodion ›

da 1 EUR / mese

Fino a 15 € di credito di benvenuto alla registrazione

Tipo di build
App Python (pip, Poetry o Pipenv)
Avvio
streamlit run dal tuo Procfile
Python
da 3.10 a 3.15, predefinita 3.13
Regione
EU Central (Francoforte)

Deploy di Streamlit passo dopo passo

  1. Aggiungi Streamlit e fissa la versione di Python Elenca streamlit e le tue librerie per i dati in requirements.txt. Fissa in .python-version una versione di Python supportata dalle tue librerie, perché un intervallo seleziona la release più recente. requirements.txt
    streamlit
    pandas
  2. Avvia Streamlit da un Procfile Senza questa riga Nodion eseguirebbe python app.py, che lancia lo script ma non avvia alcun server. I flag mettono Streamlit in ascolto su tutte le interfacce e sulla porta PORT impostata da Nodion, e saltano la richiesta interattiva del primo avvio. Procfile
    web: streamlit run app.py --server.port $PORT --server.address 0.0.0.0 --server.headless true
  3. Conserva i dati riservati nelle variabili d'ambiente Non fare il commit di .streamlit/secrets.toml. Imposta le chiavi API come variabili segrete nella scheda Environment e leggile con os.environ; esistono a runtime, cioè proprio quando Streamlit esegue il tuo script.
  4. Crea l'app e fai push Crea un'applicazione dal tuo repository GitHub, GitLab, Bitbucket o Gitea nella regione EU Central. Le app che caricano DataFrame hanno bisogno di memoria, quindi 1 GB è un buon punto di partenza. Streamlit risponde a / con 200, quindi l'health check predefinito funziona così com'è.

Da sapere

  • Una sola istanza più grandeStreamlit tiene lo stato di ogni sessione nella memoria del processo che la serve. Con più istanze, un browser che si riconnette può finire su un'altra istanza e ricominciare da capo, quindi una sola istanza più grande è di solito la scelta più semplice.
  • File e cachest.cache_data e i file scritti a runtime restano sull'istanza e spariscono dopo il deploy successivo o dopo la sostituzione giornaliera con un'istanza nuova. Tieni i dati che ti servono in un database, in un bucket o in un volume.

Cosa gestisce Nodion per te

  • Deploy senza downtime Fai push sul tuo branch e Nodion crea una nuova release. Il traffico passa alle nuove istanze solo quando superano l'health check; una release fallita lascia attiva quella in esecuzione. Le app con un volume locale invece si riavviano, perché il disco appartiene a una sola istanza.
  • Database accanto all'app PostgreSQL, pgvector, MySQL, Valkey e ClickHouse gestiti, nella stessa regione. I database collegati arrivano come DATABASE_URL, REDIS_URL o CLICKHOUSE_URL.
  • Anteprime per ogni pull request Attiva le anteprime: ogni pull request del tuo repository riceve un'app dedicata, con un proprio URL e database nuovi e vuoti, creata automaticamente o manualmente. Le pull request dai fork e quelle dei bot vengono ignorate.
  • Worker, cron job e scalabilità Esegui i worker come processi aggiuntivi della stessa app, pianifica i job nella scheda Cron e scala ogni processo fino a 16 istanze.
  • Fase di release Con i buildpack, la riga release: del Procfile viene eseguita a ogni nuova build. Le app con Dockerfile, così come i redeploy e i rollback a un'immagine precedente, usano un comando di release impostato sull'app stessa, che ha anche la precedenza sulla riga del Procfile. Nei siti statici, la fase di release gira in un'immagine che contiene solo i file generati dalla build.
  • Log e metriche Nella dashboard trovi log di build, release e runtime, oltre alle metriche di CPU, memoria, disco e rete per ogni istanza.
  • Domini e HTTPS Un hostname predefinito con HTTPS dal primo deploy; i tuoi domini ricevono i certificati in automatico.

Per approfondire

Streamlit su Nodion: domande e risposte

Nodion riconosce le app Streamlit?

No. Il buildpack Python installa le tue dipendenze e la riga web: nel tuo Procfile avvia streamlit run. Senza quella riga l'app non è mai pronta.

Posso fare il deploy di un'app Gradio allo stesso modo?

Sì, con web: python app.py in un Procfile e demo.launch(server_name="0.0.0.0", server_port=int(os.environ["PORT"])) nel tuo script. Mantieni la riga esplicita: Gradio dipende da FastAPI, e un lock file che lo elenca attiverebbe il comando predefinito di FastAPI.

Quanta memoria serve a un'app Streamlit?

Dipende dai tuoi dati. Il riquadro dei costi parte da 1 GB, adatto a molte dashboard basate su pandas; la dashboard mostra la memoria per istanza e puoi cambiare la dimensione del processo web quando ti serve.

Dove gira la mia app Streamlit?

Nella regione EU Central a Francoforte, in Germania. La build, il registry, l'app e i suoi database, volumi, bucket, log e metriche restano in quella regione. L'API e il control plane di Nodion sono ospitati in Germania. Nodion GmbH ha sede a Stoccarda.

Posso usare Streamlit in modo conforme al GDPR?

Nodion offre le basi per farlo: Nodion GmbH ha sede a Stoccarda, in Germania; nella regione di Francoforte l'app, i suoi database e i volumi girano in Germania; puoi sottoscrivere il DPA (accordo sul trattamento dei dati, art. 28 GDPR) in formato elettronico nella dashboard. La conformità del tuo utilizzo dipende anche da come configuri e usi l'app.

Quanto costa l'hosting di Streamlit su Nodion?

Un'istanza dell'app costa da 1 EUR al mese. La configurazione mostrata nel riquadro costa 4 EUR al mese: App 4 EUR. I prezzi sono IVA esclusa e la fatturazione è al secondo. Puoi scegliere dimensioni più grandi o più istanze quando ti servono.

Posso usare un mio dominio per la mia app Streamlit?

Sì. Ogni app riceve un hostname predefinito con HTTPS. Aggiungi il tuo dominio nella scheda Domains dell'app; il certificato TLS viene emesso e rinnovato automaticamente.

Dai al tuo agente un cloud tutto suo.

Fino a 15 € di credito quando ti registri.

Continua con GitHub

oppure con l'email

Resta aggiornato.

Novità sul prodotto, niente spam. Puoi annullare l'iscrizione quando vuoi.