REVA is an interoperability platform. It connects storage, sync and share platforms and application providers, and it does it in a vendor and platform neutral way by using the CS3 APIS.
Head to Documentation for documentation or download to get the latest available release.
Read the getting started guide and the other feature guides.
You need to have Go, git and make installed. Some of these commands may require sudo
, depending on your system setup.
$ git clone https://github.com/cs3org/reva
$ cd reva
$ make deps
$ make build
$ mkdir -p /etc/revad
$ cp examples/storage-references/users.demo.json /etc/revad/users.json
$ cp examples/storage-references/groups.demo.json /etc/revad/groups.json
$ cp examples/storage-references/providers.demo.json /etc/revad/ocm-providers.json
$ cmd/revad/revad -dev-dir examples/storage-references
You can also read the build from sources guide and the setup tutorial.
make test
-
start the needed services
cd tests/oc-integration-tests/local ../../../cmd/revad/revad -c frontend.toml & ../../../cmd/revad/revad -c gateway.toml & ../../../cmd/revad/revad -c storage-home.toml & ../../../cmd/revad/revad -c storage-users.toml & ../../../cmd/revad/revad -c users.toml
-
run litmus tests:
docker run --rm --network=host\ -e LITMUS_URL=http://localhost:20080/remote.php/webdav \ -e LITMUS_USERNAME=einstein \ -e LITMUS_PASSWORD=relativity \ owncloud/litmus:latest
- add
TESTS
env. variable to test only a subset of tests e.g-e TESTS="basic http copymove props"
- change
LITMUS_URL
for other tests e.g.-e LITMUS_URL=http://localhost:20080/remote.php/dav/files/einstein
or to a public-share link
- add
-
start an LDAP server
docker run --rm --hostname ldap.my-company.com \ -e LDAP_TLS_VERIFY_CLIENT=never \ -e LDAP_DOMAIN=owncloud.com \ -e LDAP_ORGANISATION=ownCloud \ -e LDAP_ADMIN_PASSWORD=admin \ --name docker-slapd \ -p 127.0.0.1:389:389 \ -p 636:636 -d osixia/openldap
-
start a REDIS server
docker run --rm -e REDIS_DATABASES=1 -p 6379:6379 -d webhippie/redis:latest
-
start the needed services
cd tests/oc-integration-tests/local ../../../cmd/revad/revad -c frontend.toml & ../../../cmd/revad/revad -c gateway.toml & ../../../cmd/revad/revad -c shares.toml & ../../../cmd/revad/revad -c storage-home.toml & ../../../cmd/revad/revad -c storage-users.toml & ../../../cmd/revad/revad -c storage-publiclink.toml & ../../../cmd/revad/revad -c ldap-users.toml
-
clone ownCloud 10
git clone https://github.com/owncloud/core.git ./testrunner
-
clone the testing app
git clone https://github.com/owncloud/testing.git ./testrunner/apps/testing
-
run the tests
cd testrunner TEST_SERVER_URL='http://localhost:20080' \ OCIS_REVA_DATA_ROOT='/var/tmp/reva/' \ SKELETON_DIR='./apps/testing/data/apiSkeleton' \ TEST_WITH_LDAP='true' \ REVA_LDAP_HOSTNAME='localhost' \ TEST_REVA='true' \ BEHAT_FILTER_TAGS='~@skipOnOcis&&~@skipOnOcis-OC-Storage' \ make test-acceptance-api
This will run all tests that are relevant to reva.
To run a single test add BEHAT_FEATURE= and specify the path to the feature file and an optional line number. For example: BEHAT_FEATURE='tests/acceptance/features/apiWebdavUpload1/uploadFile.feature:12'
On every commit on the master branch (including merged Pull Requests) a new release will be created and available at daily releases.
See https://hub.docker.com/r/cs3org/reva.
Checkout the Tutorials.
To promote free and unrestricted adoption of CS3 APIs and the reference implementation REVA by all EFSS implementations and all platforms and application providers, both community and commercial, Open Source and Open Core, CERN released the source code repositories under Apache 2.0 license.
Further evolution of the CS3 APIs will be driven by the needs of the Educational and Research community with the goal of maximizing the portability of the applications and service extensions.
REVA is distributed under Apache 2.0 license.
REVA logo's have been designed and contributed to the project by Eamon Maguire.
There is no backward compatibility promises and semantic versioning yet. Semantic versioning will be added once v1.0.0 is reached.
If you want to use it, vendor it. It is always OK to change things to make things better. The API is not 100% correct in the first commit.