jointrashposs/content/it-IT/docs/install/ubuntu-manual.md
kakkokari-gtyih 8e52c51c49 wip
2023-07-08 17:36:02 +09:00

13 KiB
Raw Blame History

Come installare Misskey su Ubuntu

Altri tipi di installazione

Script per il terminale bash

::: tip Questa installazione non è destinata alla installazione di ambienti di sviluppo. :::

Smetti di fare copia incolla, è fastidioso, noioso, richiede tempo!

Vuoi svolgere una installazione automatica? C'è lo script per il terminale bash che fa quasi tutto!

Ti serve soltanto: un dominio, la configurazione di Cloudflare e la protezione del server.

A proposito

Il tipo di Installazione manuale prevede l'esecuzione di Misskey tramite systemd

Il tipo di installazione tramite docker-compose è la più facile e ti permette di eseguire Misskey in un ambiente virtuale, senza modificare il sistema che la ospita.

Introduzione

Questa pagina indica come Installare Misskey su sistema operativo GNU/Linux Ubuntu.

Occorre soltanto eseguire alcuni comandi bash, modificare alcuni file di configurazione e usare il browser.

Le indicazioni sono specifiche per il sistema operativo Ubuntu, alcune parti potrebbero cambiare in futuro, rendendo inutile la guida. Ce ne scusiamo.

Ambiente e requisiti

  • Sistema operativo Ubuntu 22.04.1 LTS.
  • Requisiti hardware, occorre una CPU moderna, di architettura amd64 o arm64.
  • Memoria RAM necessaria, circa 1.5GB.
  • Dominio web già configurato e account Cloudflare attivo.

::: tip Se prepari un ambiente di sviluppo, dominio e Cloudflare non servono :::

::: danger Never change the domain name (hostname) of an instance once you start using it! :::

Come usare l'editor Nano

L'editor di testo si apre con questo comando. nano /percorso/al/file. Il cursore si muove coi tasti freccia, home, end ecc... Per uscire, premi CTRL+x, successivamente, decidi se salvare le modifiche, premi Y per accettare.

Creare un utente

Crea un utente di sistema, poiché Misskey non dovrebbe girare con privilegi di super utente root.

sudo adduser --disabled-password --disabled-login misskey

::: tip Se prepari un ambiente di sviluppo, non importa crearlo. :::

Installazione software iniziale

Occorre del software per svolgere le prossime attività, per favore installalo se non è già presente.

Node.js

Si tratta di un linguaggio di programmazione lato server, basato su JavaScript. Necessario per eseguire Misskey.

sudo apt install -y curl

curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

sudo apt install -y nodejs

node -v

sudo corepack enable

Ti occorre la versione v20.x.y. Se appare un'altra versione, come la v8.x.y allora l'installazione non è andata a buon fine. Potresti usare il progetto Node Version Manager.

PostgreSQL

Questo è il Data Base Management System. Il gestore della base dati relazionale, ad oggetti. Essenziale per il funzionamento di Misskey.

Installazione DBMS

Occorre avere l'ultima versione, v.15

sudo apt install -y postgresql-common

sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15;

systemctl status postgresql

Se tutto è andato bene, leggerai: OK

Configurazione DBMS

Esegui il client che si connette al DBMS. sudo -u postgres psql

Ora devi creare una utenza per Misskey. Se scegli username misskey e password gattino, dovrai digitare la query:

CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'gattino';

Poi occorre il database: CREATE DATABASE mkdb OWNER misskey;

Per uscire da psql scrivi \q

Redis

Si tratta di un database non relazionale (noSQL), gestito nella memoria. Necessario per gestire la connessione tra le federazioni e il database.

Installa Redis seguendo la documentazione ufficiale.

sudo apt install -y curl ca-certificates gnupg2 lsb-release

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt update

sudo apt install -y redis

systemctl status redis-server

Se tutto è andato bene, leggerai : Ok

Nginx

Si tratta di un Application Web Server. Anche se non è essenziale, svolge comunque un compito importante, come il caching e la crittografia SSL (https).

::: tip Se configuri un ambiente di sviluppo, non serve. :::

Installa Nginx seguendo la [documentazione ufficiale](http://nginx.org/en/linux_packages.html#Ubuntu].

sudo apt install ubuntu-keyring

curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg

Controlla se ottieni 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 come risposta.

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list

echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx

sudo apt update

sudo apt install -y nginx

systemctl status nginx

Se tutto è andato bene, leggerai : Ok

Attiva il servizio e abilita la partenza automatica al riavvio.

sudo systemctl start nginx

sudo systemctl enable nginx

curl http://localhost

Se leggi Welcome to ngnix! allora tutto è andato bene.

Altri software

Occorrono due pacchetti aggiuntivi. Servono per la creazione di Misskey.

sudo apt update

sudo apt install -y git build-essential

Altre configurazioni

Preparati ad esporre il servizio su internet

::: tip se stai preparando un ambiente di sviluppo, queste configurazioni non sono necessarie. :::

Firewall

Useremo 'ufw' come firewall per bloccare le connessioni non autorizzate.

Si configura una whitelist e si aprono le porte dei servizi SSH 22, HTTP 80, HTTPS 443.

sudo ufw enable

sudo ufw default deny

sudo ufw limit 22

sudo ufw allow 80

sudo ufw allow 443

Controlla la configurazione con: sudo ufw status Attiva la partenza automatica al riavvio: sudo systemctl enable ufw

::: tip ufw semplifica l'uso di Netfilter (IPTABLES) :::

CloudFlare

Si tratta di un servizio utile per gestire DNS, Reverse Proxy e CDN sul tuo dominio. Si può anche evitare ma è consigliato, oltre che comodo. Configurazione CDN

Iscrizione a CloudFlare segui le indicazioni per configurare il dominio prescelto.

Digita l'indirizzo IP del server nella schermata DNS. A seconda del servizio, potrebbero essere necessarie fino a 48 ore prima della ricezione delle configurazioni.

Configurazione Certbot (Lets Encrypt)

Per attivare la protezione SSL su https, ti occorre un certificato.

Installa il plugin che integra Certbot e Cloudflare: sudo apt install -y certbot python3-certbot-dns-cloudflare

Ottieni una APIKey dal sito Cloudflare

  1. Apri la pagina
  2. Seleziona: visualizza API Key Globale
  3. Inserisci la password e indica che sei una persona umana

Crea un file di configurazione con le informazioni di Cloudflare.

mkdir /etc/cloudflare
nano /etc/cloudflare/cloudflare.ini

Scrivi questi parametri dentro al file di configurazione:

dns_cloudflare_email = tuo.accountn@registrato.su.cloudflare
dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx

Salva il file e imposta i privilegi di lettura: sudo chmod 600 /etc/cloudflare/cloudflare.ini

Esegui il seguente comando, modificando example.tld con il tuo dominio: sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld

Se leggi Congratulations! è andato tutto bene. Annota il percorso dei file .pem, ti serviranno dopo.

Installazione Misskey

Ora che i preparativi sono finiti, puoi installare Misskey.

Diventa l'utente misskey preparato in precedenza: sudo su - misskey

Ottieni il codice sorgente tramite git:

git clone -b master https://github.com/misskey-dev/misskey.git`

cd misskey

git checkout master

Installa le librerie necessarie:

NODE_ENV=production pnpm install --frozen-lockfile

Configurazione di Misskey

Il file default.yml

Crea il file e scrivici i contenuti indicati di seguito: nano .config/default.yml.

I parametri col pallino ● vanno modificati. I parametri col cerchietto sono i valori che hai configurato fino ad ora.

Puoi vedere un esempio di configurazione

::: tip Se stai configurando un ambiente di sviluppo, indica url: http://localhost:3000 :::

# ● URL pubblico di Misskey
url: https://example.tld/

# Imposta la porta numero 3000
port: 3000

# ● Configurazione PostgreSQL。
db:
	host: localhost
	port: 5432
	db  : mkdb #  Nome del database PostgreSQL
	user: misskey #  Nome utente PostgreSQL
	pass: gattini # ● Password di PostgreSQL

# Configurazione Redis
redis:
	host: localhost
	port: 6379

# Configurazione del tipo di ID
id: 'aid'

#   syslog
syslog:
	host: localhost
	port: 514

Ricordati di salvare le modifiche.

Configurazione di Nginx

Configurare usando i privilegi di super utente root. Smetti di essere l'utente misskey: exit

Crea la configurazione: sudo nano /etc/nginx/conf.d/misskey.conf

Copia la configurazione di Nginx e incollala dentro a Nano.

Svolgi le seguenti modifiche indicando le tue configurazioni:

  • Righe 18 e 30 URL del dominio
  • Righe 34-35 Sostituisci il percorso al file Certificato di Certbot (.pem)
  • Se usi la CDN o un altro Reverse Proxy, elimina 4 righe a partire dalla 56

Ricordati di salvare le modifiche.

Controlla il funzionamento: sudo nginx -t

Se ottieni OK riavvia il servizio: sudo systemctl restart nginx poi verifica il funzionamento: sudo systemctl status nginx

Se ottieni OK va tutto bene.

Costruire Misskey

Adesso torna ad essere utente misskey: sudo su - misskey

Avvia la build:

cd misskey
NODE_ENV=production npm run build

::: tip Se stai preparando un ambiente di sviluppo, NODE_ENV=production non serve. :::

Se non riesci a costruire la build sul server

Potresti avere a disposizione meno di 2GB di memoria RAM. Servono per costruire Misskey e svolgere gli aggiornamenti.

Possibili soluzioni:

  • Aggiungi memoria swap al server
  • Trasferisci i file del repository git sul tuo pc e avvia la build da lì.

Inizializza il Database

npm run init

Avvia Misskey

NODE_ENV=production pnpm run start

Quando leggi: Now listening on port 3000 on, accedi alla URL indicata.

Dovresti vedere la pagina iniziale di Misskey. Inizia a verificare se funziona.

Se non riesci ad accedere

Controlla il DNS di CloudFlare

Visita il sito Cloudflare e verifica che la configurazione DNS punti verso l'indirizzo IP che hai indicato.

Controlla il router

Se hai installato Misskey in un server che stà dietro una sottorete, verifica che le porte 80 e 443 siano raggiungibili dall'esterno.

Creazione servizio Misskey

::: tip Se stai preparando un ambiente di sviluppo, non è necessario :::

Termina Misskey premendo CTRL+c. poi torna ad essere utente super amministratore: exit

Crea la configurazione del servizio: sudo nano /etc/systemd/system/misskey.service

Incolla il seguente testo e salva:

[Unit]
Description=Misskey daemon

[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=journal
StandardError=journal
SyslogIdentifier=misskey
Restart=always

[Install]
WantedBy=multi-user.target

Abilita la configurazione e riavvia il servizio:

sudo systemctl daemon-reload

sudo systemctl enable misskey

sudo systemctl start misskey

Aspetta circa 15 secondi e verifica il funzionamento: sudo systemctl status misskey, se ottieni Ok va tutto bene.

Per finire registra il primo utente, amministratore e accedi per completare la configurazione.

Aggiornare Misskey

C'è uno script automatico per aggiornare

Aggiornamento manuale

Misskey deve essere spento per svolgere queste azioni:

sudo systemctl stop misskey

su - misskey

git pull;

NODE_ENV=production pnpm install --frozen-lockfile

pnpm run clean;

NODE_ENV=production pnpm run build;

pnpm run migrate;

exit

Opzione 1: aggiorna anche il sistema

sudo apt update -y
sudo apt full-upgrade -y
sudo reboot

In questo caso Misskey tornerà disponibile dopo il riavvio.

Opzione 2: avvia subito Misskey

sudo systemctl start misskey