Pingvin Share is self-hosted file sharing platform and an alternative for WeTransfer.
Demo: https://pingvin-share.dev.eliasschneider.com
- Create a simple share with a link
- No file size limit, only your disk will be your limit
- Optionally secure your share with a visitor limit and a password
- Dark mode
Pleas note that Pingvin Share is in early stage and could include some bugs
- Download the
docker-compose.ymland.env.examplefile. - Rename the
.env.examplefile to.envand change the environment variables so that they fit to your environment. If you need help with the environment variables take a look here - Run
docker-compose up -d
The website is now listening available on http://localhost:3000, have fun with Pingvin Share 🐧!
| Variable | Description | Possible values |
|---|---|---|
APP_URL |
On which URL Pingvin Share is available. E.g http://localhost or https://pingvin-share.com. | URL |
SHOW_HOME_PAGE |
Whether the Pingvin Share home page should be shown. | true/false |
ALLOW_REGISTRATION |
Whether a new user can create a new account. | true/false |
MAX_FILE_SIZE |
Maximum allowed size per file in bytes. | Number |
JWT_SECRET |
Long random string to sign the JWT's. | Random string |
Just updated the docker container by running docker-compose pull && docker-compose up -d
Note: If you installed Pingvin Share before it used Sqlite, you unfortunately have to set up the project from scratch again, sorry for that.
You're very welcome to contribute to Pingvin Share! Contact me, create an issue or directly create a pull request.
- Open the
backendfolder - Duplicate the
.env.examplefile, rename the duplicate to.envand change the environment variables if needed - Install the dependencies with
npm install - Push the database schema to the database by running
npx prisma db push - Start the backend with
npm run dev
- Start the backend first
- Open the
frontendfolder - Duplicate the
.env.examplefile, rename the duplicate to.envand change the environment variables if needed - Install the dependencies with
npm install - Start the frontend with
npm run dev
You're all set!
