El archivo config.php
El archivo config.php de FacturaScripts es el que almacena la configuración para conectar a la base de datos, el idioma predeterminado, la clave secreta de la instalación, etc. Este archivo lo genera el instalador y se encuentra en la carpeta donde esté instalado FacturaScripts.
Este archivo php define todas las constantes de configuración (las que no se pueden cambiar desde el panel de control). Y tiene este aspecto:
<?php
define('FS_COOKIES_EXPIRE', 31536000);
define('FS_ROUTE', '');
define('FS_DB_TYPE', 'mysql');
define('FS_DB_HOST', 'localhost');
define('FS_DB_PORT', 3306);
define('FS_DB_NAME', 'facturascripts');
define('FS_DB_USER', 'root');
define('FS_DB_PASS', '');
define('FS_DB_FOREIGN_KEYS', true);
define('FS_DB_TYPE_CHECK', true);
define('FS_APP_KEY', '3f9a1c...');
define('FS_MYSQL_CHARSET', 'utf8mb4');
define('FS_MYSQL_COLLATE', 'utf8mb4_unicode_520_ci');
define('FS_LANG', 'es_ES');
define('FS_TIMEZONE', 'Europe/Madrid');
define('FS_HIDDEN_PLUGINS', '');
define('FS_DISABLE_ADD_PLUGINS', false);
define('FS_DISABLE_RM_PLUGINS', false);
define('FS_DEBUG', false);
Lista de constantes
Esta es la lista de constantes que pueden estar en el archivo:
Base de datos
- FS_DB_TYPE: tipo de base de datos (
mysqlopostgresql). - FS_DB_HOST: ruta al servidor de bases de datos (normalmente
localhost). - FS_DB_PORT: puerto de la base de datos (
3306para mysql y5432para postgresql). - FS_DB_NAME: nombre de la base de datos.
- FS_DB_USER: usuario de la base de datos.
- FS_DB_PASS: contraseña del usuario de la base de datos.
- FS_DB_FOREIGN_KEYS: indica si está activado el uso de claves ajenas. Por defecto
true(sí). - FS_DB_TYPE_CHECK: indica si hay que comprobar los tipos de las columnas de las tablas. Por defecto
true(sí). - FS_MYSQL_CHARSET: codificación de la base de datos (
utf8para bases de datos antiguas,utf8mb4para las nuevas). - FS_MYSQL_COLLATE: cotejamiento de la base de datos (
utf8_binpara bases de datos antiguas,utf8mb4_unicode_520_cipara las nuevas). - FS_PGSQL_SSL: modo SSL de la conexión con PostgreSQL (
disable,allow,preferorequire). Vacío por defecto. - FS_PGSQL_ENDPOINT: endpoint de PostgreSQL, necesario en algunos servicios en la nube como Neon. Vacío por defecto.
Si en el instalador se indica un socket de MySQL, se añade al final del archivo la línea ini_set('mysqli.default_socket', '/ruta/al/socket');.
Instalación y seguridad
- FS_APP_KEY: clave secreta de la instalación, con la que se firman los tokens de los formularios, de los archivos de MyFiles y de las páginas de error. Ver la sección La clave secreta más abajo.
- FS_TRUSTED_PROXIES: IPs o rangos de los proxies de confianza adicionales. Ver la sección Proxies de confianza más abajo.
- FS_COOKIES_EXPIRE: define el número de segundos que dura la cookie. Por defecto 1 año.
- FS_ROUTE: la ruta web de acceso. Si está en la carpeta raíz del servidor web, entonces esta constante no tiene valor. Pero si está instalado en una carpeta, por ejemplo facturas, el valor de esta constante será
'/facturas'. - FS_API_KEY: clave de API predeterminada y con permisos globales. Si está definida, la API queda activada aunque no se haya activado desde el panel de control.
- FS_DEBUG:
truepara activar el modo debug. Por defecto esfalse. - FS_DISABLE_DEPLOY_ACTIONS:
truepara deshabilitar las opciones de reconstruir y desactivar plugins de las pantallas de error. Por defectofalse.
Idioma y región
- FS_LANG: idioma predeterminado. Por defecto
es_ES. - FS_TIMEZONE: zona horaria. Por defecto
Europe/Madrid.
Plugins y almacenamiento
- FS_HIDDEN_PLUGINS: lista de plugins ocultos, separados por comas. Por defecto
''. - FS_DISABLE_ADD_PLUGINS:
truepara desactivar la posibilidad de añadir plugins. Por defecto esfalse. - FS_DISABLE_RM_PLUGINS:
truepara desactivar la posibilidad de eliminar plugins. Por defecto esfalse. - FS_STORAGE_LIMIT: límite de almacenamiento de la biblioteca de archivos, en bytes. Por defecto
0(sin límite).
Datos iniciales (para la instalación)
- FS_INITIAL_USER: nombre de usuario inicial.
- FS_INITIAL_PASS: contraseña del usuario inicial.
- FS_INITIAL_EMAIL: email del usuario inicial.
- FS_INITIAL_EMPRESA: nombre de la empresa inicial.
- FS_INITIAL_CODPAIS: país predeterminado. Por defecto
ESP.
La clave secreta (FS_APP_KEY)
Desde la versión 2026.7, cada instalación tiene su propia clave secreta, guardada en la constante FS_APP_KEY. Con ella se firman los tokens de los formularios, los enlaces a los archivos de MyFiles y los enlaces de las páginas de error para reconstruir o desactivar plugins. Así nadie puede generar tokens válidos aunque conozca el nombre de la base de datos o su usuario.
- Instalaciones nuevas: el instalador genera la clave automáticamente (64 caracteres hexadecimales aleatorios). Si existe la variable de entorno
FS_APP_KEY, usa su valor. - Instalaciones anteriores: mientras no se añada la constante, FacturaScripts usa una clave derivada de la ruta de instalación y de los datos de conexión a la base de datos, y el Actualizador muestra un aviso con la línea exacta que hay que añadir al config.php, por ejemplo:
define('FS_APP_KEY', '3f9a1c...');
Copia la línea que te muestra el actualizador y pégala en el config.php, antes de la línea de FS_DEBUG por ejemplo. Los enlaces a archivos que ya hayas compartido seguirán funcionando.
La clave debe tener al menos 32 caracteres. No la compartas ni la cambies sin motivo: al cambiarla dejan de ser válidos los formularios abiertos y los enlaces firmados con la clave anterior.
Proxies de confianza (FS_TRUSTED_PROXIES)
FacturaScripts usa la IP del cliente para el bloqueo de IPs tras varios intentos fallidos de acceso al login o a la API, y para los registros de actividad. Desde la versión 2026.7 la IP se toma de REMOTE_ADDR y las cabeceras X-Forwarded-For y CF-Connecting-IP solo se tienen en cuenta cuando la petición llega de un proxy de confianza:
- Una IP de red privada o local (por ejemplo, un proxy inverso o un balanceador en la misma red).
- Una IP de Cloudflare. La cabecera
CF-Connecting-IPsolo se acepta de Cloudflare o de un proxy configurado. - Una IP o rango indicado en la constante FS_TRUSTED_PROXIES.
Si FacturaScripts está detrás de un proxy con IP pública que no es de Cloudflare, indícalo en el config.php para que se registre la IP real del cliente. Admite IPs o rangos CIDR, separados por comas o en un array:
define('FS_TRUSTED_PROXIES', '203.0.113.10, 198.51.100.0/24');