Sign inSign up

avayadhakal/litesync

By avayadhakal

•Updated 1 day ago

A secure, self-hosted Linux file manager with dual panes, rsync, and fast transfers.

Image
Networking
Databases & storage
0

384

avayadhakal/litesync repository overview

⁠LiteSync

LiteSync Logo

Lightweight web-based file manager and synchronization tool for homelabs, NAS systems, and personal servers.

⁠Features

  • Dual-pane web file manager
  • Copy, move, rename, delete, and download files
  • Background file transfers
  • rsync support
  • Large file uploads
  • Resume/pause transfer support
  • Secure path handling
  • User authentication
  • Docker-based deployment
  • Supports x86_64 and ARM64

⁠Quick Start

⁠1. Pull the Image
docker pull avayadhakal/litesync:latest
⁠2. Create a Directory
mkdir -p ~/litesync/data
cd ~/litesync
⁠3. Create config.toml

Create a file named config.toml:

allowed_roots = []

secret_key = "REPLACE_WITH_A_RANDOM_SECRET_KEY"

session_max_age = 604800
download_expiry = 86400
secure_cookie = false
data_dir = "/data"
host = "0.0.0.0"

[[users]]
username = "admin"
password_hash = "REPLACE_WITH_YOUR_BCRYPT_PASSWORD_HASH"

Generate a secret key with:

openssl rand -hex 32

⁠Docker Compose

Create docker-compose.yml:

services:
  litesync:
    image: avayadhakal/litesync:latest
    container_name: litesync
    restart: unless-stopped
    user: "1000:1000"

    ports:
      - "8000:8000"

    volumes:
      - ./data:/data
      - ./config.toml:/data/config.toml:ro

      # Change these paths to the directories you want LiteSync to access
      - /mnt/ssd:/mnt/ssd
      - /mnt/hdd2:/mnt/hdd2

    environment:
      - LITESYNC_MAX_UPLOAD_SIZE_MB=10240
      - LITESYNC_PORT=8000
      - LITESYNC_ALLOWED_ROOTS=/mnt/ssd:/mnt/hdd2

Start LiteSync:

docker compose up -d

Open:

http://<server-ip>:8000

Check the logs:

docker compose logs -f

⁠Updating LiteSync

To update to the latest image:

docker compose pull
docker compose up -d

Your configuration and application data remain in the local ./data directory.


⁠Docker Run

If you prefer to run the container directly instead of using Docker Compose:

docker pull avayadhakal/litesync:latest

docker run -d \
  --name litesync \
  --restart unless-stopped \
  --user 1000:1000 \
  -p 8000:8000 \
  -v ./data:/data \
  -v ./config.toml:/data/config.toml:ro \
  -v /mnt/ssd:/mnt/ssd \
  -v /mnt/hdd2:/mnt/hdd2 \
  -e LITESYNC_MAX_UPLOAD_SIZE_MB=10240 \
  -e LITESYNC_PORT=8000 \
  -e LITESYNC_ALLOWED_ROOTS=/mnt/ssd:/mnt/hdd2 \
  avayadhakal/litesync:latest

⁠Storage Permissions

LiteSync runs as user 1000:1000 by default.

Make sure the directories you mount into the container are accessible by UID/GID 1000.

For example:

sudo chown -R 1000:1000 /mnt/ssd
sudo chown -R 1000:1000 /mnt/hdd2

Use appropriate permissions for your environment rather than granting unnecessary access.


⁠Configuration

The main configuration file is:

./config.toml

Storage directories are controlled through:

LITESYNC_ALLOWED_ROOTS=/mnt/ssd:/mnt/hdd2

The paths must match the paths mounted inside the container.

For example:

volumes:
  - /mnt/ssd:/mnt/ssd
  - /mnt/hdd2:/mnt/hdd2

and:

environment:
  - LITESYNC_ALLOWED_ROOTS=/mnt/ssd:/mnt/hdd2

For the source code, documentation, and issue tracking, visit the LiteSync GitHub repository⁠.

Tag summary

Content type

Image

Digest

sha256:9000bdd95…

Size

51.2 MB

Last updated

1 day ago

docker pull avayadhakal/litesync