# Mettere online un sito o un'applicazione

Il Suo VPS Ultra ha il proprio indirizzo IPv4 e il proprio indirizzo IPv6: i Suoi domini puntano direttamente verso di essi, e il Suo server riceve il traffico su tutte le porte che apre. Serve tutti i siti e i domini che desidera.

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

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

| Tipo   | Nome                                    | Valore                                |
| ------ | --------------------------------------- | ------------------------------------- |
| `A`    | `@`, `www` o il sottodominio desiderato | l'**Indirizzo IPv4** della Sua scheda |
| `AAAA` | lo stesso nome                          | l'**Indirizzo IPv6** della Sua scheda |

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.

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 e il Suo certificato

Due scelte comuni con Linux:

* **Caddy**, che ottiene e rinnova da solo i Suoi certificati HTTPS:

  ```
  apt install caddy
  ```

  poi, in `/etc/caddy/Caddyfile`:

  ```
  app.mia-azienda.it {

      reverse_proxy 127.0.0.1:3000

  }
  ```

  e `systemctl reload caddy`;

* **Nginx** o **Apache**, con **Certbot** per il certificato Let's Encrypt:

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

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

  Certbot installa il certificato, aggiunge l'ascolto sulla porta 443 e programma il suo rinnovo automatico.

Con Windows Server, **IIS** serve i Suoi siti, e un client ACME come win-acme vi installa e rinnova i Suoi certificati Let's Encrypt.

## 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
```

Anche Docker e Docker Compose si installano come su qualsiasi server Linux.

## 4. La Sua base di dati

PostgreSQL, MySQL, MariaDB, Redis o MongoDB si installano con il gestore di pacchetti, oppure dal repository ufficiale dell'editore. La memoria garantita del Suo VPS Ultra si presta bene a una base di dati esigente: regoli la sua memoria di lavoro (`shared_buffers` per PostgreSQL, `innodb_buffer_pool_size` per MySQL) in funzione della memoria della Sua taglia.

Mantenga la Sua base di dati in ascolto su `localhost`, e la amministri dal Suo computer tramite un tunnel SSH:

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

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

## 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`), il Suo firewall le lascia passare (`ufw status`), e il certificato copre proprio questo nome (`certbot certificates`).

### Posso ospitare più siti sul mio VPS Ultra?

Sì, quanti ne desidera: punti ogni dominio verso i Suoi indirizzi e aggiunga il suo blocco al Suo server web.
