This guide will walk through the installation and basic config of SeedDMS 6.x, at time of writing 6.0.17.
It is being done on an already existing system, comprising:
SeedDMS' Sourceforge page can be found here
Download the zip file containing SeedDMS to somewhere suitable on the system
On FreeBSD systems the web root is usually
/usr/local/www
Please create a suitable directory to host SeedDMS at this (or an appropriate other path). For us do:
mkdir /usr/local/www/seeddms
There are a series of package dependencies that are required, on FreeBSD install these using the package manager pkg
or from Ports. If you are using Poudriere you will need to make sure they have been built ahead of time, but Poudriere is out of scope of this guide. MariaDB, Nginx and PHP 7.4 have been included here for clarity.
MariaDB [(none)]> CREATE DATABASE seeddms;
MariaDB [(none)]> CREATE USER 'seeddms'@'localhost' IDENTIFIED BY '<password>';
If your MariaDB instance is not local, change the value of 'localhost' to the appropriate value for the web server running Nginx. Specify a good strong secure password and replace '<password>' with that value in the command above.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON seeddms.* TO 'seeddms'@'localhost' WITH GRANT OPTION;
MariaDB [(none)] FLUSH PRIVILEGES;
Next we need to update the Nginx configuration. The plan here is to serve SeedDMS from it's own domain name 'seeddms.domain.com'. These steps assume:
/usr/local/etc/nginx
with site specific ones frequently at
/usr/local/etc/nginx/sites-available
change to this location by entering this at the command line
cd /usr/local/etc/nginx/sites-available
vi
by entering:
vi seeddms.def
In that file insert this as the contents
# --
# nginx SeedDMS site config
# v1 - 2022-03-14 - Site for SeedDMS 6.x
# --
server {
# basic parameters
listen 80;
server_name seeddms.domain.com;
root /usr/local/www/seeddms/www;
index index.php;
# logging
access_log /var/log/nginx/seeddms-access.log main;
error_log /var/log/nginx/seeddms-error.log info;
rewrite_log on;
# DAV - disable any built in DAV methods in Nginx
dav_methods off;
# location specific
# for webdav
location ^~ /webdav/ {
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/webdav/index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
# all php files
location ~ \.php$ {
try_files $uri =404;
include /usr/local/etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_pass unix:/var/run/php-fpm.sock;
}
}
/usr/local/etc/nginx/sites-enabled
To do this first change to this location:
cd /usr/local/etc/nginx/sites-enabled
and then create the link
ln -s /usr/local/etc/nginx/sites-available/seeddms.def seeddms.conf
service nginx reload
cd /usr/local/www/seeddms
tar xf </path/to/downloaded/seeddms/archive>
This will extract the contents of the archive to the current location
ls -AlF
You will probably see a single directory:
drwxr-xr-x 7 root wheel 8 Mar 14 12:34 seeddms60x/
mv seeddms60x/* .
(Optional) Just in case there's any special files that start with a '.', this command will help move those as well:
mv seeddms60x/.* .
total 7
drwxr-xr-x 2 root wheel 4 Mar 14 12:34 conf/
drwxr-xr-x 8 root wheel 9 Mar 14 12:34 data/
drwxr-xr-x 5 root wheel 7 Mar 14 12:34 pear/
lrwxr-xr-x 1 root wheel 16 Mar 14 12:34 seeddms@ -> seeddms-6.0.17.1
drwxr-xr-x 15 root wheel 19 Mar 14 12:34 seeddms-6.0.17.1/
drwxr-xr-x 14 root wheel 17 Mar 14 12:34 www/
chown
to change the owner for everything here and further down the tree to be the www
account & group:
chown -R www:www .
total 7
drwxr-xr-x 2 www www 4 Mar 14 12:34 conf/
drwxr-xr-x 8 www www 9 Mar 14 12:34 data/
drwxr-xr-x 5 www www 7 Mar 14 12:34 pear/
lrwxr-xr-x 1 www www 16 Mar 14 12:34 seeddms@ -> seeddms-6.0.17.1
drwxr-xr-x 15 www www 19 Mar 14 12:34 seeddms-6.0.17.1/
drwxr-xr-x 14 www www 17 Mar 14 12:34 www/
SeedDMS is capable of configuring itself through some guided installation steps
touch conf/ENABLE_INSTALL_TOOL
http://seeddms.domain.com/install
You should be presented with a simple welcome page similar to:
Should it not load, double check the previous two sections on Nginx config and SeedDMS installation It may not look right, but this is just due to paths that need to be changed from their defaults, this will be covered in subsequent steps
As per the message at the top, the Root directory has been updated to fit the installation path. This is also why the page looks much more like it should. Most of the following paths are now set with good defaults, and shouldn't need changing. The Database settings however, do.
First, change the 'Database Type' field to 'mysql'
Next, in the 'Server Name' field, enter 'localhost'. If your MariaDB server is on a remote host, enter that value instead
For 'Database' enter 'seeddms', the name we gave the database when we set it up earlier
For 'Username' and 'Password' again enter the details supplied when the database was set up earlier
Finally, tick the box at the bottom that reads 'Create database tables'
The values should now look similar to this (password left blank here, make sure the relevant password has been entered)
When ready, and all the details are correct, click on 'Apply'
All being well, you should now be taken to the next screen, where it reports installation successfully completed
A final tidy up step, remove the file we created in step one to disable the installer and permit normal usage
rm conf/ENABLE_INSTALL_TOOL
Click on the link 'Configure more settings' and it should take you to the main logon screen
Logging in with the default credentials should now show you the main set of additional settings
There are too many to describe them all, however the ones shown here will allow you to change the name of the site & the foot note which appears at the bottom of each page
You should now have a working version of SeedDMS installed. There is plenty of advanced configuration that can be done to make it work better for you, look out for further guides on these.