This project is still young and isn't, at the moment, very stable, so please proceed with caution when running in production.
There are several repos in the BookWyrm org, including documentation, a static landing page, and the actual Bookwyrm code. To run BookWyrm, you want the actual app code which is in bookwyrm-social/bookwyrm.
The production branch of BookWyrm contains a number of tools not on the main branch that are suited for running in production, such as docker-compose changes to update the default commands or configuration of containers, and individual changes to container config to enable things like SSL or regular backups.
Instructions for running BookWyrm in production:
git clone git@github.com:bookwyrm-social/bookwyrm.gitproduction branch:
git checkout productioncp .env.example .env, and update the following:DOMAIN | Your web domainEMAIL | Email address to be used for certbot domain verificationFLOWER_USER | Your own username for accessing Flower queue monitorEMAIL_HOST_USER | The "from" address that your app will use when sending emailEMAIL_HOST_PASSWORD | The password provided by your email service./bw-dev create_secrets or manually update following in .env:SECRET_KEY | A difficult to guess, secret string of charactersPOSTGRES_PASSWORD | Set a secure password for the databaseREDIS_ACTIVITY_PASSWORD | Set a secure password for Redis Activity subsystemREDIS_BROKER_PASSWORD | Set a secure password for Redis queue broker subsystemFLOWER_PASSWORD | Your own secure password for accessing Flower queue monitor./bw-dev init_ssl./bw-dev migratedocker-compose up --build, and make sure all the images build successfullyCTRL-C./bw-dev setup, and copy the admin code to use when you create your admin account../bw-dev setup should conclude with your admin code. You can get your code at any time by running ./bw-dev admin_code from the command line. Here's an example output:*******************************************
Use this code to create your admin account:
c6c35779-af3a-4091-b330-c026610920d6
*******************************************
docker-compose up -dCongrats! You did it!! Configure your instance however you'd like.
BookWyrm's db service dumps a backup copy of its database to its /backups directory daily at midnight UTC.
Backups are named backup__%Y-%m-%d.sql.
The db service has an optional script for periodically pruning the backups directory so that all recent daily backups are kept, but for older backups, only weekly or monthly backups are kept. To enable this script:
postgres-docker/cronfiledocker-compose up --buildYou can copy backups from the backups volume to your host machine with docker cp:
docker-compose ps to confirm the db service's full name (it's probably bookwyrm_db_1.docker cp <container_name>:/backups <host machine path>BookWyrm has multiple services that run on their default ports. This means that, depending on what else you are running on your host machine, you may run into errors when building or running BookWyrm when attempts to bind to those ports fail.
If this occurs, you will need to change your configuration to run services on different ports. This may require one or more changes the following files:
docker-compose.ymlnginx/production.conf or nginx/reverse_proxy.conf depending on NGINX_SETUP in .env-file.env (You create this file yourself during setup)If you are already running a web-server on your machine, you will need to set up a reverse-proxy.
Because BookWyrm is a young project, we're still working towards a stable release schedule, and there are a lot of bugs and breaking changes. There is a GitHub team which can be tagged when there's something important to know about an update, which you can join by sharing your GitHub username. There are a few ways in get in touch: