this post was submitted on 18 Feb 2025
1 points (100.0% liked)

Self-Hosted Alternatives to Popular Services

224 readers
1 users here now

A place to share, discuss, discover, assist with, gain assistance for, and critique self-hosted alternatives to our favorite web apps, web...

founded 2 years ago
MODERATORS
 
This is an automated archive made by the Lemmit Bot.

The original was posted on /r/selfhosted by /u/thehelpfulidiot on 2025-02-17 21:22:31+00:00.


Hey everyone,

A while back, I created Ghostboard, a self-hosted way to share real-time synchronized text between machines. Some users suggested adding file sharing, but I personally use PairDrop for that and didn't want to overcomplicate Ghostboardโ€™s code.

The issue? PairDrop lacks a command-line option, making it tricky to use in automated workflows. I wanted something that:

โœ… Can run on demand

โœ… Lets me upload files to a specific folder

โœ… Shuts down after use (so itโ€™s not a permanent service)

Thus, GhostFile was born! ๐Ÿš€

Spin it up from the command line and it will start a webserver which will allow an individual to upload files directly to the host system in a user specified directory.

๐Ÿ”ฅ What is GhostFile?

GhostFile is an ephemeral file upload server. Unlike a traditional file server, GhostFile:

โœ… Starts only when needed

โœ… Lets you drag & drop multiple files into a simple web interface

โœ… Uploads directly to a local folder or a specified directory

โœ… Automatically shuts down after a successful upload

Itโ€™s not a persistent service! This is not for always-on file hostingโ€”itโ€™s a simple, fast solution for when you need to quickly move files between machines.

๐Ÿ› ๏ธ How to Use GhostFile

๐Ÿ Bare Metal (Python)

  1. Clone & Install:git clone cd ghostfile pip install -r requirements.txt
  2. Run the Server:
    • By default:
      • Runs on 0.0.0.0:5000 (accessible on LAN)
      • Saves files to ./downloads/
  3. python3 upload_server.py
  4. Upload Files:
    • Open a browser to http://:5000
    • Drag and drop files or select them
    • Click Upload
    • The server automatically shuts down

๐Ÿณ Running with Docker

GhostFile is fully containerized, so you can spin it up quickly:

docker run --rm -t -v ./downloads:/app/downloads -p 5000:5000 thehelpfulidiot/ghostfile

๐Ÿ’ก What this does:

  • --rm โ†’ Removes the container after it stops
  • -t โ†’ Allocates a terminal for logging
  • -v ./downloads:/app/downloads โ†’ Maps the host folder to the containerโ€™s upload directory
  • -p 5000:5000 โ†’ Exposes port 5000

Now, just upload your files, and the server closes itself after the transfer is complete. ๐ŸŽ‰

๐Ÿ’ก Why Use GhostFile?

โœ” No extra services required โ€“ No SMB/NFS, just a lightweight upload UI

โœ” Works anywhere โ€“ Run locally or in Docker

โœ” LAN-friendly โ€“ Works across multiple machines on your network

โœ” Doesnโ€™t stay running โ€“ Perfect for quick file transfers

โœ” Choose your save location โ€“ Default is ./downloads/, but can be overridden

โš ๏ธ Not a Permanent File Server

GhostFile is NOT a file-hosting solution. Itโ€™s designed for:

  • Quick file transfers between devices
  • One-time uploads where PairDrop isn't practical
  • On-the-go use without keeping a service running

Once you upload your files, the server shuts downโ€”no need to manually stop it.

๐Ÿ“ธ Screenshot

Here's a preview of GhostFile's simple web interface:

Ghostfile Screenshot

๐ŸŒ Get GhostFile

๐Ÿ’พ GitHub Repo:

Would love to hear what you think! ๐Ÿš€ Have suggestions or feature requests? Drop them in the comments. ๐Ÿ––

no comments (yet)
sorted by: hot top controversial new old
there doesn't seem to be anything here