Por qué pasarse a LimeSurvey autoalojado
Las plataformas SaaS de encuestas cobran por respuesta, por puesto o por funcionalidad desbloqueada. Ese modelo funciona cuando el volumen es bajo y el equipo es pequeño, pero se vuelve costoso en cuanto una agencia gestiona varios clientes a la vez, construye formularios con lógica condicional avanzada o trabaja con datos sensibles (RRHH, salud, estudios de mercado). LimeSurvey Community Edition invierte esta dinámica: la licencia es GPL-2, el código está en GitHub y una instancia corre sobre cualquier VPS Linux. Pagáis por la infraestructura, no por el uso. A cambio, os encargáis de las actualizaciones, las copias de seguridad y la seguridad, todo lo cual cubre esta guía paso a paso.
Qué cambia concretamente el autoalojamiento
- Coste fijo y predecible — un único precio mensual de VPS cubre todos los proyectos, sin sorpresas de fin de mes ligadas al volumen de respuestas.
- Los datos bajo vuestro control — las respuestas de los encuestados no transitan por los servidores de un proveedor SaaS, lo que simplifica las obligaciones RGPD frente a vuestros clientes.
- Sin límite de respuestas — LimeSurvey Community Edition no impone cuotas: recogéis tantas respuestas como pueda almacenar vuestra base de datos.
- Lógica condicional completa — las ramificaciones, expresiones regulares y ecuaciones están disponibles en la edición comunitaria sin necesidad de actualizar el plan.
- Multi-cliente en una sola instancia — una instalación permite crear grupos de usuarios independientes por cliente, cada uno restringido a sus propias encuestas.
- Integraciones abiertas — la REST API de LimeSurvey y los plugins comunitarios se conectan a vuestros CRM, ERP o herramientas de reporting sin coste de conector.
- Actualizaciones a vuestro ritmo — elegís cuándo aplicar una nueva versión sin sufrir una migración forzada en mitad de un proyecto.
Requisitos: qué necesitáis antes de empezar
LimeSurvey Community Edition es una aplicación PHP-MariaDB estándar. En cuanto a recursos, presupuestad al menos 1 vCPU y 2 GB de RAM para pruebas o cargas ligeras (unas pocas encuestas, unos cientos de respuestas diarias). Para una agencia con entre 5 y 10 clientes activos, un VPS con 2 vCPU y 4 GB de RAM es más adecuado, ya que MariaDB crece en caché de memoria con el tiempo. Reservad 20 GB de disco: LimeSurvey almacena los medios de las encuestas (imágenes, archivos subidos por los encuestados) en su volumen de datos.
En el plano del software, necesitáis Docker y Docker Compose instalados, un dominio o subdominio apuntando a la IP del VPS (p. ej. surveys.your-domain.com) y los puertos 80 y 443 abiertos en vuestro cortafuegos. Se requiere acceso SSH con root o sudo a la máquina para la instalación.
Instalar LimeSurvey con Docker Compose, Nginx y HTTPS
Conectarse al VPS y actualizar el sistema
Abrid un terminal y conectaos por SSH:
ssh root@<ip-del-vps>. Actualizad los paquetes:apt update && apt upgrade -y. Instalad Docker si aún no está presente:curl -fsSL https://get.docker.com | sh. Verificad que Docker Compose está disponible:docker compose version.Crear el directorio del proyecto
Cread un directorio dedicado:
mkdir -p /opt/limesurvey && cd /opt/limesurvey. Esta carpeta albergará el archivodocker-compose.yml, el archivo de entorno.envy, más adelante, la configuración de Nginx.Escribir el archivo docker-compose.yml
Definid tres servicios en vuestro
docker-compose.yml: MariaDB (imagenmariadb:10.11, volumen con nombredb_datapara la persistencia), LimeSurvey (imagen oficialmartialblog/limesurvey:latest, puerto interno8080, variables de entornoDB_HOST,DB_USERNAME,DB_PASSWORD,DB_NAMEyADMIN_USER/ADMIN_PASSWORD) y Nginx (imagennginx:alpine, puertos80:80y443:443, volúmenes para/etc/nginx/conf.dy/etc/letsencrypt). Declarad una red internalimesurvey-netcompartida por los tres servicios.Configurar las variables de entorno
Cread un archivo
.enven/opt/limesurveyy rellenad los valores sensibles:DB_ROOT_PASSWORD,DB_USERNAME,DB_PASSWORD,DB_NAME=limesurvey,ADMIN_USER,ADMIN_PASSWORDyADMIN_EMAIL. La imagen de LimeSurvey lee estas variables en el primer arranque para inicializar la base de datos. No incluyáis nunca este archivo en un repositorio Git.Obtener un certificado TLS con Certbot
Antes de iniciar Nginx en modo HTTPS, obtened un certificado Let's Encrypt:
apt install certbot -yy luegocertbot certonly --standalone -d surveys.your-domain.com. El certificado se deposita en/etc/letsencrypt/live/surveys.your-domain.com/. Montad esta ruta como volumen en el contenedor Nginx.Escribir la configuración de Nginx
En
/opt/limesurvey/nginx/conf.d/limesurvey.conf, cread un host virtual que redirija el puerto 80 al 443 y luego reenvíe el tráfico HTTPS al contenedor LimeSurvey enhttp://limesurvey:8080. Añadid las cabecerasX-Frame-Options SAMEORIGIN,X-Content-Type-Options nosniffyStrict-Transport-Securitypara endurecer la configuración desde el principio. El nombre de host internolimesurveylo resuelve la red Docker.Arrancar los contenedores
Desde
/opt/limesurvey, lanzad todo:docker compose up -d. Comprobad que los tres servicios están en ejecución:docker compose ps. Si LimeSurvey tarda unos segundos mientras MariaDB termina de inicializar su esquema, esperad hasta quedocker compose logs limesurveymuestreApplication is ready.Abrir la interfaz de administración y crear vuestra primera encuesta
Navegad a
https://surveys.your-domain.com/admin. Iniciad sesión con las credencialesADMIN_USERyADMIN_PASSWORDdefinidas en vuestro.env. En el primer acceso, LimeSurvey os guía para configurar el idioma por defecto y los parámetros generales. Cread una encuesta de prueba para confirmar que las respuestas se registran correctamente en la base de datos.
LimeSurvey autoalojado vs Typeform vs LimeSurvey Cloud
Desplace la tabla
| Criterio | LimeSurvey autoalojado | Typeform Basic+ | LimeSurvey Cloud Business |
|---|---|---|---|
| Licencia | GPL-2, gratuita | SaaS propietario | SaaS propietario |
| Coste anual (agencia, 5 proyectos) | Solo el coste del VPS (299 DH/mes) | Unos 900 €/año (tras la subida de julio 2026) | Unos 65 $/mes |
| Cuota de respuestas | Sin límite (almacenamiento local) | Limitada según el plan | Limitada según el plan |
| Control de datos | Total — los datos en vuestro servidor | En Typeform | En LimeSurvey GmbH |
| Lógica condicional | Completa en la edición comunitaria | Limitada en Basic+ | Completa |
| Actualizaciones | A vuestro ritmo | Automáticas (impuestas) | Automáticas (impuestas) |
Endurecimiento posterior a la instalación
Una vez LimeSurvey esté en marcha, aplicad estos ajustes de seguridad de inmediato. En la interfaz de administración, desactivad el registro público (Ajustes globales → Seguridad → Sin registro público) a menos que necesitéis que terceros creen cuentas. Cambiad el prefijo por defecto de las tablas de MariaDB (lime_) por algo específico a vuestro despliegue, lo que reduce el impacto de los intentos genéricos de inyección SQL. En el lado de Docker, mantened el contenedor MariaDB aislado en la red interna limesurvey-net sin exponer el puerto 3306 al exterior: docker inspect limesurvey-db no debe mostrar ningún puerto vinculado a 0.0.0.0. Finalmente, programad una copia de seguridad diaria del volumen db_data con docker run --rm -v limesurvey_db_data:/data -v /opt/backups:/backup alpine tar czf /backup/limesurvey-db-$(date +%F).tar.gz /data.
Configuración post-instalación: ajustes esenciales
Tras el primer arranque, algunos ajustes hacen que LimeSurvey esté listo para el uso profesional. Empezad por la gestión de usuarios: cread una cuenta por cliente (o por jefe de proyecto) y asignadle solo los grupos de encuestas que le correspondan. Los permisos son granulares: un usuario puede crear y editar sus propias encuestas sin acceder a las estadísticas de otro cliente.
A continuación, configurad el envío de correo (Ajustes globales → Correo electrónico) para invitaciones y recordatorios. LimeSurvey puede retransmitir a través de un servidor SMTP externo: usad un relay transaccional (Postmark, Mailgun, Amazon SES) en lugar del servidor de correo de la máquina, para garantizar la entregabilidad de las invitaciones.
Por último, activad la rotación de los logs de acceso de Nginx y configurad logrotate para evitar que los archivos de log llenen el disco con el paso de los meses. Una encuesta ampliamente distribuida puede generar varios gigabytes de logs en pocas semanas.
Resolución de problemas: errores frecuentes en la primera instalación
Algunos mensajes de error aparecen con regularidad en una primera instalación de LimeSurvey bajo Docker.
SQLSTATE[HY000] [2002] Connection refused — LimeSurvey intenta conectarse a MariaDB antes de que este haya terminado de inicializarse. Añadid un depends_on con condition: service_healthy en vuestro docker-compose.yml, junto con un healthcheck en el contenedor de MariaDB (mysqladmin ping -h localhost). Sin esta guarda, LimeSurvey arranca demasiado pronto y muestra una página en blanco.
403 Forbidden en la interfaz de administración — El host virtual de Nginx no está reenviando las peticiones a LimeSurvey. Comprobad que el nombre de host en proxy_pass coincide exactamente con el nombre del servicio declarado en docker-compose.yml. Un salto de línea estilo Windows en el archivo de configuración de Nginx también puede provocar este problema en Linux.
Error: Could not connect to the database server — El nombre de la base de datos o las credenciales en el archivo .env no coinciden con los pasados al contenedor de MariaDB. Eliminad el volumen db_data, corregid el .env y reiniciad: docker compose down -v && docker compose up -d. Atención: esto borra todos los datos, haced esto solo antes de vuestro primer formulario real.
413 Request Entity Too Large — Un encuestado intenta subir un archivo mayor que el umbral por defecto de Nginx (1 MB). Añadid client_max_body_size 20m; en vuestro bloque server de Nginx y reiniciad el contenedor: docker compose restart nginx.
Próximos pasos y lecturas relacionadas
LimeSurvey autoalojado encaja bien en un ecosistema más amplio de herramientas autoalojadas. Si ya gestionáis varios clientes en un único VPS, el artículo WordPress multisitio para agencias cubre los patrones de separación de datos y accesos para una configuración multi-cliente similar. Para las notificaciones y las listas de correo vinculadas a vuestras campañas de encuestas, Listmonk autoalojado complementa a LimeSurvey gestionando los envíos masivos desde la misma infraestructura. Por último, si vuestra agencia gestiona la facturación y el seguimiento de proyectos asociados a la investigación, Odoo 17 Community autoalojado puede instalarse en el mismo VPS o en una máquina dedicada según el volumen.