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.
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
# mkdir -p /var/www/html/dms
Download the following files from the SeedDMS page at SourceForge and place them into the
seeddms-quickstart-5.1.4.tar.gz SeedDMS_Core-5.1.4.tgz SeedDMS_Lucene-1.1.10.tgz SeedDMS_Preview-1.2.4.tgz SeedDMS_SQLiteFTS-1.0.7.tgz
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
# cd /var/www/html/dms # tar zxvf seeddms-quickstart-5.1.4.tar.gz
Install the remaining packages via the
# 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
# 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.
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
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:
As the message suggests, remove the ENABLE_INSTALL_TOOL file from the
# 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.
Log in with admin/admin to proceed to the 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. ]
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.