Sample compose file and Dockerfile for deployment

fix-mobile-margin
Eliot Berriot 6 years ago
parent ac631627ab
commit e5cdb2869f
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27

@ -0,0 +1,5 @@
docs
data
Dockerfile
docker-compose.yml
.env

@ -0,0 +1,20 @@
FROM rust:1-stretch
RUN apt-get update && apt-get install -y --no-install-recommends \
gettext \
postgresql-client \
libpq-dev \
git \
curl \
gcc \
make \
openssl \
libssl-dev
WORKDIR /app
COPY Cargo.toml Cargo.lock ./
RUN cargo install diesel_cli --no-default-features --features postgres --version '=1.2.0'
COPY . .
RUN cargo build
RUN rm -rf target/debug/incremental
CMD ["cargo", "run"]
EXPOSE 7878

@ -17,6 +17,9 @@ All the following instructions will need a terminal.
Here are the commands to install PostgreSQL and GetText on various operating systems.
Some of them may need root permissions.
You can also install the project using Docker and docker-compose, please refer
to the `Docker install` section.
On **Debian**:
```bash
@ -142,8 +145,36 @@ mkdir media
# Actually start Plume
cargo run
## Docker install
You can use Docker and docker-compose in order to manage your Plume instance and
have it isolated from your host:
```
git clone git@github.com:Plume-org/Plume.git
cd Plume
cp docs/docker-compose.sample.yml docker-compose.yml
cp docs/docker.sample.env .env
# build the containers
docker-compose build
# launch the database
docker-compose up -d postgres
# run the migrations
docker-compose run --rm plume diesel migration run
# run interactive setup
docker-compose run --rm plume bash
cargo run
# copy the env file and paste it in your host .env file
cat .env
# leave the container
exit
# launch your instance for good
docker-compose up -d
```
Then, you can configure your reverse proxy.
## Configuring Nginx
Here is a sample Nginx configuration for a Plume instance (replace `blog.example.com` with your domain name):

@ -0,0 +1,18 @@
version: '3'
services:
postgres:
image: postgres:10.5
env_file: .env
restart: unless-stopped
volumes:
- "./data/postgres:/var/lib/postgresql/data"
plume:
build: .
env_file: .env
restart: unless-stopped
volumes:
- "./data/plume/static/media:/app/media"
- "./.env:/app/.env"
ports:
- "127.0.0.1:7878:7878"

@ -0,0 +1,12 @@
BASE_URL=yourdomain.com
# generate one with openssl rand -base64 45
ROCKET_SECRET_KEY=randomstringhere
# you can safely leave those defaults
POSTGRES_USER=plume
POSTGRES_PASSWORD=plume
DB_URL=postgres://plume:plume@postgres:5432/plume
DATABASE_URL=postgres://plume:plume@postgres:5432/plume
USE_HTTPS=1
ROCKET_ADDRESS=0.0.0.0
ROCKET_PORT=7878
Loading…
Cancel
Save