Verein/JVerein: Unterschied zwischen den Versionen
Prisma (Diskussion | Beiträge) K (→Unser Setup) |
Prisma (Diskussion | Beiträge) |
||
Zeile 264: | Zeile 264: | ||
<source lang=bash>dd bs=1M if=sd_jverein_backup.img of=/dev/deviceOfSD</source> | <source lang=bash>dd bs=1M if=sd_jverein_backup.img of=/dev/deviceOfSD</source> | ||
− | Für andere | + | Für andere OSes gibt es auch entsprechende Tools z.B. Win32 Disk Imager |
Version vom 21. März 2015, 12:39 Uhr
Wir verwenden JVerein als Software für Mitgliederverwaltung, Hibiscus für Buchführung und Onlinebanking. Sowohl Jverein als auch Hibiscus laufen unter dem Jameica Java Framework.
Installation auf BananaPi/Raspberry Pi
Unser Setup
- Hardware
- Banana Pi mit 8 GB SD Karte, 2 A Netzteil
- Software
- Debian wheezy (Kernel 3.19)
- encfs um das Homeverzeichnis zu verschlüsseln (wird nur bei Anmeldung entschlüsselt)
- Xpra um JVerein auf remote Rechnern anzuzeigen.
Installation von encfs
Die Installation eines encfs verschlüsselten Home Verzeichnis wurde wie hier beschrieben durchgeführt. Am Ende hat man einen Benutzer, dessen Homedir beim einloggen entschlüsselt wird.
Bei ssh Logins gehen allerdings NUR Passwort Logins, da bei Key Logins das Passwort zum entsperren des encfs nicht vorhanden ist.
Installation von Jameica/Hibiscus/Jverein
Jameica ist ein Java Framework, auf dem sowohl Hibiscus (Homebanking) als auch JVerein (Vereinsverwaltung) läuft. Das heisst man muss mit der Installation des Frameworks anfangen.
Die aktuellste Version des Frameworks gibt es hier. Einfach runterladen(die 32 bit Linux Version) und auspacken an einen geeigneten Ort (z.B. /opt/jameica).
Da Jameica für die Darstellung SWT braucht, dieses jedoch in eclipse nicht für die ARM Architektur verfügbar ist, müssen wir hier noch etwas Aufwand treiben. Auf dem Banana-/Raspberry PI muss das swt Paket libswt-gtk-3-java installiert werden:
apt-get install libswt-gtk-3-java
Jetz muss man noch das vorhandene swt in dem Jameica Verzeichnis mit dem für die richtige Architektur überschreiben:
cp /usr/lib/java/swt-gtk-3.8.0.jar /opt/jameica/lib/swt/linux/swt.jar
Danach startet Jameica ganz normal. Hibsicus und Jverein werden jetzt am besten über den integrierten Plugin Manager installiert.
Installation von Xpra
Das Xpra bitte aus den [ http://backports.debian.org/ wheezy-backports] installieren, die wheezy Version ist Uralt!
Änderungen in der /etc/xpra/xpra.conf
Deaktiviere Notifications, sound und Tray notifications:
# Enable forwarding of notifications:
notifications = no
# Enable forwarding of system tray icons:
system-tray = no
# Forward sound output to clients:
speaker = no
Entferne Viedocodecs, die führen zu komischen Verzerrungen. Speed und Quality sollen automatisch bestimmt werden, mindestens jedoch 50 sein:
################################################################################
# Picture Encoding
# Encodings allowed:
# (not all encodings may be available in your environment):
#encodings = h264, vp8, png, png/P, png/L, webp, rgb, jpeg, h265, vp9
#encodings = all
#encodings = rgb
encodings = jpeg, png, png/P, rgb
# Use fixed quality
# (value is a percentage or "auto"):
#quality = 80
quality = auto
# For auto quality only:
#min-quality = 50
min-quality = 50
# Use fixed speed
# (value is a percentage or "auto"):
#speed = 90
speed = auto
# For auto speed only:
#min-speed = 20
min-speed = 50
Deaktiviere session sharing:
# Share session with other users:
sharing = no
Bei Verbidnungsherstellung jameinca (JVerein) starten. Xsession ebenfalls laden...
########################################################################
# Server Options:
# Commands to start by default
# (may be specified more than once):
# examples:
start-child = /opt/jameica/jameica.sh
#start-child = /usr/bin/xeyes
# Xsession can take care of initializing dbus, keyring-daemon,
# gpg-agent or whatever else might be usually started together with X
start-child = /etc/X11/Xsession true
Anderer Logfile Ort
# Log file:
log-file = /tmp/xpra.log
Session nicht per mdns verbereiten.
# Publish sessions:
mdns = no
Pulseaudio brauchen wir nicht.
# Start a pulseaudio server with each session:
pulseaudio = no
Auch hier: Logfile angepasst
# Selecting virtual X server:
xvfb=Xorg -dpi 96 -noreset -nolisten tcp +extension GLX +extension RANDR +extension RENDER -logfile /tmp/Xorg.${DISPLAY}.log -config /etc/xpra/xorg.conf
Funktioniert mit xvfb offenbar nicht...
# Does the xvfb command support the "-displayfd" argument?
# displayfd = yes
Beende xorg session, wenn jameica beendet wird.
exit-with-children = yes
Änderungen in der /etc/xpra/xorg.conf
In den Sections Monitor und Display wurden alle modes > 2560x1600 rausgenommen, das braucht man wirklich nicht und schein auch zu problemen mit einigen JVerein Fenstern zu führen.
Section "Monitor"
Identifier "dummy_monitor"
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 200.0
#To add your own modes here, use a modeline calculator, like:
#http://xtiming.sourceforge.net/cgi-bin/xtiming.pl
#or using the "gtf" command line tool (http://gtf.sourceforge.net/)
#This can be used to get a specific DPI, but only for the default resolution:
#DisplaySize 508 317
#NOTE: the highest modes will not work without increasing the VideoRam
# for the dummy video card.
Modeline "2560x1600" 47.12 2560 2592 2768 2800 1600 1639 1642 1681
Modeline "2560x1440" 42.12 2560 2592 2752 2784 1440 1475 1478 1513
Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457
Modeline "1920x1200" 26.28 1920 1952 2048 2080 1200 1229 1231 1261
Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
Modeline "1680x1050" 20.08 1680 1712 1784 1816 1050 1075 1077 1103
Modeline "1600x1200" 22.04 1600 1632 1712 1744 1200 1229 1231 1261
Modeline "1600x900" 33.92 1600 1632 1760 1792 900 921 924 946
Modeline "1440x900" 30.66 1440 1472 1584 1616 900 921 924 946
ModeLine "1366x768" 72.00 1366 1414 1446 1494 768 771 777 803
Modeline "1280x1024" 31.50 1280 1312 1424 1456 1024 1048 1052 1076
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
Modeline "1280x768" 23.11 1280 1312 1392 1424 768 786 789 807
Modeline "1360x768" 24.49 1360 1392 1480 1512 768 786 789 807
Modeline "1024x768" 18.71 1024 1056 1120 1152 768 786 789 807
Modeline "768x1024" 19.50 768 800 872 904 1024 1048 1052 1076
#common resolutions for android devices (both orientations):
Modeline "800x1280" 25.89 800 832 928 960 1280 1310 1315 1345
Modeline "1280x800" 24.15 1280 1312 1400 1432 800 819 822 841
Modeline "720x1280" 30.22 720 752 864 896 1280 1309 1315 1345
Modeline "1280x720" 27.41 1280 1312 1416 1448 720 737 740 757
Modeline "768x1024" 24.93 768 800 888 920 1024 1047 1052 1076
Modeline "1024x768" 23.77 1024 1056 1144 1176 768 785 789 807
Modeline "600x1024" 19.90 600 632 704 736 1024 1047 1052 1076
Modeline "1024x600" 18.26 1024 1056 1120 1152 600 614 617 631
Modeline "536x960" 16.74 536 568 624 656 960 982 986 1009
Modeline "960x536" 15.23 960 992 1048 1080 536 548 551 563
Modeline "600x800" 15.17 600 632 688 720 800 818 822 841
Modeline "800x600" 14.50 800 832 880 912 600 614 617 631
Modeline "480x854" 13.34 480 512 560 592 854 873 877 897
Modeline "848x480" 12.09 848 880 920 952 480 491 493 505
Modeline "480x800" 12.43 480 512 552 584 800 818 822 841
Modeline "800x480" 11.46 800 832 872 904 480 491 493 505
#resolutions for android devices (both orientations)
#minus the status bar
#38px status bar (and width rounded up)
Modeline "800x1242" 25.03 800 832 920 952 1242 1271 1275 1305
Modeline "1280x762" 22.93 1280 1312 1392 1424 762 780 783 801
Modeline "720x1242" 29.20 720 752 856 888 1242 1271 1276 1305
Modeline "1280x682" 25.85 1280 1312 1408 1440 682 698 701 717
Modeline "768x986" 23.90 768 800 888 920 986 1009 1013 1036
Modeline "1024x730" 22.50 1024 1056 1136 1168 730 747 750 767
Modeline "600x986" 19.07 600 632 704 736 986 1009 1013 1036
Modeline "1024x562" 17.03 1024 1056 1120 1152 562 575 578 591
Modeline "536x922" 16.01 536 568 624 656 922 943 947 969
Modeline "960x498" 14.09 960 992 1040 1072 498 509 511 523
Modeline "600x762" 14.39 600 632 680 712 762 779 783 801
Modeline "800x562" 13.52 800 832 880 912 562 575 578 591
Modeline "480x810" 12.59 480 512 552 584 810 828 832 851
Modeline "848x442" 11.09 848 880 920 952 442 452 454 465
Modeline "480x762" 11.79 480 512 552 584 762 779 783 801
EndSection
Section "Screen"
Identifier "dummy_screen"
Device "dummy_videocard"
Monitor "dummy_monitor"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "2560x1600" "1920x1440" "1920x1200" "1920x1080" "1600x1200" "1680x1050" "1600x900" "1400x1050" "1440x900" "1280x1024" "1366x768" "1280x800" "1024x768" "1024x600" "800x600" "320x200"
#Virtual 32000 32000
#Virtual 16384 8192
#Virtual 8192 4096
#Virtual 5120 3200
EndSubSection
EndSection
Erlaube nur einen Zugriff auf JVerein zugleich
Xpra fehlt diese funktion leider. Deswegen muss man hier zu ssh hilfsmitteln greifen. In der /etc/security/limits.conf folgendes eintragen:
username - maxlogins 1
Backup
Backups des verschlüsselten Home-Verzeichnisses laufen täglich Nachts um 01:30. Einmal in der Woche werden Vollbackups gezogen, in den Tagen dazwischen inkrementelle. Backups älter als 4 Wochen werden gelöscht. Die Backups werden per sftp auf lacerta.uberspace.de geladen (Ordner: backups/jverein). Dort liegt auch ein Backup der SD Karte, welches direkt auf eine neue Karte gespielt werden kann. Für das Backup wird die Software Duply verwendet; Backups werden verschlüsselt.
Installation/Konfiguration von Duply
Installation von duply; Backup Profil erzeugen.
apt-get install duply python-paramiko
duply create jverein
Als nächstes müssen wir die config Datei (.duply/jverein/conf) anpassen:
Das Passwort für die symmetrische Verschlüsselung:
GPG_PW='PASSWORT'
Der Ort, an dem das Backup liegt (für andere Beispiele siehe die conf Datei):
TARGET='ssh://freifunk@lacerta.uberspace.de/backups/jverein'
Der Ort, der gebackupt werden soll:
SOURCE='/home/'
Mache maximal 4 Vollbackups, lösche inkrementelle und Vollbackups die älter als 1 Monat sind.
MAX_AGE=1M
MAX_FULL_BACKUPS=4
MAX_FULLBKP_AGE=1M
Setze den --force parameter, damit Backups auch wirklich gelöscht werden.
DUPL_PARAMS="$DUPL_PARAMS --force"
Cronjob einrichten
Erstelle den Ordner für die Logfiles:
mkdir /var/log/backup
Editiere /etc/crontab
30 1 * * * root /usr/bin/duply jverein backup_purge_purge-full >> /var/log/backup/jverein.log
Backup zurückspielen
Duply Backup
Installiere duply wie oben beschrieben.
Restore Prozedur aufrufen:
duply jverein restore /home/
SD Karte wieder herstellen
Datei von lacerta.uberspace.de runterladen (sd_jverein_backup.img.bz2) und auspacken. SD Karte einlegen, mit dd das image zurückspielen:
dd bs=1M if=sd_jverein_backup.img of=/dev/deviceOfSD
Für andere OSes gibt es auch entsprechende Tools z.B. Win32 Disk Imager