Skip to content

larin-ilya/tlock-web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔒 tlock-web

Web interface for tlock/tle time-lock encryption powered by the drand network

Live Demo Docker License tlock

🌍 Live Demo: https://tlock.fl0w.ru/


📸 Screenshot

tlock-web UI


✨ Features

  • 🌐 Simple and intuitive web interface
  • 🔐 Time-lock encryption powered by the official tlock implementation
  • 🐳 Docker-first deployment
  • 📦 No Go or Python installation required
  • ⏳ Duration-based encryption (-D)
  • 🔢 Round-based encryption (-r)
  • 🚀 Uses the official tlock binary from GitHub Releases
  • 📁 Encrypt and decrypt files directly from your browser

📖 Overview

tlock-web is a lightweight web frontend for the tlock command-line utility.

Time-lock encryption allows you to encrypt data today and make it decryptable only after a specified future time. The decryption capability is derived from the public randomness generated by the drand network, meaning no one can access the data before the chosen unlock time.

With tlock-web you can:

  1. Upload a file
  2. Select a future unlock time
  3. Encrypt the file
  4. Download the generated .tle archive
  5. Decrypt it later when the target time arrives

🌍 Live Demo

Try it instantly without installing anything:

👉 https://tlock.fl0w.ru/

Public demonstration instance. Avoid uploading sensitive or confidential files.


🚀 Quick Start

Clone repository

git clone https://github.com/larin-ilya/tlock-web.git
cd tlock-web

Build Docker image

docker build -t tlock-web .

Run container

docker run -d \
  --name tlock-web \
  -p 49381:49381 \
  tlock-web

Open in browser

http://localhost:49381

🛠 Usage

Encrypt

  1. Upload a file

  2. Choose encryption mode:

    • Duration (10s, 5m, 1h, 24h, etc.)
    • Specific drand round
  3. Click Encrypt

  4. Download the generated .tle file

Decrypt

  1. Wait until the unlock time has passed
  2. Upload the .tle file
  3. Click Decrypt
  4. Download the original file

⚙️ Configuration

Variable Default Description
PORT 49381 Web server port
MAX_FILE_SIZE 100MB Maximum upload file size

Example

docker run -d \
  --name tlock-web \
  -p 8080:8080 \
  -e PORT=8080 \
  -e MAX_FILE_SIZE=500MB \
  tlock-web

🔒 How It Works

tlock uses the drand threshold network as a source of publicly verifiable randomness.

When a file is encrypted:

  • The ciphertext is locked to a future drand round
  • No secret key needs to be exchanged
  • Nobody can decrypt the file before the target time
  • Decryption becomes possible automatically once the corresponding randomness beacon is published

This makes time-lock encryption ideal for delayed disclosure, scheduled releases, sealed bids, backups, and other use cases where information must remain inaccessible until a predefined moment.


🔗 Related Links

Quicknet Chain Hash

52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971

📄 License

Licensed under the MIT License.

See the LICENSE file for details.

About

Web interface for tlock/tle with Docker support

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors