Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vorschlag: Anleitung ergänzen/aktualisieren #130

Closed
fb4thxUall opened this issue Aug 13, 2024 · 7 comments
Closed

Vorschlag: Anleitung ergänzen/aktualisieren #130

fb4thxUall opened this issue Aug 13, 2024 · 7 comments
Assignees

Comments

@fb4thxUall
Copy link
Contributor

fb4thxUall commented Aug 13, 2024

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
Copy link
Owner

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
Copy link
Contributor Author

fb4thxUall commented Aug 14, 2024 via email

@jzakotnik
Copy link
Owner

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

@fb4thxUall
Copy link
Contributor Author

fb4thxUall commented Aug 19, 2024

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):

  • Kopiere das Repository aus github: git clone https://github.com/jzakotnik/openlibry.git

  • Wechsle in das dabei dabei entstandene Verzeichnis: cd openlibry

  • Anschließend musst du die Konfiguration/individuelle Anpassung von OpenLibry vornehmen: Zum einen müssen Bilddateien mit den Logos deiner Institution hinterlegt werden. Diese befinden sich im "public" Unterordner, du kannst dich dabei an den vorhandenen Beispielbildern orientieren. Weiterhin muss eine ".env"-Datei angelegt werden. (Hinweis: Dateien mit führenden Punkt sind in der grafischen Oberfläche standardmäßig "unsichtbar". Die Tastenkombination "Strg-h" macht sie sichtbar.) Kopiere dazu die vorhandene ".env_example" Datei nochmal in den Ordner und benenne sie dabei um in ".env":
    cp .env_example .env

  • Bearbeite die entstandene ".env" Datei mit einem Texteditor und passe die Werte entsprechend an.

  • Anschließend kannst du Docker alle notwendigen Schritte automatisch übernehmen lassen: docker build --no-cache -t openlibry .

Das weitere Vorgehen unterscheidet sich je nach Absicht:

a) Sandbox-Modus zum rückstandsfreien Ausprobieren:

  • Docker Container starten: docker run -i --rm -p 3000:3000 -t openlibry
  • Öffne OpenLibry im Browser und probiere es aus: http://localhost:3000
  • Zum Beenden den Prozess in der Konsole abrechen mit der Tastenkombination "Strg-c".
  • Optional das Docker-Image löschen: docker image rm openlibry

b) Dauerhafte Installation

  • Docker Container dauerhaft starten: docker run -i --restart always -p 3000:3000 -t openlibry Er wird dabei auch nach jedem Neustart etc. automatisch gestartet. Der Prozess kann, sobald du keine Debug-Ausgaben in der Konsole mehr mitlesen möchtest, den Prozess einfach wieder beenden mit der Tastenkombination "Strg-c". Der Container wird automatisch neugestartet.
  • Öffne OpenLibry im Browser: http://localhost:3000
  • Bei Bedarf kannst du nach dieser Variante alles zu OpenLibry in Docker wieder löschen: Du kannst den Container und das Image in Docker wieder entfernen mit: docker rm openlibry und docker image rm openlibry

@jzakotnik
Copy link
Owner

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
Copy link
Contributor Author

fb4thxUall commented Aug 27, 2024 via email

@fb4thxUall
Copy link
Contributor Author

Done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants