Files, terminal and editor

In preview

File operations run as the account's own Linux user, so the kernel, not the panel, decides what they can touch. The browser terminal is a real shell in the same place.

Built and lab-tested

  • List, read, write, move, copy, trash, permissions, search, disk usage, archives and resumable uploads.
  • Paths are resolved with openat2(RESOLVE_BENEATH) against the home directory, so symlink and .. escapes are refused by the kernel.
  • Sub-users are confined to the folders granted to them.
  • Archives are extracted with size, file-count and ratio limits, and never create links or devices.
  • SSH keys with restrictions (source addresses, git-only or SFTP-only, expiry). Per user: SSH off, SFTP-only in a chroot, or a shell. Every sshd change is checked with sshd -t.
  • Browser terminal: a real PTY as the account user inside its slice, opened with a single-use ticket bound to your browser session, with idle timeout and optional recording.
  • Root terminal for administrators needs a fresh confirmation and is always recorded and audited.
  • A file manager in the panel with image and text previews, and VS Code in the browser (code-server) per account on its own origin.
  • Share links, file versions, FTP(S) users (TLS required, jailed, banned after repeated failures) and WebDAV. Proven through the API; these screens are still to be walked in a browser.

Not there yet

  • Jailed shells with bubblewrap.
  • PDF previews and drop-box links.

Every action in this area is in the panel, one keystroke away in the command palette (Ctrl K), on the command line and in the API, and most changes can be previewed as a plan first. Built and tested in our lab; RespireCloud is not released yet.

Modules in this area