Installing Horde Groupware


(Michael Träumner) #41

Thank you too.

(Michael Träumner) #42

I’ve spoken with @giacomo, we should complement the howto with the LDAP part (not a second howto, only implement at the first howto), after that he would look for building a package on nethserver-testing.
There are much more modules which we can install for horde, I think we have to look which ones are important.
Very important too is to activate and test active sync.
At least we should try to export data from SOGo and import to horde.

(Dan) #43

I can work on the LDAP piece, but I have neither interest in, nor ability to test, active sync. Other than imp and kronolith, already described here, I’d think Turba (contacts) would be pretty important. Following that, notes (Mnemo) and tasks (Nag) should probably be next. I’d kind of like to play with their photo gallery app, and possibly their wiki, but I don’t know that those need to be a high priority for integration in Neth.

(Michael Träumner) #44

I will try and document active sync part, it would be nice if you do so for ldap.

Ok we should try this too.

(Giacomo Sanchietti) #45

I will try to start working on a basic RPM next week :wink:

(Dan) #46

I’m trying to adapt the above instructions to use local LDAP rather than the AD authentication, but hitting a problem after I set up the Authentication tab in the horde configuration screens. In short, after I save that configuration, I get a fatal error screen. If I then browse directly to https://fqdn/horde, I’m logged in as Administrator. When I log out, I then am unable to log in as admin. The admin user exists and has a valid password. Here’s what I’ve done to get to that point (apologies for the poor formatting):

Installed per instructions in OP, edited php.ini, created database and user.

Went to /horde/admin/config
Preferences to PHP session – OK
Configured database. Used Unix socket (/var/lib/mysql/mysql.sock) rather than TCP/IP. Clicked Generate Configuration.
/usr/bin/horde-db-migrate – OK
Back to configuration -> preferences -> change to SQL database, Generate Configuration -> OK
horde -> LDAP. Settings at default except as noted below:
useldap -> Yes
hostspec -> localhost
binddn -> cn=ldapservice,dc=directory,dc=nh (from the Domain Accounts page; same is shown by account-provider-test dump)
bindpw -> (password shown there)
basedn -> cn=users,dc=directory,dc=nh
uid -> uid
Generate Configuration – OK

Horde -> Authentication. As above, settings at defaults except as noted below:
admins -> admin
resetpassword -> false
driver -> LDAP authentication
basedn -> cn=users,dc=directory,dc=nh
uid -> uid

Horde -> Groups
driver -> LDAP
basedn -> dc=directory,dc=nh
writedn -> cn=ldapservice,dc=directory,dc=nh
writepw -> (password)
filter_type -> Complete LDAP filter expression
filter -> (objectClass=group)

It’s at this point that I get the Fatal Error screen, but can go to /horde/ to get a login page–but am unable to log in.

(Michael Träumner) #47

Can you test your connection with ldapsearch please.
You can read how to do it here:

(Dan) #48
[root@neth2 ~]# ldapsearch -x -LLL -h localhost -D admin -w password -b"dc=directory,dc=nh" -s sub "(objectClass=user)" givenName
ldap_bind: Invalid DN syntax (34)
	additional info: invalid DN
[root@neth2 ~]# ldapsearch -x -LLL -h localhost -D admin -w password -b"dc=familybrown,dc=org" -s sub "(objectClass=user)" givenName
ldap_bind: Invalid DN syntax (34)
	additional info: invalid DN
[root@neth2 ~]# ldapsearch -x -LLL -h localhost -D admin -w password -b"cn=users,dc=familybrown,dc=org" -s sub "(objectClass=user)" givenName
ldap_bind: Invalid DN syntax (34)
	additional info: invalid DN
[root@neth2 ~]# ldapsearch -x -b "uid=username,ou=people,dc=familybrown,dc=org"
# extended LDIF
# LDAPv3
# base <uid=username,ou=people,dc=familybrown,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL

# search result
search: 2
result: 32 No such object
matchedDN: ou=People,dc=familybrown,dc=org

# numResponses: 1
[root@neth2 ~]# ldapsearch -x -LLL -h localhost -D admin -w password -b "cn=users,dc=directory,dc=nh" -s sub "(objectClass=user)" givenName
ldap_bind: Invalid DN syntax (34)
	additional info: invalid DN

(Giacomo Sanchietti) #49

I’m a little bit late, but here you are the RPM I promised:

@m.traeumner is administrator of the GitHub repo.

Take a loot to the README to get it started.
There is a lot more work needed, the main point is to make automatically generated whole configuration and apply database changes without accessing the web interface.
But I didn’t find any documentation on how to do it beside the /usr/bin/horde-db-migrate script which is already called.

I think it can be a good starting point for @mrmarkuz @danb35 @dnutan and @flatspin or any other user who want to contribute.

The build is automatic, any modification will create a new RPMs

The RPM can be found here:;O=D

Of course, if you need help, please ask :wink:

(Dan) #50

Interesting, that’s using IMAP authentication, rather than LDAP. IMAP is no doubt simpler to configure, but is there any other reason to prefer one over the other?

(Markus Neuberger) #51

I think it’s our job now to change it from IMAP to LDAP and make it work with NethServer LDAP/AD.

(Giacomo Sanchietti) #52

Of course, because you don’t need to change the authentication configuration if you have installed AD or LDAP. Is much simpler and it works even if the remote provider is not reachable because IMAP authentication relays on SSSD.

Edit: the only reason thing to switch from AD to LDAP is the configuration of Turba internal contact book, which is totally optional.

(Dan) #53

…so LDAP would need to be configured to make that work, but you still wouldn’t need to use LDAP for authentication, right?

(Giacomo Sanchietti) #54

Right :wink:

If no one is interested in turba, we can even skip the job :wink:

(Michael Träumner) #55

Think we shouldn’t skip it, but we can do it later.

(Markus Neuberger) #56

I don’t know much about horde but just to have some direction to get to a module:

  • setup everything we want, to have working conf.php files
  • do we need some extra config db prop entries for customization or can we just take the information we already have in e-smith db for configuring auth, imap etc?
  • if necessary mariadb entries are made during setup we have to insert them via a config script
  • we have to decide how much will be preconfigured and at which point the user takes over.
    I can imagine to activate and configure the modules needed and set correct auth in turba depending on Nethserver settings(AD/LDAP) so users can just login and work
  • I saw that there is an alarm cron job we may implement:
  • we may think about an .htaccess file for PHP config

(Markus Neuberger) #57

I added a turba AD/LDAP shared addressbook:

Please help me as I am not a horde user and have nearly no experience with it:

  • Which default settings should we put to the conf files?
  • How to update config of horde module via command line instead of pressing the button in web UI?

(Ralph) #58

After migrating the Horde installation to another vm (within the same domain) I have a problem with the hooks.local.php file.

The hooks.local.php file looks exactly like in the Howto. But from every user only the samaccountname is shown - as username, as full name and as mail address.
At times, with my first installation, I once had the same problem but I cannot remember how I solved it. Can anybody help?

(Michael Träumner) #59

Could you dif the new file with the one at your old vm, or is it already deleted?
Is the AD-Server the same as before?

(Ralph) #60

I don’t see any difference between the files except that the domain name changed.
Which format do you use for binddn in conf.php and hooks.local.php?