Skip to main content

How to install and set up SeedDMS

If you need a document management system that's quick and easy to set up, SeedDMS might be your solution.
How to install and setup SeedDMS

Photo by Foodie Factor from Pexels

A document management system (DMS) is a software suite that gives you, the administrator, the tools you need to create a more secure, more organized, and more pleasant to use option for storing and serving files than you have with a simple file server. If you've ever configured and maintained a file server, you know that there are many pitfalls to doing so. You must create local user accounts, create local group accounts, and mess with file and directory permissions that seem to never fit everyone's specific needs. And forget about trying to maintain organization, naming conventions, and user errors. The DMS doesn't depend on local system accounts for its security. It's a web-based, lightweight, easy-to-use, searchable, and intuitive solution that avoids the standard file server problems that plague us all.

I first introduced you to the DMS concept back in June 2020 with my Introduction to Linux-based document management systems article. This article covers the installation and initial set up of SeedDMS, which is a free, open source DMS for Linux-based and other operating systems.

Gathering prerequisites

There are a few prerequisites that you need before you can install and set up SeedDMS. First, you need to have a working LAMP server. For this SeedDMS installation, I used CentOS 7.x with Apache 2.4.6, PHP 5.4.16, and MariaDB 5.5.65-1. Be sure that Apache can serve PHP files. You also need to install the epel-release (Extra Packages for Enterprise Linux) package. The EPEL package sets up a new repository from which to draw many useful packages for installation. Once it's installed, you can leave it in place because you might need it again in the future.

Once you have a working LAMP server and the EPEL package, you need to install the following packages. The packages are displayed here in a form that you can copy and paste into your terminal screen:

# yum -y install hp-bcmath php-mysql php-mbstring php-gd php-pear-DB php-pear-Image-Text php-pear-Log php-pear-MDB2 php-pear-Mail php-pear-Net-SMTP php-pear-Net-Socket t1lib php-ZendFramework php-ZendFramework-Search-Lucene

Note: The php-http-webdav-server might not install, but don't worry about it—it's not absolutely necessary for a successful installation.

Next, create the dms directory.

# mkdir -p /var/www/html/dms

Download the following files from the SeedDMS page at SourceForge and place them into the /var/www/html/dms directory:


I used the group associated with the 5.1.4 version. There are newer versions available for later OS and requisite software.

Next, extract the "quick start" tarball into your dms (/var/www/html/dms) directory.

# cd /var/www/html/dms
# tar zxvf seeddms-quickstart-5.1.4.tar.gz

Install the remaining packages via the pear command.

# pear install SeedDMS_Core-5.1.4.tgz
# pear install SeedDMS_Lucene-1.1.10.tgz
# pear install SeedDMS_Preview-1.2.4.tgz
# pear install SeedDMS_SQLiteFTS-1.0.7.tgz

Move all of the extracted files under your dms directory. There will be a seeddms51x directory and a seeddms-5.1.4 directory after you move the contents of the seeddms51x directory. Move all contents from both to the /var/www/html/dms directory.

# mv /var/www/html/dms/seeddms51x/* /var/www/html/dms

# mv /var/www/html/dms/seeddms-5.1.4/* /var/www/html/dms

Remove the empty directories.

# rmdir /var/www/html/dms/seeddms51x

# rmdir /var/www/html/dms/seeddms-5.1.4

Grant ownership, recursively, to this directory to your web server user. In my case, it's the apache user.

# chown -R apache:apache /var/www/html/dms

Enable the web-based installation by creating the following empty file:

# touch /var/www/html/dms/conf/ENABLE_INSTALL_TOOL

This file will be removed later. You will receive a prompt in your browser to remove it.

The prerequisites are complete, and now it's time to begin setting up SeedDMS.

[ You might also like: Linux permissions: SUID, SGID, and sticky bit ]

Setting up SeedDMS via your browser

Open your browser and point it to your server at http://<server name>/dms/install/install.php

Replace all of the /home/www-data/seeddms51x/ paths with your actual path of /var/www/html/dms/ on the following form.

SELinux permissions policy problem

At the bottom of the page, select Create database tables and click Apply. If you see the following error after clicking Apply, then you have an SELinux policy block on your /var/www/html/data directory.

SeedDMS Installation Web Page

Note: Do NOT disable SELinux. There's a better way to fix permissions problems than to compromise the security of your whole system. You can grant read/write access to the /var/www/html/data directory by changing the directory's context to allow read/write access to the apache user. If you find new permissions problems, use the chcon command to edit those permissions rather than disabling SELinux. Check the /var/log/audit/audit.log for SELinux entries whose lines begin with type=AVC. Also, check the /var/log/messages files for SELinux entries. Those entries will lead you to the permissions problems.

# chcon -R --type httpd_sys_rw_content_t /var/www/html/dms/data

# chcon -R --type httpd_sys_rw_content_t /var/www/html/dms/conf

Now, select Create database tables again and click Apply.

This time you should see the following page:

Remove the INSTALL tool file.

As the message suggests, remove the ENABLE_INSTALL_TOOL file from the /var/www/html/dms/conf directory.

# rm /var/www/html/dms/conf/ENABLE_INSTALL_TOOL

Select the Configure more settings. Default login: admin/admin link.

You should see the Administrator login page.

Administrator Login page

Log in with admin/admin to proceed to the Settings page.

SeedDMS Settings Page

This is where you customize the environment for your particular needs, such as which day to start on, which calendar view, etc. Once you finish customizing the environment, save the settings by clicking the Save button.

Final setup considerations

You need to add users to the DMS via the User/Groups Management dropdown on the Admin page. Create groups and add users to them. Just think of user and group management in SeedDMS as you would for any other application. You need users, groups, and categories for organizational purposes. And, please take the time to create individual user and group accounts. If you simply create a single user account and allow everyone to use it, you have essentially spoiled the purpose of the DMS, which is to maintain document organization and allow privacy between groups and individuals.

After you've completed those tasks, you can direct your users to http://<server name>/dms, where they can log in and begin managing documents for themselves.


I don't have a lot of experience with SeedDMS yet, and I'm still discovering its nuances, so this is a general getting started article for you. Advanced settings, advanced permissions, and troubleshooting are beyond the scope of this article.

[ Improve your skills managing and using SELinux with this helpful guide. ] 

Wrap up

The SeedDMS is a good place to start with DMSs, but it doesn't have many features and the interface is a bit clunky and primitive. Since it is open source, you can customize it to fit your organization's needs with little effort. SeedDMS is a good transition for you from traditional file servers to the much better world of DMSs.

Author’s photo

Ken Hess

Ken has used Red Hat Linux since 1996 and has written ebooks, whitepapers, actual books, thousands of exam review questions, and hundreds of articles on open source and other topics. Ken also has 20+ years of experience as an enterprise sysadmin with Unix, Linux, Windows, and Virtualization. More about me

Try Red Hat Enterprise Linux

Download it at no charge from the Red Hat Developer program.