Hallo, ich will einen eigenen Kalenderserver betreiben, der in Thunderbird, aber auch in Outlook (zur Not) genutzt werden kann. Ich bin mir noch unsicher, ob iCalender oder CalDAV. Es sollen einfach nur Kalendereinträge auf mehreren Rechnern genutzt werden können. Bitte von Vorschlägen wie Google Kalender absehen, ich will da aus Datenschutzgründen selbst betreiben. Des Weiteren bin ich mir noch bei der Software unsicher. Wie würdet ihr das machen? LG DJKuhpisse
Kalenderserver
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 17660 Wohnort: in deinem Browser, hier auf dem Bildschirm |
|
||||
Moderator
Anmeldungsdatum: Beiträge: 8544 |
Ich mache das per CalDAV mittels DAViCal. Läuft schon ein paar Jahre ganz stabil. Mittlerweile habe ich auch Nextcloud auf dem Server laufen und könnte auch den eingebauten CalDAV-Server nehmen. |
||||
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: Beiträge: 17660 Wohnort: in deinem Browser, hier auf dem Bildschirm |
Der Punkt ist, ich will das so unkompliziert wie möglich haben. Es muss Authentifizierung genutzt werden können, aber nur für einen Benutzer. Ich habe keine Erfahrung mit Datenbanken und will das daher gerne auf Dateisystemebene haben, sodass ich einfach das Verzeichnis sichern kann sollte mal die Platte verrecken. Daher frage ich, was da empfehlenswert ist. |
||||
Anmeldungsdatum: Beiträge: 531 |
Sind alle Benutzer a) im LAN oder b) kommen auch welche von extern? (Bei uns z.B. pro Benutzer eine Kalenderdatei im Format „iCalendar (ICS)“ auf einem Fritzbox-USB-Medium, welche der Thunderbird mittels ins Dateisystem eingehängtem SMB-Laufwerk liest und schreibt.) |
||||
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: Beiträge: 17660 Wohnort: in deinem Browser, hier auf dem Bildschirm |
Ich will das auch von extern nutzen, von verschiedenen PCs. |
||||
Anmeldungsdatum: Beiträge: 531 |
Man könnte den Ordner auf dem Fritzbox-USB-Medium mit den ICS-Kalenderdateien zwar auch für externe Internet-Nutzer freigeben, aber sobald jeder LAN- und WAN-Benutzer auf allen Kalendern schreiben will, bleibt wohl nur eine Lösug mit einem echten Kalender-Server übrig. |
||||
Anmeldungsdatum: Beiträge: 11181 Wohnort: München |
Mir fällt da radicale ein. |
||||
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: Beiträge: 17660 Wohnort: in deinem Browser, hier auf dem Bildschirm |
Das habe ich nun mal ausprobiert, bekomme es aber nicht zum laufen. cat /etc/radicale/config # -*- mode: conf -*- # vim:ft=cfg # Config file for Radicale - A simple calendar server # # Place it into /etc/radicale/config (global) # or ~/.config/radicale/config (user) # # The current values are the default ones [server] # CalDAV server hostnames separated by a comma # IPv4 syntax: address:port # IPv6 syntax: [address]:port # For example: 0.0.0.0:9999, [::]:9999 hosts = 0.0.0.0:5232 //aktuell nur IPv4 aktiv, damit der vorerst nicht von außen erreichbar ist, ist hinter einem NAT-Router # Daemon flag daemon = True # File storing the PID in daemon mode #pid = # Max parallel connections #max_connections = 20 # Max size of request body (bytes) #max_content_length = 100000000 # Socket timeout (seconds) #timeout = 30 # SSL flag, enable HTTPS protocol #ssl = False # SSL certificate path certificate = /etc/ssl/certs/ssl-cert-snakeoil.pem # SSL private key key = /etc/ssl/private/ssl-cert-snakeoil.key # CA certificate for validating clients. This can be used to secure # TCP traffic between Radicale and a reverse proxy #certificate_authority = # SSL Protocol used. See python's ssl module for available values #protocol = PROTOCOL_TLSv1_2 # Available ciphers. See python's ssl module for available ciphers #ciphers = # Reverse DNS to resolve client address in logs #dns_lookup = True # Message displayed in the client when a password is needed #realm = Radicale - Password Required [encoding] # Encoding for responding requests #request = utf-8 # Encoding for storing local collections #stock = utf-8 [auth] # Authentication method # Value: none | htpasswd | remote_user | http_x_remote_user type = htpasswd htpasswd_filename = /etc/radicale/users //existiert, habe auch mit htpasswd nen user angelegt htpasswd_encryption = md5 //entsprechendes Python-Modul, was fehlte, habe ich installiert. # Htpasswd filename #htpasswd_filename = /etc/radicale/users # Htpasswd encryption method # Value: plain | sha1 | ssha | crypt | bcrypt | md5 # Only bcrypt can be considered secure. # bcrypt and md5 require the passlib library to be installed. #htpasswd_encryption = bcrypt # Incorrect authentication delay (seconds) #delay = 1 [rights] # Rights backend # Value: none | authenticated | owner_only | owner_write | from_file type = from_file # File for rights management from_file file = /etc/radicale/rights [storage] # Storage backend # Value: multifilesystem #type = multifilesystem # Folder for storing local collections, created if not present #filesystem_folder = /var/lib/radicale/collections # Lock the storage. Never start multiple instances of Radicale or edit the # storage externally while Radicale is running if disabled. #filesystem_locking = True # Sync all changes to disk during requests. (This can impair performance.) # Disabling it increases the risk of data loss, when the system crashes or # power fails! #filesystem_fsync = True # Delete sync token that are older (seconds) #max_sync_token_age = 2592000 # Close the lock file when no more clients are waiting. # This option is not very useful in general, but on Windows files that are # opened cannot be deleted. #filesystem_close_lock_file = False # Command that is run after changes to storage # Example: ([ -d .git ] || git init) && ([ -e .gitignore ] || printf '.Radicale.cache\n.Radicale.lock\n.Radicale.tmp-*\n' > .gitignore) && git add -A && (git diff --cached --quiet || git commit -m "Changes by "%(user)s) #hook = [web] # Web interface backend # Value: none | internal #type = internal [logging] # Logging configuration file # If no config is given, simple information is printed on the standard output # For more information about the syntax of the configuration file, see: # http://docs.python.org/library/logging.config.html config = /etc/radicale/logging # Set the default logging level to debug #debug = False # Store all environment variables (including those set in the shell) #full_environment = False # Don't include passwords in logs #mask_passwords = True [headers] # Additional HTTP headers #Access-Control-Allow-Origin = * djkuhpisse@server:~$
djkuhpisse@server:~$ service radicale status ● radicale.service - LSB: Radicale CalDAV and CardDAV server Loaded: loaded (/etc/init.d/radicale; generated) Active: inactive (dead) Docs: man:systemd-sysv-generator(8) djkuhpisse@server:~$ Leider ist Thunderbird auch unfähig, mir anzuzeigen, an was es liegt. Der sagt nur, dass der Kalender momentan nicht verfügbar ist. Der Dienst wird auch nach einem Anmeldeversuch immer wieder beendet. djkuhpisse@server:~$ service radicale status ● radicale.service - A simple CalDAV (calendar) and CardDAV (contact) server Loaded: loaded (/etc/systemd/system/radicale.service; enabled; vendor pres> Active: failed (Result: exit-code) since Thu 2020-07-02 12:35:37 CEST; 4mi> Process: 1481 ExecStart=/usr/bin/env python3 -m radicale (code=exited, stat> Main PID: 1481 (code=exited, status=1/FAILURE) Jul 02 12:35:37 server systemd[1]: radicale.service: Scheduled restart job, res> Jul 02 12:35:37 server systemd[1]: Stopped A simple CalDAV (calendar) and CardD> Jul 02 12:35:37 server systemd[1]: radicale.service: Start request repeated too> Jul 02 12:35:37 server systemd[1]: radicale.service: Failed with result 'exit-c> Jul 02 12:35:37 server systemd[1]: Failed to start A simple CalDAV (calendar) a> djkuhpisse@server:~$ Nach Neustart: djkuhpisse@server:~$ service radicale status ● radicale.service - A simple CalDAV (calendar) and CardDAV (contact) server Loaded: loaded (/etc/systemd/system/radicale.service; enabled; vendor pres> Active: active (running) since Thu 2020-07-02 12:41:30 CEST; 151ms ago Main PID: 1541 (python3) Tasks: 1 (limit: 1980) Memory: 6.6M CGroup: /system.slice/radicale.service └─1541 python3 -m radicale Jul 02 12:41:30 server systemd[1]: Started A simple CalDAV (calendar) and CardD> lines 1-10/10 (END) |
||||
Anmeldungsdatum: Beiträge: 11181 Wohnort: München |
Was steht denn in der /var/log/radicale/radicale.log? Damit man besser sieht, was passiert ggf. mal die (Log)level in der /etc/radicale/logging von WARNING auf DEBUG stellen. Die Pakete für Ubuntu enthalten noch kein radicale 3.0, sondern stellen noch die alte 2.x Version bereit - ich hatte die Projektseite und statt der Wiki-Seite radicale verlinkt, weil da die Installation via pip inkl. einer passenden Systemd-Unit schön beschrieben wird. |
||||
Supporter, Wikiteam
(Themenstarter)
Anmeldungsdatum: Beiträge: 17660 Wohnort: in deinem Browser, hier auf dem Bildschirm |
Als ich vorhin nachgeschaut habe, existierte diese Datei nicht. Jetzt ist die leer. Ich habe aber versucht, die systemd-units manuell zu erstellen, nach der Anleitung, das wird vermutlich Komplikationen geben. djkuhpisse@server:/etc/systemd/system$ cat radicale.service [Unit] Description=A simple CalDAV (calendar) and CardDAV (contact) server After=network.target Requires=network.target [Service] ExecStart=/usr/bin/env python3 -m radicale Restart=on-failure User=radicale # Deny other users access to the calendar data UMask=0027 # Optional security settings PrivateTmp=true ProtectSystem=strict ProtectHome=true PrivateDevices=true ProtectKernelTunables=true ProtectKernelModules=true ProtectControlGroups=true NoNewPrivileges=true ReadWritePaths=/var/lib/radicale/collections [Install] WantedBy=multi-user.target djkuhpisse@server:/etc/systemd/system$ |
||||
Anmeldungsdatum: Beiträge: 11181 Wohnort: München |
Ich habe es mit den Ubuntu-Paketen in einer VM ausprobiert - da md5 Passwörter nicht besonders sicher sind, gleich mit Bcrypt: sudo apt install python3-bcrypt python3-passlib sudo htpasswd -B -c /etc/radicale/users username Dann habe ich in der /etc/radicale/config folgendes verändert:
Um zu sehen, ob noch etwas klemmt, habe ich außerdem den Loglevel in /etc/radicale/logging hochgedreht:
Dann lässt sich radicale mittels sudo systemctl start radicale Starten (ggf. noch die Unit enablen, wenn es beim Booten automatisch gestartet werden soll). Danach ist auf Port 5232 ein Webinterface erreichbar, an dem man sich anmelden und eine neue Collection anlegen kann. Wenn man das macht, bekommt man eine URL für WEBDAV, die man dann zusammen mit dem Benutzernamen in Thunderbird beim Erstellen eines neuen Kalenders angeben kann. |