CalDAV & CardDAV

 


baikal

 

介紹

http://baikal-server.com/

PHP and SQLite

lightweight: 2MB codebase
runs on PHP 5.3
SQLite / MySQL

Install

unzip baikal-flat-0.2.7.zip
mv baikal-flat /var/www/html/baikal
cd /var/www/html
chmod o+w baikal
cd baikal
find . -type d -exec chmod o+rx '{}' \;
chmod -R o+r *

chmod -R o+w Specific

touch Specific/ENABLE_INSTALL

安全

* Web interface autolock

If enabled, you'll have to create a file named ENABLE_ADMIN in the folder Specific/ prior to every admin use.

This enforces security, but might be uncomfortable if you use the admin frequently.

在 Specific Folder 內會建立

config.php  
config.system.php
.htaccess

Thunderbird/Lightning:

http://dav.mydomain.com/cal.php/calendars/username/default

Admin Panel

http://192.168.123.251/baikal/admin/

touch Specific/ENABLE_ADMIN

http://192.168.123.251/baikal/cal.php/calendars/yourname/calender-name/

# 由於 Table: calendars: uri: default (UI: Calendar token ID)

http://192.168.123.251/baikal/cal.php/calendars/datahunter/default/

# 成功 log

192.168.123.200 - datahunter [12/Apr/2016:12:32:11 +0800] "PROPFIND /baikal/cal.php/calendars/datahunter/default/ HTTP/1.1" 207 546 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 Lightning/4.0.7.2"

#  "Address Book" > “File > New > Remote Addressbook” (SoGo Connector(256KB) added this)

http://192.168.123.251/baikal/card.php/addressbooks/yourname/default/

i.e.

http://192.168.123.251/baikal/card.php/addressbooks/datahunter/default/

http://sogo.nu/download.html

MYSQL Backend 設定

mysql -u baikal baikal -p <  Core/Resources/Db/MySQL/db.sql

那 script 會建立

InnoDB:

addressbooks    
calendarobjects
calendars
cards

MyISAM:

groupmembers
locks
principals
users

Reset Password

$hash = md5( $username . ':' . $this->authRealm . ':' . $password );

$this->authRealm # Default: BaikalDAV

Specific/config.php
define("BAIKAL_ADMIN_PASSWORDHASH", '?????');

 


Radicale

 

Homepage: http://radicale.org/

  * Python 2.6
 * no front-end
 * raw calendar files on a WebDAV server

Support: CalDAV (calendar) / CardDAV (contact)

# 安裝

pip install radicale

# 獲得

/usr/lib/python2.6/site-packages/radicale/*

/usr/bin/radicale

# Help

radicale --help

radicale --version

1.1.1

# Starting the Server

radicale.py

-d, --daemon

-f, --foreground (default)

--config file                # Default: /etc/radicale/config

# Logging Configuration File

radicale --debug

# Rights Management

None - Everybody (including anonymous users) has read and write access to all collections.
Authenticated
Owner Only
Owner Write - Authenticated users have read access to all collections
From File

# This means all users starting with "admin" may read any collection

[admin]
user: ^admin.*$
collection: .*
permission: r

# This means all users may read and write any collection starting with public.
# We do so by just not testing against the user string.
[public]

user: .*
collection: ^public(/.+)?$
permission: rw

Authentication

IMAP Authentication

The IMAP authentication module relies on the imaplib module

Radicale comes with a WSGI support

PUT request at /datahunter/test.ics/22b559b4-fea0-4e9a-ad3f-d9a2318896c4.ics received

Anonymous user refused

 

Configure

/etc/radicale/config

[server]

hosts = 0.0.0.0:5232

daemon = True

pid = /var/run/radicale.pid

ssl = False

dns_lookup = False

[rights]
# Value: None | authenticated | owner_only | owner_write | from_file | custom
type = authenticated

[auth]
# Value: None | htpasswd | IMAP | LDAP | PAM | courier | http | remote_user | custom
type = IMAP

# IMAP Configuration
imap_hostname = localhost
imap_port = 143
imap_ssl = False

[storage]
# Value: filesystem | multifilesystem | database | custom
type = filesystem

# mkdir /home/radicale/collections
filesystem_folder = /home/radicale/collections

[logging]
config = /etc/radicale/logging
debug = False

/etc/radicale/logging

# Loggers, handlers and formatters keys

[loggers]
# Loggers names, main configuration slots
keys = root

[handlers]
# Logging handlers, defining logging output methods
keys = console,file

[formatters]
# Logging formatters
keys = simple,full

# Loggers

[logger_root]
# Root logger
level = DEBUG
handlers = console,file

# Handlers

[handler_console]
# Console handler
class = StreamHandler
#level = INFO
level = DEBUG

args = (sys.stdout,)
formatter = simple

[handler_file]
# File handler
class = FileHandler
level = INFO
args = ('/var/log/radicale.log',)
formatter = full

# Formatters

[formatter_simple]
# Simple output format
format = %(message)s

[formatter_full]
# Full output format
format = %(asctime)s - %(levelname)s: %(message)s

 

 


ics - vCalendar calendar file

 

ICS is a global format for calendar files widely being utilized by various calendar and email programs including Google Calendar, Apple iCal, and Microsoft Outlook. These files enable users to share and publish information directly from their calendars over email or via uploading it to the world wide web.

BEGIN:VCALENDAR
BEGIN:VEVENT

END:VEVENT
BEGIN:VEVENT
............
END:VEVENT
............
END:VCALENDAR

 


Thunderbird - Lightning

 

File -> New Calendar -> On the Network -> CalDAV

http://host:port/folder/file.ics/

** trailing slash is important

Calender Tab: Menu -> Events and Tasks -> Calender (Ctrl + Shift +C)

 * Color
 * Offline Support

 


Outlook Plugin - Outlook CalDav Synchronizer

 

Support Outlook versions: 2016, 2013, 2010 and 2007.

General Options

X Automatically check for newer versions
* Store data in roaming folder

 


 

 

 

Creative Commons license icon Creative Commons license icon