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 CONTRIBUTING.md.
- Diesel: Database ORM
- Rocket: Web framework
- Askama: Templating engine
- FullCalendar: For JavaScript calendars
- Bootstrap: CSS framework
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). This can be set for the Observatory-new repository folder specifically by running
rustup override set nightly
in cloned folder.
As of Rustup 1.20.0 this will automatically install the additional tools and can be updated
with rustup update
.
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