site logosite logo
  • Home
  • Fotografie
  • Blog
  • Über uns
    • Kontakt
SIDEBAR

Dockercontainer für Kivitendo und lxcars

8 comments
  • Softwareentwicklung
Jan 12 2015

Ich habe mich in den letzten Tagen etwas intensiver mit Docker auseinandergesetzt. Entstanden sind zwei Docker Container für den Betrieb von Kivitendo und lxcars.

Kivitendo (www.kivitendo.de) ist eine opensource ERP Lösung für KMUs. Die Lösung kann recht gut an die Bedürfnisse einer KMU angepasst werden. Daneben besitzt Kivitendo eine breite Community im deutschsprachigen Raum. Als Erweiterung zu Kivitendo spezifisch für Garagen und Autohändler bietet sich lxcars an. Da ich mich für die Funktion von lxcars interessiert habe und dazu eine Testinstallation aufstzen wollte habe ich das ganze mit Docker realisiert.

Installation

Die fertigen Container sind in der Docker Registry zu finden:

https://registry.hub.docker.com/u/drnoa/kivitendo-docker/

und für lxcars

https://registry.hub.docker.com/u/drnoa/lxcars-docker/

Um diese zu verwenden, kann ganz einfach der Dockercontainer von der Registry geholt werden:

#!code /bin/bash
docker pull drnoa/kivitendo-docker

oder

#!code /bin/bash
docker pull drnoa/lxcars-docker

alternativ kann der Docker Container auch vom Dockerfile gebaut werden. Dazu einfach das Dockerfile und die benötigten Config-Vorlagen von Github klonen.

Dockerfile von Github:
https://github.com/drnoa/kivitendo_docker
und für lxcars
https://github.com/drnoa/lxcars_docker

#!code /bin/bash
git clone https://github.com/drnoa/kivitendo_docker.git
cd kivitendo_docker
sudo docker build .

Wenn der Dockercontainer direkt vom Dockerfile gebaut wird besteht der Vorteil, dass die Configfiles und Variablen den eigenen Bedürfnissen angepasst werden können.
Im Dockerfile habe ich folgende Parameter definiert:

ENV postgresversion 9.3
ENV locale de_CH
ENV postrespassword docker

So wird es möglich die Postgresversion frei zu wählen, dasselbe gild für das Locale. Bei der Installation werden zudem 2 Postgres Benutzer (docker und kivitendo) erstellt. Für beide Benutzer kann mittels der Variable postgrespassword ein Passwort definiert werden.

Die gesamte Anleitung inkl. aller möglichen zusätzlichen Informationen ist auch auf Github zu finden.

Inbetriebnahme Kititendo

Nach erfolgreichem bau des Containers oder pull von der Registry kann der Container mittels

#!code /bin/bash
sudo docker run drnoa/kivitendo-docker

gestartet werden. Vom erstellen Container werden automatisch die Ports 80 (Apache Webserver) und 5432 (Postgres Server) verwendet. Docker wird dabei eine interne IP Adresse zugewiesen. Alle aktuell laufenden Container können mittels

#!code /bin/bash
sudo docker ps -a

angezeigt werden. Und die verwendete IP Adresse findet ihr mittels:

#!code /bin/bash
sudo docker ps -q | xargs docker inspect | grep IPAddress | cut -d '"' -f 4

Alle laufenden Container stoppen ist mit folgedem Befehl möglich:

#!code /bin/bash
sudo docker stop $(sudo docker ps -a -q)

Nach erfolgreichem starten des Containers müssen noch die letzten Schritte der Installation im Browser gemacht werden.

Dazu die Administration öffnen und die Datenbank anlegen. Als DB Benutzer und Passwort kann beide male “docker” eingegeben werden. Bzw. das Passwort das über die Variable postrespassword definiert wurde. Danach noch die Mandantendatenbank, eine Gruppe und einen Benutzer einrichten.
Nach dem Login mit dem erstellen Benutzer noch die restlichen Installationsschritte durchgehen. Fertig ist die Kivitendo Installation.

Inbetriebnahme lxcars

Die Installation ist Grundsätzlich identisch zur Kivitendo Inbetriebnahme.

#!code /bin/bash
sudo docker run drnoa/lxcars-docker

Auch hier müssen die letzten Schritte im Browser erledigt werden. Nebst dem Mandanten, dem Benutzer müssen auch noch eine „Admin“ und eine „Werkstatt“ Gruppe erstellt werden. Die Installationsschritte sind auch auf der Projektseite von lxcars beschrieben.

 

Upgrade und Persistenz der Datenbank

Damit bei mehrmaligem ausführen des Docker Containers die Datenbank nicht jedes mal neu aufgesetzt wird muss ein persistente Verbindung zur Datenbank hergestellt werden.
Dazu wird ein /var/lib/postgresql in den Container gemountet.

#!code /bin/bash
sudo docker run --name postgresql -d \
  -v /opt/postgresql/data:/var/lib/postgresql drnoa/kivitendo_docker:latest

Viel Spass bei Kivitendo und lxcars.

« Letzte Reise in Costa Rica
  1. kivijan 

    Hi,
    das finde ich ja voll klasse, dass es so eine einfach Möglichkeit der Installation gibt.
    Wir hatten schon mal probiert ein debian-Paket zu erstellen.
    Die 3.2 von kivitendo ist diese Woche erschienen, s.a. (http://kivitendo.de/nc/information/neuigkeiten/einzelansicht/artikel/kivitendo-release-3-2-0/157.html).
    Ist dies in dem Docker schon bedacht? Kann man das automatisieren?
    Es sind drei weitere Perl-Module für die 3.2 hinzugekommen.
    Danke und bis dahin!

    6. März 2015 at 9:37 Antworten
    • binggu 

      Hi,

      Danke für den Hinweis auf die neue Version von Kivitendo. Ich habe das Dockerimage auf Docker Hub entsprechend aktualisiert.

      Um ein Dockerimage zu erstellen bzw in Betrieb zu nehmen gibt es immer 2 Varianten; Neu Builden mittels Dockerfile (das holt dann auch immer gleich die neuesten Sourcen vom Kivitendo Git) oder aber direkt das bestehende Image vom Docker Hub downloaden. Bei der zweiten Variante ist der Nachteil, dass updates jeweils von mir von Hand gemacht werden müssen. Wenn ich neue Versionen sehe mach ich das auch gleich.

      Das aktuelle Dockerfile ist auf Github zu finden: https://github.com/drnoa/kivitendo_docker
      Zum erstellen eines aktuellen Pakets einfach im selben Verzeichnis
      $ docker build .
      ausführden.

      15. März 2015 at 14:19 Antworten
  2. Maik Wagner 

    Hallo binggu,

    in der Anleitung ist ein kleiner Tippfehler. Bei

    #!code /bin/bash
    docker pull drnoa/kivitend-docker

    fehlt in kivitendo das “o” am Ende.

    Ich habe die Installation mal auf einem gemieteten vServer durchgeführt. Was mir noch nicht ganz klar ist, ist wie die IP-Adresse an den externen Apache 80er Port “weitergereicht” werden kann. Die interne IP-Adresse lautet wie folgt.

    sudo docker ps -q | xargs docker inspect | grep IPAddress | cut -d ‘”‘ -f 4
    172.17.0.2

    Könntest Du darauf noch etwas eingehen? Wäre nett.

    Mir hat es auf dem vServer auch geholfen, den Docker im Hintergrund per & laufen zu lassen. Ansonsten ist das Shellprompt belegt.

    Aber an sich, gute Arbeit! Thanks for sharing!

    19. November 2015 at 6:05 Antworten
    • binggu 

      Hallo Maik

      Vielen dank für deine Rückmeldung.
      Du kannst den Port vom Apache mittels docker run -d -p 80:5000 drnoa/kivitendo-docker zum Beispiel auf den Port 5000 exposen. So kannst du mittels http://dieIPdeinesContainers:5000 auf deinen Webserver zugreifen.

      Den Fehler habe ich korrigiert. Danke für die Rückmeldung.

      30. November 2015 at 18:04 Antworten
  3. Matthias 

    Hallo Daniel,

    verwendest Du Kivitendo noch?
    Sollte man mit deiner Installationsvariante auch aus dem Netzwerk auf Kivitendo zugreifen können?

    Wie ist deine Erfahrung mit lxcars, wie hast Du es eingesetzt?

    Danke für dein Sharing.

    Viele Grüße

    Matthais

    24. Dezember 2019 at 8:39 Antworten
    • binggu 

      Hallo Matthias

      Um ganz erlich zu sein verwende ich beide nicht. Ich habe im 2017 Kivitendo und lxcars für einen Bekannten näher angeschaut. Er wollte seine Garagen-Lösung welche noch auf Access basiert ablösen. Daher habe ich verschieden Open-Source Lösungen näher angeschaut.
      Den Kivitendo Dockercontainer habe ich über die letzten Jahr immer mal wieder aktualisiert. Einerseits weil da eine Nachfrage vorhanden ist, andererseits haben wir in der Adventszeit immer eine Open-Source Advents-Challenge bei welcher es darum geht möglichst jeden Tag bei einem Open-Source Projekt einen Beitrag zu leisten.
      Der Blog-Post hier ist auch etwas überholt. Die Anleitung auf https://github.com/drnoa/kivitendo_docker ist aktueller.

      Zu Kivitendo gibt es eine recht grosse Community. Wies bei Lxcars aussieht weiss ich nicht wirklich. Falls du die Verwendung in Betracht ziehst kann dir da sicher jemand mit Rat und Tat zur Seite stehen.

      Liebe Grüsse
      Daniel

      24. Dezember 2019 at 10:28 Antworten
      • Matthias 

        Hallo Daniel,

        danke.
        Wo finde ich die relative große Community?
        http://www.kivitendo,de ist nicht so der Burner.

        Was empfiehlst Du?

        Viele Grüße

        Matthias

        24. Dezember 2019 at 12:29 Antworten
        • binggu 

          Hier https://forum.kivitendo.de/ scheint doch etwas los zu sein, da gibts jedenfalls fast täglich Einträge.

          24. Dezember 2019 at 12:50 Antworten

Submit a Comment Cancel Reply

Einsatz Costa Rica / Licht in Lateinamerika

Wir haben von März 2013 bis März 2014 ein Jahr in Costa Rica verbracht. Während dieser Zeit haben wir für Licht in Lateinamerika gearbeitet. Licht in Lateinamerika ist eine christliche Entwicklungsorganisation, die sich für die benachteiligte indianische Bevölkerung einsetzt, mit dem Grundprinzip Hilfe zur Selbsthilfe. Ziel der Arbeit ist es, fähige Multiplikatoren auszubilden, die ihrerseits das Gelernte in ihrem Umfeld weitergeben können. Das Ausbildungszentrum CAPI (Centro de Aprendizaje Para Indigenas) oder „Finca Tinamastes“ genannt, liegt in der Nähe von San Isidro ca. 150 km von der Hauptstadt San José entfernt. Je nach Interesse kann sich der Indianer in verschiedene Hauptrichtungen ausbilden lassen. Es sind dies: · Landwirtschaft · Mechanik · Holzbearbeitung · Forstwirtschaft · Viehwirtschaft Neben den allgemeinbildenden Fächern spielt die geistliche und soziale Unterstützung eine wichtige Rolle.

Kategorien

  • Costa Rica (32)
    • CAPI (7)
    • Land und Leute (7)
    • Tipisch Ticos (2)
  • Reisen (6)
  • Technik (1)
    • Softwareentwicklung (1)
  • Uncategorized (13)

Letzte Einträge

  • Dockercontainer für Kivitendo und lxcars
  • Letzte Reise in Costa Rica
  • Abschiedsfest CAPI
  • Stammesreise Chirripo
  • Neues Jahr neue Ferien :-)

Alle Bilder und Inhalte dieser Webseite sind Eigentum von Natalie & Daniel Binggeli. Verwendung nicht ohne unser Einverständnis. Anfragen an info(at)binggu.net