Limesurvey: Self-Hosted Survey Platform
Google Forms is convenient but stores all responses in Google's infrastructure. SurveyMonkey is expensive at scale. LimeSurvey is the mature open-source alternative for organizations that need survey functionality with full data control — used by universities, research institutions, and organizations worldwide.
Photo by 1981 Digital on Unsplash
What LimeSurvey Offers
- Question types: Single choice, multiple choice, text, matrix, date, ranking, file upload, slider, GPS, and more
- Conditional logic: Show/hide questions based on previous answers
- Multi-language: Surveys in multiple languages with translation management
- Templates: Create reusable survey templates
- Participant management: Invite specific participants, track completion
- Anonymization: Anonymous surveys with configurable settings
- Export: CSV, Excel, SPSS, JSON exports
- Statistics: Built-in basic statistics and charts
- Quotas: Stop survey when target responses reached
Docker Deployment
services:
limesurvey:
image: martialblog/limesurvey:6-apache
restart: unless-stopped
ports:
- 8080:80
volumes:
- limesurvey-upload:/var/www/html/upload
environment:
DB_TYPE: mysql
DB_HOST: limesurvey-db
DB_PORT: 3306
DB_NAME: limesurvey
DB_USERNAME: limesurvey
DB_PASSWORD: change-this
ADMIN_USER: admin
ADMIN_NAME: Admin
ADMIN_EMAIL: [email protected]
ADMIN_PASSWORD: change-this-admin-password
depends_on:
- limesurvey-db
limesurvey-db:
image: mysql:8
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root-password
MYSQL_DATABASE: limesurvey
MYSQL_USER: limesurvey
MYSQL_PASSWORD: change-this
volumes:
- limesurvey-db:/var/lib/mysql
volumes:
limesurvey-upload:
limesurvey-db:
Navigate to http://your-server:8080/index.php/admin. Log in with your admin credentials.
Creating a Survey
- Surveys → Create a new survey
- Set survey title and default language
- Create question groups (organizes questions into sections)
- Add questions to groups:
- Choose question type
- Enter question text
- Add answer options
- Set as mandatory if required
Conditional logic (relevance equations):
- Show question 5 only if question 3 was "Yes": set question 5's condition to
Q3 == "Y" - Skip to a section based on demographic answer
- LimeSurvey uses a simple expression language for conditions
Survey Modes
Public URL surveys: Share a URL anyone can complete (or require a code).
Token-based surveys: Generate individual tokens for invited participants. Each person has a unique link. Tracks who has/hasn't completed it. Can map responses back to participants while keeping response data anonymous.
Offline surveys: LimeSurvey has a tablet/kiosk mode for in-person data collection.
Exports and Analysis
After survey completion:
- Surveys → [Your Survey] → Responses → Export
- Choose format: CSV, Excel, SPSS, R
- Select response range and fields
CSV exports include all question codes and responses. Import into Excel, R, Python, or SPSS for analysis.
Built-in statistics (Browse responses → Statistics) provide basic charts and frequency tables.
Use Cases
Academic research: LimeSurvey is widely used in academic institutions. SPSS export, full data control, no data leaving institutional infrastructure.
Internal company surveys: Employee satisfaction, pulse surveys, process feedback — without sending data to SaaS vendors.
Customer feedback: Post-purchase surveys, NPS (Net Promoter Score), product research.
Event registration and feedback: Multi-stage surveys for event signups.
Public consultations: Government or community organizations collecting public input.
Comparison
| LimeSurvey | Google Forms | SurveyMonkey | |
|---|---|---|---|
| Self-hosted | ✓ | ✗ | ✗ |
| Open source | ✓ | ✗ | ✗ |
| Question types | 40+ | ~12 | 20+ |
| Conditional logic | Advanced | Basic | Advanced |
| Token management | ✓ | ✗ | Limited |
| Export formats | CSV, SPSS, Excel | CSV, Excel | CSV, Excel |
| Cost | Free (self-hosted) | Free | $99+/year |
LimeSurvey's disadvantage: it's more complex to set up and learn than Google Forms. For simple one-off surveys, Google Forms is often appropriate. For organizations with ongoing research needs or data sovereignty requirements, LimeSurvey is the right tool.
Backup
# Database backup
docker exec limesurvey-db mysqldump -u limesurvey -pchange-this limesurvey \
> limesurvey_$(date +%Y%m%d).sql
# Upload files (logos, templates, collected files)
docker cp limesurvey:/var/www/html/upload ./upload-backup-$(date +%Y%m%d)
The repository is at LimeSurvey/LimeSurvey. The self-hosted Community Edition is fully featured; LimeSurvey also sells hosted and enterprise versions with additional support.
