/davros

Personal file storage server

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Davros File Storage

Davros lets you store all of your files in the cloud and sync them between your devices.

Screenshot of Davros

Try Live Demo

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

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.

  1. vagrant-spk vm ssh then cd /opt/app && rm -rf node_modules/sharp && yarn -- this is because the sharp module has native components that need to be built on linux
  2. Edit .sandstorm/sandstorm-pkgdef.capnp and update appVersion and appMarketingVersion. Bump major version for major breaking changes, minor version for significant new features, and patch version for tiny features and bugfixes.
  3. Edit CHANGELOG.md and add a section with your new version.
  4. Run yarn build to build the UI.
  5. Run yarn build-server to build the backend.
  6. 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.
  7. Run vagrant-spk pack build/[VERSION].spk (replacing [VERSION] with the version you chose in step 2)
  8. 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.
  9. Commit any uncommitted changes and tag them v[VERSION].
  10. Run vagrant-spk publish build/[VERSION].spk

Acknowledgements

License

See LICENSE file.