ravenserver is a rocket-based online repository/package manager for raven themes written in rust. You can write your own client or bot easily using the API if you want. The main instance runs on my website, and raven comes configured with that by default, but you can swap to your own easily.

Ravenserver Documentation

REST API
  • POST /themes/report

    • This endpoint reports a theme for a specific reason. Required body fields:
      • name: The name of the theme you're reporting
      • reason: The reason the theme is being reported
      • info: Any additional information about the report
  • POST /themes/meta/:name

    • This endpoint updates the metadata of a specific theme. Required query fields:
      • token: A valid login token
      • typem: The metadata you're updating(either screen or description)
      • value: The value to update to
  • POST /themes/users/delete/:user

    • This endpoint permanently deletes a user's account and all owned themes. Required query fields:
      • token: A valid login token
      • pass: The user's password for verification
  • POST /themes/delete/:name

    • This endpoint permanently deletes a theme. Required query fields:
      • token: A valid login token
  • GET /themes/repo/:name

    • This endpoint returns a tarball of the named theme for downloading.
  • POST /themes/upload

    • This endpoint creates or updates a theme. Required query fields:
      • name: Theme name
      • token: A valid login token
    • It also requires a multipart tarball of the theme to be uploaded. The maximum size is 50mb.
  • POST /themes/user/create

    • This endpoint creates a new user. Required query fields:
      • name: The new user name. Must be unique
      • pass: The password to sign up with
  • GET /themes/user/login

    • This endpoint takes a name and password and, if authenticated correctly, returns a login token. Required query fields:
      • name: Username
      • pass: Password to authenticate with
Installation

To set up your own instance, it's pretty easy. First, grab the code:

git clone https://git.sr.ht/~nicohman/ravenserver-rs

You need to set the environment variable RAVENSERVER_SECRET to whatever your secret should be for password encryption. Then, run

cargo run --release

and it should be good to go. You may need to make a few tweaks in Rocket.toml for things like ssl cert paths but otherwise you should be fine.

About this wiki

commit e48bb3a456eb674f958fa602a00aa2e2aba7c3db
Author: nicohman <None>
Date:   2019-06-30T00:15:53+00:00

Update ravenserver docs for ravenserver-rs
Clone this wiki
https://git.sr.ht/~nicohman/raven (read-only)
git@git.sr.ht:~nicohman/raven (read/write)