2022-05-02 02:19:33 -05:00
|
|
|
|
# <div align="center"><img src="https://user-images.githubusercontent.com/58886915/166198400-c2134044-1198-4647-a8b6-da9c4a204c68.svg" width="40"/> </br>Pingvin Share</div>
|
2022-04-25 08:15:17 -05:00
|
|
|
|
|
2022-10-09 15:30:32 -05:00
|
|
|
|
Pingvin Share is self-hosted file sharing platform and an alternative for WeTransfer.
|
2022-04-25 08:15:17 -05:00
|
|
|
|
|
2022-05-06 04:22:38 -05:00
|
|
|
|
## ✨ Features
|
|
|
|
|
|
2023-02-10 08:59:19 -05:00
|
|
|
|
- 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
|
2022-05-06 04:22:38 -05:00
|
|
|
|
|
2022-12-08 11:30:12 -05:00
|
|
|
|
## 🐧 Get to know Pingvin Share
|
|
|
|
|
|
|
|
|
|
- [Demo](https://pingvin-share.dev.eliasschneider.com)
|
|
|
|
|
- [Review by DB Tech](https://www.youtube.com/watch?v=rWwNeZCOPJA)
|
|
|
|
|
|
2023-03-14 09:47:42 -05:00
|
|
|
|
<img src="https://user-images.githubusercontent.com/58886915/225038319-b2ef742c-3a74-4eb6-9689-4207a36842a4.png" width="700"/>
|
2022-12-08 11:30:12 -05:00
|
|
|
|
|
2022-05-06 04:22:38 -05:00
|
|
|
|
## ⌨️ Setup
|
2022-04-25 08:15:17 -05:00
|
|
|
|
|
2023-02-10 08:59:19 -05:00
|
|
|
|
> Note: Pingvin Share is in its early stages and may contain bugs.
|
2022-10-11 03:24:08 -05:00
|
|
|
|
|
2023-02-10 08:59:19 -05:00
|
|
|
|
### Installation with Docker (recommended)
|
2022-12-11 06:38:58 -05:00
|
|
|
|
|
2022-12-02 14:33:17 -05:00
|
|
|
|
1. Download the `docker-compose.yml` file
|
|
|
|
|
2. Run `docker-compose up -d`
|
2022-04-25 08:15:17 -05:00
|
|
|
|
|
2023-03-04 17:29:00 -05:00
|
|
|
|
The website is now listening on `http://localhost:3000`, have fun with Pingvin Share 🐧!
|
2022-04-25 08:15:17 -05:00
|
|
|
|
|
2023-02-10 08:59:19 -05:00
|
|
|
|
### Stand-alone Installation
|
|
|
|
|
|
|
|
|
|
Required tools:
|
|
|
|
|
|
2023-03-14 09:36:35 -05:00
|
|
|
|
- [Node.js](https://nodejs.org/en/download/) >= 16
|
2023-02-10 08:59:19 -05:00
|
|
|
|
- [Git](https://git-scm.com/downloads)
|
|
|
|
|
- [pm2](https://pm2.keymetrics.io/) for running Pingvin Share in the background
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
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
|
2023-02-13 04:09:53 -05:00
|
|
|
|
cd backend
|
2023-02-10 08:59:19 -05:00
|
|
|
|
npm install
|
|
|
|
|
npm run build
|
|
|
|
|
pm2 start --name="pingvin-share-backend" npm -- run prod
|
2023-02-12 13:04:12 -05:00
|
|
|
|
|
|
|
|
|
# Start the frontend
|
2023-02-13 04:09:53 -05:00
|
|
|
|
cd ../frontend
|
2023-02-12 13:04:12 -05:00
|
|
|
|
npm install
|
|
|
|
|
npm run build
|
|
|
|
|
pm2 start --name="pingvin-share-frontend" npm -- run start
|
2023-02-10 08:59:19 -05:00
|
|
|
|
```
|
|
|
|
|
|
2023-03-04 17:29:00 -05:00
|
|
|
|
The website is now listening on `http://localhost:3000`, have fun with Pingvin Share 🐧!
|
2023-02-10 08:59:19 -05:00
|
|
|
|
|
2023-01-13 04:16:35 -05:00
|
|
|
|
### Integrations
|
|
|
|
|
|
2023-02-10 08:59:19 -05:00
|
|
|
|
#### ClamAV (Docker only)
|
2023-01-13 04:16:35 -05:00
|
|
|
|
|
2023-02-10 08:59:19 -05:00
|
|
|
|
ClamAV is used to scan shares for malicious files and remove them if found.
|
2023-01-13 04:16:35 -05:00
|
|
|
|
|
|
|
|
|
1. Add the ClamAV container to the Docker Compose stack (see `docker-compose.yml`) and start the container.
|
2023-01-13 08:11:33 -05:00
|
|
|
|
2. Docker will wait for ClamAV to start before starting Pingvin Share. This may take a minute or two.
|
2023-01-13 04:16:35 -05:00
|
|
|
|
3. The Pingvin Share logs should now log "ClamAV is active"
|
|
|
|
|
|
|
|
|
|
Please note that ClamAV needs a lot of [ressources](https://docs.clamav.net/manual/Installing/Docker.html#memory-ram-requirements).
|
|
|
|
|
|
2022-12-11 06:38:58 -05:00
|
|
|
|
### Additional resources
|
|
|
|
|
|
|
|
|
|
- [Synology NAS installation](https://mariushosting.com/how-to-install-pingvin-share-on-your-synology-nas/)
|
|
|
|
|
|
2022-10-11 16:10:44 -05:00
|
|
|
|
### Upgrade to a new version
|
|
|
|
|
|
2023-02-10 08:59:19 -05:00
|
|
|
|
As Pingvin Share is in early stage, see the release notes for breaking changes before upgrading.
|
|
|
|
|
|
|
|
|
|
#### Docker
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
docker compose pull
|
|
|
|
|
docker compose up -d
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### Stand-alone
|
|
|
|
|
|
2023-03-16 03:21:53 -05:00
|
|
|
|
1. Stop the running app
|
|
|
|
|
```bash
|
|
|
|
|
pm2 stop pingvin-share-backend pingvin-share-frontend
|
|
|
|
|
```
|
2023-02-13 04:09:53 -05:00
|
|
|
|
2. Repeat the steps from the [installation guide](#stand-alone-installation) except the `git clone` step.
|
2023-03-16 03:21:53 -05:00
|
|
|
|
```bash
|
|
|
|
|
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
|
|
|
|
|
```
|
2022-04-30 16:30:23 -05:00
|
|
|
|
|
2023-03-04 17:29:00 -05:00
|
|
|
|
### Custom branding
|
|
|
|
|
|
2023-03-08 08:47:41 -05:00
|
|
|
|
You can change the name and the logo of the app by visiting the admin configuration page.
|
2023-03-04 17:29:00 -05:00
|
|
|
|
|
2022-10-09 15:30:32 -05:00
|
|
|
|
## 🖤 Contribute
|
2022-05-06 03:25:10 -05:00
|
|
|
|
|
2022-10-16 15:54:39 -05:00
|
|
|
|
You're very welcome to contribute to Pingvin Share! Follow the [contribution guide](/CONTRIBUTING.md) to get started.
|