Build Your Own High-Capacity File Transfer Server: Replacing WeTransfer with Pingvin Share on a VPS
Introduction: The Cost and Constraints of Public File Sharing
In modern business operations, transferring large files—such as high-definition video edits, massive database backups, or complex CAD designs—is a daily necessity. For years, platforms like WeTransfer, Dropbox, and Google Drive have been the default solutions. However, reliance on these third-party platforms comes with significant operational bottlenecks. Free tiers impose strict limits (often capped at 2GB), while premium subscriptions introduce recurring overhead expenses that scale poorly with team sizes.
Beyond financial costs, data privacy and compliance have become paramount. When you upload sensitive intellectual property or proprietary client data to a public cloud, you forfeit direct control over the underlying infrastructure. For enterprises bound by strict data governance policies, this poses a major compliance risk.
Fortunately, the open-source ecosystem offers a robust, self-hosted alternative: Pingvin Share. By deploying Pingvin Share on a Virtual Private Server (VPS), you can establish a self-managed, high-capacity file transfer platform that eliminates external storage restrictions, enhances security, and provides a completely unbranded or custom-branded experience for your clients.
---What is Pingvin Share?
Pingvin Share is an open-source, self-hosted file-sharing platform designed to be a direct, lightweight alternative to WeTransfer. Built with modern web technologies, it provides a highly intuitive user interface paired with a powerful administrative backend. Unlike complex cloud storage solutions like Nextcloud, which function as full operating environments, Pingvin Share focuses entirely on doing one thing exceptionally well: facilitating secure, fast, and temporary file transfers.
Key Features of Pingvin Share
- No Artificial File Size Limits: Your only constraint is the actual disk space available on your VPS.
- Advanced Security Controls: Protect public shares with mandatory passwords and enforce strict expiration dates.
- Reverse Share Functionality: Generate unique, secure upload links allowing external clients or vendors to upload files directly to your server without needing an account.
- Comprehensive Administration: Monitor active transfers, manage total storage allocations, and audit user activity from a centralized dashboard.
- Email Notifications: Seamlessly integrate with SMTP servers to notify recipients when a transfer is ready or when a link is about to expire.
Prerequisites for Setting Up Your Server
Before initiating the installation process, ensure your infrastructure meets the following technical requirements:
- A Virtual Private Server (VPS): A base configuration of 1 vCPU and 2GB RAM is sufficient for standard operations. However, prioritize storage capacity (SSD or NVMe) or opt for a provider that allows scalable block storage detachment.
- Operating System: Ubuntu 22.04 LTS or Ubuntu 24.04 LTS is highly recommended for optimal package compatibility.
- Domain Name: A registered domain or subdomain (e.g.,
share.yourcompany.com) with an A record pointing directly to your VPS IP address. - Docker and Docker Compose: The cleanest and most maintainable way to deploy Pingvin Share is via containerization.
Step-by-Step Deployment Guide
Follow these structured steps to configure your environment and launch the application.
Step 1: System Update and Docker Installation
First, securely connect to your VPS via SSH and update the core system repositories to eliminate any potential dependencies conflicts:
sudo apt update && sudo apt upgrade -yNext, install the Docker engine along with the Docker Compose plugin:
sudo apt install docker.io docker-compose-plugin -y
sudo systemctl enable --now dockerStep 2: Configuring the Directory Structure and Docker Compose
Create a dedicated directory to house your configuration files and persistent data volumes:
mkdir -p ~/pingvin-share && cd ~/pingvin-shareConstruct the deployment manifest by creating a docker-compose.yml file using your preferred text editor:
nano docker-compose.ymlInsert the following configuration block into the file. This defines the container image, restart policies, port mappings, and persistent storage paths:
version: '3.8'
services:
pingvin-share:
image: stonith404/pingvin-share:latest
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./data:/opt/app/backend/dataSave and close the file. Execute the following command to pull the official image and run the container in detached mode:
sudo docker compose up -dStep 3: Setting Up a Reverse Proxy with Nginx and SSL
To ensure data encryption during transit, exposing raw ports directly to the web is discouraged. We will utilize Nginx as a reverse proxy coupled with Let's Encrypt for automated SSL management.
Install Nginx and the Certbot client:
sudo apt install nginx certbot python3-certbot-nginx -yCreate a new Nginx configuration file for your subdomain:
sudo nano /etc/nginx/sites-available/pingvin-shareAdd the following configuration layer, substituting your actual domain name:
server {
listen 80;
server_name share.yourcompany.com;
client_max_body_size 100G; # Matches maximum upload thresholds
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Necessary for streaming large file chunks
proxy_buffering off;
proxy_read_timeout 600s;
}
}Enable the site configuration and restart Nginx to apply changes:
sudo ln -s /etc/nginx/sites-available/pingvin-share /etc/nginx/sites-enabled/
sudo systemctl restart nginxDeploy the SSL certificate to enforce secure HTTPS connections:
sudo certbot --nginx -d share.yourcompany.com---Post-Installation Configuration and Best Practices
With the infrastructure safely deployed, navigate to [https://share.yourcompany.com](https://share.yourcompany.com) via your web browser to finalize setup. The initial boot sequence will prompt you to create the primary Administrator account.
Optimizing the Platform for Business Use
- Configure the Base URL: Navigate to the Admin Settings panel and explicitly set the App URL. This ensures all generated sharing links utilize the correct HTTPS domain structure.
- Enforce Registration Limits: Disable public registration immediately after creating your team accounts. This prevents unauthorized third parties from utilizing your server resources.
- Adjust Chunk Upload Sizes: If your team regularly deals with files exceeding 20GB, adjust the chunk sizes within the advanced backend settings to optimize upload stability across fluctuating network connections.
Conclusion: Financial and Operational Autonomy
By transitioning from commercial subscription models like WeTransfer to a self-hosted Pingvin Share instance, your business secures complete autonomy over its data workflow. You eliminate recurring per-user licensing fees, gain full compliance auditing capabilities, and present a highly professional, custom-branded portal to your corporate clients. The open-source path not only optimizes your operational bottom line but reinforces a strict security posture vital in today's digital economy.
