Docker installation

Docker is the easiest way to get a reel2bits instance up and running.

We support one type of Docker deployments:

  • Multi-container: each process lives in a dedicated container. This setup is more involved but also more flexible and scalable.

Note

We do not distribute Docker images for non-amd64 architectures yet. However, you can easily build those images yourself following our instructions, and come back to this installation guide once the build is over.

Multi-container installation

First, ensure you have Docker and docker-compose installed.

Export the version you want to deploy (e.g., 0.6.9):

export REEL2BITS_VERSION="0.0.1"

Download the sample docker-compose file:

mkdir /srv/reel2bits
cd /srv/reel2bits
mkdir nginx
curl -L -o nginx/nginx.template "https://github.com/reel2bits/reel2bits/raw/$REEL2BITS_VERSION/deploy/docker.nginx.template"
curl -L -o nginx/reel2bits_proxy.conf "https://github.com/reel2bits/reel2bits/raw/$REEL2BITS_VERSION/deploy/reel2bits_proxy.conf"
curl -L -o docker-compose.yml "https://github.com/reel2bits/reel2bits/raw/$REEL2BITS_VERSION/deploy/docker-compose.yml"

You needs to edit nginx/reel2bits_proxy.conf to replace $scheme by https.

At this point, the architecture of /srv/reel2bits should look like that:

.
├── docker-compose.yml
└── nginx
    ├── reel2bits_proxy.conf
    └── reel2bits.template

Create your env file:

curl -L -o .env "https://github.com/reel2bits/reel2bits/raw/$REEL2BITS_VERSION/deploy/env.prod.sample"
sed -i "s/REEL2BITS_VERSION=latest/REEL2BITS_VERSION=$REEL2BITS_VERSION/" .env
chmod 600 .env  # reduce permissions on the .env file since it contains sensitive data
sudo nano .env

Ensure to edit it to match your needs (this file is heavily commented), in particular SECRET_KEY, SECURITY_PASSWORD_SALT or REEL2BITS_HOSTNAME. You should take a look at the configuration reference for more detailed information regarding each setting.

Deploy a frontend build.

According to your REEL2BITS_FRONTEND_PATH in .env:

grep REEL2BITS_FRONTEND_PATH .env
REEL2BITS_FRONTEND_PATH=/srv/reel2bits/front/dist

mkdir -p /srv/reel2bits/front/dist
  • The URL for a stable release will be https://assets.reel2bits.org/front-dist-master-v0.5.zip.

  • The URL for master will be https://assets.reel2bits.org/front-dist-master.zip.

You can always go to https://assets.reel2bits.org/ to check the available archives, and test the link before downloading it.

wget <the url>
unzip "the_filename.zip" -d extract
# beware with this command, take care
rm -rf "/srv/reel2bits/front/dist/"
cp -r extract/dist/ /srv/reel2bits/front/dist/
# same with this one
rm -rf "extract"

Then, you should be able to pull the required images:

docker-compose pull

Run the database container and the initial migrations and database seeds:

docker-compose up -d postgres
docker-compose run --rm api psql -U postgres -h postgres -w -c 'CREATE EXTENSION IF NOT EXISTS "uuid-ossp";' postgres
docker-compose run --rm api flask db upgrade
docker-compose run --rm api flask db-datas 000-seeds

Create your admin user:

docker-compose run --rm api flask users create

Then launch the whole thing:

docker-compose up -d

Test email sending (Important if you configured the app to have user confirm their email !):

docker-compose run --rm api flask test-email --email=EMAIL_TO_SEND_TEST_TO

Now, you just need to configure your reverse-proxy. Don’t worry, it’s quite easy.