Davros File Storage
Davros lets you store all of your files in the cloud and sync them between your devices.
Prerequisites
Davros is built to run inside Sandstorm, an open source web application platform. You can either run Sandstorm yourself or let someone else host it for you.
Installation
- Set up Sandstorm
- Download the latest release and upload it to your Sandstorm server.
Development
Davros is built using Node.js and Ember.js. To run locally, you'll need to install node.js. We also recommend that you use yarn to install dependencies since that will lock versions to the ones that are used during deployment.
To install yarn run npm install -g yarn
Then:
yarn install
yarn dev --port=3009
At this point you'll have Davros running at http://localhost:3009
. Substitute 3009
for another port if you want. Note that running Davros this way is not particularly safe; it relies completely on Sandstorm for user management and authentication.
In development, you can connect your desktop client to http://localhost:3009/ with any username and password.
Sandstorm Development
A few parts of Davros are dependent on running within Sandstorm, such as the authentication instructions on the Clients page. To run inside Sandstorm, first get vagrant-spk. Then, within the Davros directory, run
vagrant-spk vm up
vagrant-spk dev
While this works it requires that you re-run vagrant-spk dev
manually anytime you make a change. To
have this done automatically consider using ember-cli-vagrant-spk instead which will monitor your filesystem for changes and restart the server
for you.
Linting
yarn lint:hbs
yarn lint:js
yarn lint:js -- --fix
Releasing
Releasing an app is a little bit convoluted. This assumes you are on a non-linux machine, running sandstorm via vagrant-spk. On linux, you might be able to get away with skipping step 1.
vagrant-spk vm ssh
thencd /opt/app && rm -rf node_modules/sharp && yarn
-- this is because thesharp
module has native components that need to be built on linux- Edit
.sandstorm/sandstorm-pkgdef.capnp
and updateappVersion
andappMarketingVersion
. Bump major version for major breaking changes, minor version for significant new features, and patch version for tiny features and bugfixes. - Edit
CHANGELOG.md
and add a section with your new version. - Run
yarn build
to build the UI. - Run
yarn build-server
to build the backend. - Run
vagrant-spk dev
and navigate around the app testing various functionality. This is generally good to do, but when you exit, this will also update.sandstorm/sandstorm-files.list
with any new files. - Run
vagrant-spk pack build/[VERSION].spk
(replacing[VERSION]
with the version you chose in step 2) - On a sandstorm instance, upload the packed app file and install it. Test it to ensure everything works properly and that all files were included.
- Commit any uncommitted changes and tag them
v[VERSION]
. - Run
vagrant-spk publish build/[VERSION].spk
Acknowledgements
License
See LICENSE file.