All Projects β†’ jelmer β†’ Xandikos

jelmer / Xandikos

Licence: gpl-3.0
A CalDAV/CardDAV server

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Xandikos

Webdav
Simple Go WebDAV server.
Stars: ✭ 630 (+291.3%)
Mutual labels:  webdav
Artifactory Debian
πŸ”§ πŸ“¦ Tools to use Artifactory as a Debian (APT) repository, and dput DEB packages into it, or upload them to Bintray.
Stars: ✭ 42 (-73.91%)
Mutual labels:  webdav
Phpzoterowebdav
an implementation of a WebDAV server in php for use with zotero's sync functionality PLUS full access to zotero library and stored attachments (IMPORTANT: this original branch is no longer maintained; several patches have been applied in this fork: https://github.com/ddean4040/phpZoteroWebDAV)
Stars: ✭ 77 (-52.17%)
Mutual labels:  webdav
Duplicati
Store securely encrypted backups in the cloud!
Stars: ✭ 6,915 (+4195.03%)
Mutual labels:  webdav
Vdirsyncer
πŸ“‡ Synchronize calendars and contacts.
Stars: ✭ 872 (+441.61%)
Mutual labels:  webdav
Dave
A totally simple and very easy to configure stand alone webdav server
Stars: ✭ 69 (-57.14%)
Mutual labels:  webdav
Joplin
Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. Forum: https://discourse.joplinapp.org/
Stars: ✭ 26,916 (+16618.01%)
Mutual labels:  webdav
Unifile
Unified access to cloud storage services through a simple web API.
Stars: ✭ 105 (-34.78%)
Mutual labels:  webdav
Caddy V1 Webdav
πŸ“‚ WebDAV support for Caddy server.
Stars: ✭ 36 (-77.64%)
Mutual labels:  webdav
Siyuan
πŸ“• SiYuan is a local-first personal knowledge management system, support fine-grained block-level reference and Markdown instant-render editing.
Stars: ✭ 1,196 (+642.86%)
Mutual labels:  webdav
Fileprovider
FileManager replacement for Local, iCloud and Remote (WebDAV/FTP/Dropbox/OneDrive) files -- Swift
Stars: ✭ 724 (+349.69%)
Mutual labels:  webdav
Winscp
WinSCP is a popular free SFTP and FTP client for Windows, a powerful file manager that will improve your productivity. It supports also Amazon S3, FTPS, SCP and WebDAV protocols. Power users can automate WinSCP using .NET assembly.
Stars: ✭ 794 (+393.17%)
Mutual labels:  webdav
Webdavfs
Linux / OSX FUSE webdav filesystem. This filesystem behaves like a real network filesystem- no unnecessary copying of entire files.
Stars: ✭ 69 (-57.14%)
Mutual labels:  webdav
Rclone
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Yandex Files
Stars: ✭ 30,541 (+18869.57%)
Mutual labels:  webdav
Webdav Client Cpp
☁️ C++ WebDAV Client provides easy and convenient to work with WebDAV-servers.
Stars: ✭ 92 (-42.86%)
Mutual labels:  webdav
Kodexplorer
A web based file manager,web IDE / browser based code editor
Stars: ✭ 5,490 (+3309.94%)
Mutual labels:  webdav
Cyberduck
Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows.
Stars: ✭ 1,080 (+570.81%)
Mutual labels:  webdav
Npm Webdav Server
WebDAV Server for npm
Stars: ✭ 138 (-14.29%)
Mutual labels:  webdav
Gowebdav
A golang WebDAV client library and command line tool.
Stars: ✭ 97 (-39.75%)
Mutual labels:  webdav
Webdav Fs
Node fs wrapper for WebDAV
Stars: ✭ 72 (-55.28%)
Mutual labels:  webdav

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.

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

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.4 and higher 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.

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.rst>. 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 Freenode <https://www.freenode.net/>_ IRC network, and a Xandikos <https://groups.google.com/forum/#!forum/xandikos>_ mailing list.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].