Dieses Projekt ist noch jung und, im Moment, nicht sehr stabil. Bitte verwende es nur mit Vorsicht in Produktion. Diese Methode der Installation benötigt mehr Können und ist daher für erfahrene Administrator*innen. Docker Installation wird empfohlen Diese Installationsmethode geht davon aus, dass du bereits SSL mit verfügbaren Zertifikaten konfiguriert hast
apt install postgresql redis nginx python3-venv libpq-dev
aussehen.Die -Produktion
Zweig von BookWyrm enthält eine Reihe von Werkzeugen die nicht auf dem Haupt-
-Zweig sind, die für den Betrieb in der Produktion geeignet sind zum Beispiel docker-compose
Änderungen, um die Standardbefehle oder die Konfiguration von Containern zu aktualisieren und individuelle Änderungen an der Container-Konfiguration, um Dinge wie SSL oder regelmäßige Sicherungen zu aktivieren. Nicht alle diese Änderungen wirken sich auf die Installation ohne Docker aus, aber der -production
-Zweig wird immer noch empfohlen
Anleitung für das Ausführen von BookWyrm in Produktion ohne Docker:
/opt/bookwyrm
: mkdir /opt/bookwyrm && cd /opt/bookwyrm
git clone git@github.com:bookwyrm-social/bookwyrm.git ./
production
-zweig: git checkout production
cp .env.example .env
und aktualisiere Folgendes:SECRET_KEY
| Eine schwer zu erratende geheime ZeichenfolgeDOMAIN
| Deine Web-DomainPOSTGRES_PASSWORD
| Setze ein sicheres Passwort für die DatenbankPOSTGRES_HOST
| Auf localhost
(setzen die Maschine auf der Deine Datenbank läuft)POSTGRES_USER
| Auf bookwyrm
setzen (empfohlen) oder etwas Eigenes. (später konfiguriert)POSTGRES_DB
| Auf Bookwyrm
setzenREDIS_ACTIVITY_PASSWORD
| Auf nichts setzen (auf einem lokalen Rechner mit einer Firewall)REDIS_ACTIVITY_HOST
| Auf localhost
setzen (die Maschine, auf der redis läuft)REDIS_BROKER_PASSWORD
| Auf nichts setzen (auf einem lokalen Rechner mit einer Firewall)REDIS_BROKER_HOST
| Auf localhost
setzen (die Maschine, auf der redis läuft)EMAIL_HOST_USER
| Die "von"-Adresse, die deine App beim Senden von E-Mails verwendetEMAIL_HOST_PASSWORD
| Das Passwort von deinem E-Mail-Dienstcp nginx/server_config /etc/nginx/conf.d/server_config
cp nginx/production nginx/bookwyrm.conf
bookwyrm.conf
:your-domain.com
mit deinem Domainnamen überall in der Datei (inklusive der aktuell auskommentierten Zeilen)/app/
mit deinem Installationsverzeichnis /opt/bookwyrm/
Server
-Blöcke aktiviert habenssl_certificate
und ssl_certificate_key
Pfade an Ihre volle Kette und Privkey Positionenserver localhost:8000
. Du kannst hier einen anderen Port wählen, wenn du magstln -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
Erstelle die Bookwyrm postgresql Datenbank. Ändere das Passwort zu dem, welches du in der .env
Konfiguration gesetzt hast:
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
Erstelle und richte deinen Bookwyrm
Account ein
useradd bookwyrm -r
chown -R bookwyrm:bookwyrm /opt/bookwyrm
sudo -u bookwyrm echo I am the $(whoami) user
Erstelle den Admin-Code mit sudo -u bookwyrm venv/bin/python3 manage. y admin_code
, und kopieren Sie den Admin-Code, der beim Erstellen Ihres Admin-Kontos verwendet werden soll.
*******************************************
Verwende diesen Code um deinen Administratoraccount zu erstellen:
c6c35779-af3a-4091-b330-c026610920d6
*******************************************
#!/bin/bash
# Stoppen falls ein Prozess fehlschlägt.
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 &
- Ersetze `/opt/bookwyrm` durch dein Installationsverzeichnis
- Ändere `8000` auf deine eigene Portnummer
- Flower wurde hier deaktiviert, da es nicht automatisch mit dem Passwort in der `.env` Datei konfiguriert ist
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
Du musst einen Cron-Job einrichten, damit der Dienst beim Neustart automatisch starten kann.
Glückwunsch! Du hast es geschafft!! Konfigure deine Instanz wie es dir gefällt.
Siehe Mitmachen für Details.