Manual

Instalación

Instalación

v1.0.0+

GeckoFlag es un software autoalojado que instalas en tu propio servidor; un instalador dedicado te guía durante el proceso para que cualquier persona pueda configurarlo fácilmente.

Antes de empezar

  • Confirma que tu servidor cumple con los requisitos del sistema. No se requiere Composer: el paquete distribuido ya incluye sus dependencias (la carpeta vendor), por lo que también funciona en entornos donde no puedes ejecutar Composer.
  • Ten listos los datos de conexión a tu base de datos: una base de datos nueva o una existente que esté vacía. No recomendamos compartir la base de datos con otra aplicación.
  • HTTPS no es estrictamente obligatorio, pero como GeckoFlag maneja credenciales de acceso y datos personales, recomendamos ampliamente ejecutarlo con HTTPS.
  • Después de subir los archivos, completa la instalación de inmediato. Hasta que termine la instalación, cualquier persona que conozca la URL puede abrir el instalador.
  • Si usas Nginx, realiza antes la configuración de la sección «Si usas Nginx» que aparece más abajo.

Pasos de instalación

  1. 1Sube los archivos de GeckoFlag a tu servidor mediante FTP/SFTP o el panel de control de tu hosting y extráelos.Administrador de archivos que muestra en el servidor los archivos y carpetas de GeckoFlag extraídos
  2. 2Abre el instalador en tu navegador. Revisa el entorno de tu servidor (versión de PHP, extensiones requeridas y permisos de carpetas) y muestra una lista de verificación.GeckoFlag Setup, Paso 1: Environment Check, que muestra la versión de PHP, las extensiones requeridas y los permisos de carpetas, todos en verde
  3. 3Ingresa los datos de conexión a tu base de datos (host, puerto, nombre de la base de datos, nombre de usuario y contraseña) y continúa.GeckoFlag Setup, Paso 2: Database Connection, con campos para host, puerto, nombre, usuario y contraseña de la base de datos
  4. 4Haz clic en Ejecutar para inicializar la base de datos; esto crea las tablas que GeckoFlag necesita.GeckoFlag Setup, Paso 3: Initialize the Database, con un botón Run
  5. 5Crea tu cuenta de administrador con un nombre, un correo electrónico y una contraseña.GeckoFlag Setup, Paso 4: Create Administrator Account, con campos de nombre, correo electrónico y contraseña
  6. 6Ingresa tu clave de licencia para verificarla.GeckoFlag Setup, Paso 5: License Verification, con un campo para la clave de licencia
  7. 7Una vez verificada tu licencia, todo está listo: inicia sesión con tu nueva cuenta de administrador y empieza a configurar tus proyectos.GeckoFlag Setup, Paso 5: License Verification, que confirma que la clave de licencia se verificó correctamente

Notas sobre el hosting

Se ha confirmado que GeckoFlag funciona en muchos proveedores de hosting compartido comunes. Según la configuración de PHP, como upload_max_filesize, las funciones de carga de archivos pueden verse limitadas en algunos proveedores.

Si usas Nginx

En Apache, el archivo .htaccess incluido con GeckoFlag bloquea automáticamente el acceso directo a los archivos de configuración, los registros y otros archivos. Nginx no usa .htaccess, así que agrega lo siguiente a la configuración de tu servidor. Si no lo agregas, los archivos de configuración y los archivos subidos podrían quedar visibles desde el exterior.

En los servicios de hosting que combinan Nginx y Apache (una configuración en la que Apache procesa las solicitudes que recibe Nginx), .htaccess funciona, por lo que esta configuración no es necesaria. Para saber si puedes usar .htaccess, consulta el manual de tu proveedor de hosting.

  • Configura como carpeta pública (raíz de documentos) no la carpeta de GeckoFlag, sino la carpeta webroot que se encuentra dentro de ella.
  • Cambia server_name (el dominio), root (la ubicación de GeckoFlag) y fastcgi_pass (el destino de conexión de PHP-FPM) según tu entorno.
  • Agrega la configuración de HTTPS (listen 443 ssl y los certificados) siguiendo el método de configuración de tu entorno.
server {
    listen 80;
    server_name pm.example.com;

    # La carpeta pública (raíz de documentos) es la carpeta webroot de GeckoFlag
    root /var/www/geckoflag/webroot;
    index index.php;

    # No mostrar la lista del contenido de las carpetas
    autoindex off;

    # Para poder subir los ZIP de actualización y de copia de seguridad
    # (el valor predeterminado de Nginx es 1MB). Configura también
    # upload_max_filesize y post_max_size de PHP con un valor igual o mayor
    client_max_body_size 100m;

    # No servir archivos ocultos (.htaccess, .git, etc.)
    location ~ /\.(?!well-known/) {
        deny all;
    }

    # Desde las carpetas de imágenes subidas, servir solo imágenes
    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;
        }
        # Las imágenes SVG son solo para mostrar (no se ejecutan 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;
    }

    # No servir directamente la carpeta files
    location ^~ /files/ {
        return 404;
    }

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

    # Solo se ejecuta index.php como 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;
    }
}

Después de cambiar la configuración, verifica la sintaxis con nginx -t y vuelve a cargar Nginx.

Si usas una CDN o un proxy inverso (Cloudflare, etc.)

GeckoFlag usa la dirección IP de origen que recibe el servidor para limitar los intentos fallidos de inicio de sesión y para la restricción de acceso (dirección IP). Si las solicitudes pasan por una CDN o un proxy inverso, todos los usuarios parecen acceder desde la dirección IP del proxy, lo que provoca lo siguiente:

  • Si alguien falla varias veces al iniciar sesión, es posible que los demás usuarios tampoco puedan iniciar sesión durante un tiempo.
  • La Restricción de acceso (dirección IP) no funciona correctamente.

En este tipo de configuración, ajusta el servidor web para que reciba la dirección IP de origen real (mod_remoteip en Apache, el módulo real_ip en Nginx o, en el caso de Cloudflare, el registro de la lista de direcciones IP que publica la empresa, etc.). Para saber cómo configurarlo, consulta el manual de tu proveedor de hosting o de tu CDN.