README
Slick
Build your own backup
Usage
Slick offers an encrypted file-system where long-term storage is offloaded to a Cloud provider of your choosing. In addition to data being encrypted, the metadata describing your file-system is also encrypted.
Slick can easily be included in a nodejs project to store data. Let's try it out!
const slick = require('slick-io');
slick.configure((setup, done) => {
console.log("configuring slick for the first time");
setup.meta.useMemory();
setup.meta.useDisk({size: 52428800}); // 50mb limit
setup.meta.useAcd();
setup.bulk.useMemory();
setup.bulk.useDisk({size: 10737418240}); // 10gb limit
setup.bulk.useAcd();
done();
}).on('fatal', function(error) {
console.error('got a fatal error', error);
}).on('warning', function(warning) {
console.error('got a warning', warning);
}).whenReady(() => {
slick.runServices({
web: { port: 8091 },
fuse: { mounts: { 'vol': {mountPoint: 'mnt/vol'}}}
});
slick.web.start({port: ...});
slick.fuse.mount('vol');
slick.fuse.start();
const vol = slick.volumes.volume('vol');
vol
.create()
.add('./README.md', '/', (err) => {
if (err) console.error('there was an error', err);
console.log('all done');
});
});
slick.start();
There is currently no documentation for this interface, but you can look at lib/volumes/index.js
and lib/volumes/interfaces.js
for some hints.