Skip to content

go-drive

go-drive is a self-hosted file management server written in Go and Vue/TypeScript. It unifies local files, FTP, SFTP, WebDAV, S3, OneDrive, Google Drive, and script-based drives in one virtual directory tree, with permissions, search, WebDAV access, file buckets, thumbnails, and automated jobs.

The default account on first startup is admin with password 123456. Change it immediately after signing in, and read the security guide before exposing the service publicly.

Quick start

bash
mkdir go-drive-data
docker run -d --name go-drive \
  -p 8089:8089 \
  -v "$(pwd)/go-drive-data:/app/data" \
  --restart unless-stopped \
  devld/go-drive

Open http://localhost:8089. See Installation and startup and Upgrade, backup, and restore for other installation methods and upgrade procedures.

Feature overview

  • Browse, upload, download, copy, move, rename, and delete files, with drag-and-drop, paste upload, chunked upload, and ZIP downloads.
  • Users, groups, root-path isolation, and per-path read/write permissions.
  • Image, audio, video, text, code, PDF, and configurable external viewers.
  • Built-in image and text thumbnails; the official Docker image also includes libvips and ffmpeg.
  • Filename search, WebDAV service, path mounts, and path attributes.
  • File buckets with access controls, upload tokens, type/size limits, and hotlink protection.
  • Copy, move, delete, and JavaScript jobs triggered by cron or file events.
  • JavaScript extensions for new drive types and browser-side direct-upload adapters.

Supported drives

TypePrimary useImportant options
Local filesServer or NAS filesystemRestricted directory or free-fs
FTPTraditional FTP serversConcurrency, timeout, cache
SFTPFile access over SSHPassword/key, host key, root path
WebDAVAny WebDAV-compatible serverURL, credentials, cache
S3Amazon S3 and compatible storageEndpoint, region, path style, proxied transfer
OneDrivePersonal, organization, and SharePoint drivesRegion, tenant, proxied transfer, cache
Google DrivePersonal and shared drivesCache, proxied thumbnails
Dropbox, Qiniu, and othersJavaScript extensionsScript drive repository

See the drive overview for configuration details and capability limitations.

Useful shortcuts

On macOS, Ctrl refers to the ⌃ Control key (not ⌘ Command), and Alt refers to the ⌥ Option key.

  • Ctrl / Shift + click: select multiple entries.
  • Copy files in your operating system and press Ctrl+V: paste-upload them.
  • Alt + click a file: download it directly.
  • Hold Ctrl while dragging an entry to copy it; hold Shift to create a path mount (administrators only).
  • Use the file context menu (long-press on mobile) for permissions, mounts, rename, and other operations.

Getting help

For OAuth, S3 CORS, reverse proxy, permission, cache, or indexing problems, start with Troubleshooting. If the problem remains, open a GitHub issue with the version, deployment method, relevant redacted configuration, and error logs.

Released under the MIT License.