Rabbithole.app is an encrypted file storage service based on the decentralized Internet Computer.
- dfx
- vessel 0.7.0 and later
vessel install
vessel verify --version 0.9.8
- node v18 (v19 is not suitable), I use nvm to work with several versions of Node at once:
nvm install 18
nvm use 18
If this is your first time installing a project, then just type:
yarn install # npm install
./scripts/deploy.sh
Table of available arguments for scripts:
Argument | Default | Values | Description |
---|---|---|---|
$1 | local |
ic , local , ... |
the network alias |
$2 | upgrade |
install , reinstall , upgrade |
specifies the type of deployment |
The project comes with scripts for building all 3 types of canisters:
./scripts/build.sh
# ./scripts/build.sh ic
# ./scripts/build.sh ic reinstall
./scripts/build_journal.sh
./scripts/build_storage.sh
You can also use a node script to upgrade user canisters:
node ./scripts/ic.installcode.mjs
Table of available arguments for scripts:
Argument | Default | Values | Description |
---|---|---|---|
-l , --list |
Show only the list of canisters | ||
--canister-id <journalId> |
Install code to specific canister id | ||
-t , --type <type> |
journal |
journal , storage |
User canister type |
-m , --mode <mode> |
upgrade |
install , reinstall , upgrade |
Specifies the type of deployment |
-n , --network <network> |
local |
ic , local , ... |
Overrides the environment to connect to |
-c , --concurrent <number> |
Infinity | Maximum number of concurrent canister upgrade requests |
- Basic operations
- create folders
- rename
- move with drag and drop
- move using a dialog with a destination folder selection
- delete
- Extended operations
- recursive folder merging
- replace old file in case of name conflict
- share public
- share with users
- share with time-lock option
- multi-color folders
- file history
- batch operations
- Navigation
- folder navigation by path
- breadcrumbs
- Uploading
- upload files
- upload folders
- pausable/resumable uploads
- queue with the number of concurrent uploads
- e2ee with vetkd
- Downloading
- files
- folders as zip-archive
- I18n
- English
- Russian
- Deutsch
- Thumbnails
- images
- audio
- video
- Account wallet
- check balance
- transfer tokens
- validating amount/recipient
- ICP
- ckBTC
- ckETH/ckUSDT
- Web Workers to improve UI performance
- upload/download files
- polling canisters
- user session
- generating thumbnails
- keep batch alive when upload is paused
- Registration
- with ICP
- with an invitatation code
- Developers scripts
- upgrading canisters
- storage capacity testing
- Auto top-up user canisters
- Notification canister (WebSockets feature)
- email (https outcalls)
- Collaborative journal (vetKD)
- managing users and their rights (read/write/admin)
- active upload of a file by a journal member
- Selling files
- Search
- Statistics
- File preview (audio/video/images/pdf)
- SNS DAO?