Pular para o conteúdo principal

Publicar um site ou uma aplicação

O seu VPS Pro serve os seus sites e as suas aplicações no respetivo nome de domínio, em HTTP e em HTTPS. Os visitantes chegam às portas 80 e 443 do seu servidor, pelo nome do seu servidor; a cifragem HTTPS vai de ponta a ponta, até ao seu servidor, onde se encontra o seu certificado.

1. Apontar o seu domínio para o seu servidor​

No local onde se gere a zona DNS do seu domínio, crie dois registos para o nome do seu servidor, com os endereços apresentados no respetivo cartão, secção VPS da sua área de cliente:

TipoNomeValor
Aapp (ou @ para o próprio domínio)o Endereço IPv4 do seu cartão
AAAAapp (ou @)o Endereço IPv6 do seu cartão

Um nome em vps.simafri.cloud já funciona: não há nada a criar.

Quando a zona DNS do seu domínio é gerida pela Simafri, a nossa equipa cria estes registos por si: escreva-nos. Antes de mudar um site que já está online, peça-nos também para baixar o tempo de vida (TTL) do registo: a mudança propaga-se então em poucos minutos.

Para verificar a partir do seu computador:

dig +short A app.minha-empresa.pt
dig +short AAAA app.minha-empresa.pt

2. Instalar o seu servidor web​

O seu servidor web escuta na porta 80 para HTTP e na porta 443 para HTTPS. Duas escolhas habituais:

  • Caddy, que obtém e renova sozinho o seu certificado HTTPS;
  • Nginx ou Apache, com Certbot para o certificado.

Com Caddy​

apt install caddy

Depois, em /etc/caddy/Caddyfile, para um site estático:

app.minha-empresa.pt {
root * /var/www/app
file_server
}

ou para uma aplicação que escuta na porta 3000:

app.minha-empresa.pt {
reverse_proxy 127.0.0.1:3000
}

systemctl reload caddy, e o seu site responde em HTTPS: o Caddy obteve o certificado e renová-lo-á automaticamente.

Com Nginx e Certbot​

apt install nginx certbot python3-certbot-nginx

Crie o site em /etc/nginx/sites-available/app:

server {
listen 80;
listen [::]:80;
server_name app.minha-empresa.pt;

location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Ative-o e, depois, peça o certificado:

ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d app.minha-empresa.pt

O Certbot instala o certificado Let's Encrypt, acrescenta a escuta na porta 443 e programa a respetiva renovação automática. certbot renew --dry-run verifica se a renovação está pronta.

3. Manter a sua aplicação em funcionamento​

Uma aplicação Node.js, Python, Go ou Java que funciona em contínuo confia-se ao systemd: arranca com o servidor e volta a arrancar sozinha se parar. Exemplo, em /etc/systemd/system/app.service:

[Unit]
Description=A minha aplicação
After=network.target

[Service]
WorkingDirectory=/srv/app
ExecStart=/usr/bin/node server.js
Restart=always
Environment=NODE_ENV=production
User=www-data

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now app
journalctl -u app -f # acompanhar os registos

O PM2 para Node.js, o Gunicorn ou o Uvicorn para Python, ou o Docker Compose cumprem o mesmo papel, se os preferir.

4. A sua base de dados​

PostgreSQL, MySQL, MariaDB, Redis ou MongoDB instalam-se no seu servidor com o gestor de pacotes, ou a partir do repositório oficial do editor para a versão mais recente:

apt install postgresql

Mantenha a sua base de dados à escuta em localhost: a sua aplicação chega a ela no próprio servidor. Para a administrar a partir do seu computador, passe por um túnel SSH:

ssh -p 22101 -L 5432:localhost:5432 root@app.minha-empresa.pt

A sua ferramenta (DBeaver, pgAdmin, TablePlus) liga-se então a localhost:5432.

Servir vários domínios​

O seu servidor responde pelo seu nome, definido na encomenda. Para servir outro domínio ou outro subdomínio no mesmo VPS Pro, escreva ao suporte indicando os nomes a acrescentar: a nossa equipa liga-os ao seu servidor e, depois, da sua parte, cria os respetivos registos DNS como na etapa 1 e acrescenta o bloco correspondente ao seu servidor web.

Perguntas frequentes​

O meu site apresenta um erro de certificado.​

Verifique por esta ordem: os seus registos A e AAAA designam os endereços do seu cartão (dig), o seu servidor web escuta nas portas 80 e 443 (ss -tlnp), e o certificado cobre de facto esse nome (certbot certificates). O certificado obtém-se depois de o nome designar o seu servidor: volte a executar o Certbot, ou recarregue o Caddy, depois da propagação DNS.

O meu site não responde de todo.​

No servidor, curl -I http://localhost mostra se o seu servidor web responde. systemctl status nginx (ou caddy, ou o seu serviço) e os respetivos registos dizem porque parou. Descreva o que observa ao suporte: a Assistência integral faz o diagnóstico consigo.

Posso instalar WordPress, Laravel ou Symfony?​

Sim: instale o PHP-FPM, a sua base de dados e o seu servidor web e, depois, a sua aplicação, como em qualquer servidor Linux. A Assistência integral indica-lhe as definições adequadas ao seu projeto, passo a passo.