aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: a9d1bb04a158c3fcedc76173443e7fe2c0d579cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# A simple blog engine made with Rocket, Diesel and Bart

This is essentially a toy project to learn [Rocket](https://rocket.rs) and [Diesel](https://diesel.rs). Also I'm using [Bart](https://crates.io/crates/bart) for templates, because it seemed simple, and I like the name.

## Getting started

### Using Vagrant

You need to inatsll both [Vagrant] and [VirtualBox] unless you already have them installed. Then from the directory where you have cloned the rocket-blog type:

    % vagrant up

This will install, prepare and start the virtual machine where you will run the program. This will take some time the first time you do it. Once it is done, you can log in to the virtual machine by typing:

    % vagrant ssh

In the virtual machine, do the following:

    % cd /vagrant
    % echo "DATABASE_URL=postgres://vagrant@localhost/rocket_blog" > .env
    % diesel setup

The application is now ready, and can be started like this:

    % cargo run

Now you can open http://localhost:8000 in your web browser.

### Using a local developer setup

First make sure you have PostgreSQL installed. We don't support any other database engine for now. You also need the nightly Rust compiler for now. To set the current project to use the nightly compiler, run:

    % rustup override nightly-2017-12-21

Then add a database url into a `.env`-file  that is to be located in the root of the source directory:

    % echo DATABASE_URL=postgres://dbuser:password@localhost/dbname > .env

Then create the user and database specified above:

    % createuser -U postgres --createdb --login -P dbuser

Replace `dbuser`, `dbname` and `password` with values that makes sense to you. You will be prompted for the password when creating the user.

Next install `diesel_cli`:

    % cargo install diesel_cli

Then run the diesel setup to create the database and run the migrations:

    % ~/.cargo/bin/diesel setup

Check that everything is working:

    % cargo test

Run the engine:

    % cargo run

## License

This project is provided as free software under the GNU AGPL v3, see LICENSE for details.

[Vagrant]: https://www.vagrantup.com
[VirtualBox]: https://www.virtualbox.org/