Introduction to Horde Groupware

Jan Schneider

The Horde Project

This talk is a highspeed run through most features of the Horde Groupware. Basic functions will only be showed quickly, so that we have more time for the more advanced features.

What is Horde Groupware?

  • Grown out of individual web applications...
  • ...developed by the Horde Project...
  • ...out of the Horde Application Framework...
  • ...for over 10 years.
  • Mainly a client...
  • ...that runs on top of existing servers...
  • ...but also has some server capabilities.
  • Comes in two flavors.

Notes

  • No fat clients, browser only, ca. 50 applications
  • Horde is one of the oldest PHP projects, has set standards for OOP development in PHP and coding standards with broad adaption
  • Ca. 60 libraries/packages/components
  • 4th generation in application evolution
  • You don't want it as a fat monolithic groupware server
  • On top of existing infrastructure
  • Concentrate on what we are good at: web applications

Horde Groupware Webmail Edition

Components

  • Webmail (IMP, DIMP, MIMP)
  • Addressbook (Turba)
  • Email Filters (Ingo)
  • Calendar (Kronolith)
  • Tasks/todo lists (Nag)
  • Notes (Mnemo)

Webmail Demonstration

  • Portal
  • Global alarms
  • Full-featured IMAP/POP3 client
  • Mailbox view
  • Message view
  • Composing
  • Folder management and subscriptions
  • Quota support
  • Drafts support
  • Trash folder

Advanced Webmail Functionality

  • 3 differerent interfaces
    • Traditional page-based interface (highest compatibility)
    • Desktop-like Ajax interface (more modern, higher browser requirements)
    • Mobile interface (optimized for mobile phones and PDAs)
  • Email security
    • S/MIME encryption and signing
    • PGP encryption, signing and key generation
    • XSS filter
    • Phishing filter

Advanced Webmail Functionality

  • Email reading
    • Message thread view (like Google Mail)
    • Flexible spam/ham reporting
    • Creating tasks/notes from messages
  • Email composing
    • Spell checking
    • Stationery (a.k.a. message templates, canned responses)
    • Linked attachments (saved locally, saves bandwith)
    • Contact card attachments
    • Return receipts
    • Logging of replies, forwards, recipients, time, etc.

Advanced Webmail Functionality

  • Email management
    • Access Control Lists (ACL)
      ACL scenarios
      • Group email accounts
      • Email delegation during vacations
    • Virtual folders (saved searches, special Virtual Inbox and Trash)
    • Attachment stripping (to save storage space)
    • Periodical maintenance (archiving, deleting)
    • Fetchmail for external accounts
    • Mailbox feeds
    • Keyboard navigation

Contacts Demonstration

  • Contact browsing (pager, rolodex, sorting, exporting)
  • Contact groups (across address books)
  • Address linking to map services
  • Photo support

Advanced Contacts Functionality

  • Backends: SQL, LDAP, Kolab, Favorites, Groups, Virtual, and more
  • Fully customizable
  • User-defined contact listing

Demonstration

  • Turn tabs on/off
  • Drag and drop address book columns

Filters Functionality

  • Several backends
    • IMAP
    • Sieve
    • Procmail
    • Maildrop
  • Backend dependent rule criteria
  • Pre-defined rules
    • Blacklists
    • Whitelists
    • Spam filtering
    • Vacation notices
    • Forwarding

Basic Calendar Functionality

  • Several event sources (local SQL/Kolab, external subscriptions, holidays, time objects)
  • Daily agendas
  • Change notifications

Demonstration

  • Meeting planning
    • Attendees
    • Free/busy view
    • iTip

Advanced Calendar Functionality

  • Sharing with fine grained permissions (in all applications)
  • Meeting planning
  • Side-by-side view
  • Time-objects API
  • WebDAV access (for external calendar clients)
  • Calendar feeds
  • Embeddable widgets
  • Upcoming: Ajax interface

Taskslist Functionality

  • Sub-tasks
  • Assignees
  • Integration with other applications
    • Due dates displayed in calendar
    • Time estimation used in time tracker
    • Display assigned tickets

Notes Functionality

  • Encrypted notes
  • PDF export

Advanced Functionality

  • Permissions
    • Application access
    • Application-level
      • Maximum number of folders, events, contacts, etc
      • Maximum number of recipients per message
      • Maximum number of recipients per time period
  • SyncML (contacts, events, tasks, notes)
  • Identity verification
  • Flexible signups
    • Automatic/manual verification
    • Custom fields

Performance Features

  • Caching
    • Filesystem
    • Memcache
    • APC
    • eAccelerator
    • Zend Performance Suite (or how ever this is called at the moment)
    • xCache
    • SQL
  • Webserver clustering
    • Virtual File System
    • Custom session handlers (Memcache, Database, LDAP)
  • Database clustering (master/slave)

Security Features

  • Tokens (CSRF protection)
  • Cookie-only sessions
  • or: Dereferrer
  • Session protection (fixation protection, IP address and browser binding)
  • Secure transmission for sensitive data enforced
  • No automatic image loading in HTML message (Webbugs)
  • Remember: PGP, S/MIME, XSS filter, phishing filter, note encryption

Great flexibility

Administrators hate it and love it, both because of the many configuration options.

  • Backend independency
    • 23 authentication drivers
    • 13 database drivers (DB/MDB2)
    • Application storage drivers
  • Global configuration
  • User settings (preferences)
  • All configuration files PHP code
  • Hooks

Extendability

  • More applications
    • File manager (Gollem, VFS-powered backends: FTP, local file system, Samba, SFTP, SQL)
    • Ticket system (Whups, bug tracking, helpdesk/support application)
    • Time tracker (Hermes, integration with address book, tasks, tickets)
    • Wiki (Wicked, speaks several wiki dialects)
    • Photo gallery (Ansel, image editing, widget support, geo tagging, gallery themes)
  • Complete application framework for developing own applications
  • PHP APIs for communication with other web applications
  • RPC server for interaction with external systems (SOAP, XML-RPC, JSON-RPC)

Questions?

Resources

Obrigado!

Next talk: "Inside the Horde", tomorrow, June 26, 4pm