Teapot provides a multi-tenant WebDAV service based on StoRM-WebDAV.
A manager layer accepts incoming requests, authenticates the user, determines the corresponding local username, and starts a StoRM-WebDAV server instance for that user. Each instance listens on a randomly assigned port, and the manager forwards the user’s requests to that port.
If a StoRM-WebDAV server is inactive for 10 minutes, it is shut down by the manager. When a request arrives for a different user, a new StoRM-WebDAV server instance is started in the same way.
The required Python packages are listed in
requirements.txt.
Python packages that are not available as system packages are bundled in the
RPM and DEB packages.
To automatically generate self-signed certificates, openssl >= 3 is required.
StoRM-WebDAV requires Java 21.
Teapot can be installed using either an RPM or DEB package.
Both automatically create a dedicated teapot system user.
- DEB package: Distribution-independent.
- RPM package: Available for Fedora 39, AlmaLinux 9.4, and Rocky Linux 8.10/9.3.
For configuration details, please refer to CONFIGURATION.md, which covers both Teapot and StoRM-WebDAV.
Teapot is started automatically upon installation via a systemd unit. After configuration,
you can restart the service with: sudo systemctl restart teapot.service.
To ensure Teapot starts automatically after each reboot, enable the service:
sudo systemctl enable teapot.service.
Functional tests can be found in /robot. To execute them, run robot teapot-tests.robot.
The current version of Teapot is 0.21.0, and it uses Storm-Webdav version 1.12.0.
Paul Millar, Dijana Vrbanec, Tim Wetzel
Teapot is a WebDAV solution that supports multi-tenancy. It is based on StoRM-WebDAV.