VaultZero Backend is the API server for the VaultZero platform, enabling secure file upload, encryption, and decentralized storage using IPFS. Built with Node.js and Express, it allows users to upload .zip files, which are encrypted and stored both locally and on IPFS. Files can be securely downloaded and decrypted on demand.
- Upload
.zipfiles via REST API - AES-256 encryption of uploaded files
- Secure file storage and retrieval
- Decentralized file storage using IPFS
- Unique download links for each file
- Automatic cleanup of invalid uploads
VaultZero/
└── vaultzero-backend/
├── decrypted/
├── encrypted/
├── file-encryption/
│ ├── decryptFile.js
│ ├── deriveKey.js
│ ├── encryptFile.js
│ └── utils.js
├── lib/
│ └── ipfs/
│ └── uploadToIPFS.js
├── metadata/
├── uploads/
├── package.json
├── server.js
└── README.md
- Node.js (v16+ recommended)
- IPFS daemon running locally (
ipfs daemon)
Clone the repository:
git clone <repo-url>
cd vaultzero-backendInstall dependencies:
npm installStart the server:
node server.jsThe server will run on http://localhost:8000 by default.
POST /upload
- Upload a
.zipfile (multipart/form-data, field name:file) - Response includes:
uuid: Unique file identifieripfsHash: IPFS CID of the encrypted fileipfsUrl: Public IPFS gateway URLdownloadUrl: Local download endpoint
GET /download/:uuid
- Downloads and decrypts the file with the given UUID
No environment variables are required by default. If you wish to customize directories or secrets, edit the relevant files in file-encryption and server.js.
This project is licensed under the MIT License. See the LICENSE file for details.