jzakotnik / openlibry

Simple and easy software to manage school libraries - books, users, rentals and statistics. Enjoy!
https://openlibry.de
MIT License
6 stars 3 forks source link

Vorschlag: Anleitung ergänzen/aktualisieren #130

Closed fb4thxUall closed 2 months ago

fb4thxUall commented 3 months ago

Man könnte den Anleitungstext zur Erstinstallation ergänzen mit ein paar Infos. Mein persönlicher Reminder sieht so aus (funktioniert unter Linux Mint 21.3):

#Docker Installation

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update 
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker ${USER}
docker run hello-world
sudo systemctl is-active docker

#Installation von openLibry mit Docker (im Homeverzeichnis):

git clone https://github.com/jzakotnik/openlibry.git
# Anschließend .env-Datei konfigurieren und hinterlegen, docker-compose-yml ändern (restart: always)
cd openlibry
docker build --no-cache -t openlibry .
docker compose up

#Aufrufen im Browser mit lohalhost:3000
#Import des Bestands über Report

Für die Produktivumgebung muss der Autostart und Restart des Docker-Containers eingerichtet werden, was am einfachsten geht durch Ergänzung der Docker-Compose Datei "docker-compose.yml", die dann so aussieht:

version: "2.0"
services:
  openlibry:
    container_name: openlibry
    build: .
    ports:
      - 3000:3000
    volumes:
      - ./database:/app/prisma/database
      - ./public/coverimages:/app/public/coverimages
    restart: always
jzakotnik commented 3 months ago

Wow, ja, viel besser! Soll ich das direkt einfügen, oder willst Du das selbst versuchen via fork und pull request? Letzteres hätte den Vorteil, dass die eigene ID als contribution auftaucht in der open source Welt 🧞‍♂️ . Alternativ kann ich es auch ändern.

fb4thxUall commented 3 months ago

Moin,

das ist lieb aber da ich es selbst alles zusammenkopiert habe, lege ich keinen Wert auf Credits. Da du es aber grundsätzlich gut findest, werde ich eine etwas ausformuliertere Version davon erstellen und auch die Standbox-Variante noch rtwas verbessern und auch besser in die Erklärung einbinden. Ich mach das im Verlauf der Woche und dann kannst du es einbauen.

Liebe Grüße

Am 13. August 2024 22:59:52 MESZ schrieb Jure Zakotnik @.***>:

Wow, ja, viel besser! Soll ich das direkt einfügen, oder willst Du das selbst versuchen via fork und pull request? Letzteres hätte den Vorteil, dass die eigene ID als contribution auftaucht in der open source Welt 🧞‍♂️ . Alternativ kann ich es auch ändern.

-- Reply to this email directly or view it on GitHub: https://github.com/jzakotnik/openlibry/issues/130#issuecomment-2287128486 You are receiving this because you authored the thread.

Message ID: @.***> -- Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.

jzakotnik commented 3 months ago

@fb4thxUall Danke für die Mitarbeit, habe das Gefühl mit jeder Iteration wird's bischen besser 😎

fb4thxUall commented 3 months ago

So, hier mein Vorschlag für eine Aktualisierung der Installationsanleitung bzw. die Docker-Teile davon. Bitte aber nochmal überlesen und Fehler natürlich bitte nicht übernehmen :-).:

Testbetrieb oder dauerhafte Installation mit Docker (Getestet mit Linux Mint 21.3)

Erledige zunächst folgende Vorarbeiten:

Update der Distribution: sudo apt-get update und sudo apt-get upgrade Falls curl nicht installiert ist: sudo apt install curl Installiere den node version manager NVM: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash Installiere den node server: nvm install --lts Falls noch kein git installiert ist: sudo apt-get install git-all

Installiere, falls noch nicht vorhanden, Docker an sich:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update 
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker ${USER}
sudo systemctl is-active docker

Anschließend kannst du OpenLibry installieren. Dabei bieten sich zwei Modi an: Entweder ein Sandbox-Modus zum Ausprobieren, bei dem nach Beendigung der Ausführung alles wieder entfernt wird. Oder die dauerhafte Installation, die auch automatisch mit Rechnerstart, bei Abstürzen etc. wieder mit startet. Folgende Schritte sind so oder so zu erledigen (Zum Beispiel im Home-Verzeichnis):

Das weitere Vorgehen unterscheidet sich je nach Absicht:

a) Sandbox-Modus zum rückstandsfreien Ausprobieren:

b) Dauerhafte Installation

jzakotnik commented 3 months ago

Das liest sich schon echt gut!

Das Problem bei der Dauerhafte Installation ist, dass das Datenbank-File beim Docker container im Container bleibt und sobald der Container neu gebaut wird aus einem Image ist alles weg. Deshalb ist beim docker compose ein Volume gemountet. Das sollte noch rein..

fb4thxUall commented 3 months ago

Das hab ich alles umgesetzt, ich hoffe korrekt. Liegt alles im pull request. Schau gerne mal bei Gelegenheit, ob das jetzt besser ist.

Am 20. August 2024 17:19:18 MESZ schrieb Jure Zakotnik @.***>:

Das liest sich schon echt gut!

Das Problem bei der Dauerhafte Installation ist, dass das Datenbank-File beim Docker container im Container bleibt und sobald der Container neu gebaut wird aus einem Image ist alles weg. Deshalb ist beim docker compose ein Volume gemountet. Das sollte noch rein..

-- Reply to this email directly or view it on GitHub: https://github.com/jzakotnik/openlibry/issues/130#issuecomment-2299119020 You are receiving this because you were assigned.

Message ID: @.***> -- Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.

fb4thxUall commented 2 months ago

Done