cobox-server

3.0.0-alpha1 • Public • Published

cobox-server

A REST API for interacting with your cobox groups and replicator devices.

Check out our command line interface which will run this server for you. Check out cobox-cli.

Install

# if you just want the server code
git clone http://ledger-git.dyne.org:3000/CoBox/cobox-server

# if you want the cli too...
git clone --recursive http://ledger-git.dyne.org:3000/CoBox/cobox-server

npm start

Development

npm run dev:server

# to pass arguments, such as port (note the extra double dash)...
npm run dev:server -- --port 1234

Swagger docs are available at http://localhost:3000/api-docs.

Running cobox

⚠️ this code is in flux so please note there is active development and things may change. That being said playing with shiny things is fun.

First you need to start the cobox server

npm start

This will launch a process which you can see by navigating in a browser to

http://localhost:3000/api

If you already have something running on port 3000 then you can run

npm start -- --port 1234

Great, you have a server running. In another terminal you can run (you can use any name you like)

npm cli groups create --name my-new-group

If you have been given an address and an encryption key for a group you want to join, you can create the group by adding the flags --address / -A, or --encryption-key or -k

npm cli groups create -n my-new-group -A b74717c149390c3e8e939f6e94169751d9ade8e2e21e0255ee593fdccb504603 -k 0e90565c93f742019f0956ce7da1c952df343dde4a2c48254fbbb9cbcd7d22be

You would then be able to see this new group by navigating to

http://localhost:3000/api/groups

You can see the list of other commands implemented here

cobox help

RESTful approach to our API

⚠️ this is not yet stable

Verb Path Controller Action Comment
GET /groups groups.js#index list all groups
POST /groups/:id groups.js#create create a single group
POST /groups/:id/mount groups/mount.js#create mount a group
DELETE /groups/:id/mount groups/mount.js#destroy unmount a group
POST /groups/:id/sync groups/sync.js#create sync a group
DELETE /groups/:id/sync groups/sync.js#destroy unsync a group
GET /groups/:id/files groups/files.js#readdir list a group's files
GET /groups/:id/files/:filename groups/files.js#readFile OR groups/files.js#createReadStream download / get a file
GET /settings settings.js#index list settings. Currently includes the public key needed for invite codes
PATCH /settings settings.js#update change settings e.g. name, mountdir, etc
GET /groups/:id/drive groups/drive.js#index get drive state / history
GET /admin/devices admin/devices.js#index list all coboxes devices we hold an admin passphrase for (get from config.yml)
GET /devices devices.js#index listen for locally broadcasting devices, send the pubKey to the front-end
POST /admin/devices/:id admin/devices.js#create using the broadcasted pubKey, send a request to save that device, store the passphrase in config.yml, send it back in response

Readme

Keywords

none

Package Sidebar

Install

npm i cobox-server

Weekly Downloads

1

Version

3.0.0-alpha1

License

AGPL-3.0-only

Unpacked Size

139 kB

Total Files

51

Last publish

Collaborators

  • ameba23
  • kyphae