claper
Claper: interactive presentations, polls, quizzes and Q&A for your audience, for Co-op Cloud
- Maintainer: @ineiti
- Category: Apps
- Status: 0, work-in-progress
- Image:
ghcr.io/claperco/claper, 4, upstream - Healthcheck: Yes
- Backups: Yes
- Email: Yes (SMTP)
- Tests: No
- SSO: Yes (OIDC)
Quick start
abra app new claper --secretsabra app config <app-name>, setADMIN_EMAILabra app deploy <app-name>- Log in as
ADMIN_EMAILwith theadmin_passsecret printed byabra app new --secrets
Admin account
On every start of the app container, the account ADMIN_EMAIL is ensured to
exist and to be an admin:
- if it doesn't exist, it is created with the
admin_passsecret as password - if it exists without admin role, it is promoted to admin
- if it already is an admin, nothing changes, the password is never overwritten
Changing ADMIN_EMAIL and redeploying adds a new admin; the previous admin is
kept and has to be demoted or deleted in the admin panel if it isn't needed
anymore.
To reset the admin password to the admin_pass secret, e.g. after rotating it:
abra app secret rm <app-name> admin_passandabra app secret insert <app-name> admin_pass v1 <password>, or bumpSECRET_ADMIN_PASS_VERSIONandabra app secret generate <app-name> admin_passabra app deploy <app-name> --forceabra app cmd <app-name> app set_admin_password
Without ADMIN_EMAIL, Claper's own seeds create admin@claper.co with the
public password claper on an empty database. Change it right away, e.g. by
setting ADMIN_EMAIL=admin@claper.co and running set_admin_password.
Database migrations, the admin bootstrap and seeds run on every start of the
app container.
Without SMTP, Claper uses its local mail adapter and drops all mails (account confirmation, password resets, magic links). To send mails:
COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
SMTP_RELAY=smtp.example.com
SMTP_USERNAME=claper@example.com
SECRET_SMTP_PASS_VERSION=v1
abra app secret insert <app-name> smtp_pass v1 <password>abra app deploy <app-name> --force
Single sign-on (OIDC)
Create a client at your provider (e.g. Authentik or Keycloak) with the redirect
URI https://<DOMAIN>/users/oidc/callback, then:
COMPOSE_FILE="$COMPOSE_FILE:compose.oidc.yml"
OIDC_ISSUER=https://authentik.example.com/application/o/claper/
OIDC_CLIENT_ID=claper
SECRET_OIDC_SECRET_VERSION=v1
abra app secret insert <app-name> oidc_secret v1 <client-secret>abra app deploy <app-name> --force
To log in as admin via OIDC, set ADMIN_EMAIL to the email address of the admin
at the provider. The first OIDC login with that address is linked to the
existing admin account:
- directly, if
OIDC_TRUST_EMAIL_VERIFIED=trueand the provider marks the email as verified - otherwise after clicking a confirmation link that Claper mails to that address, which needs email to be set up
With this, DISABLE_PASSWORD_LOGIN=true (only OIDC logins) can be enabled from
the first deploy on. The admin_pass secret is still required, but not used for
logging in anymore.
S3 storage
Uploaded presentations are stored in the uploads volume by default. To use
S3 (or an S3-compatible service) instead, enable compose.s3.yml in the config
and insert the secret key with
abra app secret insert <app-name> s3_secret v1 <secret-access-key>.
Backups
Both the uploads volume and a pg_dump of the database are backed up by
backupbot.