llong2195 / my-storage

A self-hosted file sharing platform.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Pingvin Share


Read this in another language: Spanish, English, Simplified Chinese


Pingvin Share is 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
  • Integration with ClamAV for security scans

🐧 Get to know Pingvin Share

⌨️ Setup

Note: Pingvin Share is in its early stages and may contain bugs.

Installation with Docker (recommended)

  1. Download the docker-compose.yml file
  2. Run docker-compose up -d

The website is now listening on http://localhost:3000, have fun with Pingvin Share 🐧!

Stand-alone Installation

Required tools:

  • Node.js >= 16
  • Git
  • pm2 for running Pingvin Share in the background
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 http://localhost:3000, have fun with Pingvin Share 🐧!

Integrations

ClamAV (Docker only)

ClamAV is used to scan shares for malicious files and remove them if found.

  1. Add the ClamAV container to the Docker Compose stack (see docker-compose.yml) and start the container.
  2. Docker will wait for ClamAV to start before starting Pingvin Share. This may take a minute or two.
  3. The Pingvin Share logs should now log "ClamAV is active"

Please note that ClamAV needs a lot of ressources.

Additional resources

Upgrade to a new version

As Pingvin Share is in early stage, see the release notes for breaking changes before upgrading.

Docker

docker compose pull
docker compose up -d

Stand-alone

  1. Stop the running app

    pm2 stop pingvin-share-backend pingvin-share-frontend
  2. 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

Custom branding

You can change the name and the logo of the app by visiting the admin configuration page.

🖤 Contribute

You're very welcome to contribute to Pingvin Share! Follow the contribution guide to get started.

About

A self-hosted file sharing platform.

License:BSD 2-Clause "Simplified" License


Languages

Language:TypeScript 99.0%Language:Dockerfile 0.8%Language:JavaScript 0.2%