This project is still young and isn't, at the moment, very stable, so please proceed with caution when running in production.
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.git
production
branch: git checkout production
cp .env.example .env
, and update the following:SECRET_KEY
| Trudny do odgadnięcia, tajny ciąg znakówDOMAIN
| Twoja domena sieciowaEMAIL
| Adres e-mail używany do weryfikacji domeny przez bota certyfikującegoPOSTGRES_PASSWORD
| Ustaw bezpieczne hasło dla bazy danychREDIS_ACTIVITY_PASSWORD
| Set a secure password for Redis Activity subsystemREDIS_BROKER_PASSWORD
| Set a secure password for Redis queue broker subsystemFLOWER_USER
| Your own username for accessing Flower queue monitorFLOWER_PASSWORD
| Your own secure password 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 servicecp nginx/production nginx/default.conf
nginx/default.conf
:your-domain.com
with your domain name everywhere in the file (including the lines that are currently commented out)www
subdomain, remove the www.your-domain.com version of the domain from the server_name
in the first server block in nginx/default.conf
and remove the -d www.${DOMAIN}
flag at the end of the certbot
command in docker-compose.yml
../bw-dev migrate
docker-compose up --build
, and make sure all the images build successfullyCTRL-C
docker-compose.yml
, comment out the active certbot command, which installs the certificate, and uncomment the line below, which sets up automatically renewals.nginx/default.conf
, uncomment lines 18 through 50 to enable forwarding to HTTPS. You should have two server
blocks enabledcron
job to keep your certificates up to date (Lets Encrypt certificates expire after 90 days)crontab -e
to edit your cron file in the host machine5 0 * * * cd /path/to/your/bookwyrm && docker-compose run --rm certbot
./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 -d
Gratulacje! Udało się!! Skonfiguruj swoją instancję jak tylko chcesz.
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. Aby aktywować ten skrypt:
postgres-docker/cronfile
docker-compose up --build
You 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 posiada wiele usług, które działają na ich domyślnych portach. Oznacza to, że w zależności od tego, co jeszcze działa na Twoim komputerze hosta, możesz napotkać błędy podczas kompilowania lub uruchamiania BookWyrm, gdy próby powiązania z tymi portami zakończą się niepowodzeniem.
Jeśli tak się stanie, należy zmienić konfigurację, aby usługi działały na różnych portach. Może to wymagać jednej lub więcej zmian w następujących plikach:
docker-compose.yml
nginx/default.conf
.env
(Tworzysz ten plik podczas konfiguracji)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. Istnieje kilka sposobów na kontakt: