LimeSurvey
Open source survey application. https://www.limesurvey.org
Prerequisites
Limesurvey does not play nice with postgres. The database connection via a socket is not supported, and as a result the nixpkgs module is also halfbroken with postgres.
This module does not use our usual single sign-on process via OIDC. Support via a plugin is possible, but still needs to be implemented.
There are currently no working tests for this module.
As a workaround Momo Cloud vendors its own limesurvey module, which creates the
postgres user together with a password allowing for TCP connections. This opens
up the possibility of a createLocal.
Limesurvey uses the yii php framework, currently in Version 1.1 which is EOL at the end of 2026. There appear to not be any public upgrade plans.
Usage
momo-cloud.limesurvey = {
enable = true;
databasePasswordFile = config.age.secrets."limesurvey-database-password".path;
encryptionKeyFile = config.age.secrets."limesurvey-encryption-key".path;
encryptionNonceFile = config.age.secrets."limesurvey-encryption-nonce".path;
oidcSecretFile = config.age.secrets."limesurvey-oidc-secret".path;
};
Secrets
To generate the encryption key for encryptionKeyFile, you can use xxd:
xxd -u -l 32 -p /dev/urandom
The encryption nonce for encryptionNonceFile works the same, but with 24 bytes:
xxd -u -l 24 -p /dev/urandom
To generate the OIDC secret for oidcSecretFile, used by services.kanidm.provision, you can use xxd:
xxd -u -l 32 -p /dev/urandom
To generate the postgres database password for databasePasswordFile, you can use xxd:
xxd -u -l 32 -p /dev/urandom
After setup, the admin user account will have the password password. This needs to be changed!
OIDC
An OIDC Plugin is shipped with the momo cloud LimeSurvey module, however it is not enabled by default.
The reason for this is that automatic user and group creation does not exist. You will have to log in to an existing admin user and create user accounts manually. These will then be able to log in via OIDC.
Plugins
Plugins can be added as simple zip file packages. They are available for installation in LimeSurvey, however they are not automatically installed or activated since LimeSurvey does not provide an easy API or CLI to do this.