Read this in another language: Spanish, English, Simplified Chinese
Pingvin Share is self-hosted file sharing platform and an alternative for WeTransfer.
- 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
- Integration with ClamAV for security scans
Note: Pingvin Share is in its early stages and may contain bugs.
- Download the
docker-compose.yml
file - Run
docker-compose up -d
The website is now listening on https://localhost:3000
, have fun with Pingvin Share 🐧!
Required tools:
git clone https://github.com/stonith404/pingvin-share
cd pingvin-share
# Checkout the latest version
git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`)
# Start the backend
cd backend
npm install
npm run build
pm2 start --name="pingvin-share-backend" npm -- run prod
# Start the frontend
cd ../frontend
npm install
npm run build
pm2 start --name="pingvin-share-frontend" npm -- run start
The website is now listening on https://localhost:3000
, have fun with Pingvin Share 🐧!
ClamAV is used to scan shares for malicious files and remove them if found.
- Add the ClamAV container to the Docker Compose stack (see
docker-compose.yml
) and start the container. - Docker will wait for ClamAV to start before starting Pingvin Share. This may take a minute or two.
- The Pingvin Share logs should now log "ClamAV is active"
Please note that ClamAV needs a lot of ressources.
As Pingvin Share is in early stage, see the release notes for breaking changes before upgrading.
docker compose pull
docker compose up -d
-
Stop the running app
pm2 stop pingvin-share-backend pingvin-share-frontend
-
Repeat the steps from the installation guide except the
git clone
step.cd pingvin-share # Checkout the latest version git fetch --tags && git checkout $(git describe --tags `git rev-list --tags --max-count=1`) # Start the backend cd backend npm run build pm2 restart pingvin-share-backend # Start the frontend cd ../frontend npm run build pm2 restart pingvin-share-frontend
You can customize Pingvin Share by going to the configuration page in your admin dashboard.
For installation specific configuration, you can use environment variables. The following variables are available:
Variable | Default Value | Description |
---|---|---|
PORT |
8080 |
The port on which the backend listens. |
DATABASE_URL |
file:../data/pingvin-share.db?connection_limit=1 |
The URL of the SQLite database. |
DATA_DIRECTORY |
./data |
The directory where data is stored. |
CLAMAV_HOST |
127.0.0.1 |
The IP address of the ClamAV server. |
CLAMAV_PORT |
3310 |
The port number of the ClamAV server. |
Variable | Default Value | Description |
---|---|---|
PORT |
3000 |
The port on which the frontend listens. |
API_URL |
https://localhost:8080 |
The URL of the backend for the frontend. |
You're very welcome to contribute to Pingvin Share! Follow the contribution guide to get started.