Buchhaltung leicht gemacht

Als Selbstständiger schreibt man nur wenige Rechnungen, und das auch meist ohne physische Waren. Die meisten Buchhaltungs/Wawi-Systeme sind daher völlig überladen für diese simplen Ansprüche. Also habe ich mich mal hingesetzt und was eigenes in RubyOnRails geschrieben.

Das Projekt hört auf den wohlklingenden Namen Exabuch, und besteht hauptsächlich aus ein paar Models die ich mit ActiveScaffold zusammen gebastelt habe. Das Ganze dann in ein (hübsches?) Design gepackt und mit SQLite versehen ergibt eine sehr schlanke Alternative zu meinem jetzigen Buchhaltungs- und Rechnungsprogramm.

20080503: Thomas Koll hat Exabuch übernommen. Der Exabuch Entwicklungsblog gibt Auskunft über die neuesten Entwicklungen. Ich bin sehr gespannt, was Thomas aus der Grundlage macht.

Die alte Version kann bei Google per SVN ausgecheckt werden:

$ svn co http://exabuch.googlecode.com/svn/trunk/ exabuch

Bei Google Code findet sich auch die Projektseite zu Exabuch. Momentan ist die Software noch im BETA Stadium, auch wenn ich sie bereits produktiv einsetze. Wer bereits Ruby+RoR auf einer virtuellen Maschine laufen hat, der braucht nach dem Auschecken per SVN nur noch eine Datei „logo.png“ in das Verzeichnis exabuch/public/images/ kopieren damit dieses auf dem PDF auftaucht. Eventuell müssen die Abmessungen noch angepasst werden in der Datei lib/fpdf/fpdf_invoice.rb.

UPDATE 20071005: Es gibt jetzt eine ausführbare Datei für Linux, in der alle Abhängigkeiten, Libs usw. zusammengefasst sind. Einfach das Archiv entpacken und exabuch_RXX aus dem entpackten Verzeichnis heraus starten. Die Datenbanken liegen im Unterordner „/db“ im gleichen Verzeichnis. Nach dem Starten einfach http://ip.des.servers:3000/ im Browser aufrufen.

UPDATE 20071102: Aufgrund einiger Probleme bei der Benutzung, hier der Befehl zur Installation der nötigen Pakete für Ubuntu bzw. Debian. Das sollte alle Abhängigkeiten auflösen:

 $ sudo aptitude install sqlite3 libsqlite3-dev libsqlite3-ruby sqlite3-ruby

Update 20080428: Thomas R. Koll hat sich inzwischen dem Projekt angenommen und entwickelt es weiter. Der aktuelle Sourcecode liegt bei Github, das Google Repository ist daher momentan veraltet.

Rechnungen als PDF erstellen

Was nützt eine Buchhaltung ohne PDF-Erstellung? Richtig, nix. Also habe ich mich auf die Suche gemacht nach den verschiedenen PDF-Möglichkeiten die es für Rails gibt. Am Ende bin ich bei Ruby FPDF gelandet, und habe eine kleine Starthilfe bei RobbyOnRails gefunden. Zusammen mit der Erweiterung für Tabellen kann man loslegen. Rubys FPDF basiert übrigens auf der bekannten PHP-Klasse mit dem gleichen Namen und ist weitestgehend identisch von den Funktionen her.

Also FPDF nach $RAILS_ROOT/lib entpackt, und in der environment.rb dies hier einkommentiert und hinzugefügt:

config.load_paths += %W( #{RAILS_ROOT}/lib/fpdf )

Dann noch ein Erweiterungsmodul für die Ausgabe der Rechnungen geschrieben, einige Stunden mit dem PDF-Layout beschäftigt und fertig.

Screenshot:

Buchhaltung

Beispiel-PDF:

Beispiel-PDF Exabuch

Exabuch portabel machen

Ich habe zwar meist einen Webserver in meiner Virtualbox laufen, möchte aber die Anwendung an einem bestimmten Punkt einfrieren und portabel machen. Glücklicherweise ist Ruby so flexibel, daß man mit ein paar einfachen Tools eine komplette Rails-Anwendung mit allen Abhängigkeiten als eigenständige Anwendung exportieren kann! Ich habe nur ein paar Schwierigkeiten bei der Installation von ruby-sqlite3 gehabt, aber diese Anleitung hat mir auch da geholfen.

Damit kann man sich eine Buchhaltung erstellen, die auf Linux, Mac und Windows gleichermaßen läuft und sich mit jedem modernen Webbrowser bedienen lässt. Jetzt fehlen nur noch ein paar Features, und schon kann Le*ware einpacken 😉

Die einzig halbwegs vernünftige Alternative die ich auf dem Open-Source Markt gefunden habe war übrigens jBilling, aber auch viel zu riesig für meine Bedürfnisse.

ExaBuch verkürzt meine Zeit für eine Rechnungserstellung von 15-30 Minuten (MySQL starten, Cao hochfahren, tausend Klicks, umständliche PDF-Generierung) auf ca. drei Minuten. Und es ist natürlich sehr viel flexibler anpassbar. Als richtige Buchhaltung kann man es allerdings nicht bezeichnen, dafür fehlen einige Funktionen. Aber das wird schon noch.

Viel Spaß mit dem Programm!

Getagged mit: , , , ,
21 Kommentare zu “Buchhaltung leicht gemacht
  1. Thomas Koll sagt:

    Super Tool, da werd ich mich mal drüber hermachen in den nächsten Tagen.

  2. IT sagt:

    Gern, und wenn dir was auffällt direkt bei Google reinschreiben. Momentan mache ich noch viele kleinere Änderungen, und zum nächsten Quartalsabschluss werden dann wohl Quartals-, Monats- und Jahressummen dazukommen.

  3. Alex sagt:

    Hallo, leider habe ich das ganze nicht wirklich zum laufen bekommen (Noch nichts mit ROR [unter Windows] zu tun gehabt). Wäre es vielleicht möglich ein funktionierendes Download Paket inklusive XAMPP zu bauen. Ich würde auch das Hosting von dem File übernehmen da ich noch genug Traffic auf einem Server über habe.

    Viele Grüße!

  4. IT sagt:

    Hi Alex,

    wenn das Teil stabil genug läuft baue ich eine Applikation daraus nach der Anleitung wie im Artikel verlinkt. Momentan ändert sich noch zu viel, als daß sich das lohnen würde.

    Hosting liegt eh‘ bei Google, aber danke für das Angebot 🙂

    Edit: Ich habe mich mal an die verlinkte Anleitung gewagt und eine Exe für Linux gebastelt. Gibt’s bei Google zum Download.

  5. Alex sagt:

    Super, Danke für deine Mühe! Werde das am Montag direkt mal in meiner Debian VM testen.

    Viele Grüße und schönes Wochenende!

  6. kd sagt:

    Hallo habe mir das Komplettpaket für Linux heruntergeladen und entpackt. Das Webservermodul wird gestartet. Bei der Verbindung über den Browser bekomme ich folgende Fehlermeldung: RuntimeError in InvoicesController#index no driver for sqlite3 found

    Wo beginne ich zu suchen? Danke.

  7. IT sagt:

    Hallo kd,

    oh, ich dachte die Treiber werden mit gebündelt. Welches OS hast du denn? Bei Debian-basierten Distributionen reicht wahrscheinlich dies:

    $ sudo aptitude install sqlite3 libsqlite3-dev
    

    und wenn das nicht reicht noch die Ruby-Lib, obwohl die eigentlich in dem Paket mit drin sein sollte:

    $ sudo gem install sqlite3-ruby
    

    Ich hoffe das hilft!

  8. kd sagt:

    Hallo Danke für den Tip. Ich habe Ubuntu 7.04. Auch nach dem Installieren von sqlite3 libsqlite3-dev und libdbd-sqlite3-ruby hat sich leider nichts verändert.

  9. IT sagt:

    Hm, hast du Ruby Gems auf deinem System? Da fehlt bestimmt noch ne Abhängigkeit. Daher das gem install oben. Bei Ubuntu scheint es etwas komplizierter zu sein gems zu installieren: Ubuntu und Rails Ich glaube libdbd-sqlite3-ruby ist nicht das richtige Binding für Ruby.

  10. kd sagt:

    Danke für die Hinweise, aber auch diese Ansätze ändern nichts an der Fehlermeldung. Schade – Ich hätte die Software gerne ausprobiert, da ich zur Zeit auf der Suche nach einer Alternativlösung für Windowsprogramme bin.

  11. IT sagt:

    Ich habe mal Google zu der Meldung befragt, aber was richtig Passendes kam nicht dabei raus. Da kann ich von hier aus leider nicht viel zu sagen, sorry.

  12. Warum benutzt Du nicht FreshBooks (www.freshbooks.com) oder BlinkSale (www.blinksale.com)?

  13. IT sagt:

    Hallo Georg,

    1. bist du sicher, daß diese Dienste für den deutschen Markt tauglich sind und alle Auskunftspflichten gegenüber dem FA erfüllen?

    2. Ich halte meine Lösung für zukunftssicherer… sie läuft überall, auch ohne Internet oder mit Stromausfall in den USA 😀

    3. Auch in Zeiten des Web2.0 gibt es einige Sachen die ich lieber geschützt auf der heimischen Festplatte habe, wie z.B. meine Buchhaltung 😉

  14. Florian sagt:

    Schade, ich hätte dein Programm gerne genutz. Leider läuft es unter Ubuntu 7.10 nicht, gleicher Fehler wie oben.

  15. Oliver sagt:

    Bei mir hat auf einem 7.10 folgender Befehl zum Erfolg geführt:

    sudo aptitude install libsqlite3-ruby

    Damit wurde die notwendige sqlite(3!) Version installiert.

    Danke für das Tool.

  16. IT sagt:

    Hallo Oliver,

    danke für den Hinweis, ich habe den Beitrag aktualisiert. Schön daß es jemand (außer mir) benutzt 🙂

    Gruß, Ingo

  17. gschr sagt:

    Hallo habe versucht exabuch zu installieren. Beim starten des Programmes erhalte ich die folgende Fehlermeldung: „/home/gschr/.eee/eee.exabuch_linux.2/bin/ruby: /lib32/libc.so.6: version `GLIBC_2.4′ not found“ BS Debian 40r.1 AMD 64

    Gruß Günther

  18. IT sagt:

    Hallo Günther,

    hast du glibc2.4 denn installiert auf dem Server? Prinzipiell sollte es auch mit 2.6 laufen, ich kann es aber momentan nicht dahingehend debuggen.

    Gruß, Ingo

  19. shocktone sagt:

    Hallo Ingo,

    vielen Dank. Hat mir sehr geholfen

  20. Hartmut sagt:

    Hallo, habe Exabuch gemäß der Erklärungen über die Konsole installiert, flutschte auch ohne Fehlermeldung durch und nun ??? Kann das Programm nirgendwo finden. Bin noch recht Linux-frisch und habe mit Ubuntu 7.10 bis jetzt positive Erfahrungen gemacht…..

    Gruß Hartmut

  21. IT sagt:

    Hallo Hartmut, das Programm ist eine Webanwendung, d.h. sie läuft nur im Browser. Nach dem Start von Exabuch auf der Konsole, sollte sich das Programm per http://localhost:3000/ aufrufen lassen. Ich gebe aber zu, daß die Installation und Benutzung für „Anfänger“ etwas schwierig ist, da man schon ausreichend Erfahrung mit Paketabhängigkeiten und der Konsole benötigt um es richtig zum laufen zu kriegen.

    Gruß, Ingo

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.