Manuale

Installazione

Installazione

v1.0.0+

GeckoFlag è un software self-hosted che si installa sul proprio server; un programma di installazione dedicato La guida durante il processo, così che chiunque possa configurarlo con facilità.

Prima di iniziare

  • Verifichi che il Suo server soddisfi i requisiti di sistema. Non è richiesto Composer: il pacchetto distribuito include già le dipendenze (la cartella vendor), quindi funziona anche in ambienti in cui non è possibile eseguire Composer.
  • Tenga pronti i dati di connessione al database: un database nuovo o uno esistente che sia vuoto. Sconsigliamo di condividere il database con un'altra applicazione.
  • HTTPS non è strettamente obbligatorio, ma poiché GeckoFlag gestisce credenziali di accesso e dati personali, Le raccomandiamo vivamente di eseguirlo con HTTPS.
  • Completi l'installazione subito dopo aver caricato i file. Finché l'installazione non è completata, chiunque conosca l'URL può aprire il programma di installazione.
  • Se utilizza Nginx, configuri prima le impostazioni descritte più sotto in «Se utilizza Nginx».

Passaggi di installazione

  1. 1Carichi i file di GeckoFlag sul Suo server tramite FTP/SFTP o il pannello di controllo del Suo hosting e li estragga.File manager che mostra sul server i file e le cartelle di GeckoFlag estratti
  2. 2Apra il programma di installazione nel browser. Esso verifica l'ambiente del Suo server (versione di PHP, estensioni richieste e permessi delle cartelle) e mostra un elenco di controllo.GeckoFlag Setup, Passo 1: Environment Check, che mostra la versione di PHP, le estensioni richieste e i permessi delle cartelle, tutti in verde
  3. 3Inserisca i dati di connessione al database (host, porta, nome del database, nome utente e password) e prosegua.GeckoFlag Setup, Passo 2: Database Connection, con campi per host, porta, nome, utente e password del database
  4. 4Faccia clic su Esegui per inizializzare il database; in questo modo vengono create le tabelle di cui GeckoFlag ha bisogno.GeckoFlag Setup, Passo 3: Initialize the Database, con un pulsante Run
  5. 5Crei il Suo account amministratore con un nome, un indirizzo e-mail e una password.GeckoFlag Setup, Passo 4: Create Administrator Account, con campi per nome, e-mail e password
  6. 6Inserisca la Sua chiave di licenza per verificarla.GeckoFlag Setup, Passo 5: License Verification, con un campo per la chiave di licenza
  7. 7Una volta verificata la licenza, è tutto pronto: acceda con il Suo nuovo account amministratore e inizi a configurare i Suoi progetti.GeckoFlag Setup, Passo 5: License Verification, che conferma che la chiave di licenza è stata verificata correttamente

Note sull'hosting

È stato confermato che GeckoFlag funziona su molti comuni provider di hosting condiviso. A seconda della configurazione di PHP, ad esempio upload_max_filesize, le funzioni di caricamento file possono risultare limitate su alcuni provider.

Se utilizza Nginx

Con Apache, il file .htaccess incluso in GeckoFlag nega automaticamente l'accesso diretto ai file di configurazione, ai log e ad altri file. Nginx non utilizza .htaccess, quindi aggiunga quanto segue alla configurazione del server. In caso contrario, i file di configurazione e i file caricati potrebbero essere visibili dall'esterno.

Sugli hosting che combinano Nginx e Apache (configurazioni in cui le richieste ricevute da Nginx vengono elaborate da Apache), .htaccess è attivo, quindi questa configurazione non è necessaria. Per sapere se è possibile utilizzare .htaccess, consulti la documentazione del Suo provider di hosting.

  • Imposti come cartella pubblica (document root) non la cartella di GeckoFlag, ma la cartella webroot al suo interno.
  • Modifichi server_name (dominio), root (percorso in cui si trova GeckoFlag) e fastcgi_pass (destinazione della connessione a PHP-FPM) in base al Suo ambiente.
  • Aggiunga la configurazione HTTPS (listen 443 ssl e l'indicazione del certificato) seguendo il metodo di configurazione del Suo ambiente.
server {
    listen 80;
    server_name pm.example.com;

    # La cartella pubblica (document root) è la cartella webroot di GeckoFlag
    root /var/www/geckoflag/webroot;
    index index.php;

    # Non mostrare l'elenco del contenuto delle cartelle
    autoindex off;

    # Per consentire il caricamento dei file ZIP di aggiornamento e di backup
    # (il valore predefinito di Nginx è 1MB). Imposti anche upload_max_filesize
    # e post_max_size di PHP a un valore uguale o superiore
    client_max_body_size 100m;

    # I file nascosti (.htaccess, .git, ecc.) non vengono serviti
    location ~ /\.(?!well-known/) {
        deny all;
    }

    # Dalle cartelle delle immagini caricate vengono servite solo immagini
    location ~ ^/img/(avatars|project_thumbnails|branding)/ {
        location ~* \.(jpe?g|jfif|png|gif|webp|ico)$ {
            add_header X-Content-Type-Options "nosniff" always;
            try_files $uri =404;
        }
        # Le immagini SVG vengono solo visualizzate (gli script non vengono eseguiti)
        location ~* \.svg$ {
            add_header X-Content-Type-Options "nosniff" always;
            add_header Content-Security-Policy "default-src 'none'; img-src data:; style-src 'unsafe-inline'; sandbox" always;
            try_files $uri =404;
        }
        return 403;
    }

    # La cartella files non viene servita direttamente
    location ^~ /files/ {
        return 404;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # Solo index.php viene eseguito come PHP
    location = /index.php {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
    location ~ \.php$ {
        return 404;
    }
}

Dopo aver modificato la configurazione, verifichi la sintassi con nginx -t e ricarichi Nginx.

Se si passa attraverso una CDN o un reverse proxy (come Cloudflare)

GeckoFlag utilizza l'indirizzo IP di origine ricevuto dal server per limitare i tentativi di accesso non riusciti e per la restrizione di accesso (indirizzo IP). Passando attraverso una CDN o un reverse proxy, tutti gli utenti sembrano accedere dall'indirizzo IP del proxy, con le seguenti conseguenze:

  • Se qualcuno non riesce ad accedere più volte, anche gli altri utenti potrebbero non riuscire ad accedere per un certo tempo.
  • La Restrizione di accesso (indirizzo IP) non funziona correttamente.

In configurazioni di questo tipo, imposti il server web in modo che riceva l'indirizzo IP di origine reale (ad esempio mod_remoteip per Apache, il modulo real_ip per Nginx o, nel caso di Cloudflare, la registrazione dell'elenco degli indirizzi IP pubblicato dalla società). Per le modalità di configurazione, consulti la documentazione del Suo provider di hosting o della CDN.