EDM System: Administrator Documentation

Current version: 2.2.0

Please, read user documentation before this administrator documentation in order to understand some basic concepts.

Technical Description

The software should be installed on a server machine and configured to use a database management system selected by you.

This software utilizes Go programming language, sqla module and drivers for each database type to directly connect to a database server.

Probably all platforms where Go programming language is available are supported (Linux, Mac, Windows, etc.).

The following RDBMS are supported:

On the client-side, it is necessary to use modern web browsers like Chrome, Firefox, Safari with enabled JavaScript. Internet Explorer is not supported.

Basic brute-force protection

This brute-force protection by default blocks login capability for any users from any IP addresses for 60 minutes after 100 attempts to enter with a wrong login or password.

Redis in-memory data store

By default, the server process keeps in its memory user sessions, user lists, and some other data, which are shared among all HTTP requests.

If Redis options are configured in the config file or environment variables, the server will use the Redis database to keep user sessions, user lists and some other shared data. This should make it possible to use multiple instances of the server process.

Installation of a release package

If you downloaded the executable installer for Windows: run the downloaded distribution file, select a folder to install, and then it runs automatically. This way of installation is more for presentation purposes.

On Linux/Mac/BSD or if you are using the zip file on Windows: unpack the app somewhere and run ./edm executable; for Windows run edm.exe instead, wherever this file is mentioned. If there is no build for your system or it does not work, you need to build it yourself. It is recommended to create a separate user for the server (e.g. with the name edm), like for other servers and configure the software as a service on your system. You should refer to your system administration guides or manuals about how to do that.

In order to connect to a database server instead of using SQLite, create a database on your server, provide the required data in the config file, and run ./edm --createdb --consolelog before the first launch. After that you can launch ./edm server.

Default login after installation: admin, and the password is empty (there is no password).

Upgrading to a new version

Stop the server. Replace the application and all files distributed with it.

If a new version includes new features, before launching a new version, run ./edm --createdb --consolelog in order to create new tables, indexes, etc.

After that you can launch ./edm server.

Configuration file

Configuration file by default is located in the .edm directory of a user home directory. The name of this file is edm-system.cfg.

If there is no configuration file found on launch, the file will be created with default values.

Every line consists of option name and option value which are separated by = sign. Wrong option names, lines started with # are ignored.

The following options are available:

ServerSystem - path where all static files (templates, themes, etc.) are located. Not writable. Default is . (current directory).

ServerRoot - path where server modifiable files (uploads, logs, etc.) are stored. Should be writable. Default is .edm

ServerHost - ip address to bind the server process. Default is 127.0.0.1. To bind the server to all interfaces make this option empty.

ServerPort - server process port. Default is 8090.

DomainName - domain name of your system. It is used in email notifications.

DefaultLang - default server language which is used on the login page, in emails, by newly created user profiles. Use one of these two-letter codes: en, es, fr, ru.

StartPage - default "base" page to display after logged-in user opens the system url. Use one of these: docs, tasks, team.

RemoveAllowed - permission for owners to delete their objects: true or false.

RunBrowser - should the server run a browser on launch: true or false.

UseTLS - whether or not to use https: true or false.

SSLCertFile - specify certificate file path if UseTLS is set to true.

SSLKeyFile - specify key file path if UseTLS is set to true.

CreateDB - if set to true the server will create database tables to initialize an empty database. Should not normally be used.

DBType - specifies RDBMS type. Might be one of these: sqlite, mssql or sqlserver, mysql or mariadb, oracle, postgresql or postgres.

DBName - database name to connect. For Oracle it is a service name.

DBHost - host address of the database server.

DBPort - port of the database server.

DBUser - database user to connect.

DBPassword - password of the database user.

REDISConnect - Redis host and port (e.g. 127.0.0.1:6379). If specified, the app will use Redis.

REDISPassword - Redis password.

REDISFlush - clear Redis database on launch: true or false.

SMTPEmail - email address to use in notification emails.

SMTPHost - SMTP server host address. Should be specified in order to make notifications work properly.

SMTPPort - SMTP server port. Should be specified in order to make notifications work properly.

SMTPUser - SMTP server user. Should be specified in order to make notifications work properly.

SMTPPassword - SMTP server password. Should be specified in order to make notifications work properly.

Environment variables

After reading the configuration file, the server tries to read environment variables, which, if present, override corresponding configuration file values.

This might be useful when deploying on a system where you should not store your sensitive data in a configuration file.

The following variables are available (values are the same as for configuration file):

EDM_DB_TYPE - RDBMS type.

EDM_DB_NAME - database name to connect. For Oracle it is a service name.

EDM_DB_HOST - host address of the database server.

EDM_DB_PORT - port of the database server.

EDM_DB_USER - database user to connect.

EDM_DB_PASSWORD - password of the database user.

EDM_REDIS_CONNECT - Redis host and port (e.g. 127.0.0.1:6379).

EDM_REDIS_PASSWORD - Redis password.

EDM_REDIS_FLUSH - clear Redis database on launch: true or false.

EDM_SMTP_EMAIL - email address to use in notification emails.

EDM_SMTP_HOST - SMTP server host address.

EDM_SMTP_PORT - SMTP server port.

EDM_SMTP_USER - SMTP server user.

EDM_SMTP_PASSWORD - SMTP server password.

Command line arguments

Command-line arguments have higher priority over (overwrite) configuration file values and environment variables.

--config path_to_file[file_name] - use the config file specified as an argument, e.g. ./edm --config /etc/edm-system.cfg.

--createdb - the server will create database tables to initialize an empty database.

--filldb - fill the database with showcase data. Useful only for presentation and testing.

--nobrowser - the server should not run a browser on launch.

--onlybrowser - the program only runs a browser and opens the url derived from config; the server itself then quits.

--consolelog - print messages to console instead of a log file; this does not work in Windows with standard builds of the program.

© 2023 EDM Project