Skip to main content

Projeqtor

Docker Projeqtor

GitHub repo

This docker image provides a Projeqtor container with LDAP support.

This image is based on php:7.4-apache

Version of Projeqtor in this image is currently 9.4.2

Exposed ports :

  • 80 : Projeqtor Webpanel

Volumes

They are two volume mounted on this image :

  • /mnt/documents
  • /mnt/logs

Both need to have rw access

Environment

Current used environments vars :

PHP ENV

Environment variableDefaultRecommended
PHP_MAX_INPUT_VARS4000Must be > 2000 for real work allocation screen
PHP_REQUEST_TERMINATE_TIMEOUT0Must not end requests on timeout to let cron run without ending
PHP_MAX_EXECUTION_TIME3030 is minimum advised
PHP_MEMORY_LIMIT512M512M is minimum advised for PDF generation

Projeqtor ENV

NameDefaultUsage
PJT_DB_TYPEmysqlDatabase type. Can be mysql or pgsql
PJT_DB_HOST127.0.0.1Database host (server name)
PJT_DB_PORT3306Database port
PJT_DB_USERrootDatabase user to connect
PJT_DB_PASSWORDrootDatabase password for user
PJT_DB_NAMEprojeqtorDatabase schema name
PJT_DB_PREFIXemptyDatabase prefix for table names
PJT_SSL_KEYemptySSL Certificate key path
PJT_SSL_CERTemptySSL Certificate path
PJT_SSL_CAemptySSL Certificate CA path
PJT_ATTACHMENT_MAX_SIZE_MAIL2097152Max file size in email
PJT_LOG_LEVEL2Log level {'4' for script tracing, '3' for debug, '2' for general trace, '1' for error trace, '0' for none}
PJT_ENFORCE_UTF81

Installed PHP extensions

ExtensionUsage
qdFor reports graphs
imapTo retrieve mails to insert replay as notes
mbstringMandatory. for UTF-8 compatibility
mysqliFor default MySql database
pgsqlIf database is PostgreSql
pdoBDD connector
pdo_mysqlFor default MySql database
pdo_pgsqlIf database is PostgreSql
opensslTo send mails if smtp access is authentified (with user / password)
ldapDirectory Access Protocol, and is a protocol used to access "Directory Servers"
zipZipArchive class is mandatory to manage plugins and export to Excel format

Ready 2 Go Stack

Here is my own compose I used to deploy Projeqtor stack with MySQL database.

First deploy may require admin login (on Projeqtor login page) to init DB.

This stack is for Docker Swarm, if you want to run it on simple docker compose, you must replace overlay in network definition by bridge

version: '3.8'

services:
  mysql_service:
    image: mysql:latest
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - projeqtor_network
    environment:
      - MYSQL_ROOT_PASSWORD=changeme
      - MYSQL_DATABASE=projeqtor
  projeqtor_service:
    image: nospy/projeqtor:latest
    depends_on:
      - mysql_service
    volumes:
      - projeqtor_documents:/mnt/documents
      - projeqtor_logs:/mnt/logs
    ports:
      - "25:25"
      - "80:80"
    networks:
      - projeqtor_network
    environment:
      - PHP_MAX_EXECUTION_TIME=30
      - PHP_MAX_INPUT_VARS=4000
      - PHP_MAX_UPLOAD_SIZE=1G
      - PHP_MEMORY_LIMIT=512M
      - PHP_REQUEST_TERMINATE_TIMEOUT=0
      - PJT_ATTACHMENT_MAX_SIZE_MAIL=2097152
      - PJT_DB_TYPE=mysql
      - PJT_DB_HOST=mysql_service
      - PJT_DB_PORT=3306
      - PJT_DB_NAME=projeqtor
      - PJT_DB_USER=root
      - PJT_DB_PASSWORD=changeme
volumes:
  mysql_data:
  projeqtor_documents:
  projeqtor_logs:

networks:
  projeqtor_network:
    driver: overlay
    attachable: true