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%
Find a file
Richard Freitag 6ffa852479 Email addresses for SRC users (OCM invitations need one)
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>
2026-10-08 12:55:19 +01:00
app GÉANT logo and symbol no longer in the repository (fetched from geant.dev) 2026-09-30 22:59:35 +01:00
branding/geant GÉANT logo and symbol no longer in the repository (fetched from geant.dev) 2026-09-30 22:59:35 +01:00
compose Move a bucket to another storage location (T-036, step 1: rclone) 2026-09-28 23:22:38 +01:00
deploy Email addresses for SRC users (OCM invitations need one) 2026-10-08 12:55:19 +01:00
nextcloud-app Email addresses for SRC users (OCM invitations need one) 2026-10-08 12:55:19 +01:00
scripts T-054: ownCloud Infinite Scale (oCIS) as an SRC component, with OCM 2026-10-08 11:45:08 +01:00
tests Email addresses for SRC users (OCM invitations need one) 2026-10-08 12:55:19 +01:00
.gitignore GÉANT logo and symbol no longer in the repository (fetched from geant.dev) 2026-09-30 22:59:35 +01:00
CLAUDE.md T-054: ownCloud Infinite Scale (oCIS) as an SRC component, with OCM 2026-10-08 11:45:08 +01:00
Makefile T-054: ownCloud Infinite Scale (oCIS) as an SRC component, with OCM 2026-10-08 11:45:08 +01:00
README.md Import PanES3 skeleton from planning session 2026-09-26 23:03:29 +01:00
TODO.md T-054: ownCloud Infinite Scale (oCIS) as an SRC component, with OCM 2026-10-08 11:45:08 +01:00

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).