Public user registration handler for a self-hosted Overleaf instance
Find a file
2022-02-22 11:39:39 +01:00
.github/workflows Initial commit 2022-02-21 18:40:10 +01:00
static New registration page (#1) 2022-02-22 10:56:59 +01:00
templates New registration page (#1) 2022-02-22 10:56:59 +01:00
.dockerignore Initial commit 2022-02-21 18:40:10 +01:00
.gitignore Initial commit 2022-02-21 18:40:10 +01:00
docker-compose.yml Initial commit 2022-02-21 18:40:10 +01:00
Dockerfile Bind on all interfaces 2022-02-22 11:37:54 +01:00
LICENSE Initial commit 2022-02-21 18:40:10 +01:00
main.py Re-enable registrations 2022-02-22 11:39:39 +01:00
overleaf.py Initial commit 2022-02-21 18:40:10 +01:00
README.md Initial commit 2022-02-21 18:40:10 +01:00
requirements.txt Add BeautifulSoup4 to requirements.txt 2022-02-22 11:27:43 +01:00
wsgi.py Initial commit 2022-02-21 18:40:10 +01:00

Overleaf registration worker

Public user registration for a self-hosted Overleaf instance.

Why?

We are planning to offer a public Overleaf instance to our users (students and teachers), but the Community Edition does not support autonomous user registration: only the site administrator can create users via the admin panel.

This limitation is unacceptable for our use case, so we implemented it ourselves.

How?

A simple form (available on /register path) is offered to the user asking for its email; the application then logs into the Overleaf instance with the administrator account and sends a request to create a user.

The user can now create an account by clicking the confirmation link on its mailbox.

Deployment

There is a Docker image available on ghcr.io/studentiunimi/overleaf-registration, automatically built by GitHub Actions. You can check the example docker-compose.yml file and tweak it with your configuration.

Environment variables

The Docker container needs all the following environment variables to function properly:

Environment variable Description
CAPTCHA_SERVER_KEY reCAPTCHA v3 server key
CAPTCHA_CLIENT_KEY reCAPTCHA v3 client key
OL_INSTANCE Overleaf self-hosted instance (without trailing /)
OL_ADMIN_EMAIL Overleaf administrator account email
OL_ADMIN_PASSWORD Overleaf administrator account password