mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-09 13:06:14 +00:00
add more documentation
This commit is contained in:
parent
851a5c901c
commit
78328df952
|
@ -1,114 +0,0 @@
|
||||||
Notifications
|
|
||||||
-----------------------------------------------
|
|
||||||
|
|
||||||
Most changes made to documents or folders in SeedDMS can be monitored
|
|
||||||
by the users. Notifications are send by email if a user or group
|
|
||||||
has subscribed it.
|
|
||||||
|
|
||||||
The following notifications are send to all users and groups having
|
|
||||||
registered a notification for the event:
|
|
||||||
|
|
||||||
op/op.AddDocument.php
|
|
||||||
op/op.AddMultiDocument.php
|
|
||||||
* adding a new document to a folder
|
|
||||||
subscribers of the parent folder
|
|
||||||
|
|
||||||
op/op.AddSubFolder.php
|
|
||||||
* adding a new subfolder to a folder
|
|
||||||
subscribers of the parent folder
|
|
||||||
|
|
||||||
op/op.AddFile2.php
|
|
||||||
op/op.AddFile.php
|
|
||||||
* adding a new file to a document
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.ApproveDocument.php
|
|
||||||
* approval status has changed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.DocumentAccess.php
|
|
||||||
* access rights or ownership has changed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.DocumentNotify.php
|
|
||||||
* document notification was changed
|
|
||||||
owner or group of the document/notification
|
|
||||||
|
|
||||||
op/op.EditComment.php
|
|
||||||
* document's comment has been changed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.EditDocument.php
|
|
||||||
* document has been changed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.EditFolder.php
|
|
||||||
* folder has been changed
|
|
||||||
subscribers of the folder
|
|
||||||
|
|
||||||
op/op.FolderAccess.php
|
|
||||||
* access rights or ownership has changed
|
|
||||||
subscribers of the folder
|
|
||||||
|
|
||||||
op/op.FolderNotify.php
|
|
||||||
* folder notification was changed
|
|
||||||
owner or group of the folder/notification
|
|
||||||
|
|
||||||
op/op.ManageNotify.php
|
|
||||||
* notification was removed
|
|
||||||
owner of the notification
|
|
||||||
|
|
||||||
op/op.MoveDocument.php
|
|
||||||
* document was moved
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.MoveFolder.php
|
|
||||||
* folder was moved
|
|
||||||
subscribers of the folder
|
|
||||||
|
|
||||||
op/op.OverrideContentStatus.php
|
|
||||||
|
|
||||||
op/op.RemoveDocumentFile.php
|
|
||||||
* file of document was removed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.RemoveDocument.php
|
|
||||||
* document was removed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.RemoveFolder.php
|
|
||||||
* folder was removed
|
|
||||||
subscribers of the folder
|
|
||||||
|
|
||||||
op/op.RemoveVersion.php
|
|
||||||
* version of document was removed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.RemoveWorkflowFromDocument.php
|
|
||||||
* Workflow has been removed from document version
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.ReturnFromSubWorkflow.php
|
|
||||||
* Subworkflow has been ended and parent workflow will be continued
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.ReviewDocument.php
|
|
||||||
* document was reviewed
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.RewindWorkflow.php
|
|
||||||
* Workflow was rewind to beginning
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.RunSubWorkflow.php
|
|
||||||
* Subworkflow was started
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.TriggerWorkflow.php
|
|
||||||
* Workflow transition was triggered
|
|
||||||
subscribers of the document
|
|
||||||
|
|
||||||
op/op.UpdateDocument2.php
|
|
||||||
op/op.UpdateDocument.php
|
|
||||||
* document was updated
|
|
||||||
subscribers of the document
|
|
143
README.Ubuntu
143
README.Ubuntu
|
@ -1,143 +0,0 @@
|
||||||
This README was written by Eric Smith
|
|
||||||
|
|
||||||
======================================================
|
|
||||||
Steps that I took to install SeedDMS on Ubuntu 12.10
|
|
||||||
- a personal account and not an authoritative guide.
|
|
||||||
======================================================
|
|
||||||
|
|
||||||
Download four tar balls from;
|
|
||||||
http://sourceforge.net/projects/seeddms/files/seeddms-4.0.0-pre5/
|
|
||||||
|
|
||||||
seeddms-4.0.0-pre5.tar.gz
|
|
||||||
SeedDMS_Preview-1.0.0.tgz
|
|
||||||
SeedDMS_Lucene-1.1.1.tgz
|
|
||||||
SeedDMS_Core-4.0.0pre5.tgz
|
|
||||||
|
|
||||||
Install as follows the pear components:
|
|
||||||
sudo pear install SeedDMS_Core-4.0.0pre5.tgz
|
|
||||||
sudo pear install SeedDMS_Preview-1.0.0.tgz
|
|
||||||
sudo pear install SeedDMS_Lucene-1.1.1.tgz
|
|
||||||
|
|
||||||
Download and install the pear Log application:
|
|
||||||
wget http://download.pear.php.net/package/Log-1.12.7.tgz
|
|
||||||
sudo pear install Log-1.12.7.tgz
|
|
||||||
|
|
||||||
And zend:
|
|
||||||
sudo pear channel-discover zend.googlecode.com/svn
|
|
||||||
sudo pear install zend/zend
|
|
||||||
|
|
||||||
I installed the following packages, not all of which may be required
|
|
||||||
and you may require other packages, please check the dependencies on
|
|
||||||
the README.md for example for full text search, you need pdftotext,
|
|
||||||
catdoc, xls2csv or scconvert, cat, id3
|
|
||||||
|
|
||||||
sudo apt-get install php5-mysql php5-mysqlnd libapache2-mod-php5
|
|
||||||
sudo apt-get install pdo_mysql php5-gd id3 scconvert
|
|
||||||
sudo apt-get install php-http-webdav-server
|
|
||||||
sudo apt-get install zend-framework zend-framework-bin
|
|
||||||
sudo apt-get install libzend-framework-zendx-php
|
|
||||||
sudo apt-get install libjs-dojo-core libjs-dojo-dijit libjs-dojo-dojox
|
|
||||||
sudo apt-get install libzend-framework-php (It kept bitching about Zend so I just kept piling on packages until it worked)
|
|
||||||
|
|
||||||
mbstring is already a part of libapache2-mod-php5
|
|
||||||
pepper:~> show libapache2-mod-php5|grep mbstring
|
|
||||||
mbstring mhash openssl pcre Phar posix Reflection session shmop SimpleXML
|
|
||||||
|
|
||||||
|
|
||||||
Define three locations:
|
|
||||||
[1] Some cosy place in yourfile system for the source files to which you
|
|
||||||
will link
|
|
||||||
I chose "/opt/seeddms-4.0.0-pre5/"
|
|
||||||
untar seeddms-4.0.0-pre5.tar.gz into this location
|
|
||||||
|
|
||||||
[2] Make a directory and three subdirectories for the data for your site;
|
|
||||||
I chose to do this under "/opt/dms/seeddms_multisite_test/data"
|
|
||||||
sudo mkdir -p /opt/dms/seeddms_multisite_test/data/lucene/
|
|
||||||
sudo mkdir /opt/dms/seeddms_multisite_test/data/staging/
|
|
||||||
sudo mkdir /opt/dms/seeddms_multisite_test/data/cache/
|
|
||||||
|
|
||||||
Give ownership (or write access) to your httpd process to those directories;
|
|
||||||
sudo chown -cvR www-data /opt/dms/seeddms_multisite_test/data/
|
|
||||||
|
|
||||||
[3] Somewhere under your www root, make a directory for the sources of
|
|
||||||
your site:
|
|
||||||
These can be of course under different virtual domains.
|
|
||||||
/var/www/www.mydomain.eu/seeddms_multisite_test
|
|
||||||
cd /var/www/www.mydomain.eu/seeddms_multisite_test;
|
|
||||||
sudo ln -s /opt/seeddms-4.0.0-pre5 src (README.md does not include the `src'!)
|
|
||||||
ln -s src/inc inc
|
|
||||||
ln -s src/op op
|
|
||||||
ln -s src/out out
|
|
||||||
ln -s src/js js
|
|
||||||
ln -s src/views views
|
|
||||||
ln -s src/languages languages
|
|
||||||
ln -s src/styles styles
|
|
||||||
ln -s src/themes themes
|
|
||||||
ln -s src/install install
|
|
||||||
ln -s src/index.php index.php
|
|
||||||
|
|
||||||
If need be;
|
|
||||||
sudo chown -cvR www-data /var/www/www.mydomain.eu/seeddms_multisite_test/
|
|
||||||
|
|
||||||
Create Dataabse;
|
|
||||||
Run the following sql commands to create your db and a user with
|
|
||||||
appropriate privileges.
|
|
||||||
|
|
||||||
mysql> create database seeddms_multisite_test;
|
|
||||||
mysql> grant all privileges on seeddms_multisite_test.* to seeddms@localhost identified by 'your_passwd';
|
|
||||||
|
|
||||||
|
|
||||||
Point your browser to the location of your instance as in [3] above
|
|
||||||
and /install
|
|
||||||
I resorted to a text browser on my server due to failure to access the
|
|
||||||
db from a remote browser;
|
|
||||||
|
|
||||||
pepper:~> elinks www.mydomain.eu/seeddms_multisite_test/install
|
|
||||||
|
|
||||||
This is how I filled it in;
|
|
||||||
SeedDMS: INSTALL
|
|
||||||
SeedDMS Installation for version 4.0.0
|
|
||||||
|
|
||||||
Server settings
|
|
||||||
Root directory: /opt/seeddms-4.0.0-pre5/_______________________
|
|
||||||
Http Root: /seeddms_multisite_test/_______________________
|
|
||||||
Content directory: /opt/dms/seeddms_multisite_test/data___________
|
|
||||||
Directory for full text index: /opt/dms/seeddms_multisite_test/data/lucene/___
|
|
||||||
Directory for partial uploads: /opt/dms/seeddms_multisite_test/data/staging/__
|
|
||||||
Core SeedDMS directory: _______________________________________________
|
|
||||||
Lucene SeedDMS directory: _______________________________________________
|
|
||||||
Extra PHP include Path: _______________________________________________
|
|
||||||
Database settings
|
|
||||||
Database Type: mysql________________
|
|
||||||
Server name: localhost____________
|
|
||||||
Database: seeddms_multisite_tes
|
|
||||||
Username: seeddms______________
|
|
||||||
Password: ********_____________
|
|
||||||
Create database tables: [X]
|
|
||||||
|
|
||||||
[ Apply ]
|
|
||||||
|
|
||||||
|
|
||||||
If all is okay (and I hope this happens more quickly for you than for me),
|
|
||||||
you should be notified accordingly and invited to login to your new site
|
|
||||||
with credentials admin/admin. (This password is cleverly set to expire
|
|
||||||
in a couple of days. So do not get a shock like I did when it suddenly
|
|
||||||
does not work).
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
To make additional sites;
|
|
||||||
|
|
||||||
If you wish to make additional sites, you need to copy the data directories thusly;
|
|
||||||
sudo cp -avr /opt/dms/seeddms_multisite_test /opt/dms/seeddms_multisite_test_2
|
|
||||||
And the sources thusly;
|
|
||||||
sudo cp -avr /var/www/www.mydomain.eu/seeddms_multisite_test /var/www/www.mydomain.eu/seeddms_multisite_test_2
|
|
||||||
|
|
||||||
And of course make data directories for this site:
|
|
||||||
sudo mkdir -p /opt/dms/seeddms_multisite_test_2/data/lucene/
|
|
||||||
sudo mkdir /opt/dms/seeddms_multisite_test_2/data/staging/
|
|
||||||
sudo mkdir /opt/dms/seeddms_multisite_test_2/data/cache/
|
|
||||||
|
|
||||||
Then create another database as shown above but of course give the db
|
|
||||||
another name.
|
|
||||||
Run the install again from the new location.
|
|
|
@ -1,89 +0,0 @@
|
||||||
Workflows in SeedDMS
|
|
||||||
====================
|
|
||||||
|
|
||||||
SeedDMS supports approval and review of documents for a long time.
|
|
||||||
In many cases this is sufficient for a simple workflow management.
|
|
||||||
Nevertheless there was growing demand for a more powerful document
|
|
||||||
workflow. Since version 4.0.0 SeedDMS allows to define arbitrary
|
|
||||||
workflows for each document content. In order to understand how
|
|
||||||
workflows in SeedDMS work, one has to understand how a workflow is modelled.
|
|
||||||
Let's start with a definition of some terms.
|
|
||||||
|
|
||||||
workflow: a list of document states and transitions. A workflow starts
|
|
||||||
in a preset initial state and traverses along the transitions into other
|
|
||||||
states until no more transitions are possible.
|
|
||||||
|
|
||||||
state: the current status of a document (actually a document content)
|
|
||||||
A state can be for example 'rejected', 'approved', 'waiting for qm'.
|
|
||||||
Document jump from state to state when transitions are fired.
|
|
||||||
States are the nodes of a graph.
|
|
||||||
|
|
||||||
transition: a transition is the change from one state to a new state
|
|
||||||
Transitions are the edges of a graph. A transition can only be
|
|
||||||
triggered by a given list of users and groupѕ, when a defined action
|
|
||||||
is run. Such an action can be 'approve', 'revise', 'reject', etc.
|
|
||||||
transitions may need more than one trigger to fire, e.g. if several
|
|
||||||
users have to approve a document.
|
|
||||||
|
|
||||||
trigger a transition: a user runs an action on the document which possibly
|
|
||||||
changes the state. Internally this is identical to triggering a transition.
|
|
||||||
Such a trigger may or may not change the state of the document,
|
|
||||||
because there could
|
|
||||||
be other users which also have to trigger the transition.
|
|
||||||
After each trigger of an transition it will
|
|
||||||
be checked whether all conditions are met to change the state.
|
|
||||||
Triggers are currently only implemented for user interaction, but
|
|
||||||
other triggers could be added.
|
|
||||||
|
|
||||||
action: the actual operation run on the document. Each transition has
|
|
||||||
an action which when run, triggers the transition. Actions have just a name.
|
|
||||||
|
|
||||||
sub workflow: The modelling of a workflow is identical to a regular
|
|
||||||
workflow. Any workflow can be used as a sub workflow. Branching into
|
|
||||||
a sub workflow is only possible if the current state is equal to the
|
|
||||||
initial state of the sub workflow and the user is allowed to trigger
|
|
||||||
the next transition in the current workflow.
|
|
||||||
|
|
||||||
A workflow and a sub workflow are just a list
|
|
||||||
of transitions and an initial state. There is no principal difference
|
|
||||||
between the two and they are equally modelled. Starting from an initial state
|
|
||||||
there are a number of possible transitions ending in a new state. Each
|
|
||||||
transition can only be triggered if the user has the right to do so.
|
|
||||||
|
|
||||||
A workflow can be assigned to a document just like any other attribute
|
|
||||||
if the user has sufficient rights. Once a workflow is assigned, the document
|
|
||||||
will be in the initial state of the workflow. As long as the workflow
|
|
||||||
has not left its initial state, it can be removed from the document by
|
|
||||||
any users with write permission on the document. Once it has left the
|
|
||||||
initial state it cannot be removed without rewinding the workflow to
|
|
||||||
its initial state. Rewinding the workflow will remove the log of triggered
|
|
||||||
transitions and set the document status on the initial state of the
|
|
||||||
workflow. Rewinding can only be done by administrators.
|
|
||||||
|
|
||||||
The purpose of sub workflows is to replace a transition with more
|
|
||||||
states in between. Such a case can happen, if approval or rejection
|
|
||||||
of a document is put in charge of a group of persons, e.g. a department.
|
|
||||||
If the department head decides to set up its own workflow within his
|
|
||||||
department, he can run a sub workflow. During the lifetime of the sub
|
|
||||||
workflow, the former workflow (parent workflow) will be paused. Sub workflows
|
|
||||||
can only be started if the current document state is equal to the initial
|
|
||||||
state of the sub workflow.
|
|
||||||
In order to return to the parent workflow two conditions must be met:
|
|
||||||
1. the state of the document must be a valid state in the parent workflow
|
|
||||||
2. the person initiating the return to the parent workflow must be allowed
|
|
||||||
to trigger the transition which was replaced by the sub workflow
|
|
||||||
The second condition requires all end states in the sub workflow, also
|
|
||||||
being a state in the parent workflow. Currently this is not checked before
|
|
||||||
entering the sub workflow.
|
|
||||||
|
|
||||||
A workflow that was accidently added to a document can be removed
|
|
||||||
as long as it is still in the initial state of the workflow. Once
|
|
||||||
a transition into a consecutive state has happemed the workflow cannot
|
|
||||||
be removed anymore. In such a case the administrator has to rewind
|
|
||||||
the workflow, which removes all triggers including the users comments
|
|
||||||
and resets the initial state. The same procedure is true for sub workflows
|
|
||||||
as well. Once a sub workflow has started it can only be left as long
|
|
||||||
as it is in its initial state or has reached a state in the parent
|
|
||||||
workflow. Leaving a workflow inbetween will required to rewind it to
|
|
||||||
the begining and dismiss all transitions done so far.
|
|
||||||
|
|
396
README.md
396
README.md
|
@ -1,396 +0,0 @@
|
||||||
SeedDMS Installation Instructions
|
|
||||||
==================================
|
|
||||||
|
|
||||||
NOTE FOR VERSION 4.0.0
|
|
||||||
======================
|
|
||||||
|
|
||||||
Since version 4.0.0 of SeedDMS installation has been simplified.
|
|
||||||
ADOdb is no longer needed because the database access is done by
|
|
||||||
PDO.
|
|
||||||
|
|
||||||
IMPORTANT NOTE ABOUT TRANSLATIONS
|
|
||||||
=================================
|
|
||||||
|
|
||||||
As you can see SeedDMS provides a lot of languages but we are not professional
|
|
||||||
translators and therefore rely on user contributions.
|
|
||||||
|
|
||||||
If your language is not present in the login panel:
|
|
||||||
- copy the language/English/ folder and rename it appropriately for your
|
|
||||||
language
|
|
||||||
- open the file `languages/your_lang/lang.inc` and translate it
|
|
||||||
- open the help file `languages/your_lang/help.htm` and translate it too
|
|
||||||
|
|
||||||
If you see some wrong or not translated messages:
|
|
||||||
- open the file `languages/your_lang/lang.inc`
|
|
||||||
- search the wrong messages and translate them
|
|
||||||
|
|
||||||
if you have some "error getting text":
|
|
||||||
- search the string in the english file `languages/english/lang.inc`
|
|
||||||
- copy to your language file `languages/your_lang/lang.inc`
|
|
||||||
- translate it
|
|
||||||
|
|
||||||
If there is no help in your language:
|
|
||||||
- Copy the English help `english/help.htm` file to your language folder
|
|
||||||
- translate it
|
|
||||||
|
|
||||||
If you apply any changes to the language files please send them to the
|
|
||||||
SeedDMS developers <info@seeddms.org>.
|
|
||||||
|
|
||||||
http://www.iana.org/assignments/language-subtag-registry has a list of
|
|
||||||
all language and country codes.
|
|
||||||
|
|
||||||
REQUIREMENTS
|
|
||||||
============
|
|
||||||
|
|
||||||
SeedDMS is a web-based application written in PHP. It uses the MySQL RDBMS
|
|
||||||
or sqlite3 to manage the documents that were uploaded into the application.
|
|
||||||
|
|
||||||
Make sure you have PHP 5.3 and MySQL 5 or higher installed. SeedDMS
|
|
||||||
will work with PHP running in CGI-mode as well as running as module under
|
|
||||||
apache. If you want to give your users the opportunity of uploading passport
|
|
||||||
photos you have to enable the gd-library (but the rest of SeedDMS will
|
|
||||||
work without gd, too).
|
|
||||||
|
|
||||||
Here is a detailed list of requirements:
|
|
||||||
|
|
||||||
1. A web server with at least php 5.3
|
|
||||||
2. A mysql database, unless you use sqlite
|
|
||||||
3. The php installation must have support for `pdo_mysql` or `pdo_sqlite`,
|
|
||||||
`php_gd2`, `php_mbstring`
|
|
||||||
4. Various command line programms to convert files into text for indexing
|
|
||||||
pdftotext, catdoc, xls2csv or scconvert, cat, id3 (optional, only needed
|
|
||||||
for fulltext search)
|
|
||||||
5. ImageMagic (the convert program) is needed for creating preview images
|
|
||||||
6. The Zend Framework (version 1) (optional, only needed for fulltext search)
|
|
||||||
7. The pear Log package
|
|
||||||
8. The pear HTTP_WebDAV_Server package (optional, only need for webdav)
|
|
||||||
9. SLIM RestApi
|
|
||||||
10. FeedWriter from https://github.com/mibe/FeedWriter
|
|
||||||
|
|
||||||
|
|
||||||
BEFORE YOU START
|
|
||||||
================
|
|
||||||
|
|
||||||
SeedDMS has changed its installation process with version 3.0.0. This gives
|
|
||||||
you many more options in how to install SeedDMS. First of all, SeedDMS was
|
|
||||||
split into a core package (`SeedDMS_Core-<version>.tar.gz`) and the web
|
|
||||||
application itself (`seeddms-<version>.tar.gz`). The core is a pear package
|
|
||||||
which could be installed as one. It is responsible for all the database
|
|
||||||
operations. The web application contains the ui not knowing anything about
|
|
||||||
the database layout. Second, one SeedDMS installation can be used for
|
|
||||||
various customer instances by sharing a common source. Starting with
|
|
||||||
version 3.2.0 a full text search engine has been added. This requires
|
|
||||||
the zend framework and another pear package `SeedDMS_Lucene-<version>.tar.gz`
|
|
||||||
which can be downloaded from the SeedDMS web page. Version 4.0.0 show
|
|
||||||
preview images of documents which requires `SeedDMS_Preview-<version>.tar.gz`.
|
|
||||||
Finally, SeedDMS has
|
|
||||||
got a web based installation, which takes care of most of the installation
|
|
||||||
process.
|
|
||||||
|
|
||||||
Before you proceed you have to decide how to install SeedDMS:
|
|
||||||
1. with multiple instances
|
|
||||||
2. as a single instance
|
|
||||||
|
|
||||||
Both have its pros and cons, but
|
|
||||||
1. setting up a single instance is easier if you have no shell access to
|
|
||||||
the web server
|
|
||||||
2. the installation script is only tested for single instances
|
|
||||||
|
|
||||||
Installation for multiple instances shares the same source by many
|
|
||||||
instances but requires to create links which is not in any case possible
|
|
||||||
on your web server.
|
|
||||||
|
|
||||||
0. Some preparation
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
A common source of problems in the past have been the additional software
|
|
||||||
packages needed by SeedDMS. Those are the PEAR packages `Log` and
|
|
||||||
`HTTP_WebDAV_Server` as well as the `Zend_Framework`.
|
|
||||||
If you have full access to the server running a Linux distribution it is
|
|
||||||
recommended to install those with your package manager if they are provided
|
|
||||||
by your Linux distribution. If you cannot install it this way then choose
|
|
||||||
a directory (preferable not below your web document root), unpack the
|
|
||||||
software into it and extend the php include path with your newly created
|
|
||||||
directory. Extending the php include can be either done by modifying
|
|
||||||
php.ini or adding a line like
|
|
||||||
|
|
||||||
> php_value include_path '/home/mypath:.:/usr/share/php'
|
|
||||||
|
|
||||||
to your apache configuration or setting the `extraPath` configuration
|
|
||||||
variable of SeedDMS.
|
|
||||||
|
|
||||||
For historical reasons the path to the SeedDMS_Core and SeedDMS_Lucene package
|
|
||||||
can still be set
|
|
||||||
in the configuration, which is not recommend anymore. Just leave those
|
|
||||||
parameters empty.
|
|
||||||
|
|
||||||
On Linux/Unix your web server should be run with the environment variable
|
|
||||||
LANG set to your system default. If LANG=C, then the original filename
|
|
||||||
of an uploaded document will not be preserved if the filename contains
|
|
||||||
non ascii characters.
|
|
||||||
|
|
||||||
Turn off magic_quotes_gpc in your php.ini, if you are using a php version
|
|
||||||
below 5.4.
|
|
||||||
|
|
||||||
1. Using the installation tool
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
Unpack seeddms-<version>.tar.gz below the document root of
|
|
||||||
your web server.
|
|
||||||
Install `SeedDMS_Preview-<version>.tar.gz` and
|
|
||||||
`SeedDMS_Core-<version>.tar.gz` either as a regular pear package or
|
|
||||||
set up a file system structure like pear did somewhere on you server.
|
|
||||||
For the full text search engine support, you will also
|
|
||||||
need to install `SeedDMS_Lucene-<version>.tar.gz`.
|
|
||||||
|
|
||||||
For the following instructions we will assume a structure like above
|
|
||||||
and seeddms-<version> being accessible through
|
|
||||||
http://localhost/seeddms/
|
|
||||||
|
|
||||||
* Point you web browser towards http://hostname/seeddms/install/
|
|
||||||
|
|
||||||
* Follow the instructions on the page and create a file `ENABLE_INSTALL_TOOL`
|
|
||||||
in the conf directory.
|
|
||||||
|
|
||||||
* Create a data directory with the thre sub directories staging, cache
|
|
||||||
and lucene.
|
|
||||||
Make sure the data directory is either *not* below your document root
|
|
||||||
or is protected with a .htaccess file against web access. The data directory
|
|
||||||
needs to be writable by the web server.
|
|
||||||
|
|
||||||
* Clicking on 'Start installation' will show a form with all necessary
|
|
||||||
settings for a basic installation.
|
|
||||||
|
|
||||||
* After saving your settings succesfully you are ready to log in as admin and
|
|
||||||
continue customizing your installation with the 'Admin Tools'
|
|
||||||
|
|
||||||
2. Detailed installation instructions (single instance)
|
|
||||||
-------------------------------------------------------
|
|
||||||
|
|
||||||
You need a working web server with MySQL/PHP5 support and the files
|
|
||||||
`SeedDMS-<version>.tar.gz`, `SeedDMS_Preview-<version>.tar.gz` and
|
|
||||||
`SeedDMS_Core-<version>.tgz`. For the
|
|
||||||
full text search engine support, you will also need to unpack
|
|
||||||
`SeedDMS_Lucene-<version>.tgz`.
|
|
||||||
|
|
||||||
* Unpack all the files in a public web server folder. If you're working on
|
|
||||||
a host machine your provider will tell you where to upload the files.
|
|
||||||
If possible, do not unpack the pear packages `SeedDMS_Core-<version>.tgz`,
|
|
||||||
`SeedDMS_Preview-<version>.tgz` and
|
|
||||||
`SeedDMS_Lucene-<version>.tgz` below the document root of your web server.
|
|
||||||
Choose a temporary folder, as the files will be moved in a second.
|
|
||||||
|
|
||||||
Create a directory e.g. `pear` in the same directory where you unpacked
|
|
||||||
seeddms and create a sub directory SeedDMS. Move the content except for the
|
|
||||||
`tests` directory of all SeedDMS pear
|
|
||||||
packages into that directory. Please note that `pear/SeedDMS` may not
|
|
||||||
(and for security reasons should not) be below your document root.
|
|
||||||
|
|
||||||
You will end up with a directory structure like the following
|
|
||||||
|
|
||||||
> seeddms-<version>
|
|
||||||
> pear
|
|
||||||
> SeedDMS
|
|
||||||
> Core.php
|
|
||||||
> Core
|
|
||||||
> Lucene.php
|
|
||||||
> Lucene
|
|
||||||
> Preview
|
|
||||||
> Preview.php
|
|
||||||
|
|
||||||
Since they are pear packages they can also be installed with
|
|
||||||
|
|
||||||
> pear install SeedDMS_Core-<version>.tgz
|
|
||||||
> pear install SeedDMS_Lucene-<version>.tgz
|
|
||||||
> pear install SeedDMS_Preview-<version>.tgz
|
|
||||||
|
|
||||||
* The PEAR package Log is also needed. It can be downloaded from
|
|
||||||
http://pear.php.net/package/Log. Either install it as a pear package
|
|
||||||
or place it under your new directory 'pear'
|
|
||||||
|
|
||||||
> pear
|
|
||||||
> Log
|
|
||||||
> Log.php
|
|
||||||
|
|
||||||
* The package HTTP_WebDAV_Server is also needed. It can be downloaded from
|
|
||||||
http://pear.php.net/package/HTTP_WebDAV_Server. Either install it as a
|
|
||||||
pear package or place it under your new directory 'pear'
|
|
||||||
|
|
||||||
> pear
|
|
||||||
> HTTP
|
|
||||||
> WebDAV
|
|
||||||
> Server
|
|
||||||
> Server.php
|
|
||||||
|
|
||||||
If you run PHP in CGI mode, you also need to place a .htaccess file
|
|
||||||
in the webdav directory with the following content.
|
|
||||||
|
|
||||||
RewriteEngine on
|
|
||||||
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
|
|
||||||
|
|
||||||
* Create a data folder somewhere on your web server including the subdirectories
|
|
||||||
staging, cache and lucene and make sure they are writable by your web server,
|
|
||||||
but not accessible through the web.
|
|
||||||
|
|
||||||
For security reason the data folder should not be inside the public folders
|
|
||||||
or should be protected by a .htaccess file. The folder containing the
|
|
||||||
configuration (settings.xml) must be protected by an .htaccess file like the
|
|
||||||
following.
|
|
||||||
|
|
||||||
> <Files ~ "^settings\.xml">
|
|
||||||
> Order allow,deny
|
|
||||||
> Deny from all
|
|
||||||
> </Files>
|
|
||||||
|
|
||||||
|
|
||||||
If you install SeedDMS for the first time continue with the database setup.
|
|
||||||
|
|
||||||
* Create a new database on your web server
|
|
||||||
e.g. for mysql:
|
|
||||||
create database seeddms;
|
|
||||||
* Create a new user for the database with all permissions on the new database
|
|
||||||
e.g. for mysql:
|
|
||||||
grant all privileges on seeddms.* to seeddms@localhost identified by 'secret';
|
|
||||||
(replace 'secret' with you own password)
|
|
||||||
* Optionally import `create_tables-innodb.sql` in the new database
|
|
||||||
e.g. for mysql:
|
|
||||||
> cat create_tables-innodb.sql | mysql -useeddms -p seeddms
|
|
||||||
This step can also be done by the install tool.
|
|
||||||
* create a file `ENABLE_INSTALL_TOOL` in the conf directory and point
|
|
||||||
your browser at http://hostname/seeddms/install
|
|
||||||
|
|
||||||
|
|
||||||
NOTE: UPDATING FROM A PREVIOUS VERSION OR SEEDDMS
|
|
||||||
|
|
||||||
As SeedDMS is a smooth continuation of LetoDMS there is no difference
|
|
||||||
in updating from LetoDMS or SeedDMS
|
|
||||||
|
|
||||||
- make a backup archive of your installation folder
|
|
||||||
- make a backup archive of your data folder
|
|
||||||
- dump your current database
|
|
||||||
- extract the SeedDMS archive to your web server
|
|
||||||
- edit the conf/settings.xml file to match your previuos settings
|
|
||||||
(you can even replace the file with your own one eventualy adding by hand
|
|
||||||
the missing new parameters)
|
|
||||||
- create a file `ENABLE_INSTALL_TOOL` in the conf directory and point
|
|
||||||
your browser at http://hostname/seeddms/install
|
|
||||||
|
|
||||||
The install tool will detect the version of your current SeedDMS installation
|
|
||||||
and run the required database updates.
|
|
||||||
|
|
||||||
|
|
||||||
3. Email Notification
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
A notification system allows users to receive an email when a
|
|
||||||
document or folder is changed. This is an event-based mechanism that
|
|
||||||
notifies the user as soon as the change has been made and replaces the
|
|
||||||
cron mechanism originally developed. Any user that has read access to a
|
|
||||||
document or folder can subscribe to be notified of changes. Users that
|
|
||||||
have been assigned as reviewers or approvers for a document are
|
|
||||||
automatically added to the notification system for that document.
|
|
||||||
|
|
||||||
A new page has been created for users to assist with the management of
|
|
||||||
their notification subscriptions. This can be found in the "My Account"
|
|
||||||
section under "Notification List".
|
|
||||||
|
|
||||||
|
|
||||||
4. Nearly finished
|
|
||||||
------------------
|
|
||||||
|
|
||||||
Now point your browser to http://hostname/seeddms/index.php
|
|
||||||
and login with "admin" both as username and password.
|
|
||||||
After having logged in you should first choose "My Account" and
|
|
||||||
change the Administrator's password and email-address.
|
|
||||||
|
|
||||||
|
|
||||||
CONFIGURING MULTIPLE INSTANCES
|
|
||||||
==============================
|
|
||||||
|
|
||||||
Since version 3.0.0, SeedDMS can be set up to run several parallel instances
|
|
||||||
sharing the same source but each instance has its own configuration. This is
|
|
||||||
quite useful if you intend to host SeedDMS for several customers. This
|
|
||||||
approach still allows to have diffenrent version of SeedDMS installed
|
|
||||||
and will not force you to upgrade a customer instance, because other
|
|
||||||
instances are upgraded. A customer instance consists of
|
|
||||||
1. a directory containing mostly links to the SeedDMS source and a
|
|
||||||
configuration file
|
|
||||||
2. a directory containing the document content files
|
|
||||||
3. a database
|
|
||||||
|
|
||||||
1. Unpack the SeedDMS distribution
|
|
||||||
----------------------------------
|
|
||||||
|
|
||||||
Actually there is no need to set up the database at this point but it won't
|
|
||||||
hurt since you'll need one in the next step anyway. The sources of SeedDMS
|
|
||||||
can be anywhere you like. The do not have to be in you www-root. If you just
|
|
||||||
have access to your www-root directory, then put them there.
|
|
||||||
|
|
||||||
2. Setup the instance
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
Unpack the files as described in the quick installation.
|
|
||||||
|
|
||||||
Create a directory in your www-root or use www-root for your instance. In the
|
|
||||||
second case, you will not be able to create a second instance, because each
|
|
||||||
instance needs its own directory.
|
|
||||||
|
|
||||||
Go into that directory create the following links (<seeddms-source> is the
|
|
||||||
directory of your initial SeedDMS intallation).
|
|
||||||
|
|
||||||
> src -> <seeddms-source>
|
|
||||||
> inc -> src/inc
|
|
||||||
> op -> src/op
|
|
||||||
> out -> src/out
|
|
||||||
> js -> src/js
|
|
||||||
> views -> src/views
|
|
||||||
> languages -> src/languages
|
|
||||||
> styles -> src/styles
|
|
||||||
> themes -> src/themes
|
|
||||||
> install -> src/install
|
|
||||||
> index.php -> src/index.php
|
|
||||||
|
|
||||||
> ln -s ../seeddms-<version> src
|
|
||||||
> ln -s src/inc inc
|
|
||||||
> ln -s src/op op
|
|
||||||
> ln -s src/out out
|
|
||||||
> ln -s src/js js
|
|
||||||
> ln -s src/views views
|
|
||||||
> ln -s src/languages languages
|
|
||||||
> ln -s src/styles styles
|
|
||||||
> ln -s src/themes themes
|
|
||||||
> ln -s src/install install
|
|
||||||
> ln -s src/index.php index.php
|
|
||||||
|
|
||||||
Create a new directory named conf and run the installation tool.
|
|
||||||
|
|
||||||
Creating the links as above has the advantage that you can easily switch
|
|
||||||
to a new version and go back if it is necessary. You could even run various
|
|
||||||
instances of SeedDMS using different versions.
|
|
||||||
|
|
||||||
3. Create a database and data store for each instance
|
|
||||||
-----------------------------------------------------
|
|
||||||
|
|
||||||
Create a database and data store for each instance and adjust the database
|
|
||||||
settings in conf/settings.xml or run the installation tool.
|
|
||||||
|
|
||||||
Point your web browser towards the index.php file in your new instance.
|
|
||||||
|
|
||||||
LICENSING
|
|
||||||
=========
|
|
||||||
|
|
||||||
SeedDMS is licensed unter GPLv2
|
|
||||||
|
|
||||||
Jumploader is licensed as stated by the author on th web site
|
|
||||||
<http://jumploader.com/>
|
|
||||||
|
|
||||||
-- Taken from web site of jumploader ---
|
|
||||||
You may use this software for free, however, you should not:
|
|
||||||
|
|
||||||
- Decompile binaries.
|
|
||||||
- Alter or replace class and/or resource files.
|
|
||||||
- Redistribute this software under different name or authority.
|
|
||||||
|
|
||||||
If you would like a customized version, I can do this for a fee. Don't hesitate to contact me with questions or comments.
|
|
||||||
|
|
||||||
Uwe Steinmann <info@seeddms.org>
|
|
109
doc/README.Synology.txt
Normal file
109
doc/README.Synology.txt
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
*********************************************
|
||||||
|
How to set up SeedDMS Preview on Synology NAS
|
||||||
|
*********************************************
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
############
|
||||||
|
SeedDMS provides a function creating a preview of each document which is displayed on the document page.
|
||||||
|
|
||||||
|
Synology stations do not support the creation of the previews by default due to a missing Ghostscript implementation. Therefore
|
||||||
|
loading of a document page can use a lot of time because SeedDMS tries to create the missing preview images each time the document
|
||||||
|
page is being loaded.
|
||||||
|
|
||||||
|
Prerequisites
|
||||||
|
#############
|
||||||
|
In order to complete the steps outlined below, you must be able to carry out the following tasks:
|
||||||
|
|
||||||
|
* Use the command line and know essential commands
|
||||||
|
* Install a 3rd party package system and install packages using this system
|
||||||
|
|
||||||
|
To complete the installation, the following prerequisites on your Synology must be met:
|
||||||
|
|
||||||
|
* IPKG or OPKG (OPKG preferred) installed
|
||||||
|
* Pear Package SeedDMS_Preview already installed
|
||||||
|
|
||||||
|
Installation and configuration
|
||||||
|
##############################
|
||||||
|
|
||||||
|
In the following steps, you will first install the required packages, followed by doing the neccesary configurations. These steps
|
||||||
|
must be done on the terminal.
|
||||||
|
|
||||||
|
Install Ghostscript
|
||||||
|
***************************
|
||||||
|
|
||||||
|
The first step is to install Ghostscript to make ImageMagick capable of converting PDF files to images. Use IPKG or OPKG to complete this
|
||||||
|
step.
|
||||||
|
|
||||||
|
Make Ghostscript available to PHP
|
||||||
|
*****************************************
|
||||||
|
|
||||||
|
To check where Ghostscript is installed run *which gs* to get the installation path. Now check if this path is visible to PHP. To check this,
|
||||||
|
use phpinfo and find **_SERVER["PATH"]**. If you can't find /opt inside, PHP can't see applications installed there. You can now either try to
|
||||||
|
update the paths or just make a symlink.
|
||||||
|
To create the symlink, cd to /usr/bin and type *ln -s /opt/bin/gs gs*. Verify the created symlink.
|
||||||
|
|
||||||
|
Fix Ghostscript package bug
|
||||||
|
****************************************
|
||||||
|
|
||||||
|
Unfortunately the version delivered by OPKG has a bug, making Ghostscript failing to work properly. The bug requries fixing at the time
|
||||||
|
of the writing are the following:
|
||||||
|
|
||||||
|
* Resource path pointing to a wrong version (9.10 instead of 9.16)
|
||||||
|
|
||||||
|
First, fix the resource path. Go to /opt/bin and find **gs** in there. Open the file with VI. Change the GS_LIB path from */opt/share/ghostscript/9.10/Resource*
|
||||||
|
to */opt/share/ghostscript/9.16/Resource*. This will now allow Ghostscript to find it's files in the proper path.
|
||||||
|
|
||||||
|
Fix ImageMagick
|
||||||
|
********************
|
||||||
|
|
||||||
|
Not only Ghostscript is affected by bugs, the default configuration files are missing. Unfortunately some work is required here as well.
|
||||||
|
|
||||||
|
To check where ImageMagick looks for it's files, invoke the command *convert -debug configure logo: null:*. You will see some paths shown, these
|
||||||
|
are the paths where ImageMagic tries to locate it's configuration files. The first path shown will point to */usr/share/ImageMagick-6* followed by the
|
||||||
|
name of an XML file. At the very end of the output you will see which configuration file has been loaded, in the default setting there will be an error.
|
||||||
|
|
||||||
|
Point to */usr/share* and check if you can find the **ImageMagick-6** directory. If is not present, create it. Cd into the directory.
|
||||||
|
|
||||||
|
Next step is to fill the directory with files. Use the following list to download the files (credit goes to Thibault, http://blog.taillandier.name/2010/08/04/mediawiki-sur-son-nas-synology/).
|
||||||
|
|
||||||
|
* wget http://www.imagemagick.org/source/coder.xml
|
||||||
|
* wget http://www.imagemagick.org/source/colors.xml
|
||||||
|
* wget http://www.imagemagick.org/source/configure.xml
|
||||||
|
* wget http://www.imagemagick.org/source/delegates.xml
|
||||||
|
* wget http://www.imagemagick.org/source/english.xml
|
||||||
|
* wget http://www.imagemagick.org/source/francais.xml
|
||||||
|
* wget http://www.imagemagick.org/source/locale.xml
|
||||||
|
* wget http://www.imagemagick.org/source/log.xml
|
||||||
|
* wget http://www.imagemagick.org/source/magic.xml
|
||||||
|
* wget http://www.imagemagick.org/source/mime.xml
|
||||||
|
* wget http://www.imagemagick.org/source/policy.xml
|
||||||
|
* wget http://www.imagemagick.org/source/thresholds.xml
|
||||||
|
* wget http://www.imagemagick.org/source/type-ghostscript.xml
|
||||||
|
* wget http://www.imagemagick.org/source/type-windows.xml
|
||||||
|
* wget http://www.imagemagick.org/source/type.xml
|
||||||
|
|
||||||
|
Testing
|
||||||
|
*************
|
||||||
|
|
||||||
|
Now you should be ready to test. Put a PDF file in a directory, cd into this directory.
|
||||||
|
|
||||||
|
To test convert directly, invoke the following command (replace file.pdf with your filename, replace output.png with your desired name):
|
||||||
|
|
||||||
|
**convert file.pdf output.png**
|
||||||
|
|
||||||
|
If everything goes well you should now receive a png file which can be opened. There may be a warning message about iCCP which can be ignored.
|
||||||
|
|
||||||
|
If you want to test Ghostcript as well, invoke the follwing command:
|
||||||
|
|
||||||
|
**gs -sDEVICE=pngalpha -sOutputFile=output.png -r144 file.pdf**
|
||||||
|
|
||||||
|
This command should go through without any errors and as well output a png file.
|
||||||
|
|
||||||
|
If the tests above are successful, you are ready to use SeedDMS Preview. Go to your SeedDMS Installation and open a folder. For the first test you
|
||||||
|
may take a folder with less files in it. Be patient while the previews are generated. You may check the process using *top* on the terminal.
|
||||||
|
|
||||||
|
At the end your document page should show the previews like shown below:
|
||||||
|
|
||||||
|
.. figure:: preview.png
|
||||||
|
:alt: Document previews
|
||||||
|
:scale: 75%
|
BIN
doc/preview.png
Normal file
BIN
doc/preview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Loading…
Reference in New Issue
Block a user