ld 28e17a5b08 refactor: add AppError helpers and harden upload/download error handling
- refactor: replace inline AppError literals with model.New*Error
  constructors in service and handler layers
- feat: PromoteStaged falls back to copy/delete when os.Rename returns
  EXDEV (cross-device link)
- fix: upload error messages no longer leak internal multipart field
  names or parser implementation details
- fix: upload size violations are converted to domain error
  ErrUploadTooLarge at the handler boundary
- fix: download logs error and size mismatch when io.Copy fails or
  writes fewer bytes than expected
- test: add tests for field name leak prevention, parser error
  sanitization, read errors after response start, and EXDEV fallback
2026-07-05 17:35:34 +08:00
2026-04-29 11:51:20 +08:00

MyGO

MyGO is a WebDisk (cloud drive) server, written in Go.

Current status: pre-alpha — project skeleton with no core functionality implemented yet.


Roadmap

v0

  • CLI configuration management (mygo config)
  • User authentication (JWT)
  • File upload / download / management (HTTP API)
  • Admin endpoints
  • WebDAV support

Future

  • Image server
  • Pastebin & code snippet editing in sharing
  • S3 storage backend
  • Nextcloud-compatible API

CLI

mygo is the backend entrypoint with these subcommands:

Command Description
mygo serve Start the backend server
mygo config Manage instance configuration
mygo status Show server status

Frontend

The frontend uses React + TypeScript and communicates with the backend via HTTP API. Frontend source is maintained in a separate repository.


Development

See docs/development.md for build and test workflows. See AGENTS.md for behavioral conventions.

S
Description
MyGO: a webdisk written in Go. This is the server (backend) application.
Readme 371 KiB
Languages
Go 100%