diff --git a/readme.md b/readme.md index 036a38b..225c958 100644 --- a/readme.md +++ b/readme.md @@ -3,7 +3,11 @@ Das ist der Plenums-Bot des Chaos Computer Clubs Berlin. Seine Aufgabe ist es, die Plena im Club anzukündigen, die an jedem 2. und 4. Dienstag im Monat stattfinden. Außerdem soll er das Pad mit den Plenumsnotizen ins Wiki des CCCB übertragen und neue Pads anlegen. Die Nachrichten und Ankündigungen werden über den internen Mailverteiler und über interne Matrix-Gruppen an die Mitglieder versendet. -Plenumsbot +## Funktionsweise + +Die genaue Funktionsweise des Bots wird in diesem Blogeintrag näher beschrieben: +https://marekkrug.de/posts/plenum-bot/ + ### Ankündigungsskript - Schauen, wann ein Plenum stattfindet - Wenn eins in 3 Tagen stattfindet, nächstes Pad kopieren und per Mail schicken @@ -21,6 +25,42 @@ Plenumsbot - Pad in MediaWiki-Format umwandeln - Neue Wiki-Seite erstellen und dort das umgewandelte Pad hochladen + +## Installation + +Um den Bot z.B. auf einer neu erstellten VM zu installieren, kannst du dieser Anleitung für ubuntu-server folgen und diese Anweisungen ggf. für deine Distro anpassen: + +1) Rust installieren ([rust-lang.org](https://www.rust-lang.org/tools/install)) + +2) Dieses Repo klonen: + +```bash +git pull https://git.berlin.ccc.de/murmeldin/plenum-bot.git +``` + +3) Die Dependencies installieren und den Bot kompilieren: +```bash +cd plenum-bot +./util/install_script_ubuntu.sh +``` + +4) Config überprüfen und schauen, ob alles passt: +```bash +./util/change-config.sh +``` + +5) Den Bot aktivieren: +```bash +systemctl enable plenumsbot.timer +``` + +6) In den logs überprüfen, ob alles passt: +```bash +journalctl -u plenumsbot.service +``` + +--- + ## TO-DO LIST ### main.rs - [ ] Add logic for top_anzahl in main.rs:172 diff --git a/systemd/plenumbot.service b/systemd/plenumbot.service index d1129c5..d172b17 100644 --- a/systemd/plenumbot.service +++ b/systemd/plenumbot.service @@ -3,7 +3,7 @@ Description=CCCB Plenum-Bot After=network-online.target [Service] -ExecStart=/home/plenum-bot/plenum-bot/target/debug/Plenum-Bot +WorkingDirectory=/home/$User/plenum-bot +ExecStart=./util/run_release.sh Type=simple -User=root - +User=root \ No newline at end of file diff --git a/util/change-config.sh b/util/change-config.sh new file mode 100644 index 0000000..252b850 --- /dev/null +++ b/util/change-config.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# This script is being ran every time the systemd job is triggered + +u=$USER + +../target/release/Plenum-Bot -f /home/$u/.config/plenum-bot/config.sqlite -c \ No newline at end of file diff --git a/tools/install_dependencies_ubuntu.sh b/util/install_script_ubuntu.sh similarity index 69% rename from tools/install_dependencies_ubuntu.sh rename to util/install_script_ubuntu.sh index f2c65e5..ed33ef2 100644 --- a/tools/install_dependencies_ubuntu.sh +++ b/util/install_script_ubuntu.sh @@ -1,11 +1,19 @@ +#!/bin/sh + # The plenum bot works when being run on a ubuntu-server # instance with these commands ran previously. # For other distros, please adapt these instructions # so you have the same packages installed as well. +# +# This script can also be run in order to update +# the bot and its dependencies to the newest version. # Optionally, if you don't have rust installed, you should do it here: # https://www.rust-lang.org/tools/install +git pull sudo apt update +sudo apt upgrade -y sudo apt install gcc libssl-dev pandoc pkg-config libsqlite3-dev cargo build --release +./update_or_create_systemd_service.sh \ No newline at end of file diff --git a/util/run_release.sh b/util/run_release.sh new file mode 100644 index 0000000..ac6f6ee --- /dev/null +++ b/util/run_release.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# This script is being ran every time the systemd job is triggered + +u=$USER + +../target/release/Plenum-Bot -f /home/$u/.config/plenum-bot/config.sqlite \ No newline at end of file diff --git a/util/update_or_create_systemd_service.sh b/util/update_or_create_systemd_service.sh new file mode 100644 index 0000000..1433144 --- /dev/null +++ b/util/update_or_create_systemd_service.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +# This script can be run to update or newly install +# the systemd services needed for + +cat systemd/plenumbot.service > /etc/systemd/system/plenumsbot.service +cat systemd/plenumbot.timer > /etc/systemd/system/plenumsbot.timer +chmod 755 /etc/systemd/system/plenumsbot.timer +chmod 755 /etc/systemd/system/plenumsbot.service + +sudo systemctl daemon-reload \ No newline at end of file