Explaining the folder structure of a SeedDMS installation

SeedDMS uses a simple folder structure on disc which eases updates and even allows to switch between different versions as long as you stay in the 5.1.x or 6.0.x branch. It makes use of soft links which makes it somewhat harder to install it on systems which do not support them.

After unpacking the quickstart archive of SeedDMS 6.0.19, you will see a folder hierarchy like the following (it shows only those directories which are relevant to understand the concept). Of course, for a different version of SeedDMS the directory seeddms-6.0.19 will have a different name.

seeddms60x
├── conf
├── data
├── pear
├── seeddms -> seeddms-6.0.19
├── seeddms-6.0.19
│   ├── CHANGELOG
│   ├── controllers
│   ├── doc
│   ├── inc
│   ├── index.php
│   ├── install
│   ├── languages
│   ├── LICENSE
│   ├── op
│   ├── out
│   ├── pdfviewer
│   ├── restapi
│   ├── styles
│   ├── utils
│   ├── views
│   └── webdav
└── www
    ├── controllers -> ../seeddms/controllers
    ├── ext
    ├── inc -> ../seeddms/inc
    ├── index.php -> ../seeddms/index.php
    ├── install -> ../seeddms/install
    ├── languages -> ../seeddms/languages
    ├── op -> ../seeddms/op
    ├── out -> ../seeddms/out
    ├── pdfviewer -> ../seeddms/pdfviewer
    ├── restapi -> ../seeddms/restapi
    ├── styles -> ../seeddms/styles
    ├── views -> ../seeddms/views
    └── webdav -> ../seeddms/webdav

The directories below seeddms60x can be separated into two groups

  1. directories which contain the source code of SeedDMS
  2. directories which contain data of your local installation

pear and seeddms-6.0.19 belong into the first group and files in those directories will never be modified by SeedDMS. Hence, you could even write protect them for the user running the web server, e.g. for security reasons.

conf and data contain the configuration and all local data of your installation. Those directories must be writable by the user running the web server. Though, the directory conf can also be write protected if the configuration may not be changeable from within the SeedDMS web user interface.

The directory www is a mixture of both. It contains the php source code of installed extensions and must be writable by the user running the web server. This directory should be the only one visible in the web, either by making it the document root of a virtual host or by setting up an alias.

If your file system does not support softlinks you must dereference the links in the directory www.

Multiple installations using the same source

The strict separation of the SeedDMS source and the data allows a shared use of the sources in several installations. Just move the directories seeeddms-6.0.19 and pear out of seeddms60x at any other place. Than adjust the softlink seeddms and the parameter extraPath in the configuration to point at the new location.

You can also rename seeddms60x to any other name, e.g. clientA. Just ensure the paths in the SeedDMS and Apache configuration are adjusted accordingly.

Backup

For a minimal backup the directories conf and data must be saved. If you have installed any extensions and did not backup them otherwise, you will also have to backup the directory www or at least www/ext.

Of course, you can as well backup the whole directory seeddms60x. The space required for the sources is usually inconsiderable compared to the data.

If you use MySQL, then also backup your database.