Coloque sua instância em um servidor sempre ligado, um computador que roda em um data center 24 horas por dia, para que colegas remotos possam acessá-la de qualquer lugar, com o seu próprio endereço web e HTTPS gratuito (o cadeado que criptografa a conexão). Este guia usa o nível Always-Free da Oracle Cloud, que pode rodar o Map Blueprint sem custo mensal, mas os mesmos passos funcionam em qualquer servidor em nuvem Ubuntu.
https://maps.yourdomain.com, protegido pela senha da sua equipe e se reiniciando automaticamente após reinicializações. Reserve cerca de 20–30 minutos. Onde quer que você veja YOUR_… abaixo, substitua pelo seu próprio valor.
Prefere só rodar no seu próprio notebook? Veja o guia de hospedagem local.
yourdomain.com); DNS é a lista de endereços da internet que aponta um domínio para um servidor; HTTPS é a versão criptografada, com cadeado, de um endereço web; um proxy reverso e um túnel são dois jeitos de colocar o HTTPS na frente do app. Não se preocupe, cada passo abaixo diz exatamente o que fazer.
VM.Standard.E2.1.Micro ou um formato Arm Ampere (que tem mais memória). Mantenha a imagem Ubuntu padrão, Ubuntu é a versão de Linux que este guia usa.YOUR_SERVER_IP.Um firewall bloqueia conexões de rede inesperadas. A Oracle bloqueia o tráfego web de entrada por padrão, então você precisa liberá-lo nas duas portas web padrão, 80 (web simples) e 443 (web segura):
0.0.0.0/0 (que significa "de qualquer lugar") para as portas 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 você usar a opção Cloudflare Tunnel no Passo 5, pode pular totalmente a abertura das portas 80/443.
Agora você vai entrar no servidor e digitar comandos nele a partir do seu próprio computador, usando SSH. Abra um terminal (no Windows, use o PowerShell, ele já inclui o ssh) e rode isto, apontando o -i para o arquivo de chave privada que você baixou:
ssh -i /path/to/YOUR_PRIVATE_KEY ubuntu@YOUR_SERVER_IP
No Mac ou Linux, se você receber um erro de "permissions are too open" sobre a chave, rode chmod 600 /path/to/YOUR_PRIVATE_KEY primeiro, isso restringe o arquivo para que só você possa lê-lo, o que o SSH exige.
Assim que estiver conectado (o seu prompt de comando agora mostra o servidor), instale as atualizações de sistema mais recentes:
sudo apt update && sudo apt upgrade -y
sudo significa "rode isto como administrador"; apt é o instalador de apps embutido do Ubuntu.
Não há nada para instalar no servidor, sem Docker, sem Node, sem .env. É um único programa autônomo. A partir do seu próprio computador (uma nova janela de terminal, não a sessão SSH), rode isto na pasta onde você descompactou o download para copiar o programa Linux para o servidor. scp é "cópia segura", ele envia um arquivo pela mesma conexão SSH segura:
scp -i /path/to/YOUR_PRIVATE_KEY ./map-blueprint-linux ubuntu@YOUR_SERVER_IP:~/
De volta à sessão SSH, torne o programa executável e inicie-o. HOST=0.0.0.0 diz a ele para aceitar conexões de fora, para que o passo de HTTPS a seguir consiga acessá-lo:
chmod +x ~/map-blueprint-linux
HOST=0.0.0.0 ~/map-blueprint-linux
Ele agora está escutando na porta 8080. Você vai definir a senha da sua equipe pelo navegador assim que o HTTPS estiver no lugar (próximo passo). Por enquanto, pressione Ctrl-C para pará-lo, o Passo 6 o transforma em um serviço que roda 24 horas por dia.
config.json e seus mapas em data/ são criados bem ao lado do programa na sua pasta pessoal (~/). Todas as configurações ficam na página de Configurações dentro do app, não há arquivos para editar.
O app fala HTTP simples e foi feito para ficar atrás de algo que adiciona HTTPS (o cadeado criptografado). Escolha uma destas duas abordagens, a Opção A é a mais fácil de proteger.
Um túnel conecta o seu servidor à Cloudflare, de modo que os visitantes acessam o app através da Cloudflare sem nenhuma porta aberta no seu servidor.
cloudflared (a ferramenta de túnel da Cloudflare) e faça login:
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 na configuração dele, depois instale-o como um serviço em segundo plano para que ele sempre rode:
sudo cloudflared service install
A Cloudflare cria e renova o certificado HTTPS para você automaticamente, e nada no seu servidor fica exposto diretamente, você pode deixar as portas 80/443 fechadas.
Caddy é um pequeno servidor web que fica na frente do app, adiciona HTTPS e encaminha os visitantes para ele, é isso que um proxy reverso faz.
maps.YOURDOMAIN.com em YOUR_SERVER_IP. (Um "registro A" é a entrada DNS que mapeia um nome para o IP de um servidor, defina-o no seu registrador de domínio ou provedor de DNS.)/etc/caddy/Caddyfile (ele diz ao Caddy: sirva este endereço e encaminhe os visitantes para o app na porta 8080):
maps.YOURDOMAIN.com {
reverse_proxy localhost:8080
}
sudo systemctl reload caddy
O Caddy obtém e renova um certificado Let's Encrypt gratuito para você automaticamente. Esta opção precisa das portas 80 e 443 abertas (Passo 2).
X-Forwarded-Proto que ambas as opções acima definem), então os logins ficam protegidos sem configuração extra.
Acesse https://maps.YOURDOMAIN.com, você deve ver a página de login. Entre e compartilhe esse link com sua equipe.
Quer uma segunda trava, mais forte? O "Access" do Cloudflare Zero Trust coloca uma tela de login na frente do seu app, de modo que estranhos nunca chegam ao Map Blueprint, a Cloudflare verifica quem você é primeiro. Funciona melhor com a Opção A (o Cloudflare Tunnel) acima, e permite conceder acesso pessoa a pessoa por e-mail em vez de compartilhar uma única senha. É gratuito para equipes pequenas.
maps.YOURDOMAIN.com).@yourstudio.com), depois salve.É o mesmo tipo de portão de identidade que os criadores do Map Blueprint usam no próprio mapa interno. Mesmo que alguém descubra a sua URL, não consegue carregar o app sem passar pela verificação de identidade, ideal para um mapa privado de estúdio.
Por fim, transforme o app em um serviço para que ele inicie no boot e se reinicie sozinho caso pare. (Um "serviço" é um programa que o Linux cuida em segundo plano.) Salve o texto abaixo como o arquivo /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
Depois ligue-o, recarregue a lista de serviços, habilite e inicie, e confira que está rodando:
sudo systemctl daemon-reload
sudo systemctl enable --now map-blueprint.service
sudo systemctl status map-blueprint.service
WorkingDirectory=/home/ubuntu mantém config.json e seus mapas em data/ na pasta pessoal, ao lado do programa. Agora abra https://maps.YOURDOMAIN.com, conclua a tela de Configuração da primeira execução e defina a senha da sua equipe imediatamente. (Prefere defini-la com antecedência? Adicione Environment=APP_PASSWORD=YOUR_PASSWORD ao arquivo do serviço.)
http://YOUR_SERVER_IP:8080 simples no uso real.sudo apt update && sudo apt upgrade -y de tempos em tempos.data/ (e do config.json) regularmente, é onde ficam seus mapas e configurações.Quando você receber um programa atualizado, pare o serviço, substitua o arquivo do programa e inicie-o de novo, seu config.json e seus mapas em data/ ficam intactos. Envie o novo map-blueprint-linux do seu computador (com scp, como no Passo 4) e depois, no servidor, rode:
sudo systemctl stop map-blueprint.service
chmod +x ~/map-blueprint-linux
sudo systemctl start map-blueprint.service