Skip to content

Xanthey/bliss

Repository files navigation

B.L.I.S.S.

Belmont Labs Interactive Storage System

"All the file management of a desktop OS, from a browser tab."

B.L.I.S.S. is a self-hosted, browser-based file manager that runs inside a Docker container and gives you a full windowed desktop experience for managing files on your server. Think Windows Explorer, but it lives at an IP address.

BLISS

---

Features

  • Windowed interface — Multiple resizable, draggable windows, each browsing an independent path
  • Snap Assist — Drag a window to the top of the screen to snap it into halves or quarters, just like a real desktop
  • Three view modes — Details list, Large Icons, and Small Icons
  • Full file operations — Copy, cut, paste, rename, delete, new folder, upload, download
  • Bulk operations — Select multiple files with Ctrl+Click or Shift+Click, then act on all of them at once
  • ZIP support — Create archives from selections, extract ZIP files in-place
  • Text editor — Built-in editor with syntax highlighting (via highlight.js), line numbers, word wrap, find, and rich-text mode for prose files
  • File preview — Preview images, text files, PDFs, audio, and video without leaving the browser
  • Drag and drop — Move files between windows by dragging them
  • Desktop shortcuts — Pin frequently used folders to the desktop
  • Pinned sidebar locations — Pin any folder to the sidebar for quick access across sessions
  • Search — Per-window search with live results
  • Permissions viewer — Inspect file ownership and chmod values
  • Wallpaper system — Set a custom desktop background with fit/fill/tile options
  • Themes — Light (WhoDASH) and Dark modes
  • Persistent settings — Theme, wallpaper, pinned locations, and desktop shortcuts survive container restarts
  • Keyboard shortcuts — Full keyboard navigation (press ? to see the list)
  • Multi-volume support — Mount as many storage locations as you need via environment variables
GUI Remote
---

Quick Start

docker pull belmontlabs/belmont-labs-iss:latest

Then use the provided docker-compose.yml to configure your volume mounts and run it:

docker compose up -d

Open your browser to http://your-server-ip:8008.


docker-compose.yml

version: '3.8'

services:
  belmont-storage:
    image: belmontlabs/belmont-labs-iss:latest
    container_name: belmont-labs-iss
    ports:
      - "8008:8008"
    restart: unless-stopped
    environment:
      - PORT=8008
      - STORAGE_HOME=/data/home
      - STORAGE_DOCUMENTS=/data/documents
      - STORAGE_DOWNLOADS=/data/downloads
      - STORAGE_1=/data/volume1        # Add as many as you need
      - SETTINGS_FILE=/data/config/settings.json
    volumes:
      - /your/home/dir:/data/home
      - /your/documents:/data/documents
      - /your/downloads:/data/downloads
      - /your/volume1:/data/volume1
      - /your/config/dir:/data/config  # Persistent settings

Volume Mounts

B.L.I.S.S. discovers storage locations from environment variables at startup. Any STORAGE_* variable pointing to a valid mounted path will appear in the Available Locations section of the Places menu and in every window's sidebar.

The three built-in locations (STORAGE_HOME, STORAGE_DOCUMENTS, STORAGE_DOWNLOADS) map to the Pinned Locations at the top of the Places menu.

Env Variable Purpose
STORAGE_HOME Home directory
STORAGE_DOCUMENTS Documents
STORAGE_DOWNLOADS Downloads
STORAGE_1STORAGE_N Additional volumes (any name after STORAGE_)
SETTINGS_FILE Path to persistent settings JSON file
PORT Port the server listens on (default: 8008)

Building from Source

git clone https://github.com/Xanthey/bliss.git
cd bliss
docker compose up --build -d

Or use the deploy script to bump the version, build multi-arch images, push to Docker Hub, and push to GitHub all in one command:

./bliss_deploy.sh               # auto-increment patch version
./bliss_deploy.sh 1.2.0          # explicit version
./bliss_deploy.sh 1.2.0 amd64    # amd64 only (skips slow QEMU arm64 build)

Stack

Layer Technology
Frontend Vanilla JS, HTML, CSS — no framework, no build step
Backend Node.js + Express
Syntax highlighting highlight.js
Container Docker (multi-arch: linux/amd64, linux/arm64)

Keyboard Shortcuts

Shortcut Action
Ctrl+A Select all
Ctrl+C / X / V Copy / Cut / Paste
Delete Delete selected
F2 Rename selected
Ctrl+U Upload files
Ctrl+Shift+N New folder
Ctrl+F Focus search
Ctrl+1 / 2 / 3 Switch view mode
Alt+← / → Navigate back / forward
Alt+↑ Go up one directory
Backspace Go back
F5 or Ctrl+R Refresh
F11 Maximize / restore window
Ctrl+W Close window
Ctrl+M Minimize window
? or F1 Show keyboard shortcuts

License

MIT — do what you like with it.


Belmont Labs — belmontlabs.dev

About

Belmont Labs Interactive Storage System. A full desktop-style file manager that runs in your browser, delivered via Docker. Integrated text editor, syntax highlighting, snappable and draggable windows. Your files. Your server. Our aesthetic. The lab is proud of this one.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors