Pingvin Share X is a fork of Pingvin Share, a self-hosted file sharing platform and an alternative for WeTransfer.
Features
- Share files using a link
- Unlimited file size (restricted only by disk space)
- Set an expiration date for shares
- Secure shares with visitor limits and passwords
- Email recipients
- Reverse shares
- OIDC and LDAP authentication
- Integration with ClamAV for security scans
- Different file providers: local storage and S3
Setup
Installation with Docker (recommended)
- Download the
docker-compose.ymlfile - Run
docker compose up -d
The website is now listening on http://localhost:3000.
[!TIP] Checkout stonith404/Pocket ID, a user-friendly OIDC provider that lets you easily log in to services like Pingvin Share X using Passkeys. Made by the original creator of Pingvin Share.
Documentation
For more installation options and advanced configurations, please refer to the documentation.
Contributing
All contributions are welcome, including issues, feature suggestions, pull requests and translations.
Translations
This project supports 28 languages so far (to varying degrees), you can help complete those translations or add more at CrowdIn.
AI Usage Policy
Anyone submitting code to this repo needs to read and comply with the project's AI Usage Policy. Submissions that do not comply with be closed.
Getting started
If you have found a bug, have suggestion or something else, please create an issue.
Submit a Pull Request
Before you submit the pull request for review please ensure that
-
The pull request naming follows the Conventional Commits specification:
<type>[optional scope]: <description>example:
feat(share): add password protectionWhen
TYPEcan be:- feat - is a new feature
- doc - documentation only changes
- fix - a bug fix
- refactor - code change that neither fixes a bug nor adds a feature
-
Your pull request has a detailed description
-
You run
npm run formatto format the code
Setup project
Backend
- Open the
backendfolder - Install the dependencies with
npm install - Push the database schema to the database by running
npx prisma db push - Seed the database with
npx prisma db seed - Start the backend with
npm run dev
Frontend
- Start the backend first
- Open the
frontendfolder - Install the dependencies with
npm install - Start the frontend with
npm run dev
You're all set!
Testing
At the moment we only have system tests for the backend. To run these tests, run npm run test:system in the backend folder.
Sponsors
If you find Pingvin Share X useful and would like to support its ongoing development and maintenance please consider becoming a sponsor!
I would like to host a demo instance online for people to try out Pingvin, your sponsorship would make this possible.
As a token of appreciation, sponsors can have their profile or company logo displayed right here in this section.
Our Awesome Sponsors
![]() Your Name Here |
|---|
đź’– Support the project via GitHub Sponsors
