PanES3: S3 storage for research, in Nextcloud (web app, Nextcloud apps, SURF Research Cloud components)
- Python 68.9%
- PHP 12.2%
- Jinja 6.8%
- HTML 6.2%
- Shell 4.5%
- Other 1.3%
SRC gives only a username, and Contacts' invite-accepted is refused
without an email address ("user data is incomplete"). The header
login app (0.5.0) gives accounts without one <uid>@<email_domain>;
the Nextcloud role sets email_domain to noreply.<public name>
(nextcloud_email_domain). Addresses set otherwise are kept.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
||
|---|---|---|
| app | ||
| branding/geant | ||
| compose | ||
| deploy | ||
| nextcloud-app | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| CLAUDE.md | ||
| Makefile | ||
| README.md | ||
| TODO.md | ||
PanES3
Self-service S3 buckets for research projects. Each bucket gets its own access key and shows up as a folder in Nextcloud. Part of the GÉANT Above-the-Net Services Incubator (SUNET, SURF).
Stack: FastAPI (Python) · RustFS · Nextcloud · Docker Compose · Ansible.
Quick start (local)
make up # builds and starts RustFS, Nextcloud, PanES3 and a dev auth proxy
make seed # waits for Nextcloud, enables external storage, creates user 'alice'
open http://localhost:8080
make smoke # end-to-end check
Requires Docker with Compose v2, make and Python 3.11+.
See CLAUDE.md for architecture and conventions and TODO.md for the plan.
License: AGPL-3.0-or-later (code), CC BY 4.0 (documentation).