The new (and improved) RCOS website
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Steven vanZyl 9154d51939 Fix some bugs 2 days ago
.circleci changed circleci docker image 2 months ago
.github Add pull request template 3 months ago
migrations News annoucements 3 weeks ago
scripts A few fixes 2 months ago
src Fix some bugs 2 days ago
static Workaround for #38 3 months ago
templates News annoucements 3 weeks ago
.dockerignore Fix CircleCI again 2 months ago
.gitignore Mentors can see meeting codes 3 months ago Update some docs 4 months ago
Cargo.toml Update rust-embed to 5.1.0 2 months ago Update the README 3 months ago
Dockerfile Fixed Dockerfile 2 months ago
LICENSE Users lists 5 months ago Update readme 2 months ago
Rocket.toml Fix some bugs 2 days ago
diesel.toml Diesel setup and basic schemas 5 months ago
logo.svg optimized logo svg 1 month ago



RCOS Observatory logo

Rewrite of the RCOS observatory in a way that hopefully makes a bit more sense. Since we have kinda lost track of what number we’re on at this point I am codenaming this version Observatory-New (I think it’s the 5th version though).

This implementation is intended to be simpler than previous incarnations in order to be easier to maintain in the long run.

It renders pages as plain HTML with minimal JavaScript and uses SQLite as the database backend.

If you would like to help out please read

Major Dependencies


Before anything else make sure that you have the development tools for your system. On Ubuntu/Debian you can install these with:

$ sudo apt install build-essential pkg-config

Then you need to install the openssl development headers. How to do this varies by system but on Ubuntu the package is libssl-dev and should be similar on other distros.

Next install Rust with Rustup. Instructions are on the website linked and is fairly straightforward.

Rocket requires Rust Nightly (for now). However the Rust official tooling does not support the generic nightly target so I suggest using the latest dated version of nightly that the RLS supports. You can check that on this page and can install it with the following command. Make sure to run this in the observatory-new folder.

$ rustup override set nightly-YYYY-MM-DD

You have to manually keep this up to date, so every week or so run the command a gain with a newer date.

After that it’s as simple as

$ cargo build

And to run do

$ cargo run


This is for deploying to a server, not a developer machine

Please read the Deploying instructions for information on how to setup and deploy observatory-new.


The code is primarily documented using in-code doc comments. This can be viewed either by browsing the source or in a web browser with.

$ cargo doc --no-deps --document-private-items --all-features --open