bashupload

bashupload

Docker app from Mainfrezzer's Repository

Overview

A containerized selfhost version of https://bashupload.com/ PHP/JavaScript file upload web app to upload files from command line & browser, and download them elsewhere. Frequently used to upload/download files on servers. Huge thanks to https://github.com/siomochkin for the icon

PHP/JavaScript file upload web app to upload files from command line & browser, and download them elsewhere. Frequently used to upload/download files on servers. Hosted version is available at bashupload.com.

Features

  1. Upload from command line with curl (or other CLI tools).
  2. Download from command line with wget, curl or other CLI tools.
  3. Download from browser.
  4. Upload from browser or mobile with file browser.
  5. Upload from browser with drag and drop.
  6. Automatic filesize limit based on php.ini post_max_size and upload_max_filesize settings.
  7. Files are automatically removed after specified number of days (configurable).
  8. Files are automatically removed after specified number of downloads (also configurable).

Installation

Make sure you have:

  • php 7.2+
  • Nginx 1.14+ (host config example located in the "setup" folder) or other webserver which can talk to PHP
  • "/var/files" folder available for writing/reading to a web user ("www-data" usually)
  1. Clone bashupload repo to a folder.
  2. Setup webserver and point it to web/index.php (or just use Nginx virtual host config from "setup" folder).
  3. Tune config.php to your requirements. You can optionally copy config.php to config.local.php and make changes there (the file is untracked in GIT).
  4. Add "php tasks/clean.php" to be executed every hour using cron:
0 *     * * *     root   php /path/to/bashupload/tasks/clean.php

Configuration

  • You can change config.php (or untracked config.local.php file) to tune expiration and download limits to your needs.
  • Change post_max_size and upload_max_filesize in php.ini to meet your needs on maximum upload file size.
  • If you use Nginx, don't forget to update "client_max_body_size" param as well.

Install Bashupload on Unraid in a few clicks.

Find Bashupload 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 Bashupload Review the template variables and paths Click Install

Download Statistics

779
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/mainfrezzer/bashupload:latest
Last Updated2026-05-20
First Seen2025-03-20

Runtime arguments

Web UI
http://[IP]:[PORT:80]
Network
bridge
Shell
sh
Privileged
false
Extra Params
-m 1G

Template configuration

App LocationPathrw

Location for the installed app alongside the configuration files

Target
/app
Default
/mnt/user/appdata/bashupload
Value
/mnt/user/appdata/bashupload
FilestoragePathrw

Storage location for all uploaded files

Target
/app/files
Default
/mnt/user/bashupload
Value
/mnt/user/bashupload
Upload sizeVariable

Use 128M, 512M, 1G or 10G to set the size.

Target
UPLOADSIZE
Default
128M
Value
512M
WebserverPorttcp
Target
80
Default
80
Value
5465
UIDVariable
Default
99
Value
99
GIDVariable
Default
100
Value
100