Pingvin-Share-X

Pingvin-Share-X

Docker app from grtgbln's Repository

Overview

Pingvin Share X is a fork of Pingvin Share, a self-hosted file sharing platform and an alternative for WeTransfer.

Pingvin Share X

GitHub Release Crowdin Docker Pulls GitHub Sponsors

Pingvin Share X is a fork of Pingvin Share, a 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
  • Reverse shares
  • OIDC and LDAP authentication
  • Integration with ClamAV for security scans
  • Different file providers: local storage and S3

Setup

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.

[!TIP] Checkout stonith404/Pocket ID, a user-friendly OIDC provider that lets you easily log in to services like Pingvin Share X using Passkeys. Made by the original creator of Pingvin Share.

Documentation

For more installation options and advanced configurations, please refer to the documentation.

Sponsors

If you find Pingvin Share X useful and would like to support its ongoing development and maintenance please consider becoming a sponsor!

I would like to host a demo instance online for people to try out Pingvin, your sponsorship would make this possible.

As a token of appreciation, sponsors can have their profile or company logo displayed right here in this section.

Our Awesome Sponsors


Your Name Here

💖 Support the project via GitHub Sponsors

Contributing

All contributions are welcome, including issues, feature suggestions, pull requests and translations.

Translations

This project supports 32 languages so far (to varying degrees), you can help complete those translations or add more at CrowdIn.

AI Usage Policy

Anyone submitting code to this repo needs to read and comply with the project's AI Usage Policy. Submissions that do not comply with be closed.

Getting started

If you have found a bug, have suggestion or something else, please create an issue.

Submit a Pull Request

Before you submit the pull request for review please ensure that

  • The pull request naming follows the Conventional Commits specification:

    <type>[optional scope]: <description>

    example:

    feat(share): add password protection
    

    When TYPE can be:

    • feat - is a new feature
    • doc - documentation only changes
    • fix - a bug fix
    • refactor - code change that neither fixes a bug nor adds a feature
  • Your pull request has a detailed description

  • You run npm run format to format the code

Setup project

Backend

  1. Open the backend folder
  2. Install the dependencies with npm install
  3. Push the database schema to the database by running npx prisma db push
  4. Seed the database with npx prisma db seed
  5. Start the backend with npm run dev

Frontend

  1. Start the backend first
  2. Open the frontend folder
  3. Install the dependencies with npm install
  4. Start the frontend with npm run dev

You're all set!

Testing

At the moment we only have system tests for the backend. To run these tests, run npm run test:system in the backend folder.

Install Pingvin-Share-X on Unraid in a few clicks.

Find Pingvin-Share-X in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Pingvin-Share-X Review the template variables and paths Click Install

Download Statistics

48,893
Total Downloads
24,837
This Month
24,837
Avg / Month

Total Downloads Over Time

Loading chart...

Details

Repository
smp46/pingvin-share-x:latest
Last Updated2026-07-01
First Seen2025-10-14

Runtime arguments

Web UI
http://[IP]:[PORT:3000]/
Network
bridge
Privileged
false

Template configuration

Web UI PortPorttcp

Container Port: 3000

Target
3000
Default
3000
Value
3000
Behind Reverse ProxyVariable

Set to true if running behind a reverse proxy

Target
TRUST_PROXY
Default
false|true
Data PathPath

Path to store uploaded files

Target
/opt/app/backend/data
Default
/mnt/user/appdata/pingvin_share_x/data
Value
/mnt/user/appdata/pingvin_share_x/data
Images PathPath

Path to store image files

Target
/opt/app/frontend/public/img
Default
/mnt/user/appdata/pingvin_share_x/images
Value
/mnt/user/appdata/pingvin_share_x/images