Some notes on setting up an Alfresco Community 3.2 server.
Resources
These resources will be referred to as (Rn) later in this document:
- Alfresco Community Edition File Downloads
- Installing and Configuring Alfresco ECM Community Edition 3.2r2 (pdf)
- Installing Labs3 on Linux from the command line (has some useful tips but is for an older version of Alfresco
- File Server Subsystem
- Authentication Subsystem
- Alfresco Integration with Active Directory
The alfreso wiki is a useful resource but contains a lot of documentation not relevant to all versions.
Environment
Alfresco is setup in a VMWare virtual machine running Ubuntu with bridged network mode. Ubuntu 9.10 no longer has alfresco-community in it’s repository. It is still possible to install Alfresco on Ubuntu 9.10 using the all-in-one binary install. Using 9.04, simply do an ‘apt-get install alfresco-community’ (once Canonical’s partner repository is added to /etc/apt/sources.list). This version does not come with Sharepoint or CIFS support enabled by default. Some other basic setup:
- change hostname and update DNS. Alfresco uses the hostname to generate links to CIFS shares, etc.
Client Setup: Firefox
Documents downloaded and opened using Firefox are marked read-only by default. To bypass this feature, browse to about:config, then add the setting browser.helperApps.deleteTempFileOnExit = false.
Client Setup: Internet Explorer
To allow documents to be writable when opened, modify the registry key:
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\Internet\OpenDocumentsReadWriteWhileBrowsing = 1
Modify the version number (12.0) to suite the version of Office (2007).
Client Setup: OpenOffice
A plugin needs to be installed in OpenOffice to enable integration with Alfresco. To install openoffice plugins, first install an openoffice/java package (who’s name I can’t remember – google the error message to find the package name). It seems that Sun and Alfresco both have their own plugins, and I don’t currently know which one works with what version of Alfresco. I really wish Alfresco would do a better job of matching their documentation to their releases.
Sharepoint
Sharepoint allows M$ users access to Alfresco Share ‘sites’ – documents, tasks, links, etc. – directly from within Word, Excel, and PowerPoint.
How to enable:
- Shutdown Alfresco (/etc/init.d/tomcat6 stop)
- Download vti-module.amp file (R1)
- Download alfresco-mmt-3.2r2.jar (R1), the Module Management Tool
- Run: sudo java -jar alfresco-mmt-3.2r2.jar install vti-module.amp /usr/share/tomcat6/webapps/alfresco.war
- Update /usr/share/tomcat6/shared/classes/alfresco-global.properties with the vti properties described on pg. 34 of (R2)
- Start Alfresco (/etc/init.d/tomcat6 start)
How to use (client config):
- Modify Registry Key according to KB 870853 (see also R2, pg. 28)
- Windows clients: Add URL for the site (http://<serverName>) to Internet Explorer Trusted Sites
- Open M$ Word
- Click Tools -> Shared Workspace
- Enter a name for the ‘site’
- Enter the URL for the site: http://<serverName>:7070/alfresco
SMB/CIFS
Why this is so difficult is beyond me (what’s wrong with standard ports?), but these instructions demonstrate how to enable SMB sharing.
Assuming the netbios name is ALFRESCO, browsing to \\ALFRESCO should work if everything is setup correctly. In the web client, links will appear with the letter ‘A’ appended (ie. ALFRESCOA). This is required on Windows machines, but from what I can tell, Alfresco on Ubuntu will always use the hostname as the netbios name, regardless of the cifs.serverName setting.
To fix this, edit /var/lib/tomcat6/webapps/alfresco/WEB-INF/classes/alfresco/file-servers.xml and remove the extra A from the name attribute in the <host> element.
Active Directory
Join the domain to allow the Alfresco machine to query AD:
- update smb.conf to include workgroup, security=domain, and realm
- join domain (net ads join -W domain -U user)
- add the following to alfresco-global.properties:
# Enable Active Directory
authentication.chain=alfrescoNtlm1:alfrescoNtlm,passthru1:passthru
ntlm.authentication.sso.enabled=false
passthru.authentication.useLocalServer=false
passthru.authentication.domain=YOURDOMAIN
passthru.authentication.server=
passthru.authentication.guestAccess=false
passthru.authentication.defaultAdministratorUserNames=Someone
passthru.authentication.connectTimeout=5000
passthru.authentication.offlineCheckInterval=300
passthru.authentication.protocolOrder=TCPIP
passthru.authentication.authenticateCIFS=true
passthru.authentication.authenticateFTP=true
- this setup allows Alfresco built-in authentication *and* Active Directory
- restart Alfresco (tomcat6) and login without using the domain name (ie. user, not domain\user)
Port 80
There are several approaches to running Alfresco on a different port, from modifying a lot of config files to installing Apache with mod_jk, the tomcat connector. My approach is to create a second endpoint in /etc/tomcat6/server.xml. Find the <connector /> element, make a copy of it, and change the port attribute of the new <connector /> element to the port you want to use.
Users can then omit the port number when accessing the site, and the internal guts of Alfresco can still use port 8080 as needed. This method is not fully tested, but so far so good.