Lightweight Go server for uploading and serving PGP-encrypted files. https://zup.deustux.xyz
Find a file
2025-12-31 17:23:10 +01:00
internal Add logging for uploads, downloads, and decrypt attempts; improve server startup logging 2025-12-31 17:23:10 +01:00
rc Add FreeBSD rc.d script for zuploader daemon 2025-12-27 02:46:32 +01:00
static Fix JS upload logic and add TOML configuration 2025-12-27 02:19:01 +01:00
templates Fix batch upload: preserve original extensions and upload as .zip 2025-12-27 02:10:13 +01:00
config.toml Add logging for uploads, downloads, and decrypt attempts; improve server startup logging 2025-12-31 17:23:10 +01:00
go.mod Fix JS upload logic and add TOML configuration 2025-12-27 02:19:01 +01:00
go.sum Fix JS upload logic and add TOML configuration 2025-12-27 02:19:01 +01:00
LICENSE first commit 2025-12-24 03:39:01 +01:00
main.go Add logging for uploads, downloads, and decrypt attempts; improve server startup logging 2025-12-31 17:23:10 +01:00
README.md Update README.md 2025-12-25 05:38:56 +01:00

zUploader - Secure PGP File Uploader (Server)


interface

encryptedfile

zUploader is a minimalist server for uploading and decrypting files with symmetric PGP directly from the browser.
This server is designed to work alongside the zUploader terminal client, which adds asymmetric encryption and optimized CLI usage: https://github.com/gnosisTux/zUploader


Features

  • Upload files encrypted directly in the browser (symmetric PGP only).
  • Decrypt files directly from the browser.
  • Configurable maximum file size (default 500 MB).
  • Files saved with random names for extra security.
  • Direct download via unique URL.
  • Minimal and lightweight: only Go and HTML/CSS/JS.
  • Progress bar and cooldown to prevent upload spamming.

Installation

  1. Clone the repository:
git clone https://github.com/gnosisTux/zUploader-server.git
cd zUploader-server
  1. Run the server:
go run main.go

The server will start at http://localhost:8001.


Directory structure

server/
├── LICENSE         # GPLv3 License
├── README.md       # This file
├── main.go         # Go server
├── static/         # Static files (JS, CSS, images)
├── templates/      # HTML templates
└── uploads/        # Uploaded files

Web Usage (basic only)

  1. Open http://localhost:8001 in your browser.

  2. To upload: select a file and enter an encryption password. Click Encrypt & Upload.

  3. To decrypt: open the file link, enter the password, and click Decrypt & Download.

  4. Receive your decrypted file directly in the browser.

⚠️ The web interface only supports symmetric encryption.


Security

  • Only files starting with the PGP header (-----BEGIN PGP MESSAGE-----) are accepted.

  • File names are generated randomly.

  • No passwords or sensitive information are stored on the server.


License

This project is licensed under GPLv3.
See the LICENSE file for details.