Ce projet est encore jeune et n'est pas, pour le moment, très stable, faites preuve de prudence lors de son utilisation en production. Ce mode d'installation nécessite plus de travail, et est donc à réserver aux administrateurs plus expérimentés. L'installation via docker est recommandée Cette méthode d'installation suppose que vous ayez déjà configuré ssl, avec les certificats à votre disposition
apt install postgresql redis nginx python3-venv python3-pip python3-dev libpq-dev
La branche production
de BookWyrm contient un certain nombre d'outils qui ne sont pas sur la branche main
, prévus pour fonctionner en production, tels que des modifications de docker-compose
pour mettre à jour les commandes par défaut ou la configuration des conteneurs, ou des modifications spécifiques à des containers pour activer des fonctionnalités telles que SSL ou des sauvegardes régulières. Tous ces changements n'ont pas nécessairement un impact sur l'installation sans docker, mais la branche production
est néanmoins recommandée
Instructions pour l'exécution de BookWyrm en production sans Docker :
/opt/bookwyrm
: mkdir /opt/bookwyrm && cd /opt/bookwyrm
git clone git@github.com:bookwyrm-social/bookwyrm.git ./
production
: git checkout production
cp .env.example .env
, et mettez à jour ce qui suit :SECRET_KEY
| Une chaîne de caractères secrète, difficile à devinerDOMAIN
| Votre domaine webPOSTGRES_PASSWORD
| Utilisez un mot de passe sécurisé pour la base de donnéesPOSTGRES_HOST
| Mettez à localhost
(la machine exécutant votre bdd)POSTGRES_USER
| Mettez à bookwyrm
(recommendé) ou une valeur personnalisée (configurée plus tard)POSTGRES_DB
| Définir à bookwyrm
REDIS_ACTIVITY_PASSWORD
| Laissez à blanc (adapté pour une machine locale avec un pare-feu)REDIS_ACTIVITY_HOST
| Mettez à localhost
(la machine exécutant redis)REDIS_BROKER_PASSWORD
| Laissez à blanc (adapté pour une machine locale avec un pare-feu)REDIS_BROKER_HOST
| Mettez à localhost
(la machine exécutant redis)EMAIL_HOST_USER
| L'adresse d'expéditeur de laquelle votre application enverra des emailsEMAIL_HOST_PASSWORD
| Le mot de passe fourni par votre service d'emailingcp nginx/server_config /etc/nginx/conf.d/server_config
cp nginx/production /etc/nginx/sites-available/bookwyrm.conf
bookwyrm.conf
de nginx :your-domain.com
par votre nom de domaine partout dans le fichier (y compris dans les lignes qui sont pour l'instant commentées)/app/
avec votre chemin d'installation /opt/bookwyrm/
partout dans le fichier (y compris dans les commentaires)server
actifsssl_certificate
et ssl_certificate_key
par ceux de votre fullchain et privkeyserver localhost:8000
. Vous pouvez choisir un port différent si vous le souhaitezln -s /etc/nginx/sites-available/bookwyrm.conf /etc/nginx/sites-enabled/bookwyrm.conf
systemctl reload nginx
mkdir venv
python3 -m venv ./venv
./venv/bin/pip3 install -r requirements.txt
Créez la base de données postgresql de bookwyrm. Assurez-vous de remplacer le mot de passe par ce que vous avez défini dans la configuration .env
:
sudo -i -u postgres psql
CREATE USER bookwyrm WITH PASSWORD 'securedbypassword123';
CREATE DATABASE bookwyrm TEMPLATE template0 ENCODING 'UNICODE';
ALTER DATABASE bookwyrm OWNER TO bookwyrm;
GRANT ALL PRIVILEGES ON DATABASE bookwyrm TO bookwyrm;
\q
venv/bin/python3 manage.py migrate
venv/bin/python3 manage.py initdb
venv/bin/python3 manage.py collectstatic --no-input
Créez et configurez votre utilisateur bookwyrm
useradd bookwyrm -r
chown -R bookwyrm:bookwyrm /opt/bookwyrm
sudo -u bookwyrm echo I am the $(whoami) user
Générez le code administrateur avec sudo -u bookwyrm venv/bin/python3 manage.py admin_code
, et copiez le pour l'utiliser lors de la création du compte administrateur.
*******************************************
Use this code to create your admin account:
c6c35779-af3a-4091-b330-c026610920d6
*******************************************
#!/bin/bash
# stop if one process fails
set -e
# bookwyrm
/opt/bookwyrm/venv/bin/gunicorn bookwyrm.wsgi:application --bind 0.0.0.0:8000 &
# celery
/opt/bookwyrm/venv/bin/celery -A celerywyrm worker -l info -Q high_priority,medium_priority,low_priority &
/opt/bookwyrm/venv/bin/celery -A celerywyrm beat -l INFO --scheduler django_celery_beat.schedulers:DatabaseScheduler &
# /opt/bookwyrm/venv/bin/celery -A celerywyrm flower &
- Remplacez `/opt/bookwyrm` par votre répertoire d'installation
- Remplacez `8000` par votre numéro de port personnalisé
- Flower a été ici désactivé parce qu'il n'est pas configuré automatiquement avec le mot de passe défini dans le fichier `.env`
sudo -u bookwyrm bash /opt/bookwyrm/dockerless-run.sh
# /etc/systemd/system/bookwyrm.service
[Unit]
Description=Bookwyrm Server
After=network.target
After=systemd-user-sessions.service
After=network-online.target
[Service]
User=bookwyrm
Type=simple
Restart=always
ExecStart=/bin/bash /opt/bookwyrm/dockerless-run.sh
WorkingDirectory=/opt/bookwyrm/
[Install]
WantedBy=multi-user.target
Vous devrez configurer une tâche Cron pour que le service démarre automatiquement au redémarrage du serveur.
Félicitations ! Vous y êtes arrivé !! Configurez votre instance comme vous le souhaitez.
Voir Participer pour plus de détails.