https://github.com/minemap-nl/nexoshare
Secure, self-hosted file sharing platform with 2FA, Passkeys, SSO, Reverse Shares, and ClamAV integration. Built with React, Bun, and PostgreSQL.
https://github.com/minemap-nl/nexoshare
2factor-authentication file-sharing passkey-authentication sso-authentication wetransfer
Last synced: 5 months ago
JSON representation
Secure, self-hosted file sharing platform with 2FA, Passkeys, SSO, Reverse Shares, and ClamAV integration. Built with React, Bun, and PostgreSQL.
- Host: GitHub
- URL: https://github.com/minemap-nl/nexoshare
- Owner: minemap-nl
- Created: 2025-12-24T12:49:32.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-11T06:25:53.000Z (6 months ago)
- Last Synced: 2026-01-13T22:52:49.965Z (5 months ago)
- Topics: 2factor-authentication, file-sharing, passkey-authentication, sso-authentication, wetransfer
- Language: TypeScript
- Homepage: https://nexoshare.famretera.nl
- Size: 501 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Nexo Share
A powerful, self-hosted, and secure file-sharing platform.
Share large files securely with password protection, expiration dates, and 2FA support.
View Demo & More Info ยป
Report Bug
ยท
Request Feature
---
Table of Contents
---
## About The Project
**Nexo Share** is designed as a secure alternative to public file transfer services. It allows you to host your own file-sharing platform while retaining full control over your data.
Unlike many standard open-source solutions, Nexo Share focuses heavily on security-first features such as **(mandatory) 2FA**, **passkey authentication**, and **ClamAV virus scanning**, while still offering user-friendly workflows like **Reverse Shares** that allow external users to send files to you without creating an account.
### Screenshots
### Built With
* [React][react-url]
* [TypeScript][typescript-url]
* [Bun][bun-url]
* [Express][express-url]
* [PostgreSQL][postgresql-url]
* [Docker][docker-url]
---
## Key Features
* **๐ Secure Sharing** โ Password-protected shares with automatic expiration.
* **๐ Chunked Uploads** โ Reliably upload very large files and folders (limited only by server storage).
* **๐ Reverse Shares** โ Public drop-off links that allow guests to securely upload files to you.
* **๐ก๏ธ Advanced Security**
* Two-Factor Authentication (TOTP)
* Passkey support (Face ID, Touch ID, Windows Hello)
* ClamAV virus scanning integration
* **๐ SSO Support** โ OpenID Connect (OIDC) integration.
* **โ๏ธ Admin Dashboard** โ Manage users, global settings, SMTP configuration, and audit logs.
---
## Getting Started
The recommended way to install **Nexo Share** is via **Docker**.
### Prerequisites
* **Docker** and **Docker Compose** installed on your server.
### Installation (Docker)
1. Create a directory for the project and navigate into it.
2. Create a file named `docker-compose.yml`.
3. Paste the following configuration:
```yaml
services:
nexoshare:
image: ghcr.io/minemap-nl/nexoshare:latest
container_name: nexoshare
restart: unless-stopped
ports:
- "3000:3000"
environment:
PORT: 3000
DB_HOST: postgres
DB_PORT: 5432
DB_NAME: nexoshare
DB_USER: nexoshare
DB_PASSWORD: CHANGE_THIS_PASSWORD
JWT_SECRET: CHANGE_THIS_SECRET
UPLOAD_DIR: /app/backend/uploads
APP_URL: http://localhost:3000
ALLOWED_ORIGINS: http://localhost:3000
NODE_ENV: production
TZ: UTC
APP_LOCALE: en-GB
CLAMAV_HOST: clamav
CLAMAV_PORT: 3310
volumes:
- ./uploads:/app/backend/uploads
depends_on:
postgres:
condition: service_healthy
clamav:
condition: service_healthy
postgres:
image: postgres:17-alpine
container_name: nexoshare_db
restart: unless-stopped
environment:
POSTGRES_USER: nexoshare
POSTGRES_PASSWORD: CHANGE_THIS_PASSWORD
POSTGRES_DB: nexoshare
healthcheck:
test: ["CMD-SHELL", "pg_isready -U nexoshare -d nexoshare"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ./data:/var/lib/postgresql/data
clamav:
image: clamav/clamav:latest
container_name: nexoshare_clamav
restart: unless-stopped
healthcheck:
test: ["CMD", "nc", "-z", "localhost", "3310"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s
volumes:
- ./clamav:/var/lib/clamav
```
4. Start the stack:
```sh
docker compose up -d
```
---
## Usage
Once the containers are running, open:
```
http://localhost:3000
```
(or your configured domain).
### First-Time Setup
On first startup, database tables are created automatically. If no users exist, a default admin account is created:
* **Email:** `admin@nexoshare.com`
* **Password:** `admin123`
> โ ๏ธ **Important:** Log in immediately and change these credentials.
---
## License
**Source Available โ MIT with Commons Clause**
This project is licensed under the **MIT License** with the **Commons Clause** condition.
* โ
You may use, copy, modify, and distribute this software for personal or internal business use.
* โ
You may use this software to share files with clients or partners as part of normal business operations.
* โ You may **not** sell this software or offer it as a commercial SaaS product where the primary value comes from the software itself.
See the `LICENSE` file for details.
---
## Contact
**Minemap / Famretera**
Website: https://nexoshare.famretera.nl
Project Repository: https://github.com/minemap-nl/nexoshare
---
[contributors-shield]: https://img.shields.io/github/contributors/minemap-nl/nexoshare.svg?style=for-the-badge
[contributors-url]: https://github.com/minemap-nl/nexoshare/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/minemap-nl/nexoshare.svg?style=for-the-badge
[forks-url]: https://github.com/minemap-nl/nexoshare/network/members
[stars-shield]: https://img.shields.io/github/stars/minemap-nl/nexoshare.svg?style=for-the-badge
[stars-url]: https://github.com/minemap-nl/nexoshare/stargazers
[issues-shield]: https://img.shields.io/github/issues/minemap-nl/nexoshare.svg?style=for-the-badge
[issues-url]: https://github.com/minemap-nl/nexoshare/issues
[license-shield]: https://img.shields.io/github/license/minemap-nl/nexoshare.svg?style=for-the-badge
[license-url]: https://github.com/minemap-nl/nexoshare/blob/main/LICENSE
[react-url]: https://reactjs.org/
[typescript-url]: https://www.typescriptlang.org/
[bun-url]: https://bun.sh/
[express-url]: https://expressjs.com/
[postgresql-url]: https://www.postgresql.org/
[docker-url]: https://www.docker.com/