---
title: "Deploy Safebucket"
description: "File transfer and sharing: send files via expiring links. WeTransfer, 2FA"
category: "Storage"
url: https://railway.com/deploy/safebucket
---

# Deploy Safebucket

File transfer and sharing: send files via expiring links. WeTransfer, 2FA

**[Deploy Safebucket on Railway](https://railway.com/template/safebucket)**

- **Creator:** Auromations
- **Category:** Storage
- **Total deploys:** 2

## Template content

### MinIO

- **Image:** ghcr.io/hmseeb/safebucket-railway-minio:latest
- **Health check:** /minio/health/live
- **Public domain:** Yes

### Safebucket https://raw.githubusercontent.com/safebucket/safebucket/main/web/public/logo512.png

- **Image:** ghcr.io/safebucket/safebucket:latest
- **Health check:** /
- **Public domain:** Yes

### Postgres

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:17

## Documentation

# Safebucket

Secure, self-hosted file sharing: buckets, sharing with people inside and outside your team, MFA, trash retention, and an audit trail — behind your own domain.

## What you get

- **Safebucket** — the app (API + web UI) on a public domain
- **Postgres 17** — the database, on a volume with daily backups
- **MinIO** — S3-compatible file storage, on a volume with daily backups; your browser uploads and downloads files directly against it with presigned URLs

## Setup

Fill in exactly two fields at deploy time:

- **Admin email** — your login
- **Admin password** — pick something strong; you can enable MFA after logging in

Everything else (session signing key, MFA encryption key, database and storage passwords) is generated fresh for your deployment. When the deploy finishes, open the Safebucket service's URL and log in.

## Notes

- Invite/share emails are written to files inside the container by default (not sent). To send real email, set `NOTIFIER__TYPE=smtp` and add `NOTIFIER__SMTP__HOST`, `__PORT`, `__USERNAME`, `__PASSWORD`, `__SENDER`, `__TLS_MODE` on the Safebucket service.
- The audit trail is stored on the container filesystem and resets on redeploys. Point `ACTIVITY__TYPE=loki` at a Loki service for a persistent trail.
- Single-instance by design (in-memory cache and queue). Add Valkey (`CACHE__TYPE=valkey`) and NATS JetStream (`EVENTS__TYPE=jetstream`) before scaling out.

Template source and companion storage image: https://github.com/hmseeb/safebucket-railway


## Similar templates

- [Garage S3 Storage](https://railway.com/deploy/garage-s3-storage) — Ultra-light S3 server: fast, open-source, plug-and-play.
- [Redis](https://railway.com/deploy/redis-1) — Self Host Latest Redis with Railway
- [EasyImg](https://railway.com/deploy/easyimg) — Simple self-hostable Nuxt.js personal image hosting system.

Open this page in a browser: https://railway.com/deploy/safebucket
