Update installation and update docs with the new plm tool

Also updates the Docker files
This commit is contained in:
Bat 2018-10-06 11:59:39 +01:00
parent d0d1210e21
commit caa4c38948
3 changed files with 59 additions and 28 deletions

View File

@ -14,7 +14,8 @@ WORKDIR /app
COPY Cargo.toml Cargo.lock ./ COPY Cargo.toml Cargo.lock ./
RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.2.0' RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.2.0'
COPY . . COPY . .
RUN cargo build RUN cargo install --force
RUN cargo install --path plume-cli --force
RUN rm -rf target/debug/incremental RUN rm -rf target/debug/incremental
CMD ["cargo", "run"] CMD ["plume"]
EXPOSE 7878 EXPOSE 7878

View File

@ -133,44 +133,73 @@ This command may be useful if you decided to use a separate database server.
## Starting Plume ## Starting Plume
When you launch Plume for the first time, it will ask you a few questions to setup your instance before it actually launches. To start it, run these commands. First, you'll need to install Plume and the CLI tools to manage your instance.
``` ```
# Optional, only do it if the database URL is not cargo install && cargo install --path plume-cli
# postgres://plume:plume@localhost/plume ```
export DB_URL=postgres://plume:PASSWORD@DBSERVERIP:DBPORT/DATABASE_NAME
# Create the media directory, where uploads will be stored Before starting Plume, you'll need to create a configuration file, called `.env`. Here is a sample of what you should put inside.
```bash
# The address of the database
# (replace USER, PASSWORD, PORT and DATABASE_NAME with your values)
DB_URL=postgres://USER:PASSWORD@IP:PORT/DATABASE_NAME
# The domain on which your instance will be available
BASE_URL=plu.me
# Secret key used for private cookies and CSRF protection
# You can generate one with `openssl rand -base64 32`
ROCKET_SECRET_KEY=
```
For more information about what you can put in your `.env`, see [the documentation about environment variables](ENV-VARS.md).
After that, you'll need to setup your instance, and the admin's account.
```
plm instance new
plm users new --admin
```
For more information about these commands, and the arguments you can give them, check out [their documentaion](CLI.md).
After that, you are almost done, the last thing to do is to create the media directory, where uploads will be stored:
```bash
mkdir media mkdir media
```
# Actually start Plume Finally, you can start Plume with:
cargo run
```bash
plume
``` ```
## Docker install ## Docker install
You can use `docker` and `docker-compose` in order to manage your Plume instance and You can use `docker` and `docker-compose` in order to manage your Plume instance and have it isolated from your host:
have it isolated from your host:
``` ```bash
git clone git@github.com:Plume-org/Plume.git git clone git@github.com:Plume-org/Plume.git
cd Plume cd Plume
cp docs/docker-compose.sample.yml docker-compose.yml cp docs/docker-compose.sample.yml docker-compose.yml
cp docs/docker.sample.env .env cp docs/docker.sample.env .env
# build the containers
# Build the containers
docker-compose build docker-compose build
# launch the database
# Launch the database
docker-compose up -d postgres docker-compose up -d postgres
# run the migrations # Run the migrations
docker-compose run --rm plume diesel migration run docker-compose run --rm plume diesel migration run
# run interactive setup
docker-compose run --rm plume bash # Setup your instance
cargo run docker-compose run --rm plume plume instance new
# copy the env file and paste it in your host .env file docker-compose run --rm plume plume users new --admin
cat .env
# leave the container # Launch your instance for good
exit
# launch your instance for good
docker-compose up -d docker-compose up -d
``` ```
@ -196,7 +225,7 @@ server {
listen 443 ssl http2; listen 443 ssl http2;
listen [::]:443 ssl http2; listen [::]:443 ssl http2;
server_name blog.example.org; server_name blog.example.org;
access_log /var/log/nginx/access.log; access_log /var/log/nginx/access.log;
root /home/plume/Plume/ ; root /home/plume/Plume/ ;
@ -295,7 +324,7 @@ Description=plume
Type=simple Type=simple
User=plume User=plume
WorkingDirectory=/home/plume/Plume WorkingDirectory=/home/plume/Plume
ExecStart=/home/plume/.cargo/bin/cargo run ExecStart=/home/plume/.cargo/bin/plume
TimeoutSec=30 TimeoutSec=30
Restart=always Restart=always
@ -339,7 +368,7 @@ This script can also be useful if you are using SysVinit.
### END INIT INFO ### END INIT INFO
dir="/home/plume/Plume" dir="/home/plume/Plume"
cmd="/home/plume/.cargo/bin/cargo run" cmd="/home/plume/.cargo/bin/plume"
user="plume" user="plume"
name=`basename $0` name=`basename $0`
@ -437,4 +466,4 @@ exit 0
## Acknowledgements ## Acknowledgements
Most of this documentation has been written by *gled-rs*. The systemd unit file, Nginx and Apache configurations have been written by *nonbinaryanargeek*. Some parts (especially the instructions to install native dependencies) are from the [Aardwolf project](https://github.com/Aardwolf-Social/aardwolf). Most of this documentation has been written by *gled-rs*. The systemd unit file, Nginx and Apache configurations have been written by *nonbinaryanargeek*. Some parts (especially the instructions to install native dependencies) are from the [Aardwolf project](https://github.com/Aardwolf-Social/aardwolf). The docker instructions, and files have been added by *Eliot Berriot*.

View File

@ -4,11 +4,12 @@ To update your instance, run these commands with `plume` user if you created it,
``` ```
git pull origin master git pull origin master
cargo install --force && cargo install --path plume-cli --force
# If you are using sysvinit # If you are using sysvinit
sudo service plume restart sudo service plume restart
# If you are using systemd # If you are using systemd
sudo systemctl restart plume sudo systemctl restart plume
``` ```