A remote file browser using SFTP
  • Rust 71.1%
  • JavaScript 15.6%
  • HTML 13.2%
  • Jinja 0.1%
Find a file
2026-07-03 08:17:31 +02:00
src Add support for copying files 2026-07-03 08:17:31 +02:00
static Fix reading the "action" attribute and appending the submitter, if any 2026-06-05 11:44:12 +09:00
templates Fix overflow issue for images 2026-06-24 09:17:16 +09:00
.gitignore Init repo 2026-04-10 21:15:24 +09:00
Cargo.lock Add Webdav endpoints 2026-06-13 16:36:27 +09:00
Cargo.toml Add Webdav endpoints 2026-06-13 16:36:27 +09:00
README.md One acl per connection, meaning different acl for webdav connections 2026-07-03 08:17:29 +02:00

GiraffePath

A web-based file browser and WebDAV server over SSH/SFTP, with OIDC authentication. No server-side installation required on the remote host — only SSH access.

Features

Core

  • Browse files over SSH/SFTP
  • Upload files
  • Delete files (via FreeDesktop Trash)
  • Restore files from Trash
  • Create directories
  • Rename / move files and directories (with cross-filesystem support)
  • Download files
  • Preview text files

Authentication & Security

  • OIDC login (Google, etc.)
  • CSRF protection + PKCE in OAuth2 flow
  • Session fixation prevention
  • Safe post-login redirect
  • WebDAV Basic Auth with app tokens (argon2id hashed, stored per-user)
  • SSH keys stored encrypted
  • Multiple SSH key support with host picker

WebDAV

  • PROPFIND (directory listing)
  • GET / HEAD
  • PUT
  • DELETE (sends to Trash)
  • MKCOL
  • MOVE
  • COPY
  • Per-credential ACL rules (read/write/block per path)
  • WebDAV credential management UI (create, regenerate, delete)

File Browser UI

  • Breadcrumb navigation
  • Click-to-edit breadcrumb navigation
  • File detail preview pane
  • Lazy-load file entries via SSE
  • Fuzzy file search
  • Keyboard shortcuts (j/k/h/l vim navigation)
  • Remember selected row when navigating back
  • Multi-select with bulk delete and move
  • Bookmarks (GTK/Freedesktop ~/.config/gtk-3.0/bookmarks)
  • Favorites (per-row toggle, shown in sidebar)
  • Mobile-responsive layout (off-canvas sidebar, touch-friendly)

File Sharing

  • Share files/directories with expiry dates
  • Allow upload to shared folders
  • Rename files in shared folders

Infrastructure

  • SSH connection pool
  • Atomic file writes (temp file + rename pattern)
  • Cross-filesystem move (SSH exec cp fallback)
  • .env file support
  • ACL enforcement in file browser