Getting Started

Document Management System is a self-hosted web-based document management system designed to help organizations store, track, modify, and manage documents on a centralized platform. Features include document sharing, reminders, user management, bulk permissions, document download, document preview, send document email, document audit tracking and multilingual.

Requirements

PHP Version

Document Management System minimum required PHP version: >= 8.1.

MySQL

Document Management System requires MySQL version: >= 5.6.
Recommended MySQL version: >= 5.7.

PHP Extensions

  • pdo_mysql
  • json
  • ctype
  • filter
  • hash
  • mbstring
  • openssl
  • session
  • tokenizer
  • fileinfo
  • date
  • pcre
  • spl
  • dom
  • xml
  • phar
  • xmlwriter
  • curl
  • pdo_mysql
  • pdo_sqlite
  • sqlite3

Recommended PHP Extensions

The extensions listed below are not required during installation, however, if you want to use specific features after installation, you will need to enable them, for example the "zip" extension gives you the ability to perform 1 click update and apply patches.
  • zip

PHP Memory Limit

Document Management System requires at least 128 MB PHP memory limit.

Browser Support

Document Management System supports the most recent versions of the following browsers:
  • Google Chrome
  • Apple Safari
  • Microsoft Edge
  • Mozilla Firefox

Cron Job

cron is a Linux utility that schedules a command or script on your server to run automatically at a specified time and date. A cron job is the scheduled task itself. Cron jobs can be very useful to automate repetitive tasks.
Your web server must support configuring cron jobs, in order, Document Management System features to work properly, after installation, please make sure to check the cron job guide to get familiar on how to configure the cron job required by the application.
See the cron job setup guide for more info.

Domain Name

Your server where you will be installing Document Management System must have domain name, you can't use the server IP-address to access your Document Management System installation, it must be accessed via the domain name.

Installation

Document Management System has its own web installer that will help you to perform the installation in a few steps without touching any code or modifying any files.

As Document Management System is using Laravel, and Laravel requires the root of Document Management System to be pointed at the /public path, in this case, the easiest way to install Document Management System is on a subdomain that points to subdomain folder /public path.

Make sure that you checked the requirements page before installation.

Below, you can find installation video for cPanel, watch the video tutorials to get familiar with the installation steps and learn how easy is to install Document Management System.

Create Subdomain

You will need to create a subdomain for your installation, for example,

https://docs.yourdomain.com

  • Login to cPanel.
  • Find the Subdomains section.
  • Create a subdomain, for example, docs.yourdomain.com and make sure to set the Document Root option to path public.

Upload Files

If you did not created subdomain as explained in the previous step and you want to install Document Management System on a subfolder it won't work, you will need to consult with your hosting provider create a virtual host pointing the the root path to subfolder

In order to proceed with the web installer, you will first need to download the release archive files from your Document Management System account releases page or your Envato account downloads page.

For the sake of this example, assuming that you created subdomain with name "docmgt" and the path is public_html/docmgt/ upload the files to the public_html/docmgt folder.

Create Database

For additional information on how to create a database, see the installation video above.

Create a brand new database that will be used only for the Document Management System installation.

  1. Login to cPanel by accessing www.yourdomain.com/ cpanel.
  2. Look for the Databases section, then click MySQL Databases, note that this step may vary and in some hosting providers can be different.
  3. Click Create Database, the new database will appear in the Current Databases section.
  4. Create user and set up the user password. (write down the username and the password because needs to be added later in the installer)
  5. Add the user to the database by selecting the database and the username, make sure you have checked All privileges when adding the user to the database.

Perform Install

Assuming that you have created the subdomain, database and uploaded the files as explained in the previous steps, follow the steps below to begin with the installation process.

wait for couple of minute to update your sub domain if you are not able to access docs.yourdomain.com/install URL.
  • In your browser navigate to e.q. docs.yourdomain.com/install – Make sure to update yourdomain.com according to your domain.
  • If all server requirements passed click Next otherwise consult with your hosting provider to fix/enable them.
  • If all permissions are passed click Next to set up the application data, otherwise you need to set 755 permissionsfor the given folders, in cases where you are managing the server.

General Config

  • App Url
  • Document Management System will automatically try to guess the URL where the application will be installed, in our case now from, this example, the URL is https://docs.yourdomain.com/ ,if the URL is wrong, please adjust it accordingly.

  • Application Name
  • You can leave it as default or you can write your own name, for example, "Document Management"

Configure Database

Add the database config in the installer
  • Hostname
  • Enter database hostname, in most cases, the default hostname is localhost, however, if it's different in your case, make sure to set the correct hostname.

  • Port
  • In most cases, this value will be 3306 as this port is MySQL default port, if you are not familiar with this option for your server, leave it as it is and continue to the next field, where you will need to configure the database name and user you created in the previous step.

  • Database Name
  • Enter the database name.

  • Database User
  • Enter the database username.

  • Database Password
  • Enter the database user password, for local installations and database users without password, leave it empty.

  1. Click Test Connection & Configure and if the database connection is successful you will be passed to the latest step otherwise please re-check your credentials and hostname.
  2. On the next page, configure administrator user and perform the installation.

Configure administrator User

in order to login into system create the administrator user.
  • First Name
  • Enter the first name

  • Last Name
  • Enter the last name.

  • Email Address
  • Enter the email address.

  • Password
  • Enter the user password.

  1. Click Install and the admin user will be created.

Installation Finished Page

After you finish all the installation steps you will be presented with a installation successful screen where there will be information on how to configure cron job as well the guessed command and the path for the cron job.

Don't forget to copy the command/path so you can configure a cron job as explained here.

The installation success page will be available for 1 hour after installation, after 1 hour, when you visit the same URL, a 404 error will be shown.

Nginx Config

If you are managing the server and you are already familiar with Laravel, probably you will know that for Nginx you will need to create separate configuration file so Document Management System can be served.

The examples below are for installation on the root domain, but feel free to adjust the paths for the subdomain if you want to perform an installation on a subdomain.

server {     listen 80;     server_name example.com;     root /example.com/public;      add_header X-Frame-Options "SAMEORIGIN";     add_header X-XSS-Protection "1; mode=block";     add_header X-Content-Type-Options "nosniff";      index index.html index.htm index.php;      charset utf-8;      location / {         try_files $uri $uri/ /index.php?$query_string;     }      location = /favicon.ico { access_log off; log_not_found off; }     location = /robots.txt  { access_log off; log_not_found off; }      error_page 404 /index.php;      location ~ \.php$ {         fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;         fastcgi_index index.php;         fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;         include fastcgi_params;     }      location ~ /\.(?!well-known).* {         deny all;     } }

Permissions, User And Group

If you are managing the server, you will need to make sure that the proper permissions are applied to all files and folders and also the files and folders belong to the user and group responsible for managing the web server, in most cases is www-data .

Keep in mind that you won't need to apply the commands below if your server is managed by your server provider, for example, shared hosting as the permissions and the group will be already configured for you.

Change all the directories to 755 (drwxr-xr-x):

find /var/www/example.com -type d -exec chmod 755 {} \;

Change all the files to 644 (-rw-r--r--):

find /var/www/example.com -type f -exec chmod 644 {} \;

Change the files and folders user and group

sudo chown www-data:www-data -R /var/www/example.com

Don't forget to adjust the values in the example codes according to your setup.

Updating to New Versions

  • Download the latest version from CodeCanyon.
  • Double click the downloaded file to extract it.
  • Copy document-management.zip file to the root of your server (same place where files were uploaded during installation).
  • Delete "vendor" directory from your server (So there are no old unused files left from previous versions).
  • Extract the document-management.zip file into the root directory and overwrite old files.
  • Visit www.yourdomain.com/update url and click Update Now button.
  • Once update is completed you will be redirected back to homepage.

Cron Job

cron is a Linux utility that schedules a command or script on your server to run automatically at a specified time and date. A cron job is the scheduled task itself. Cron jobs can be very useful to automate repetitive tasks.

Every modern application with decent features must have cron job configured in order tasks to be executed in the background.

Document Management System requires a properly configured cron job, follow the steps explained below to configure cron job for your installation.

For the examples below, make sure to replace /path/to/docmgt/ with the path to your installation.

On some shared hosting you may need to specify the full path to the PHP executable (for example, /usr/local/bin/php81 or /opt/alt/php81/usr/bin/php instead of php)

Setup Cron Job Via cPanel

Login to cPanel and search for "Cron Job", and add the following cron job command as shown below:

php /path/to/docmgt/artisan schedule:run >> /dev/null 2>&1

Setup Cron Job Via SSH

If you are managing the server via SSH, you will need to configure the cron job from the command line, the cron job must be configured for the user responsible for managing the web server, in most cases, it's the www-data user.

sudo crontab -u www-data -e * * * * * php /path/to/docmgt/artisan schedule:run >> /dev/null 2>&1

Setup Cron Job Via Plesk

  • Click Websites & Domains.
  • Click the domain/subdomain you installed Document Management System.
  • Click Scheduled Tasks.
  • Click Add Task.
  • Choose Run a PHP script.
  • In the script path enter your Document Management System installation path and append artisan, for example: /path/to/docmgt/artisan.
  • In the with arguments field enter: schedule:run
  • Use PHP version: 8.1
  • Cron Style: * * * * *

Common Cron Job Commands

Below you can find common cron job commands that are confirmed to work for commonly used hosting providers, in most cases the commands are confirmed by our customers and if your hosting provider is listed below, they should work in your environment as well.

Are you hosting Document Management System on a commonly used hosting provider and you can confirm that the cron job command works perfectly fine? Send us the command via our support area so we can add it here and other customers can benefit from it.

SiteGround

/usr/local/php81/bin/php-cli /path/to/docmgt/artisan schedule:run >> /dev/null 2>&1

Storage Settings

We're excited to announce the latest upgrade to our Document Management system: seamless integration with Amazon S3 storage. With this new feature, users can now enjoy enhanced flexibility and reliability in storing their documents. By leveraging Amazon S3, one of the most trusted cloud storage solutions available, users can upload their documents with confidence, knowing that their data is securely stored and easily accessible whenever they need it. This integration opens up a world of possibilities for efficient document management, allowing users to take advantage of Amazon's scalable infrastructure to handle their growing document storage needs.

In order to configure the Amazon S3 storage, you will need to setup the S3 bucket, and then configure the Document Management System to use the Amazon S3 storage.

Configure Storage(Settings -> Company Profile -> Storage)

  • Amazon S3 key
  • Amazon S3 secret
  • Amazon S3 region
  • Amazon S3 bucket
When transitioning from Local Storage to Amazon S3, all existing files will remain available only on Local Storage. Once Amazon S3 storage is configured, all new files will be stored on Amazon S3. If you decide to change the Amazon S3 settings, the old storage settings files will no longer be accessible.

Troubleshoot Document Management System

If you are encountering some issues, first the best is to check the server and application logs. e.q /var/log/apache2/error.log and storage/logs/laravel.log

Also, it's recommended while debugging an issue, to set debug mode in the .env file, APP_DEBUG=true.

Run Project locally

Below are the steps to run the project locally.

Deploy local changes to server

Once you have made changes to the project locally, you will need to deploy the changes to the server. Below are the steps to deploy the changes to the server.

  • remove .env file from changes made
  • go to resource -> frontend -> angular
  • run npm run build command which will copy your changes into respective views.
  • remove .angular & node_modules from the angular directory.
  • remove documents from storage -> app -> Documents
  • zip everything and upload to the server.
  • follow the update steps as shown in the video .

ChangeLog

2024 Oct 24 - Version 3.0.0

  • New: Deep Document Content Search
  • New: Page help text for each pages
  • Fix: Ofice Viewer with public sharing
  • Fix: Reminder notification
  • Update: UI Design and responsiveness
  • Update: Improve system security

2024 Spet 22 - Version 2.0.4

  • New: Secure Link Sharing with Advanced Access Controls
  • New: Forgot password feature

2024 May 10 - Version 2.0.3

  • New: Archive Document Support
  • New: RTL support

2024 Mar 27 - Version 2.0.2

  • New: Amazon S3 Support
  • New: Language support for reminder frequecy and document audit trail
  • Fix: extension issue while uploading he document
  • Fix: the pagination issue
  • Fix: Parent child category issue in edit document
  • Fix: document audit trail on delete documents
  • Fix: Time zone issue in login audit
  • Fix: document search on Parent Category

2023 Oct 27 - Version 2.0.1

  • Bug Fixes and UI improvements.

2023 Aug 04 - Version 2.0.0

  • New: Add new language support.
  • New: Change Logo, Login Banner Image and title support.
  • Fix: date formate issue.
  • Fix(breaking): fixed the email sending issue. Please make sure you update the smtp setting after finishing the update.
  • Fix: delete user issue.

June 23 - Initial Release

Dashboard

  • It shows the graphical representation of data.

  • Document By category Graph shows the no. of document by category.

  • Calender show the List of Avaialble reminder in the systems.

Assigned Documents

It shows the Documents that has been assign to you. all the member has this page access. you can search document by name/description, meta tags or category.

From the List of Assigned Documents you can view the document, add comment on document which will be seen to other assignee.

you can also add the reminder on specific document which will be visible to you only.

From the Version history tab you can also see the previous versions of the document.

You can also add your personal document if you have permission to add the document and which will be visible inside the All the Documents.

All Documents

All Documents Screen is Kind of master of the documents and admin only can have permission to this screen.

Add Document

Upload new Document with name, description, category and meta tags.

Edit Document

Update the Document name, category, description or meta tags. edit document doesn't mean to edit the content of the document.

Share Document

You can share the Document with Users or roles(group of users). you can also specify the the time period and option to allow the download or not while sharing it.

In the listing screen you can see the List of Users/Roles has Permission to the specific document.

Document Preview

Preview Uploaded files including audio, video, image, text, PDF and all the Microsoft Office Documents.

Upload New Version File

Upload the new version of the document which will be visible to all the user who have permission to access it.

Verion History

from the version history you can see the uploaded version of the document and the current version with details like who have uploaded and when.

you can also restore the previous version of the document to the current version.

Comments

User can add the comment and view the comments added by other User on the document.

Reminder

User can add the reminder the the specific document and add the user into it.

Send Email

User can send the document in Email as attachment. to send the email it is required to have setting up the default SMTP configuration.

Delete Document

Admin user(who has permission to see All Documents) can delete the document. Once Document has been deleted from here it wan't be avaiable to any other user.

Document Categories

You can Manage Document Categories and Child/Sub Categories from here.

Document Audit Trail

From this screen user can see who perform which action when on document.

It shows the action on document like Create(Created), View(Read), Permission Changes(Add_Permission,Remove_Permission) Download, etc..

Roles

The Roles define the list of permissions in the document management system.

you can create the custom role with specific list of permission.

Users

You can create an unlimited number of users and apply the appropriate roles.

User Permission

you can also set individual list of permission to specific user.

Reset Passowrd

there is also option to reset the password of the user from the listing screen.

Role User

It is the mapping of the User and Roles. you add mulitple users into role from this screen.

In order to add the user to role, please drag it from All Users to Role Users.

Reminder

You can set recurring Daily, Weekly, Monthly, Quarterly, Half Yearly, Yearly or Specific Date reminder in the system or on the document to get notification or email.

Please not that inorder to get notification cron job need to run on the server. to get email of the reminder it is required to setup default SMTP correctly.

Login Audit

You can also review the User login activities from this screen.

Email SMTP Settings

In order to send Email from the system, it is required to set default SMTP settings and from this screen you can setup the Email SMTP setting.

Notifications

you can see the new notification list and clicking on View All you can see all the list of notifications which the document details.

User Profile

From the My Profile from top right you can change your profile and system password.

Mulitple Language

As Document Management Sytem supports muliti-language, from the Top Right there is also option to change the application language.