explaingit

stonith404/pingvin-share

4,677TypeScriptAudience · ops devopsComplexity · 3/5Setup · easy

TLDR

A self-hosted file sharing platform where you send files via a shareable link, like WeTransfer but running on your own server, so your files never leave your control.

Mindmap

mindmap
  root((Pingvin Share))
    What it does
      Shareable file links
      Link expiration
      Password protection
    Upload Control
      Reverse share links
      Download limits
      Email notifications
    Auth
      OIDC single sign-on
      LDAP directory
    Storage
      Local disk
      S3 compatible
    Security
      ClamAV scanning
      Self-hosted data
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Send large files to clients or teammates using a password-protected link that expires after a set time.

USE CASE 2

Let external people upload files to your server by sending them a reverse-share link without giving them full access.

USE CASE 3

Replace a third-party file transfer service to keep sensitive documents entirely on your own infrastructure.

Tech stack

TypeScriptDockerOIDCLDAPS3ClamAV

Getting it running

Difficulty · easy Time to first run · 30min

Project is archived and no longer maintained, Docker setup is straightforward but future security updates will not come from the original author.

No license terms are stated in the explanation.

In plain English

Pingvin Share is a self-hosted file sharing platform that lets you send files to other people using a shareable link, similar to services like WeTransfer but running on your own server. Because you host it yourself, there is no third-party company holding your files, and the only storage limit is whatever disk space you have available. When you share a set of files, you can control how long the link stays active by setting an expiration date. You can also restrict access with a password or limit how many times the link can be opened. There is an option to notify recipients by email, and a reverse share feature that lets someone else upload files directly to your server through a link you send them. Authentication is handled through OIDC (a single sign-on standard) or LDAP (a directory service common in corporate environments). Files can be stored on the local server disk or in S3-compatible object storage. ClamAV, an open-source antivirus scanner, can be plugged in to scan uploaded files for malware. Setup is designed to be straightforward. The recommended approach is Docker: download a compose file, run one command, and the interface is available in a browser on port 3000. More detailed installation options and configuration settings are covered in the project's separate documentation site. It is worth noting that the project is now archived. The developer, a solo maintainer, chose to stop active development to concentrate on another project called Pocket ID. The code remains available and usable, but will not receive ongoing updates from the original author. Anyone wanting to continue development is encouraged to fork it. The project accepted translations and code contributions through its active period, and links to both contribution paths remain in the README.

Copy-paste prompts

Prompt 1
I want to set up Pingvin Share on my server using Docker Compose. Give me the exact steps from downloading the compose file to accessing the UI on port 3000.
Prompt 2
How do I configure Pingvin Share to use S3-compatible storage like Backblaze B2 instead of local disk for uploaded files?
Prompt 3
I need to integrate Pingvin Share with my company's LDAP directory for authentication. Walk me through the LDAP configuration options.
Prompt 4
Set up Pingvin Share with ClamAV antivirus scanning enabled, what do I need to add to the Docker Compose file?
Open on GitHub → Explain another repo

← stonith404 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.