How to run OpenDocMan inside Docker

Running an OpenDocMan Document Management System Inside a Docker Container

We are pleased to announce our first release of OpenDocMan on Docker, a containerized deployment for OpenDocMan that utilizes the fantastic Docker container system. With this new method of deployment you can eliminate all of the server set up and just get to running OpenDocMan inside Docker right away . As long as you can get a local Docker server up and running (very easy!) you can deploy our docker container to your server in seconds and have a fully functional OpenDocMan installation.

What Is Docker?

Docker is a system that provides “containerized” deployments of applications. If you want to know more about it you should visit this page: What Is Docker?

Why don’t I just install OpenDocMan the old way?

Getting an OpenDocMan server up and running from the source code can be straightforward for those with some experience with setting up web servers. Unfortunately, even experienced users can have issues with their server environment that prevent them from being able to use OpenDocMan. We also have plenty of potential users who would like to use OpenDocMan but do not have the resources to properly set up a web server. We want to help anyone in that situation. With this new containerized method of installation we completely eliminate the web server setup. If you can create a new Linux server in the cloud (or locally), you can run OpenDocMan inside Docker and have an open source document management system running in minutes (or seconds if your real snappy!).

Ok, I will give it a go, what next?

The first thing you need to do is make sure you have a running MySQL server with an OpenDocMan database created and a username/password to access it. This OpenDocMan Docker we are using for this tutorial is just the code and the web server. The database is not part of the container. You will then need to decide on where you want to install your Docker server. A Docker server runs on either Linux, or by using a tool called Boot2Docker for Mac which will emulate a Linux server on your Mac for testing/development purposes. The easiest way to get started is to utilize a cloud server company that can give you a Docker server with a click of a button. We have found Digital Ocean to be a good, inexpensive provider for turn-key Docker servers. Once you have your docker server running….

I have the Docker server up, lets do this!

Ok, the hard part is out of the way. There is a decision you need to make. You can:

1) Checkout our github repository containing our Docker build files and “build” an image to use
2) Download our OpenDocMan image directly from our Docker hub repository

If you think you might be customizing the installation you will be better of running from the github repository. If you just want to get going quickly it would be best to start with our Docker Hub repository.

Running OpenDocMan from a Dockerfile

This method of building the OpenDocMan application from a build file will allow you to customize anything needed for your particular environment. To get your document management server going:

  1. Login to your docker server
  2. Make sure you have “git” installed on the server. If not, use either apt-get or yum to install it
    1. apt-get install git
    2. yum install git
  3. Now you will clone our OpenDocMan docker build repository
    1. git clone ./docker-opendocman-minimal
  4. Now lets build the image
    1. mkdir /var/odm_data
    2. cd docker-opendocman-minimal
    3. docker build –rm –tag=”docker-opendocman-minimal” .   (don’t forget the dot)
    4. docker images
  5. We have an image now, we want to actually “run” it on our Docker server
    1. docker run -d -p 80:80 -v /var/odm_data:/var/www/odm_data docker-opendocman-minimal
    2. docker ps
  6. Now that its up and running you should be able to visit your servers IP in your browser and be present with the installation page

Running OpenDocMan from a Docker Hub Image

This way of running OpenDocMan Docker image will allow you to skip the build process entirely and just “run” the image in your Docker server

  1. Login to your docker server
  2. Run the OpenDocMan Docker image
    1. mkdir /var/odm_data
    2. docker run -d -p 80:80 -v /var/odm_data:/var/www/odm_data stephenlawrence/opendocman-www:minimal
    3. docker ps
  3. You can now visit your server IP and you will see the installation page

I think its running, what do I do now?

Well, you can login to the container and poke around, or you can visit your Docker servers’ IP address and you should see your OpenDocMan installer.

Whats next?

We are going to be putting together a MySQL container that will come pre-installed with a running OpenDocMan database, ready-to-use with your OpenDocMan application container. Stay Tuned!






Where Have All The Open Source Document Management Systems Gone?

In the process of checking on our competition I noticed a few interesting things about the open source document management market:

  1. Some of our competitors are completely gone from the market
  2. Some are no longer offering a “free” version
  3. Some require you to “contact sales” in order to find out anything about the system, even to watch an introduction video!

Document management system development is difficult, and open source software development only adds to the difficulty level. In open-source development there are limited resources, limited time, and an unlimited number of feature requests pouring in. While open source development has its challenges, it can also be easier in some aspects. Open source development has a lower overhead (hopefully) as there are many helpful tools and services that are provided to the open-source community at no charge (GitHub, etc). Frequently there are contributions from the community to the project, thus allowing the project to grow and improve without having a salary expense. However, just because your open-source project software is available for free should not mean you cannot make any money from it. 

It looks to me like some of our open-source document management system competitors have decided to move away from open source in order to make money, and I get that. But I find it slightly disingenuous to have a free product and convert it into a paid product without allowing the free product to continue to exist on its own. The Magento project has a business model where the community edition exists next to the commercial edition. They have shown how you can have an open source project and a commercial project running in parallel. Contrast that with other projects that either “hide” their community version, or removed it from their offerings completely. I think what a lot of these other open-source DMS systems have failed to apply are monetization methods. Monetizing your open source project is something that I think all project owners should be looking into, and I would argue it is critical for self-preservation. Lets take a couple of examples that help argue my point:

Joe’s DMS:

Let’s say Joe has an open-source document management project that has been around for a few years. The project is fairly popular and there are a lot of people coming to the site and downloading the software for free but there is no financial gain for Joe, he does this out of the kindness of his heart. He begins to get burnt out, tired, distracted and just moves on to something else. This leaves the community with no support, and no innovation which in the end is a bad thing for all open source projects and their users.

Bills DMS:

Contrast that story with Bill’s project. His project has also been around for a few years and has a lot of users. This project has monetized the project in various ways and has found out ways of generating some revenue while still providing their open source software to the community. Is Bill’s project more likely to continue to exist when there are paying customers helping to keep the lights on? I say yes!!

Now, there are some hardcore open-source folks who will say that open-source software should be free of all cost and that charging money for it is sacrilegious  Most of them have probably never run an open source software project, or been responsible for answering the hundreds of emails each year from users, maintaining all of the servers and sites required for the project, paying the hosting, domain, and software expenses. Trust me on this, open source projects are not free of expenses. 

 I believe that in order to have a healthy open-source software project you need to have some sort of monetization plan. If your open source software project has no revenue generation plans, feel free to contact me and we can discuss.

Stephen Lawrence Jr.


OpenDocMan Released

OpenDocMan v1.2.6.4 has been released which contains various bug fixes. All users are encouraged to upgrade. No database changes.

  • Fixed Issue #77 – some issue various users were having with mime type detection
  • Fixed a strange control character in functions.php
  • Fixed issue #72 – Data Tables Apear In settings under the languge tab

You can download this release from our Downloads page.

0 Comments Release – OpenDocMan – PHP Document Management System

This release fixes a few bugs and improves the UI. No database update required.

Download OpenDocMan

– 0000464: [User Interface] Install folder warning message breaks tweeter theme in IE (logart) – resolved.
– 0000463: [Core] Not able to download previous version of document. (logart) – resolved.
– 0000462: [Database] Reviewer cannot admin files that are in review queue (logart) – resolved.
– 0000291: [Input Validation] Input validation – admin tools (logart) – resolved.
– 0000455: [User Interface] Edit/Add User – Admin checkbox should show/hide reviewer selection list (logart) – resolved.
– 0000456: [User Interface] Buttons on various forms are not aligned nicely in all browsers (logart) – resolved.
– 0000453: [User Interface] UI – Clicking cancel on the Add User screen causing input validation to fire off (logart) – resolved.
– 0000458: [Error] undefined index last_message – admin pages (logart) – resolved.
– 0000461: [Core] Delete/Undelete – Undelete file not working. (logart) – resolved.
– 0000324: [Core] Admin users should see all reviewable files (logart) – resolved.
– 0000457: [User Interface] Select Dropdowns 1st line text is wrapping onto 2nd line (logart) – resolved.


1.2.6 Beta Commit Log – 01/14/2011

[ad#Google Adsense-468×60]
This commit is a substantial change from With these changes we have a new installer, new web-configuration editor, and web-filetypes editor. There are also some other changes.

If you are running from the last 1.2.6beta version you should be able to run the update.

Please bang on this release a bit and report any bugs/issues/suggestions at:
OpenDocMan Bug Tracking

Download here:
1.2.6 Daily

01/14/2011 Changelog
753 Fri Jan 14 23:16:00 PST 2011 logart
#0000324 – Admin users should see all reviewable files
#0000329 – Remove treeview mode
#0000330 – index.php – re-direct authenticated users
#0000331 – mysql column mis-match error during install
#0000328 – Add config-sample.php file
#0000325 – Add current username to status bar
#0000323 – UDF values are limited to 16 chars
#0000321 – Reviewers should see all files for department they review for
#0000322 – Improve the error reporting during file uploads
#0000257 – Get all the config options into the database
#0000306 – UI – Add jQuery table to out.php to replace legacy table sorter
#0000307 – DB – Move allowedFileTypes to database
#0000259 – Improvements to the installer
#0000296 – Root User – Should allow the root user to edit all files
#0000298 – Folder Perms – Check all perms during install
#0000300 – TYPE= is causing errors in some versions of mysql


1.2.6 Beta – Commit Log – 12/28/2010

[ad#Google Adsense-468×60]

I am going to be slowly releasing new 1.2.6beta features over the coming weeks, and today is one of them: Plug-ins!

I am releasing this early in hopes that it will encourage developers to start creating plug-ins for OpenDocMan to extend the core functionality without needing to be committed into our main development trunk.

Changelog 12/28/2010:

0000328: Add config-sample.php file.

0000327: Add plugin system

Documentation for the new plugin system can be found here. You can view the available plugins list at our Downloads page.


New Features/Fixes Upcoming

There are a number of new features upcoming for the 1.2.6 release and I felt like doing a preview of them to get some feedback from the community.

Feature: Web-based configuration – Gone is editing the config.php file for all the various settings. The only thing it holds now is the database connection info. There is going to be a new admin option called Edit Settings which will provide you with a nice web form for updating all of the various opendocman settings.

Feature: Multi-Language support – We have integrated a translation feature into OpenDocMan that will allow anyone to translate their own languages. Currently have Dutch, German, Spanish and Turkish. To translate a new language you would just need to copy the /includes/language/english.php file and rename it to your language. Then proceed to translate the various words and phrases from english to your own language. The new language will then be available in the Edit Settings page.

Feature: Web-based Filetypes Editor – You no longer have to edit the config.php file to add/update filetypes. There is now a new admin settings page called Edit File Types that lets you Select/Unselect/Add/Delete new filetypes that are allowed to be uploaded to your DMS.

Feature: jQuery Table output – The default file list code has been converted over to a nice jQuery table, with sortable columns, search, and pagination features. This replaces a hand-made system that was bloated and complex.

Feature: New UI Tweeks – Some improvements to the overall UI including new button styling, and more visual feedback messages.

Feature: Improved installer logic to provide better feedback to user on errors

Many bug fixes including:

  • Non-admin user promoting themselves to admin
  • Fresh install should use IF NOT EXISTS for db creation
  • allowedFileTypes – not used for Adding a file, but is used for check-in
  • PHP 5.3 Depricated functions
  • Depricated function – ereg
  • Usage of MySQL’s PASSWORD function in OpenDocMan
  • Search by filename is hardcoded to be non-wildcard
  • Add user error Incorrect integer value

We also have a list of some features that will be looked at for v2.0. You can vote on these features at our uservoice site

If you have any questions you can contact us our forums or our getsatisfaction page.


How can you help the OpenDocMan project?

I’m glad you asked!

If you like OpenDocMan and are looking for ways to help us out we are always happy to have new product evangelists. Here are a few ideas of ways to help us out (in no particular order):

  1. Submit your code changes
  2. Answer questions from users on our community forum
  3. Report any bugs you find
  4. Add new feature requests or vote on current requests
  5. Create a patch to fix a bug or add a new feature
  6. Like our Facebook Page
  7. Follow us on Twitter @opendocman
  8. Write about us on your blog
  9. Donate to our project
  10. Sign-up for hosted OpenDocMan
  11. Purchase an annual support contract
  12. Send us an email and tell us how you are using OpenDocMan at your company
  13. Create some documentation for the project
  14. Send us a testimonial that we can put on our website
  15. Visit our getsatisfaction page
  16. Help translate OpenDocMan into your language

Any of those items in the list help a lot. Our project is run by volunteers. The more the merrier.


Stephen Lawrence – OpenDocMan Developer


UI Design

I am in the process of re-designing the OpenDocMan UI. I will be posting some wireframe ideas on our feedback site. You can check back there to see the UI candidates and vote,etc.

For the UI wire frame, I am using an outstanding tool from Balsamiq called Balsamiq Mockups. More info can be found here:

Balsamiq Mockups