Come Hostare un Bot Discord

Introduzione Avere il proprio Bot Discord attivo 24 ore al giorno, 7 giorni la settimna e 365 giorni l’anno, è una bellissima cosa! In questa guida vedremo come hostare un […]

Avatar di GB Factory
GB Factory 10 Agosto 2020

Introduzione

Avere il proprio Bot Discord attivo 24 ore al giorno, 7 giorni la settimna e 365 giorni l'anno, è una bellissima cosa! In questa guida vedremo come hostare un Bot Discord che potrebbe essere privato e accessibile solo dal server della tua community o un bot che desideri rendere pubblico e far utilizzare da centinaia di server in futuro.

Più nello specifico andremo a vedere che software installare sul server per hostare un Bot Discord scritto in JavaScript (con Node.js) e mantenerlo sempre online, il tutto in pochissimo tempo!

Hostare il proprio bot è veramente molto semplice, ma ci sono alcune cose da sapere prima di procedere con i passaggi veri e propri.

Scegliere un'hosting affidabile

La chiave per avere un bot sempre online è scegliere un host affidabile e conosciuto. In passato, se avete cercato informazioni su hosting VPS, potreste aver incontrato nomi come Hostinger, OVH o DigitalOcean.

Personalmente utilizzo OVH da molti anni senza troppi problemi, ma su internet ci sono moltissime comparazioni e consigli su quale hosting scegliere.

La posizione del server

Durante l'acquisto del server, è possibile scegliere la posizione in cui esso sarà fisicamente locato. Solitamente è raccomandabile scegliere la posizione più vicina a dove la maggior parte dei tuoi utenti Discord vive.

Nel caso questo non fosse possibile, una posizione centrale, con una buona connessione e ping può comunque andar bene.

Se il bot è globale, un VPS posizionato in Europa o in America non dovrebbe creare troppi problemi.

Perché usare una VPS

Come Hostare un Bot Discord VPS

Il miglior modo per hostare un Bot Discord e avere un uptime vicino al 100% è quello di utilizzare un Virtual Private Server (VPS).

Come suggerisce il nome, una VPS è un server "virtuale", quindi una parte di un server fisico posizionato nel datacenter da te scelta in fase di configurazione.

Inoltre, le VPS sono estremamente economiche (partono da qualche euro al mese) e molto affidabili, garantendo ottimi uptime senza doversi preoccupare che il server possa andare offline.

La flessibilità e i vantaggi offerti da una VPS sono di molto superiori ad un server casalingo, soggetto alle limitazioni della connessione casalinga, o a quelle di un hosting gestito, che solitamente include molte limitazioni.

Configurazione della VPS

Dopo aver acquistato la vostra VPS, o durante l'acquisto, molto probabilmente vi verrà chiesto che sistema operativo desiderate installare. Personalmente per l'hosting io ho sempre scelgo Centos per la sua stabilità, attualmente utilizzo la versione 7. Un'ottima alternativa è Ubuntu, puoi consultare la guida sulla Configurazione Iniziale di un Server Ubuntu.

Come Hostare un Bot Discord Logo di CentOS

Se scegliete di installare altre distro Linux, dovrete modificare leggermente i comandi utilizzati nel corso della guida, ma non dovrebbe risultare un'operazione troppo complessa.

L'ultima cosa, ma forse la più importante che dovete fare, è recuperare i dati di accesso che permettono la connessione FTP o SSH alla vostra nuova VPS. Nel caso di OVH, dopo aver effettuato l'acquisto, arriverà un'email che comunica indirizzo IP, nome utente e password per l'accesso.

Come Hostare un Bot Discord Email contenente i dati di accesso alla VPS
Email di OVH

Questo però potrebbe essere diverso nel vostro caso, dato che il vostro hosting potrebbe fornire i dati di accesso direttamente dal pannello di controllo della VPS.

Accesso alla VPS tramite SSH

Adesso che siamo in possessi dei dati di acceso, per accedere effettivamente alla vostra VPS tramite SSH, vi consiglio l'utilizzo del software gratuito PuTTY, che utilizzeremo in questa guida, ma esistono moltissime alternative.

Come Hostare un Bot Discord Logo di PuTTY

Dopo aver aperto PuTTY, dovrete incollare l'indirizzo IP precedentemente recuperato nell'apposito campo e poi cliccare il tasto "Open" lasciando invariati tutti gli altri parametri.

Come Hostare un Bot Discord Schermata di PuTTY per la connessione ad un server remoto

Una volta aperta la connessione, vedrete subito la schermata di login:

login as:

Di seguito voi dovrete inserire il vostro nome utente, solitamente root, ma potrebbe variare.

Successivamente dovrete inserire la vostra password. Se non vedete le lettere mentre digitate è assolutamente normale, questo accade per non visualizzare le lettere.

Dopo il login, vedrete una schermata simile a questa:

Come Hostare un Bot Discord Schermata di PuTTY con il login alla VPS

A questo punto è ora di caricare i file del nostro bot. Per fare ciò ci connetteremo alla nostra VPS tramite FTP.

Accesso alla VPS tramite FTP

Per l'accesso tramite FPT, utilizzeremo nuovamente un software gratuito chiamato WinSCP, ma anche qui ci sono molte alternative, una delle più famose è sicuramente FileZilla.

Come Hostare un Bot Discord Logo di WinSCP

Una volta aperto il programma, apparirà una finestrella nella quale dovremmo inserire tutti i dati della nostra VPS, assicurandoci di impostare il protocollo su SFTP e lasciare la porta su 22. Una volta fatto ciò ci sarà possibile effettuare la connessione cliccando sul tasto "Accedi".

Come Hostare un Bot Discord Schermata di WinSCP per la connessione ad un server

A questo punto ci sarà possibile navigare normalmente tra i vari file e cartelle della VPS.

Per caricare i file del bot, sarà sufficiente recarsi nella cartella home, situata direttamente all'interno della directory principale, e caricare i nostri file con un semplice drag and drop.

Installazione di Node.js e di NPM

Come Hostare un Bot Discord Logo di Node.js e npm

Per installare Node.js, la prima cosa da fare è abilitare la repository yum di Node.js. Per l'ultima release stabile, i comandi sono i seguenti:

yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash -

Ora procediamo con l'installazione vera e propria di Node.js sul nostro server. Per farlo ci basterà utilizzare il comando:

sudo yum install nodejs

Come ultima cosa, per essere sicuri che tutto sia stato installato correttamente, controlliamo le versioni di Node.js e NPM (Node Packet Manager) con i seguenti comandi:

node -v
npm -v

Installare un Process Manager

La prossima cosa di cui necessiteremo è un process manager, che tradotto diventa gestore di processi.

Questo ci permetterà di eseguire addirittura più bot sulla stessa VPS (se necessario) e si occuperò di gestire la memoria mantenendo tutti i processi operativi al massimo.

In questo caso utilizzeremo PM2 (Production Process Manager for Node.js), un'ottima scelta dato il suo vasto utilizzo nei progetti Node.js.

Come Hostare un Bot Discord Logo di PM2

Installare PM2 è molto semplice, la prima cosa da fare è assicurarsi di essere all'interno della directory principale del vostro bot, poi vi basterà eseguire il seguente comando:

npm install pm2 -g

Dopo il processo di installazione, per testare che tutto funzioni, potete vedere una lista di tutti i processi (che sarà vuota dato che non ne avete ancora avviato uno) con questo comando:

pm2 list

Ora è il momento di avviare il nostro bot, per farlo vi basterà usare il comando riportato qui sotto, ricordatevi ovviamente di cambiare index.js con il nome del file principale del vostro bot.

pm2 start index.js

A questo punto vedrete un messaggio di PM2 che vi dice che avrà avviato un'istanza del vostro bot!

Se volete stoppare il bot, basterà stoppare il processo di PM2 con questo comando:

pm2 stop index.js

Mentre se volete semplicemente riavviarlo, c'è questo comando:

pm2 restart index.js

Ora il tuo bot è hostato con successo su una VPS!

Conclusione

In questa guida abbiamo imparato come hostare un Bot Discord in un server Linux con Centos, e dovrete sapere tutto il necessario per iniziare subito ad hostare il vostro Bot sulla vostra VPS.

Se preferite utilizzare un linguaggio come Python o Java, vi basterà installare quei software sul vostro server al posto di Node.js e npm, ma dovrete trovare un'alternativa a PM2 per gestire i processi, dato che quest'ultimo è un software progettato per funzionare con Node.js!