Xandikos logo

Xandikos

  •  0 ratings
In category: Calendar & Contacts / CalDAV or CardDAV Servers

About Xandikos

Open source CardDAV and CalDAV server with minimal administrative overhead, backed by a Git repository.

  •   254  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: N/A  
  •   N/A  
  •   N/A  
  •  Latest commit: N/A  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about Xandikos

Xandikos is a lightweight yet complete CardDAV/CalDAV server that backs onto a Git repository.

Xandikos (Ξανδικός or Ξανθικός) takes its name from the name of the March month in the ancient Macedonian calendar, used in Macedon in the first millennium BC.

Extended documentation can be found on the home page <https://www.xandikos.org/docs/>_.

Implemented standards

The following standards are implemented:

  • :RFC:4918/:RFC:2518 (Core WebDAV) - implemented, except for COPY/MOVE/LOCK operations
  • :RFC:4791 (CalDAV) - fully implemented
  • :RFC:6352 (CardDAV) - fully implemented
  • :RFC:5397 (Current Principal) - fully implemented
  • :RFC:3253 (Versioning Extensions) - partially implemented, only the REPORT method and {DAV:}expand-property property
  • :RFC:3744 (Access Control) - partially implemented
  • :RFC:5995 (POST to create members) - fully implemented
  • :RFC:5689 (Extended MKCOL) - fully implemented
  • :RFC:6578 (Collection Synchronization for WebDAV) - fully implemented

The following standards are not implemented:

  • :RFC:6638 (CalDAV Scheduling Extensions) - not implemented
  • :RFC:7809 (CalDAV Time Zone Extensions) - not implemented
  • :RFC:7529 (WebDAV Quota) - not implemented
  • :RFC:4709 (WebDAV Mount) - intentionally <https://github.com/jelmer/xandikos/issues/48>_ not implemented
  • :RFC:5546 (iCal iTIP) - not implemented
  • :RFC:4324 (iCAL CAP) - not implemented
  • :RFC:7953 (iCal AVAILABILITY) - not implemented

See DAV compliance <notes/dav-compliance.rst>_ for more detail on specification compliancy.

Limitations

  • No multi-user support
  • No support for CalDAV scheduling extensions

Supported clients

Xandikos has been tested and works with the following CalDAV/CardDAV clients:

  • Vdirsyncer <https://github.com/pimutils/vdirsyncer>_
  • caldavzap <https://www.inf-it.com/open-source/clients/caldavzap/>/carddavmate <https://www.inf-it.com/open-source/clients/carddavmate/>
  • evolution <https://wiki.gnome.org/Apps/Evolution>_
  • DAVx5 <https://www.davx5.com/>_ (formerly DAVDroid)
  • sogo connector for Icedove/Thunderbird <http://v2.sogo.nu/english/downloads/frontends.html>_
  • aCALdav syncer for Android <https://play.google.com/store/apps/details?id=de.we.acaldav&hl=en>_
  • pycardsyncer <https://github.com/geier/pycarddav>_
  • akonadi <https://community.kde.org/KDE_PIM/Akonadi>_
  • CalDAV-Sync <https://dmfs.org/caldav/>_
  • CardDAV-Sync <https://dmfs.org/carddav/>_
  • Calendarsync <https://play.google.com/store/apps/details?id=com.icalparse>_
  • Tasks <https://github.com/tasks/tasks/tree/caldav>_
  • AgendaV <http://agendav.org/>_
  • CardBook <https://gitlab.com/cardbook/cardbook/>_
  • Apple's iOS
  • homeassistant's CalDAV integration <https://www.home-assistant.io/integrations/caldav/>_

Dependencies

At the moment, Xandikos supports Python 3 (see setup.cfg for specific version) as well as Pypy 3. It also uses Dulwich <https://github.com/dulwich/dulwich>, Jinja2 <http://jinja.pocoo.org/>, icalendar <https://github.com/collective/icalendar>, and defusedxml <https://github.com/tiran/defusedxml>.

E.g. to install those dependencies on Debian:

.. code:: shell

sudo apt install python3-dulwich python3-defusedxml python3-icalendar python3-jinja2

Or to install them using pip:

.. code:: shell

python setup.py develop

Docker

A Dockerfile is also provided; see the comments on the top of the file for configuration instructions. The docker image is regularly built and published at ghcr.io/jelmer/xandikos. See examples/docker-compose.yml and the man page <https://www.xandikos.org/manpage.html>_ for more info.

Running

Xandikos can either directly listen on a plain HTTP socket, or it can sit behind a reverse HTTP proxy.

Testing

To run a standalone (no authentication) instance of Xandikos, with a pre-created calendar and addressbook (storing data in $HOME/dav):

.. code:: shell

./bin/xandikos --defaults -d $HOME/dav

A server should now be listening on localhost:8080 <http://localhost:8080/>_.

Note that Xandikos does not create any collections unless --defaults is specified. You can also either create collections from your CalDAV/CardDAV client, or by creating git repositories under the contacts or calendars directories it has created.

Production

The easiest way to run Xandikos in production is by running a reverse HTTP proxy like Apache or nginx in front of it. The xandikos script can either listen on the local host on a particular port, or it can listen on a unix domain socket.

For example init system configurations, see examples/.

Client instructions

Some clients can automatically discover the calendars and addressbook URLs from a DAV server (if they support RFC:5397). For such clients you can simply provide the base URL to Xandikos during setup.

Clients that lack such automated discovery (e.g. Thunderbird Lightning) require the direct URL to a calendar or addressbook. In this case you should provide the full URL to the calendar or addressbook; if you initialized Xandikos using the --defaults argument mentioned in the previous section, these URLs will look something like this::

http://dav.example.com/user/calendars/calendar

http://dav.example.com/user/contacts/addressbook

Contributing

Contributions to Xandikos are very welcome. If you run into bugs or have feature requests, please file issues on GitHub <https://github.com/jelmer/xandikos/issues/new>. If you're interested in contributing code or documentation, please read CONTRIBUTING <CONTRIBUTING.md>. Issues that are good for new contributors are tagged new-contributor <https://github.com/jelmer/xandikos/labels/new-contributor>_ on GitHub.

Help

There is a #xandikos IRC channel on the OFTC <https://www.oftc.net/> IRC network, and a Xandikos <https://groups.google.com/forum/#!forum/xandikos> mailing list.

Comments (0)

Please login to join the discussion on this project.

Xandikos Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Popular Projects

FluxBB

in Social Networks and Forums
 29k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 17k    1    1    0  

Libreddit

in Social Networks and Forums
 5k    0    1    0  

CasaOS

in Self-hosting Solutions
 4k    0    0    0  

Audiobookshelf

in Audio Streaming
 3k    0    1    0  

Mediagoblin

in Photo and Video Galleries
 3k    0    0    0  

Dashboard

in Personal Dashboards
 2k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 17k    1    1    0  

Tube Archivist

in Automation
 2k    0    1    0  

OneDev

in Project Management
 1k    0    0    0  

iodine

in Proxy
 1k    0    0    0  

Alf.io

in Booking and Scheduling
 1k    0    0    0  

sysPass

in Password Managers
 743    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
pCloud Lifetime

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

SabreDAV logo
SabreDAV cover

SabreDAV

Open source CardDAV, CalDAV, and WebDAV framework and serve…

DAViCal logo
DAViCal cover

DAViCal

Server for calendar sharing (CalDAV) that uses a PostgreSQL…

Etebase (EteSync) logo
Etebase (EteSync) cover

Etebase (EteSync)

End-to-end encrypted and journaled personal information ser…