Kopia logo

Kopia

Fast, secure backup tool with client-side encryption, deduplication, and a browser-based server UI

Alternative to: backblaze, crashplan, carbonite


About Versions (86)

v0.4.0

2020-01-10

Key Changes in this release

  • Add optional flags to override hostname and username when taking snapshot
  • Added experimental HTML-based UI (kopia server --ui)
  • Added --server-username and --server-password to optionally require basic auth for kopia server
  • Added support for uploading compressed objects based on policies
  • Added /api/v1/objects/:id that retrieves contents of object given its ID
  • Added optional --region parameter to S3 provider

Full Changelog

467c8d1e Add .gitattributes with settings for Go 9550c11a Add .gitignore for htmlui_bindata.go ac6e8410 Add CopyOptions and copier structs 99bca021 Add comment to exported constant d3f324f5 Add diff.compareEntry helper to compare attribute entries 20b896da Add restore command flags 945708c5 Add test for snapshot.Stats 1249a255 Allow copying to an existing directory 3883c275 Allow multiple simultaneous profilers (#122) ae3c16a3 Allow passing an fs.Entry to the TreeWalker callback 24f292b7 Cleanup lint: empty lines (via whitespace and wsl linters) 8526376e Close channel in the error case as well ae3d5610 Dedicated snapshot delete command to delete by snap ID (#8) 53961665 Display diff when restored dir does not match source b5c00941 Documentation about the encryption of the format blob (#120) 5c58b306 E2E test for snapshot restore command 34661d7f Ensure Mutex.Unlock() in cachefs.Cache.getEntries() 820b29cb FS hasher testing helper c03a143a Fix flag description 41fb97bd Fix mispelled tag, caught by staticheck linter 78e05ffe Generalize enqueue filtering in TreeWalker a7ee7d57 Install go-bindata in /bin a445c80e Make Cache.mu a syncLocker 095828b1 Makefile: fixed default rule 91508dac Move ‘snapshot gc’ functionality to gc package 194680ad Refactor: relocate user/host helpers to userhost.go cb850bc1 Reformat help message constant to pacify lll linter 7361d277 Remove special-case handling when target is root directory 467243f2 Remove unnecessary unlock() in Cache.getEntriesFromCache c5cb83c2 Rename Cache.c.getEntriesFromCacheLocked fb57e828 Restore command 4a24ae47 Set golangci whitespace linter option 40c6f6fc Simple test for Cache.getEntries() locking/unlocking. 3f721aaf Snapshot restore command 39a2cad2 Trivial/cleanup: remove unused type c0b1345d Trivial: add clarifying comment 4598a050 Trivial: clarify comment 887a9180 Trivial: fix imports grouping 26415e64 Trivial: prefer const where possible 8e9d56fc Trivial: simplify localfs.Directory b7296544 Update e2e restore test ca9ba27c Use github.com/natefinch/atomic.WriteFile in copyFileContents 82974259 [#124] Add optional flags to override hostname and username 8ab93e0e addressed PR comments 771fec10 build: added simple Windows-based build script c8360ce6 cleanup: fix linter errors 5ae2da4a cli: added benchmark compression 9dd4e2aa compression: added e2e test 58759551 compression: added object.Compressor object and some implementations c057e173 compression: added support for min/max file sizes eligible for compression 1bb7eeeb fixed inadvertent behavior change 503fa74b fs: added Directory.Child() method to look up children by name without necessarily loading all of them de71f0f0 fs: added functions Update() and Remove() on fs.Entries which return a copy of entries with specified entry updated or removed 9d4a7c32 golangci: upgraded linter to 1.18.x 3a809f01 htmlui: added UI to browse contents of directories and download files 313d326b htmlui: added elipsis in pagination bar for super long tables e8a1eaa9 htmlui: added experimental HTML-based UI dbc820e9 htmlui: fixed npm vulnerability warnings fc4675e6 htmlui: fixed sorting by path in snapshots view 495fc6de htmlui: various UI tweaks 7a34cb0a lint cleanup: add comments to exported symbols aa1b2476 lint: added retry loop around linter invocations 6217df1a lint: switched to 1.21 and fixed a ton of whitespace issues discovered by new wsl linter ac70a381 lint: upgraded to 1.22.2 and make lint issues a build failure bd7a82ab makefile: added clean target c1454db2 makefile: added quick-install target which only rebuilds the binary and embeds pre-built HTMLUI b93e5876 makefile: install and install-noui target 2389abb4 manifest.TypeLabelKey const 2ba4e83c moved all compression to separate package and sanitized identifiers aec3cdcb object: added support for compressed objects f4afaec9 object: fixed Seek() behavior for seeking to end of object 0b8c4d0e object: fixed compression bug where we were not clearing the buffer cfa2eea1 object: stop verifying object length in VerifyObject a97b8966 policy: added compression policy ece99073 policy: added sparse policy tree abstraction for quickly retrieving effective policies at runtime when walking a tree b68ef7d7 refactored policy types and policy.Getter 0b7f30b6 rename cli/snapshot_utils.go -> cli/userhost.go 0699fcfb reorganized icons into separate directory, added PNG and ICO versions 644ef93d s3: added optional —region parameter b3e1eab0 server: added —server-username and —server-password to optionally require basic auth for Kopia server 5d555687 server: added /api/v1/objects/:id that retrieves contents of object given its ID d9d4804d server: handle known UI routes specially by serving root index file 36859bdf server: removed dependency on pat c3ffc435 site:reorganized NPM installation into main Makefile 5c62bce5 snapshot.ManifestType const 5d0167e2 snapshotfs: added HasDirEntry and type assertions 8ff8ec0a snapshotfs: expose functions to round-trip between fs.Entry and DirEntry c7be9cb4 upload: added support for uploading compressed objects based on policies f6d59608 upload: require *policy.Tree for each upload