# Mettere online un sito o un'applicazione

Il Suo VPS Pro serve i Suoi siti e le Sue applicazioni sul loro nome di dominio, in HTTP e in HTTPS. I visitatori arrivano sulle porte **80** e **443** del Suo server, sotto il nome del Suo server; la cifratura HTTPS va da un capo all'altro, fino al Suo server, dove risiede il Suo certificato.

## 1. Puntare il Suo dominio verso il Suo server

Là dove si gestisce la zona DNS del Suo dominio, crei due record per il nome del Suo server, con gli indirizzi mostrati nella sua scheda, sezione **VPS** della Sua area clienti:

| Tipo   | Nome                                | Valore                                |
| ------ | ----------------------------------- | ------------------------------------- |
| `A`    | `app` (o `@` per il dominio stesso) | l'**Indirizzo IPv4** della Sua scheda |
| `AAAA` | `app` (o `@`)                       | l'**Indirizzo IPv6** della Sua scheda |

Un nome sotto `vps.simafri.cloud` funziona già: non c'è nulla da creare.

Quando la zona DNS del Suo dominio è gestita da Simafri, il nostro team crea questi record per Lei: ci scriva. Prima di spostare un sito già online, ci chieda anche di abbassare la durata di validità (TTL) del record: il passaggio si propaga allora in pochi minuti.

Per verificare dal Suo computer:

```
dig +short A app.mia-azienda.it

dig +short AAAA app.mia-azienda.it
```

## 2. Installare il Suo server web

Il Suo server web è in ascolto sulla porta **80** per HTTP e sulla porta **443** per HTTPS. Due scelte comuni:

* **Caddy**, che ottiene e rinnova da solo il Suo certificato HTTPS;
* **Nginx** o **Apache**, con **Certbot** per il certificato.

### Con Caddy

```
apt install caddy
```

Poi, in `/etc/caddy/Caddyfile`, per un sito statico:

```
app.mia-azienda.it {

    root * /var/www/app

    file_server

}
```

oppure per un'applicazione in ascolto sulla porta 3000:

```
app.mia-azienda.it {

    reverse_proxy 127.0.0.1:3000

}
```

`systemctl reload caddy`, e il Suo sito risponde in HTTPS: Caddy ha ottenuto il certificato e lo rinnoverà da solo.

### Con Nginx e Certbot

```
apt install nginx certbot python3-certbot-nginx
```

Crei il sito in `/etc/nginx/sites-available/app`:

```
server {

    listen 80;

    listen [::]:80;

    server_name app.mia-azienda.it;



    location / {

        proxy_pass http://127.0.0.1:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}
```

Lo attivi, poi richieda il certificato:

```
ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/

nginx -t && systemctl reload nginx

certbot --nginx -d app.mia-azienda.it
```

Certbot installa il certificato Let's Encrypt, aggiunge l'ascolto sulla porta 443 e programma il suo rinnovo automatico. `certbot renew --dry-run` verifica che il rinnovo sia pronto.

## 3. Mantenere in funzione la Sua applicazione

Un'applicazione Node.js, Python, Go o Java che gira in continuo si affida a **systemd**: si avvia con il server e si riavvia da sola se si ferma. Esempio, in `/etc/systemd/system/app.service`:

```
[Unit]

Description=La mia applicazione

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    # seguirne i log
```

PM2 per Node.js, Gunicorn o Uvicorn per Python, o Docker Compose svolgono lo stesso ruolo, se li preferisce.

## 4. La Sua base di dati

PostgreSQL, MySQL, MariaDB, Redis o MongoDB si installano sul Suo server con il gestore di pacchetti, oppure dal repository ufficiale dell'editore per l'ultima versione:

```
apt install postgresql
```

Mantenga la Sua base di dati in ascolto su `localhost`: la Sua applicazione la raggiunge sul server stesso. Per amministrarla dal Suo computer, passi da un tunnel SSH:

```
ssh -p 22101 -L 5432:localhost:5432 root@app.mia-azienda.it
```

Il Suo strumento (DBeaver, pgAdmin, TablePlus) si collega allora a `localhost:5432`.

## Servire più domini

Il Suo server risponde sotto il suo nome, fissato all'ordine. Per servire un altro dominio o un altro sottodominio sullo stesso VPS Pro, scriva al supporto indicando i nomi da aggiungere: il nostro team li collega al Suo server, poi Lei crea i loro record DNS come nella fase 1 e aggiunge il loro blocco al Suo server web.

## Domande frequenti

### Il mio sito mostra un errore di certificato.

Verifichi nell'ordine: i Suoi record `A` e `AAAA` designano gli indirizzi della Sua scheda (`dig`), il Suo server web è in ascolto sulle porte 80 e 443 (`ss -tlnp`), e il certificato copre proprio questo nome (`certbot certificates`). Il certificato si ottiene una volta che il nome designa il Suo server: rilanci Certbot, o ricarichi Caddy, dopo la propagazione DNS.

### Il mio sito non risponde affatto.

Sul server, `curl -I http://localhost` mostra se il Suo server web risponde. `systemctl status nginx` (o `caddy`, o il Suo servizio) e i suoi log dicono perché si è fermato. Descriva al supporto ciò che osserva: l'Assistenza integrale fa la diagnosi con Lei.

### Posso installare WordPress, Laravel o Symfony?

Sì: installi PHP-FPM, la Sua base di dati e il Suo server web, poi la Sua applicazione, come su qualsiasi server Linux. L'Assistenza integrale Le indica le impostazioni adatte al Suo progetto, passo dopo passo.
