# Collega la tua VPS Ubuntu o il tuo server dedicato

> Collega a Vimonto Deploy qualsiasi VPS o server dedicato con Ubuntu 24.04, di qualunque hosting, con un solo comando e preparalo per Laravel e PHP.

Un custom VPS è un server che hai già, presso qualsiasi provider di hosting o nel tuo data center, e che colleghi a Vimonto Deploy invece di farlo creare a Vimonto Deploy. Inserisci il suo indirizzo IP, esegui un comando come root e Vimonto Deploy ne esegue il [provisioning](https://ops.vimonto.com/docs/it/servers/provisioning) esattamente come per un server creato da lui: stesso software, stessa sicurezza, stesse pagine.

Usa un custom VPS quando il tuo provider non è tra i [cloud provider collegati](https://ops.vimonto.com/docs/it/connections/server-providers), quando noleggi hardware dedicato o quando vuoi riutilizzare un server che già paghi.

![La procedura guidata per un nuovo server con Server personalizzato selezionato come provider](https://ops.vimonto.com/docs-media/it/create-server-custom.webp?v=161e760d "Scegli Server personalizzato nel primo passaggio della procedura guidata")

## Requisiti

Il tuo server deve avere:

- **Un'installazione pulita di Ubuntu 24.04 o 26.04 (x64).** Lo script di connessione e il provisioning rifiutano qualsiasi altro sistema. Usa un server nuovo: il provisioning configura Nginx, PHP, il firewall e SSH, e sostituisce le impostazioni già presenti.
- **Un indirizzo IP pubblico, raggiungibile da internet.** Vimonto Deploy si collega tramite SSH.
- **Accesso root via SSH e `curl`.** Esegui il comando di connessione come root (o con `sudo`).
- **Almeno 1 CPU, 1 GB di memoria e 10 GB di disco.**

Il server deve anche poter raggiungere Vimonto Deploy via HTTPS: lo script di connessione scarica da lì e richiama Vimonto Deploy, e l'agent di monitoraggio invia le sue metriche ogni minuto.

## Collega un server passo dopo passo

1. Vai su **Server** → **Nuovo server**.
2. In **Provider**, scegli **Server personalizzato**.
3. In **Server**, scegli il [tipo di server](https://ops.vimonto.com/docs/it/servers/server-types). Poi, in **Come raggiungiamo il tuo server?**, inserisci l'**Indirizzo IP pubblico** e la **Porta SSH** (22, a meno che il tuo server non usi un'altra porta).
4. In **Software**, scegli nome, versione PHP, database e le tue chiavi SSH, come per [qualsiasi nuovo server](https://ops.vimonto.com/docs/it/servers/create-a-server#3-software-nome-php-database-e-chiavi).
5. Nella verifica, scegli **Crea server**.

Il server ha ora lo stato **In attesa di connessione** e la sua pagina mostra **Connetti il tuo server**:

1. **Accedi al tuo server come root**, ad esempio `ssh root@203.0.113.10`.
2. **Esegui questo comando.** Copialo con **Copia**; ha questo aspetto:

   ```bash
   curl -fsSL 'https://…/provisioning/123/…' -o vimonto-connect.sh && sudo bash vimonto-connect.sh
   ```

3. **Al resto pensiamo noi.** La pagina mostra "In attesa che il tuo server si faccia sentire…" e passa all'avanzamento del provisioning non appena lo script ha richiamato Vimonto Deploy.

## Cosa fa il comando di connessione?

Il comando scarica un breve script bash creato per questo server e lo esegue come root. Lo script:

1. verifica di essere eseguito come root, altrimenti si ferma;
2. verifica che il sistema sia Ubuntu 24.04 o 26.04, altrimenti si ferma indicando la versione trovata;
3. aggiunge la chiave pubblica di Vimonto Deploy per questo server a `/root/.ssh/authorized_keys` (ogni server ha la sua coppia di chiavi);
4. installa `curl` se manca;
5. richiama Vimonto Deploy per comunicare che il server è pronto e stampa "Connected to Vimonto Deploy. The server is being provisioned now; follow the progress in your browser."

Questo è tutto ciò che modifica. Tutto il resto avviene via SSH da Vimonto Deploy, come task di provisioning che puoi seguire nella pagina del server.

L'indirizzo nel comando contiene un token segreto per questo server. Funziona solo mentre il server attende di essere collegato (o dopo un tentativo non riuscito) e smette di funzionare una volta completato il provisioning. Eseguire il comando due volte non causa problemi: la seconda chiamata non avvia un secondo provisioning.

> [!NOTE]
> La prima volta che Vimonto Deploy si collega, memorizza la host key SSH del server. Se in seguito il server presenta una host key diversa, ad esempio perché è stato reinstallato, Vimonto Deploy rifiuta la connessione. Questo ti protegge dal collegarti alla macchina sbagliata.

## Quali chiavi SSH vengono aggiunte?

Il provisioning aggiunge le chiavi SSH dell'organizzazione e le chiavi dell'account scelte in **Le tue chiavi SSH** alla creazione del server, per l'utente del server e per root. Questa scelta viene conservata con il server: non importa quanto tempo passa prima che tu esegua il comando, e **Riprova** installa le stesse chiavi. In seguito puoi aggiungere o rimuovere chiavi nella pagina **Chiavi SSH** del server. Vedi [chiavi SSH](https://ops.vimonto.com/docs/it/connections/ssh-keys).

## Firewall, porte e NAT

Il provisioning attiva il firewall `ufw`: blocca tutto il traffico in entrata tranne:

- la **Porta SSH** che hai inserito;
- la porta su cui ascolta il demone SSH stesso, se è diversa;
- le porte 80 e 443 sui server con Nginx (app server, web server e load balancer).

Consentire entrambe le porte SSH è importante quando il tuo server è **dietro NAT o port forwarding**: inserisci la porta esterna (ad esempio 2222) come **Porta SSH**, mentre `sshd` all'interno ascolta sulla 22. Entrambe sono consentite, così Vimonto Deploy non si chiude mai fuori.

Se il tuo server è dietro NAT, inoltra al server la porta SSH e, per un web server, le porte 80 e 443. Se il tuo provider di hosting ha un proprio firewall davanti al server, apri le stesse porte anche lì. Puoi aggiungere altre regole in seguito nella pagina [Rete](https://ops.vimonto.com/docs/it/servers/network).

## Cosa fare se non succede nulla dopo aver eseguito il comando?

Se la pagina continua ad attendere:

- Controlla l'output dello script sul server. Si ferma con un messaggio chiaro se non viene eseguito come root o se il sistema non è Ubuntu 24.04 o 26.04.
- Verifica che il server possa raggiungere Vimonto Deploy via HTTPS (`curl` deve poter scaricare lo script e inviare la richiamata).

Se il provisioning parte ma si blocca su **Attendi che il server accetti SSH**, Vimonto Deploy non riesce a raggiungere il server all'indirizzo IP e alla porta SSH che hai inserito. Controlla il firewall del tuo provider di hosting, il port forwarding e che la chiave sia in `/root/.ssh/authorized_keys`. Vimonto Deploy continua a provare per 15 minuti.

Se il provisioning non è riuscito, scegli **Riprova** nella pagina del server. Se il server non aveva mai richiamato Vimonto Deploy, torna allo stato **In attesa di connessione** ed esegui di nuovo il comando; altrimenti il provisioning riparte via SSH. Vedi [provisioning](https://ops.vimonto.com/docs/it/servers/provisioning#cosa-succede-se-il-provisioning-non-riesce).

## Domande frequenti

### Posso collegare un server che ospita già dei siti web?

Non è consigliato. Il provisioning è pensato per un'installazione pulita di Ubuntu: sostituisce la configurazione di SSH, firewall, Nginx e PHP e disattiva l'accesso con password. Usa un server nuovo e sposta lì i tuoi siti.

### Un custom VPS funziona in modo diverso da un server cloud?

No. Dopo il provisioning ha le stesse pagine e funzionalità. Le uniche differenze sono che Vimonto Deploy non l'ha creato, quindi non può eliminarlo presso un provider, e che il costo nella verifica è "Come addebitato dal tuo provider".

### Posso usare un server con un indirizzo IP privato?

Vimonto Deploy deve raggiungere il server via SSH e il server deve raggiungere Vimonto Deploy. Inserisci un indirizzo a cui Vimonto Deploy può collegarsi; per un server dietro NAT è l'indirizzo pubblico con una porta SSH inoltrata.

### Quali distribuzioni Linux sono supportate?

Solo Ubuntu, versione 24.04 o 26.04, su x64.
