Tutorial

Cómo alojar LimeSurvey en un VPS

Autoalojamiento8 min de lectura8 pasos

Typeform subió sus precios un 34 % en julio de 2026. SurveyMonkey también ajustó sus precios en 2026. Para una agencia que recoge datos para varios clientes, esas subidas se acumulan rápidamente. LimeSurvey Community Edition es una alternativa bajo licencia GPL-2: lo alojáis en vuestro propio VPS, los datos no salen de vuestra infraestructura y el coste se reduce al precio de la máquina. Esta guía explica cómo desplegarlo de forma limpia con Docker Compose, Nginx y MariaDB.

Contenido· Por qué pasarse a LimeSurvey autoalojado1/9
  1. 01Por qué pasarse a LimeSurvey autoalojado
  2. 02Qué cambia concretamente el autoalojamiento
  3. 03Requisitos: qué necesitáis antes de empezar
  4. 04Instalar LimeSurvey con Docker Compose, Nginx y HTTPS
  5. 05LimeSurvey autoalojado vs Typeform vs LimeSurvey Cloud
  6. 06Endurecimiento posterior a la instalación
  7. 07Configuración post-instalación: ajustes esenciales
  8. 08Resolución de problemas: errores frecuentes en la primera instalación
  9. 09Próximos pasos y lecturas relacionadas

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

  1. 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.

  2. Crear el directorio del proyecto

    Cread un directorio dedicado: mkdir -p /opt/limesurvey && cd /opt/limesurvey. Esta carpeta albergará el archivo docker-compose.yml, el archivo de entorno .env y, más adelante, la configuración de Nginx.

  3. Escribir el archivo docker-compose.yml

    Definid tres servicios en vuestro docker-compose.yml: MariaDB (imagen mariadb:10.11, volumen con nombre db_data para la persistencia), LimeSurvey (imagen oficial martialblog/limesurvey:latest, puerto interno 8080, variables de entorno DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME y ADMIN_USER / ADMIN_PASSWORD) y Nginx (imagen nginx:alpine, puertos 80:80 y 443:443, volúmenes para /etc/nginx/conf.d y /etc/letsencrypt). Declarad una red interna limesurvey-net compartida por los tres servicios.

  4. Configurar las variables de entorno

    Cread un archivo .env en /opt/limesurvey y rellenad los valores sensibles: DB_ROOT_PASSWORD, DB_USERNAME, DB_PASSWORD, DB_NAME=limesurvey, ADMIN_USER, ADMIN_PASSWORD y ADMIN_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.

  5. Obtener un certificado TLS con Certbot

    Antes de iniciar Nginx en modo HTTPS, obtened un certificado Let's Encrypt: apt install certbot -y y luego certbot 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.

  6. 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 en http://limesurvey:8080. Añadid las cabeceras X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff y Strict-Transport-Security para endurecer la configuración desde el principio. El nombre de host interno limesurvey lo resuelve la red Docker.

  7. 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 que docker compose logs limesurvey muestre Application is ready.

  8. Abrir la interfaz de administración y crear vuestra primera encuesta

    Navegad a https://surveys.your-domain.com/admin. Iniciad sesión con las credenciales ADMIN_USER y ADMIN_PASSWORD definidas 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

CriterioLimeSurvey autoalojadoTypeform Basic+LimeSurvey Cloud Business
LicenciaGPL-2, gratuitaSaaS propietarioSaaS 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 respuestasSin límite (almacenamiento local)Limitada según el planLimitada según el plan
Control de datosTotal — los datos en vuestro servidorEn TypeformEn LimeSurvey GmbH
Lógica condicionalCompleta en la edición comunitariaLimitada en Basic+Completa
ActualizacionesA vuestro ritmoAutomá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.

Gestionad las encuestas de todos vuestros clientes desde un único VPS

Un VPS Power de ServOrbit es suficiente para ejecutar LimeSurvey y atender a varios clientes simultáneamente. Acceso root, Docker preinstalado, recursos dedicados: vuestra instancia estará en marcha en menos de una hora.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva