Dieses Projekt ist noch jung und im Moment nicht sehr stabil und deshalb solltest du bei der Verwendung in Produktion mit Vorsicht vorgehen.
Diese Installationsmethode ist komplexer und daher nur für erfahrenere Administratorinnen gedacht. Die Docker-Installation ist die empfohlene Methode*, weil Unterstützung für die Installation ohne Docker nur eingeschränkt verfügbar ist. Wenn du Expertise in diesem Bereich hast, fänden wir deine Hilfe beim Verbessern dieser Dokumentation großartig!
Diese Installationsmethode setzt voraus, dass du bereits SSL mit gültigen Zertifikaten eingerichtet hast.
apt install postgresql redis nginx python3-venv python3-pip python3-dev libpq-dev gunicorn gettext-baseDer production-Branch von BookWyrm enthält eine Reihe von Werkzeugen, die nicht auf dem main-Branch sind, aber für den Betrieb in der Produktion geeignet sind. Beispiele sind die 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-Branch wird immer noch empfohlen
Anleitung für das Ausführen von BookWyrm in Produktion ohne Docker:
/opt/bookwyrm: mkdir /opt/bookwyrm && cd /opt/bookwyrmproduction-Branch klont: git clone https://github.com/bookwyrm-social/bookwyrm.git --branch production --single-branch ./cp .env.example .env, und ändere folgende Einstellungen. Passwörter sollten generell in "Anführungszeichen" gesetzt werden. Du kannst bw-dev create_secrets verwenden, um Passwörter in der .env-Datei zu generieren:SECRET_KEY | Eine schwer zu erratende, geheime Zeichenkette.DOMAIN | 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-Dienst/var/cache/nginx anlegen musst:mkdir /var/cache/nginx
chown www-data:www-data /var/cache/nginx
server_config in Nginx' conf.d: cp nginx/locations /etc/nginx/conf.d/locations/etc/nginx/conf.d/locations:/app überall in der Datei durch dein Installationsverzeichnis /opt/bookwyrm (auskommentierte Bereiche eingeschlossen)DOMAIN und MAX_UPLOAD_MiB, damit envsubst Nginx-Vorlagen erstellen kann. Beispielsweise export DOMAIN=your-web-domain MAX_UPLOAD_MiB=100envsubst '$DOMAIN,$MAX_UPLOAD_MiB' < nginx/server_config > /etc/nginx/conf.d/server_configenvsubst '$DOMAIN,$MAX_UPLOAD_MiB' < nginx/server_name > /etc/nginx/conf.d/server_nameenvsubst '$DOMAIN,$MAX_UPLOAD_MiB' < nginx/https.conf > /etc/nginx/sites-available/bookwyrm.confenvsubst '$DOMAIN,$MAX_UPLOAD_MiB' < nginx/reverse_proxy.conf > /etc/nginx/sites-available/bookwyrm.conf/etc/nginx/sites-available/bookwyrm.conf:ssl_certificate und ssl_certificate_key zu den Orten, an denen deine volle Zertifikatskette und dein privater Schlüssel gespeichert worden sind, wenn du Nginx nicht als Reverse Proxy einsetztserver localhost:8000 und server localhost:8888. Du kannst hier einen anderen Port wählen, wenn du magstln -s /etc/nginx/sites-available/bookwyrm.conf /etc/nginx/sites-enabled/bookwyrm.confsystemctl reload nginxpython3 -m venv ./venv./venv/bin/pip3 install --upgrade "pip>=25.1.0" ./venv/bin/pip3 install --group main.env-Konfiguration angegeben hast: sudo -i -u postgres psqlCREATE 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 ausführstvenv/bin/python3 manage.py initdbvenv/bin/python3 manage.py compile_themesvenv/bin/python3 manage.py collectstatic --no-inputBookwyrm-Account einuseradd bookwyrm -rchown -R bookwyrm:bookwyrm /opt/bookwyrmsudo -u bookwyrm echo I am the $(whoami) userKonfiguriere, aktiviere und starte BookWyrms systemd-Dienste:
cp contrib/systemd/*.service /etc/systemd/system/systemctl enable bookwyrm bookwyrm-worker bookwyrm-schedulerErstelle den Admin-Code mit sudo -u bookwyrm venv/bin/python3 manage. y admin_code, und kopiere den Admin-Code, der beim Erstellen deines Admin-Kontos verwendet werden soll.
*******************************************
Verwende diesen Code um deinen Administratoraccount zu erstellen:
c6c35779-af3a-4091-b330-c026610920d6
*******************************************
Gratulation! Du hast es geschafft!! Richte deine Instanz ganz nach deinen Wünschen ein.
Wie alle Software kann BookWyrm Bugs enthalten, und oft verstecken sich diese Bugs im Python-Code. Sie sind am einfachsten zu reproduzieren, wenn wir mehr Kontext aus den Log-Dateien erhalten.
Wenn du die vorgegebenen systemd-Dienstkonfigurationen aus contrib/systemd verwendest, wirst du die Logs mit journalctl auslesen können:
# Log-Dateien des Web-Prozesses ansehen
journalctl -u bookwyrm
# Log-Dateien des Worker-Prozesses ansehen
journalctl -u bookwyrm-worker
# Log-Dateien des Scheduler-Prozesses ansehen
journalctl -u bookwyrm-scheduler
Erkunde gern weitere Wege, um die Logs mit den Flags aufzuteilen, die in journalctl --help angegeben sind.
Auch wenn BookWyrms Anwendungs-Logs oft genügen, kannst du die Logs anderer Dienste wie Nginx, PostgreSQL oder Redis normalerweise in .log-Dateien irgendwo in /var/logs finden.
Siehe Mitmachen für Details.