# Install SeedDMS Guide
## Step 1: System Requirements
Ensure your server meets the following requirements:
- Ubuntu 20.04
- Apache Web Server
- PHP version 7.4 or above
- MySQL installed
- SSL certificates configured (Let's Encrypt or other)
## Step 2: Download SeedDMS
Download SeedDMS version 6.0.28 from the official website or use the following command:
```bash
wget https://sourceforge.net/projects/seeddms/files/seeddms-quickstart-6.0.28.tar.gz
```
## Step 3: Extract Files
Create the directory where you want to extract SeedDMS and extract the downloaded tarball:
```bash
mkdir /var/www/seeddms-6.0.28
sudo tar -xzvf seeddms-quickstart-6.0.28.tar.gz -C /var/www/seeddms-6.0.28 --strip-components=1
```
## Step 4: Configure Apache
Create a new Apache configuration file for SeedDMS. For example, `/etc/apache2/sites-available/seeddms.conf`:
```apache
ServerAdmin webmaster@localhost
DocumentRoot /var/www/seeddms-6.0.28/www
ServerName dms.anita.flast.com.au
ServerAlias dms.anita.flast.com.au
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex install.php index.php
ErrorLog ${APACHE_LOG_DIR}/seeddms_error.log
CustomLog ${APACHE_LOG_DIR}/seeddms_access.log combined
```
Add the SSL configuration to your existing SSL configuration file or create a new one:
```apache
ServerAdmin webmaster@localhost
ServerName dms.anita.flast.com.au
ServerAlias dms.anita.flast.com.au
DocumentRoot /var/www/seeddms-6.0.28/www
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DirectoryIndex install.php index.php
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/anita.flast.com.au/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/anita.flast.com.au/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
ErrorLog ${APACHE_LOG_DIR}/seeddms_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/seeddms_ssl_access.log combined
```
## Step 5: Enable Apache Configuration
Enable the newly created configuration and restart Apache:
```bash
sudo a2ensite seeddms.conf
sudo systemctl restart apache2
```
## Step 6: Set Permissions
Ensure that the appropriate permissions are set for the SeedDMS directory:
```bash
sudo chown -R www-data:www-data /var/www/seeddms-6.0.28/
sudo chmod -R 755 /var/www/seeddms-6.0.28/
```
## Step 7: Install SeedDMS
Navigate to the installation script in your web browser:
```
https://dms.anita.flast.com.au/install/install.php
```
If prompted, create the `ENABLE_INSTALL_TOOL` file in the `conf` directory:
```bash
touch /var/www/seeddms-6.0.28/conf/ENABLE_INSTALL_TOOL
```
Follow the on-screen instructions to complete the installation.
## Step 8: Post Installation
After the installation is completed, remove the `ENABLE_INSTALL_TOOL` file to prevent unauthorized changes:
```bash
rm /var/www/seeddms-6.0.28/conf/ENABLE_INSTALL_TOOL
```
Log in to SeedDMS using the default credentials (`admin/admin`) and configure your system settings as needed.
## Troubleshooting
- **404 Not Found Error**: Ensure that the `DocumentRoot` and `` paths in the Apache configuration point to the correct directory where SeedDMS files are located.
- **ERR\_TOO\_MANY\_REDIRECTS**: Check the `.htaccess` file or Apache configuration for conflicting redirects. Make sure the `DirectoryIndex` is correctly specified.
- **Missing ****`create_tables-innodb.sql`**** Error**: Verify that the SQL file is present in the `/install` directory, and try running the command manually:
```bash
mysql -u seeddms -p seeddms < /var/www/seeddms-6.0.28/install/create_tables-innodb.sql
```
Config File
siteName = "Anita Document Management System"
footNote = "Anita Document Management System"
printDisclaimer = "true"
language = "en_GB"
theme = "bootstrap4"
previewWidthList = "40"
previewWidthDetail = "100"
onePageMode="true"
/>
strictFormCheck = "false"
viewOnlineFileTypes = ".txt;.text;.html;.htm;.xml;.pdf;.gif;.png;.jpg;.jpeg;.mp4"
enableConverting = "true"
enableEmail = "true"
enableUsersView = "true"
enableFullSearch = "true"
enableClipboard = "true"
enableFolderTree = "true"
expandFolderTree = "1"
enableLanguageSelector = "true"
stopWordsFile = ""
sortUsersInList = ""
enableDropUpload = "true"
enableRecursiveCount = "true"
maxRecursiveCount = "0"
enableThemeSelector = "true"
fullSearchEngine = "sqlitefts"
sortFoldersDefault = "u"
defaultDocPosition = "end"
defaultFolderPosition = "end"
/>
enableCalendar = "true"
calendarDefaultView = "y"
firstDayOfWeek = "0"
/>
enableWebdavReplaceDoc="true"
/>
rootDir = "/var/www/html/dms/"
httpRoot = "/dms/"
contentDir = "/var/www/html/dms/data/"
stagingDir = "/var/www/html/dms/data/staging/"
luceneDir = "/var/www/html/dms/data/lucene/"
logFileEnable = "true"
logFileRotation = "d"
enableLargeFileUpload = "true"
partitionSize = "2000000"
dropFolderDir = "/var/www/html/dms/data/drop/"
cacheDir = "/var/www/html/dms/data/cache/"
backupDir = "/var/www/html/dms/data/backup"
debugLevel="3"
/>
enableGuestLogin = "false"
enablePasswordForgotten = "false"
restricted = "true"
enableUserImage = "false"
disableSelfEdit = "false"
disableChangePassword = "false"
passwordStrength = "0"
passwordStrengthAlgorithm = "simple"
passwordExpiration = "0"
passwordHistory = "0"
loginFailure = "0"
autoLoginUser = "0"
quota = "0"
undelUserIds = ""
encryptionKey = "XXXXXXXXXXXXXXXXXX"
cookieLifetime = "0">
enable = "false"
type = "ldap"
host = "ldaps://ldap.host.com"
port = "389"
baseDN = ""
bindDN = ""
bindPw = ""
filter = ""
groupField = ""
/>
enable = "false"
type = "AD"
host = "ldap.example.com"
port = "389"
baseDN = ""
accountDomainName = "example.com"
bindDN = ""
bindPw = ""
filter = ""
groupField = ""
/>
ADOdbPath="/var/www/html/dms/pear"
dbDriver="mysql"
dbHostname="localhost"
dbDatabase="XXXXXXX"
dbUser="XXXXXXX"
dbPass="XXXXXXX"
/>
smtpServer = "localhost"
smtpPort = "25"
smtpSendFrom = "anita@localhost"
smtpUser = ""
smtpPassword = ""
/>
siteDefaultPage = ""
rootFolderID = "1"
showMissingTranslations = "false"
/>
guestID = "2"
adminIP = ""
/>
enableAdminRevApp = "false"
versioningFileName = "versioning_info.txt"
workflowMode = "traditional"
enableVersionDeletion = "true"
enableVersionModification = "true"
enableDuplicateDocNames = "true"
enableDuplicateSubFolderNames = "true"
enableOwnerRevApp = "false"
enableSelfRevApp = "false"
presetExpirationDate = ""
overrideMimeType = "false"
/>
coreDir = ""
luceneClassDir = ""
contentOffsetDir = "1048576"
maxDirID = "0"
updateNotifyTime = "86400"
extraPath = ""
maxExecutionTime = "30"
cmdTimeout = "10"
/>
enableNotificationAppRev = "true"
enableOwnerNotification = "false"
enableNotificationWorkflow = "false"
/>
pdftotext -nopgbrk %s - | sed -e 's/ [a-zA-Z0-9.]\{1\} / /g' -e 's/[0-9.]//g'
catdoc %s
ssconvert -T Gnumeric_stf:stf_csv -S %s fd://1
id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'
id3 -l -R %s | egrep '(Title|Artist|Album)' | sed 's/^[^:]*: //g'
cat %s
html2text %s
docx2txt %s -
unoconv -d document -e PageRange=1 -f pdf --stdout -v '%f'|gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dPDFFitPage -r72x72 -sOutputFile=- -dFirstPage=1 -dLastPage=1 -q - | convert -resize %wx png:- '%o'
convert -resize %wx '%f' '%o'
convert -resize %wx '%f' '%o'
convert -resize %wx '%f' '%o'
a2ps -1 -a1 -R -B -o - '%f' | gs -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dFirstPage=1 -dLastPage=1 -dPDFFitPage -r72x72 -sOutputFile=- -q - | convert -resize %wx png:- '%o'
<server
rootDir="/var/www/seeddms-6.0.28/"
httpRoot="/"
contentDir="data/"
stagingDir="data/staging/"
luceneDir="data/lucene/"
logFileEnable="true"
logFileRotation="d"
enableLargeFileUpload="true"
partitionSize="2000000"
dropFolderDir="data/drop/"
cacheDir="data/cache/"
backupDir="data/backup"
ADOdbPath="/var/www/seeddms-6.0.28/pear"
/>
database
type="mysql"
host="localhost"
database="seeddms"
user="seeddms"
password="your_password_here"
/>