Open source self-hosted S3 portal

Manage files in S3 with a flow your team can actually use.

Connect your S3 credentials, upload and share files, and manage team access from one clean UI.

Zero fluff

What S3 Portal does

S3 Portal is a production-grade, self-hosted file management portal for teams. You bring your own AWS credentials, and the portal handles uploads, sharing, access control, and audit trails.

Files go directly from the browser to S3; nothing ever touches your server. That gives teams full control over storage while keeping the day-to-day workflow usable.

Direct S3 Integration

Connect any S3-compatible provider and keep your data on infrastructure you already control.

Zero-Trust Security

Role-based access with audit logs, encrypted credentials, and no plaintext storage of secrets.

Parallel Uploads

Blazing fast multipart transfers for large files without routing uploads through your app server.

Quick setup

Self-hosting steps

1

Download

Fetch compose and environment template files.

Command

curl -LO https://github.com/mayurG2299/s3-portal/raw/master/docker-compose.production.yml
curl -LO https://github.com/mayurG2299/s3-portal/raw/master/.env.example
2

Create .env

Copy the template so values can be edited safely.

Command

cp .env.example .env
3

Generate keys

Generate and write secrets into the existing .env file.

Command

NEXTAUTH_SECRET=$(openssl rand -base64 32)
ENCRYPTION_KEY=$(openssl rand -base64 32 | cut -c1-32)
sed -i.bak "s|^NEXTAUTH_SECRET=.*|NEXTAUTH_SECRET=\"$NEXTAUTH_SECRET\"|" .env
sed -i.bak "s|^ENCRYPTION_KEY=.*|ENCRYPTION_KEY=\"$ENCRYPTION_KEY\"|" .env
rm -f .env.bak
4

Configure values

Set DB URL and other required variables in .env.

Command

nano .env
5

Start

Start all services with Docker Compose.

Command

docker compose -f docker-compose.production.yml up -d