Self-Hosting
Host your own instance of Emberly — the open-source file sharing and management platform.
Emberly is fully open source (AGPL-3.0). You can self-host a complete instance with full control over your data, storage, authentication, and domain configuration.
Development Setup
Get the full stack running locally for development.
Production Deployment
Deploy Emberly to a server with Docker Compose.
Environment Variables
Complete reference for all configuration options.
Storage Configuration
MinIO, AWS S3, Cloudflare R2, and other S3-compatible storage options.
Cloudflare Setup
Configure Cloudflare SSL-for-SaaS for custom domain TLS.
Contributing
How to contribute code, fixes, and improvements.
Stack Overview
| Component | Technology | Purpose |
|---|---|---|
| Web application | Next.js 16, React 19 | App, API routes, dashboard |
| Database | PostgreSQL 14+ via Prisma | Users, files, domains, billing |
| Cache | Redis 7+ | Chunked upload sessions, caching |
| File storage | S3-compatible (AWS, Vultr, Linode, OVHcloud, MinIO) | Object storage |
| Authentication | NextAuth.js v4 | OAuth (GitHub, Discord) and email/password |
| Resend or SMTP | Transactional email | |
| Custom domains | Cloudflare SSL-for-SaaS | Automatic TLS for user domains (optional) |
Minimum Requirements
- Node.js 18+ and Bun
- PostgreSQL 14+
- Redis 7+
- S3-compatible object storage bucket
- A Cloudflare zone (optional — only needed for the custom domain TLS feature)
Source Code
The GitHub repository contains the full application including database migrations, scripts, and CI workflows.
Configuration Model
Most integration credentials (S3 keys, Stripe, Resend, Cloudflare, VirusTotal) are configured post-install through the Admin Panel → Settings → Integrations UI and stored in the database — not in environment variables. The only things that must be in .env before first run are the database URL, Redis URL, NextAuth secret, and optional OAuth credentials.
See Environment Variables for the full list.