Tunnel di sviluppo
Quando sviluppi un'applicazione in locale, Riseact la carica dentro un iframe nel proprio pannello. I server di Riseact però non possono raggiungere il tuo computer: localhost esiste solo per te.
Il tunnel risolve questo. riseact app dev apre un collegamento verso l'infrastruttura Riseact e ti assegna un URL pubblico HTTPS che inoltra le richieste al tuo server locale.
Non serve nessun account esterno né alcun token da configurare: fino alla versione precedente della CLI era necessario un account ngrok, ora non più.
L'URL è stabile
Il tuo indirizzo di sviluppo ha questa forma:
https://d3f2c1a9b8e7d6c5b4a3f2e1d0.tun.riseact.org
Il sottodominio è derivato dalle credenziali della tua applicazione, quindi per la stessa applicazione è sempre lo stesso. Due conseguenze pratiche:
- non devi aggiornare l'URL nell'applicazione a ogni riavvio, come succedeva con gli URL casuali di ngrok
- i
redirect_uridi OAuth restano validi nel tempo
La CLI aggiorna automaticamente l'URL registrato su Riseact quando il tunnel è pronto.
Applicazioni diverse hanno sottodomini diversi, e nessun altro può occupare il sottodominio della tua applicazione: Riseact autorizza ogni tunnel verificando le credenziali dell'applicazione che lo richiede.
Il primo avvio è più lento
La prima volta che apri il tunnel per una nuova applicazione, il certificato HTTPS per quel sottodominio non esiste ancora e viene emesso al momento. L'operazione richiede qualche secondo e la CLI te lo dice:
Preparing the HTTPS certificate, this happens once per app...
La CLI attende che il certificato sia pronto prima di stampare l'URL, così quando lo apri nel browser funziona subito. Dal secondo avvio in poi il passaggio è istantaneo.
Cosa passa nel tunnel
Tutto il traffico HTTP verso il tuo server locale, incluse le connessioni WebSocket. L'hot reload dell'SDK funziona quindi anche attraverso il tunnel, senza configurazione aggiuntiva.
Fermare il tunnel
Ctrl+C chiude il tunnel e il server di sviluppo insieme. Il sottodominio si libera immediatamente, quindi un riavvio subito dopo funziona senza attese.
A tunnel spento, chi apre l'URL vede una pagina che invita a lanciare riseact app dev.
Se qualcosa non funziona
«start error: invalid application credentials»
Il client_id o il client_secret nel file .env del progetto non corrispondono a quelli registrati su Riseact. Succede se l'applicazione è stata ricreata o se le credenziali sono state rigenerate. Rilancia riseact app init nella cartella del progetto per ricollegarla.
«start error: subdomain does not belong to this application»
Il sottodominio richiesto non corrisponde alle credenziali presentate. Di solito significa che il .env è stato modificato a mano mescolando credenziali di applicazioni diverse.
«router config conflict»
Quel sottodominio è già in uso da un'altra connessione: c'è un altro riseact app dev attivo per la stessa applicazione, magari in un altro terminale o rimasto aperto. Chiudilo e riprova.
L'iframe mostra «The dev server is not answering yet»
Il tunnel funziona ma il tuo server locale non ha ancora finito di avviarsi. Aspetta qualche secondo e ricarica. Se persiste, controlla nel terminale che il server sia partito davvero sulla porta attesa.
Errore di certificato nel browser
Capita se apri l'URL prima che il tunnel sia attivo, perché il certificato viene emesso solo a tunnel aperto. Avvia riseact app dev e riprova; se hai insistito molte volte prima di avviarlo, attendi qualche minuto prima di ritentare.
Per ogni altro problema, la CLI tiene un registro dettagliato del tunnel in ~/.config/riseact-tunnel.log: allegalo quando ci scrivi.