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