Metti la tua istanza su un server sempre attivo, un computer che gira in un data center 24 ore su 24, così i compagni da remoto possono raggiungerlo da ovunque, con il tuo indirizzo web e HTTPS gratuito (il lucchetto che cripta la connessione). Questa guida usa il piano Always-Free di Oracle Cloud, che può eseguire Map Blueprint senza costi mensili, ma gli stessi passaggi funzionano su qualsiasi server cloud Ubuntu.
https://maps.yourdomain.com, protetto dalla password del tuo team e che si riavvia automaticamente dopo i riavvii. Metti in conto circa 20–30 minuti. Ovunque vedi YOUR_… qui sotto, sostituiscilo con il tuo valore.
Preferisci eseguirlo semplicemente sul tuo portatile? Vedi la guida all'hosting locale.
yourdomain.com); DNS è la rubrica di internet che punta un dominio a un server; HTTPS è la versione crittografata e con lucchetto di un indirizzo web; un reverse proxy e un tunnel sono due modi per mettere HTTPS davanti all'app. Niente paura, ogni passaggio qui sotto ti dice esattamente cosa fare.
VM.Standard.E2.1.Micro o una shape Arm Ampere (che ha più memoria). Mantieni l'immagine predefinita Ubuntu, Ubuntu è la versione di Linux usata da questa guida.YOUR_SERVER_IP.Un firewall blocca le connessioni di rete inattese. Oracle blocca il traffico web in entrata di default, quindi devi consentirlo sulle due porte web standard, 80 (web normale) e 443 (web sicuro):
0.0.0.0/0 (cioè "da ovunque") alle porte 80 e 443.sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save
Se usi l'opzione Cloudflare Tunnel nel Passo 5, puoi evitare del tutto di aprire le porte 80/443.
Ora accederai al server e digiterai comandi su di esso dal tuo computer, usando SSH. Apri un terminale (su Windows, usa PowerShell, include già ssh) ed esegui questo, puntando -i al file della chiave privata che hai scaricato:
ssh -i /path/to/YOUR_PRIVATE_KEY ubuntu@YOUR_SERVER_IP
Su Mac o Linux, se ricevi un errore "permissions are too open" relativo alla chiave, esegui prima chmod 600 /path/to/YOUR_PRIVATE_KEY, questo restringe il file così che solo tu possa leggerlo, come richiede SSH.
Una volta connesso (il prompt dei comandi ora mostra il server), installa gli ultimi aggiornamenti di sistema:
sudo apt update && sudo apt upgrade -y
sudo significa "esegui questo come amministratore"; apt è l'installatore di app integrato di Ubuntu.
Non c'è nulla da installare sul server, niente Docker, niente Node, nessun .env. È un unico programma autonomo. Dal tuo computer (una nuova finestra di terminale, non la sessione SSH), esegui questo dalla cartella in cui hai decompresso il download per copiare il programma Linux sul server. scp sta per "secure copy", invia un file sulla stessa connessione SSH sicura:
scp -i /path/to/YOUR_PRIVATE_KEY ./map-blueprint-linux ubuntu@YOUR_SERVER_IP:~/
Tornato nella sessione SSH, rendi il programma eseguibile e avvialo. HOST=0.0.0.0 gli dice di accettare connessioni dall'esterno, così il passo HTTPS successivo può raggiungerlo:
chmod +x ~/map-blueprint-linux
HOST=0.0.0.0 ~/map-blueprint-linux
Ora è in ascolto sulla porta 8080. Imposterai la password del tuo team dal browser una volta predisposto l'HTTPS (passo successivo). Per ora, premi Ctrl-C per arrestarlo, il Passo 6 lo trasforma in un servizio che gira 24 ore su 24.
config.json e le tue mappe in data/ vengono creati proprio accanto al programma nella tua home folder (~/). Tutte le impostazioni si trovano nella pagina Impostazioni dell'app, non c'è alcun file da modificare.
L'app parla HTTP normale ed è progettata per stare dietro qualcosa che aggiunge l'HTTPS (il lucchetto crittografato). Scegli uno di questi due approcci, l'Opzione A è la più facile da mettere in sicurezza.
Un tunnel connette il tuo server verso Cloudflare, così i visitatori raggiungono l'app attraverso Cloudflare senza che alcuna porta sia aperta sul tuo server.
cloudflared (lo strumento di tunnel di Cloudflare) e accedi:
curl -fsSL https://pkg.cloudflare.com/install.sh | sudo bash
sudo apt install -y cloudflared
cloudflared tunnel login
cloudflared tunnel create mapblueprint
cloudflared tunnel route dns mapblueprint maps.YOURDOMAIN.com
http://localhost:8080 nella sua configurazione, poi installalo come servizio in background così che giri sempre:
sudo cloudflared service install
Cloudflare crea e rinnova automaticamente il certificato HTTPS per te, e nulla sul tuo server è esposto direttamente, puoi lasciare chiuse le porte 80/443.
Caddy è un piccolo web server che si mette davanti all'app, aggiunge l'HTTPS e inoltra i visitatori a essa, è ciò che fa un reverse proxy.
maps.YOURDOMAIN.com a YOUR_SERVER_IP. (Un "record A" è la voce DNS che associa un nome all'IP di un server, impostalo presso il tuo registrar di domini o provider DNS.)/etc/caddy/Caddyfile (dice a Caddy: servi questo indirizzo e inoltra i visitatori all'app sulla porta 8080):
maps.YOURDOMAIN.com {
reverse_proxy localhost:8080
}
sudo systemctl reload caddy
Caddy ottiene e rinnova automaticamente un certificato Let's Encrypt gratuito per te. Questa opzione richiede le porte 80 e 443 aperte (Passo 2).
X-Forwarded-Proto che entrambe le opzioni qui sopra impostano), così i login sono protetti senza alcuna configurazione aggiuntiva.Visita https://maps.YOURDOMAIN.com, dovresti vedere la pagina di login. Accedi e condividi quel link con il tuo team.
Vuoi un secondo lucchetto, più robusto? L'"Access" di Cloudflare Zero Trust mette una schermata di login davanti alla tua app, così gli estranei non raggiungono nemmeno Map Blueprint, Cloudflare verifica prima chi sei. Funziona al meglio con l'Opzione A (il Cloudflare Tunnel) qui sopra, e ti permette di concedere l'accesso persona per persona tramite email invece di condividere un'unica password. È gratuito per piccoli team.
maps.YOURDOMAIN.com).@yourstudio.com), poi salva.Questo è lo stesso tipo di controllo d'identità che i creatori di Map Blueprint usano sulla loro mappa interna. Anche se qualcuno scopre il tuo URL, non può caricare l'app senza superare il controllo d'identità, ideale per una mappa privata di studio.
Infine, trasforma l'app in un servizio così che si avvii all'accensione e si riavvii da solo se mai si arrestasse. (Un "servizio" è un programma di cui Linux si prende cura in background.) Salva il testo qui sotto come il file /etc/systemd/system/map-blueprint.service:
[Unit]
Description=Map Blueprint
After=network.target
[Service]
WorkingDirectory=/home/ubuntu
Environment=HOST=0.0.0.0
ExecStart=/home/ubuntu/map-blueprint-linux
Restart=always
User=ubuntu
[Install]
WantedBy=multi-user.target
Poi attivalo, ricarica la lista dei servizi, abilitalo e avvialo, e verifica che sia in esecuzione:
sudo systemctl daemon-reload
sudo systemctl enable --now map-blueprint.service
sudo systemctl status map-blueprint.service
WorkingDirectory=/home/ubuntu mantiene config.json e le tue mappe in data/ nella home folder, accanto al programma. Ora apri https://maps.YOURDOMAIN.com, completa la schermata di Setup del primo avvio e imposta subito la password del tuo team. (Preferisci impostarla in anticipo? Aggiungi Environment=APP_PASSWORD=YOUR_PASSWORD al file del servizio.)
http://YOUR_SERVER_IP:8080 nell'uso reale.sudo apt update && sudo apt upgrade -y di tanto in tanto.data/ (e di config.json) regolarmente, è lì che vivono le tue mappe e le tue impostazioni.Quando ottieni un programma aggiornato, arresta il servizio, sostituisci il file del programma e riavvialo, il tuo config.json e le mappe in data/ restano intatti. Carica il nuovo map-blueprint-linux dal tuo computer (con scp, come nel Passo 4), poi sul server esegui:
sudo systemctl stop map-blueprint.service
chmod +x ~/map-blueprint-linux
sudo systemctl start map-blueprint.service