docker.recipes

Plik

beginner

Scalable temporary file upload system.

Overview

Plik is an open-source temporary file upload system developed by root-gg, designed to provide a simple yet powerful solution for sharing files with automatic expiration and optional password protection. Unlike permanent cloud storage solutions, Plik focuses on temporary file sharing with configurable retention periods from 1 hour to 30 days, making it ideal for secure document sharing, collaborative work, and temporary data exchange. The system supports both web-based drag-and-drop uploads and CLI operations, with a streaming mode that handles large files without consuming server storage space. This Docker configuration deploys Plik as a standalone service with persistent data storage for uploaded files and configuration. The containerized setup eliminates dependency management issues and provides consistent file upload service across different environments. Plik's lightweight architecture makes it particularly suitable for organizations that need controlled file sharing without the complexity of enterprise content management systems. This stack is perfect for development teams needing temporary file sharing, educational institutions managing assignment submissions, or any organization requiring secure temporary file distribution. The simplicity of Plik's single-container deployment makes it accessible for small teams and individual users while remaining scalable for larger organizations through its configurable backends and authentication options.

Key Features

  • Automatic file expiration with configurable retention periods from 1 hour to 30 days
  • Optional password protection for uploaded files with custom security settings
  • Streaming mode for large file transfers that bypasses server storage limitations
  • Web-based drag-and-drop interface with real-time upload progress tracking
  • Command-line client support for automated uploads and scripting integration
  • Configurable upload limits and file size restrictions through plikd.cfg
  • Multiple storage backends support including local filesystem and cloud providers
  • Built-in download statistics and file access tracking capabilities

Common Use Cases

  • 1Development teams sharing build artifacts and logs with automatic cleanup
  • 2Customer support providing temporary access to diagnostic files and patches
  • 3Educational institutions managing assignment submissions with deadline-based expiration
  • 4Remote workers sharing large files without permanent cloud storage accounts
  • 5Event organizers distributing media files with controlled access periods
  • 6Security teams sharing sensitive documents with automatic deletion policies
  • 7Freelancers delivering client files with password protection and expiration dates

Prerequisites

  • Docker and Docker Compose installed on the host system
  • Port 8080 available for web interface access
  • Minimum 512MB RAM for basic file upload operations
  • Sufficient disk space in Docker volume for temporary file storage
  • Understanding of Plik configuration options for customizing upload limits
  • Basic knowledge of reverse proxy setup if exposing to internet

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 plik:
3 image: rootgg/plik:latest
4 container_name: plik
5 restart: unless-stopped
6 volumes:
7 - plik_data:/data
8 ports:
9 - "8080:8080"
10
11volumes:
12 plik_data:

.env Template

.env
1# Configure plik via plikd.cfg

Usage Notes

  1. 1Docs: https://github.com/root-gg/plik#readme
  2. 2Access at http://localhost:8080 - drag & drop file upload
  3. 3Set expiration time (1h to 30d) and password protection
  4. 4Configure plikd.cfg for limits, backends, authentication
  5. 5CLI client available: plik myfile.zip
  6. 6Stream mode for large files - doesn't store on server

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 plik:
5 image: rootgg/plik:latest
6 container_name: plik
7 restart: unless-stopped
8 volumes:
9 - plik_data:/data
10 ports:
11 - "8080:8080"
12
13volumes:
14 plik_data:
15EOF
16
17# 2. Create the .env file
18cat > .env << 'EOF'
19# Configure plik via plikd.cfg
20EOF
21
22# 3. Start the services
23docker compose up -d
24
25# 4. View logs
26docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/plik/run | bash

Troubleshooting

  • Upload fails with large files: Increase Docker container memory limits and configure streaming mode in plikd.cfg
  • Files not persisting after container restart: Verify plik_data volume is properly mounted to /data directory
  • Cannot access web interface: Check that port 8080 is not blocked by firewall and container is binding to correct interface
  • CLI client connection refused: Ensure Plik server is accessible and API endpoints are not blocked by network policies
  • File expiration not working: Verify system clock synchronization and check Plik's cleanup job configuration
  • Upload size limits exceeded: Modify MaxFileSize and MaxFilePerUpload settings in plikd.cfg configuration file

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space