Manual

Instalação

Instalação

v1.0.0+

O GeckoFlag é um software auto-hospedado que você instala no seu próprio servidor — um instalador dedicado guia você pelo processo para que qualquer pessoa consiga configurá-lo com facilidade.

Antes de começar

  • Confirme que o seu servidor atende aos requisitos do sistema. O Composer não é necessário — o pacote distribuído já inclui as dependências (a pasta vendor), então ele também funciona em ambientes onde não é possível executar o Composer.
  • Deixe prontos os dados de conexão do banco de dados: um banco de dados novo ou um já existente que esteja vazio. Não recomendamos compartilhar o banco de dados com outra aplicação.
  • O HTTPS não é estritamente obrigatório, mas, como o GeckoFlag lida com credenciais de acesso e dados pessoais, recomendamos fortemente executá-lo com HTTPS.
  • Depois de enviar os arquivos, conclua a instalação imediatamente. Até que a instalação termine, qualquer pessoa que conheça a URL pode abrir o instalador.
  • Se você usa Nginx, faça antes a configuração descrita em “Se você usa Nginx”, mais abaixo.

Etapas de instalação

  1. 1Envie os arquivos do GeckoFlag ao seu servidor por FTP/SFTP ou pelo painel de controle da hospedagem e extraia-os.Gerenciador de arquivos mostrando no servidor os arquivos e pastas do GeckoFlag extraídos
  2. 2Abra o instalador no navegador. Ele verifica o ambiente do servidor — versão do PHP, extensões necessárias e permissões de pastas — e mostra uma lista de verificação.GeckoFlag Setup, Etapa 1: Environment Check, mostrando a versão do PHP, as extensões necessárias e as permissões de pastas, todas aprovadas
  3. 3Informe os dados de conexão do banco de dados (host, porta, nome do banco, nome de usuário e senha) e continue.GeckoFlag Setup, Etapa 2: Database Connection, com campos para host, porta, nome, usuário e senha do banco de dados
  4. 4Clique em Executar para inicializar o banco de dados — isso cria as tabelas de que o GeckoFlag precisa.GeckoFlag Setup, Etapa 3: Initialize the Database, com um botão Run
  5. 5Crie a sua conta de administrador com nome, e-mail e senha.GeckoFlag Setup, Etapa 4: Create Administrator Account, com campos de nome, e-mail e senha
  6. 6Informe a sua chave de licença para verificá-la.GeckoFlag Setup, Etapa 5: License Verification, com um campo para a chave de licença
  7. 7Depois que a licença for verificada, está tudo pronto — faça login com a sua nova conta de administrador e comece a configurar os seus projetos.GeckoFlag Setup, Etapa 5: License Verification, confirmando que a chave de licença foi verificada com sucesso

Observações sobre a hospedagem

Foi confirmado que o GeckoFlag funciona em muitos provedores comuns de hospedagem compartilhada. Dependendo das configurações do PHP, como upload_max_filesize, os recursos de upload de arquivos podem ser limitados em alguns provedores.

Se você usa Nginx

No Apache, o .htaccess incluído no GeckoFlag nega automaticamente o acesso direto a arquivos de configuração, logs etc. Como o Nginx não usa o .htaccess, adicione o conteúdo a seguir à configuração do servidor. Sem isso, os arquivos de configuração e os arquivos enviados podem ficar visíveis externamente.

Em hospedagens que combinam Nginx e Apache (configuração em que o Apache processa os acessos recebidos pelo Nginx), o .htaccess funciona, portanto esta configuração não é necessária. Para saber se o .htaccess pode ser usado, consulte o manual do seu provedor de hospedagem.

  • A pasta pública (document root) deve ser a pasta webroot dentro da pasta do GeckoFlag, e não a própria pasta do GeckoFlag.
  • Ajuste server_name (domínio), root (local onde o GeckoFlag foi colocado) e fastcgi_pass (destino de conexão do PHP-FPM) ao seu ambiente.
  • Adicione a configuração de HTTPS (listen 443 ssl e a indicação do certificado) seguindo o método de configuração do seu ambiente.
server {
    listen 80;
    server_name pm.example.com;

    # A pasta pública (document root) é a pasta webroot do GeckoFlag
    root /var/www/geckoflag/webroot;
    index index.php;

    # Não exibir a lista do conteúdo das pastas
    autoindex off;

    # Para permitir o envio dos ZIPs de atualização e de backup
    # (o padrão do Nginx é 1MB). Defina upload_max_filesize e
    # post_max_size do PHP com o mesmo valor ou maior
    client_max_body_size 100m;

    # Não entregar arquivos ocultos (.htaccess, .git etc.)
    location ~ /\.(?!well-known/) {
        deny all;
    }

    # Das pastas de imagens enviadas, entregar somente imagens
    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;
        }
        # Imagens SVG apenas para exibição (sem executar scripts)
        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;
    }

    # Não entregar diretamente a pasta files
    location ^~ /files/ {
        return 404;
    }

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

    # Executar como PHP somente o index.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;
    }
}

Depois de alterar a configuração, verifique a sintaxe com nginx -t e recarregue o Nginx.

Ao usar uma CDN ou um proxy reverso (Cloudflare etc.)

O GeckoFlag usa o endereço IP de origem recebido pelo servidor para limitar o número de falhas de login e para a restrição de acesso (endereço IP). Com uma CDN ou um proxy reverso, todos os usuários parecem acessar a partir do endereço IP do proxy, o que causa o seguinte:

  • Quando alguém erra o login algumas vezes, os demais usuários também podem ficar impedidos de fazer login por algum tempo.
  • A Restrição de acesso (endereço IP) não funciona corretamente.

Nesse tipo de configuração, configure o servidor web para receber o endereço IP de origem real (mod_remoteip no Apache, módulo real_ip no Nginx e, no caso da Cloudflare, o cadastro da lista de endereços IP publicada pela empresa etc.). Para saber como configurar, consulte o manual do seu provedor de hospedagem ou da CDN.