SeedDMS ======= Overview -------- SeedDMS is a free document management system with web based user interface. It is based on PHP and PostgreSQL and uses built-in *Lucene* indexing engine for fulltext search. Upstream URL: https://sourceforge.net/projects/seeddms/ Localization ------------ Although the upstream contains some Czech localization, proper translation including the missing strings currently exists in SpotterVM repository. SeedDMS has a translation helper which displays untranslated strings, but the actual translation needs to be supplied as ``lang.inc`` file with PHP associative array. Updating -------- SeedDMS currently doesn't support automatic upgrade of the database when moving between versions. The process for the update requires steps to be taken both directly on the server (resp. in the container) and via web interface. 1. Allow install tool via HTTP .. code-block:: bash ln -s ../seeddms/install /srv/seeddms/www/install touch /srv/seeddms/conf/ENABLE_INSTALL_TOOL 2. Navigate to ``https:///install`` and complete the manual steps 3. Cleanup .. code-block:: bash rm -f /srv/seeddms/conf/ENABLE_INSTALL_TOOL rm -f /srv/seeddms/www/install There is a ticket https://sourceforge.net/p/seeddms/tickets/489/ opened for the feature request of CLI database upgrade. Previewers and converters ------------------------- SeedDMS uses LibreOffice components to generate thumbnails and PDFs of the imported documents. This is also useful for extraction of text for fulltext search. The main entry point is a third-party wrapper script called *unoconv* available from https://github.com/unoconv/unoconv/. This script wraps conversion functions of LibreOffice components, allowing to create a PDF out of virtually any ODF or OOXML document. For previewers, additional chaining with *GhostScript* and *ImageMagick* is done in order to generate a thumbnail of the document. All conversions are entered as custom-defined commands in ``settings.xml`` SeedDMS configuration file. .. code-block:: xml pdftotext -enc UTF-8 -nopgbrk %s - unoconv -d document -f txt --stdout %s unoconv -d document -f txt --stdout %s unoconv -d document -f txt --stdout %s unoconv -d document -f txt --stdout %s unoconv -d spreadsheet -f csv --stdout %s unoconv -d spreadsheet -f csv --stdout %s unoconv -d spreadsheet -f csv --stdout %s unoconv -d presentation -f pdf --stdout %s | pdftotext -enc UTF-8 -nopgbrk - - unoconv -d presentation -f pdf --stdout %s | pdftotext -enc UTF-8 -nopgbrk - - unoconv -d presentation -f pdf --stdout %s | pdftotext -enc UTF-8 -nopgbrk - - unoconv -d document -f txt --stdout %s cat %s convert -resize %wx '%f' '%o' convert -resize %wx '%f' '%o' convert -resize %wx '%f' '%o' convert -resize %wx '%f' '%o' convert -resize %wx '%f' '%o' convert -density 100 -resize %wx '%f[0]' '%o' unoconv -d document -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d document -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d document -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d document -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d spreadsheet -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d spreadsheet -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d spreadsheet -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d presentation -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d presentation -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d presentation -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d document -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d document -e PageRange=1-1 -f pdf --stdout '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72 -sOutputFile=- -q - | convert -resize %wx png:- '%o' unoconv -d document -f pdf -o '%o' '%f' unoconv -d document -f pdf -o '%o' '%f' unoconv -d document -f pdf -o '%o' '%f' unoconv -d document -f pdf -o '%o' '%f' unoconv -d spreadsheet -f pdf -o '%o' '%f' unoconv -d spreadsheet -f pdf -o '%o' '%f' unoconv -d spreadsheet -f pdf -o '%o' '%f' unoconv -d presentation -f pdf -o '%o' '%f' unoconv -d presentation -f pdf -o '%o' '%f' unoconv -d presentation -f pdf -o '%o' '%f' unoconv -d document -f pdf -o '%o' '%f' unoconv -d document -f pdf -o '%o' '%f'