This is an automated archive made by the Lemmit Bot.
The original was posted on /r/selfhosted by /u/thehelpfulidiot on 2025-02-18 23:27:03+00:00.
Hey r/selfhosted,
Yesterday, I introduced GhostFile โ a temporary, on-demand file uploader that shuts down automatically after use. It was built for those quick file transfers where a full-fledged file server (like SMB, NFS, or even PairDrop) is overkill AND ALLOWS TRANSFERRING FILES TO A TERMINAL SYSTEM.
๐ฅ New in This Update โ Standalone Binary!
Thanks to community feedback, you no longer need Python or Docker to run GhostFile! Now, you can just download the binary, make it executable, and run it from anywhere.
๐ No dependencies โ Works out of the box
๐ Can be placed in your $PATH
โ Call it from any directory
๐ Files upload directly to where you launched it
๐ ๏ธ How It Works
Instead of setting up Python or Docker, just:
1๏ธโฃ Download the Latest Binary
Choose the correct binary based on CPU architecture.
๐ฅ๏ธ For x86_64 (Intel/AMD)
wget -O ghostfile $(curl -s https://api.github.com/repos/jon6fingrs/ghostfile/releases/latest | grep "browser_download_url" | grep "ghostfile\"$" | cut -d '"' -f 4)
๐ For ARM64 (Raspberry Pi, Apple Silicon)
wget -O ghostfile $(curl -s https://api.github.com/repos/jon6fingrs/ghostfile/releases/latest | grep "browser_download_url" | grep "ghostfile-arm64" | cut -d '"' -f 4)
2๏ธโฃ Make It Executable
chmod +x ghostfile
3๏ธโฃ (Optional) Move It to Your PATH
To use ghostfile
from anywhere:
sudo mv ghostfile /usr/local/bin/
Now, you can launch GhostFile from any directory. Uploaded files will appear exactly where you run it!
๐ Running GhostFile
Just type:
ghostfile
This will:
๐ Start a temporary web server on 0.0.0.0:5000
๐ Let you upload multiple files via drag & drop or file picker
๐ Save them in the directory where ghostfile
was executed
๐ Automatically shut down once the upload is complete
Example Workflow
cd ~/Downloads
ghostfile
Now, any file uploaded will appear in ~/Downloads
.
Need to upload to a specific directory? Just cd
there first, then run ghostfile
.
โ๏ธ Command-Line Options
GhostFile supports the following command-line switches:
ghostfile --help
Actual Output:
usage: ghostfile [-h] [--dir DIR] [--host HOST] [--port PORT]
A Flask file uploader that stops after handling an upload.
optional arguments:
-h, --help show this help message and exit
--dir DIR Directory to save uploaded files (default: current directory).
--host HOST Host/IP to bind to (default: 0.0.0.0).
--port PORT Port to listen on (default: 5000).
Examples:
- Use a custom upload directory:
ghostfile --dir /home/user/my_uploads
- Run on a different port (e.g., 8080 instead of 5000):
ghostfile --port 8080
- Specify a different network interface (e.g., localhost only):
ghostfile --host
127.0.0.1
- Run with a custom directory, port, and host:
ghostfile --dir /tmp/uploads --port 9090 --host
192.168.1.100
๐ก Why Use GhostFile?
๐ On-demand file transfers โ No need to set up persistent services
๐ Works anywhere โ No dependencies needed
๐ LAN-friendly โ Accessible from any device on your network
๐ Zero overhead โ Start, upload, and it shuts down
โ ๏ธ NOT a Persistent File Server
GhostFile is not meant for long-term file hosting. It is designed for:
- Quick, temporary file transfers between machines
- One-time uploads where other tools aren't practical
- On-the-go use without keeping a service running
Once you upload your files, the server stops itself. No cleanup needed.
๐ผ๏ธ Screenshot
Here's what GhostFile looks like in action:
๐ Get GhostFile
๐พ GitHub Repo:
Would love to hear your thoughts! ๐ Have feature requests? Let me know in the comments. ๐