4 releases
Uses old Rust 2015
0.3.0 | Aug 29, 2018 |
---|---|
0.2.9 | Nov 9, 2017 |
0.2.8 | Nov 8, 2017 |
0.2.7 | Nov 8, 2017 |
#888 in Authentication
30 downloads per month
1.5MB
5K
SLoC
Getting started
GitHub
Clowder uses OAuth for authentication, with the current provider being GitHub.
At your local site, you need to create a
GitHub OAuth application
with your own Client ID and Client Secret.
Set up environment variables containing these values, or put them in a .env
file in your source directory:
echo "CLOWDER_GH_CLIENT_ID=aaaaaaaaaa" > .env
echo "CLOWDER_GH_CLIENT_SECRET=aaaaaaaaaa" >> .env
Rust
For the moment, we depend on crates that depend on Rust nightly (see SergioBenitez/Rocket#19 for our main blocker). You will likely want to use Rustup to install the nightly version of Rust.
Database
Clowder requires a database to be created that is accessible to the user running the service. Using Postgres (at least on FreeBSD), this looks like:
# service postgresql initdb
# service postgresql start
# su - postgres
$ createuser ${username} # with a username like, e.g., clowder
$ psql postgres
postgres=# create database clowder;
postgres=# grant all on database clowder to ${username};
You should set the database URL in an environment variable, or in a
.env
file within your source directory:
$ echo "export DATABASE_URL=postgres://localhost/clowder" >> .env
Once the database has been created, we use the Diesel ORM to initialize it:
$ cargo install diesel_cli
$ cd path/to/clowder/source
$ diesel migration run
Clowder
Once Rust and the Clowder database have been set up, you can build and run Clowder!
$ cargo build
$ cargo run
Development environment
Fake user account
You can set CLOWDER_FAKE_GITHUB_USERNAME
in your environment (or .env
file)
to provide a username to be treated as if it were obtained from the normal
GitHub OAuth workflow.
Reloading
For development purposes, I like to use cargo-watch to rebuild whenever I change a source file:
$ cargo watch --ignore '*.swp' --exec run
This goes quite nicely with LiveReload.
Dependencies
~22–32MB
~587K SLoC