Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Hardware

  • OS: Linux (Bevorzugt Debian oder Ubuntu)
  • Prozessor: mind. 2 VCPU's 2,4 GHz
  • RAM: mind. 4 GB RAM

  • HD: mind. 25 GB (empfohlen 2 HDs im Raid1-Verbund)

  • Webserver Nginx

Docker Lösung (bevorzugt)

OS
Linux (Systemanforderungen für Docker sind hier zu finden: https://docs.docker.com/install/)

Software

docker (https://docs.docker.com/install/), docker-compose (https://github.com/docker/compose)

Die Docker-Images sowie docker-compose Konfiguration werden von Troi bereitgestellt.

Backup

...

Bare Metal Lösung

Software

PHP 7.2, Java (openjdk), redis

DB-Software

MySQL 5.7 oder MariaDB mind. 10.2.7

MYSQL

/etc/mysql/mysql.conf.d/troi.cnf

Code Block
languagetext
[mysqld]
explicit_defaults_for_timestamp = Off
sql_mode =

Ab MariaDB 10.4

Code Block
[mysqld]
optimizer_switch=rowid_filter=off
Info
titlePerformance Probleme

Unter MariaDB 10.3 sollte der Parameter `join_buffer_size` nicht angepasst werden, da dieser die Performance stark beeinträchtigen kann.

PHP Einstellung

conf.d/99-troi.ini

Code Block
languagephp
themeRDark
titlePHP Konfiguration
linenumberstrue
memory_limit = 1G
upload_max_filesize = 20M
max_execution_time = 120
cgi.fix_pathinfo = 0
max_input_vars = 16000
post_max_size = 21M
display_errors = Off
display_startup_errors = Off
allow_url_fopen = On
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

Nginx (in den Server Part einfügen)

Code Block
index index.html index.htm index.php;

disable_symlinks off;

location = /config {
return 301 /;
}

location = /config/ {
return 301 /;
}

rewrite_log on;

## Favicon
location ~ /(favicon.ico|apple-touch-icon.png)$ {
root /var/www;
}

## Frontend
rewrite ^/app(.*)$ /dist/index.html?$1 last;

## APIv1
location /api/v1/rest {
set $rewrite_real_path "/api/v1/rest/troi.php?auth=$http_authorization&$query_string";
try_files $uri /index.php$is_args$args;
}

## APIv2
location /api/v2/rest {
set $rewrite_real_path "/api/v2/rest/troi.php?auth=$http_authorization&$query_string";
try_files $uri /index.php$is_args$args;
}

## Caldav
location /caldav {
set $rewrite_real_path "/caldav/index.php?auth=$http_authorization&$query_string";
try_files $uri /index.php$is_args$args;
}

## Carddav
location /carddav {
set $rewrite_real_path "/carddav/addressbookserver.php?$query_string";
try_files $uri /index.php$is_args$args;
}

## frontend assets
rewrite ^/assets/(.*)$ /dist/assets/$1 last;

location / {
# try to serve file directly, fallback to index.php
try_files $uri /index.php$is_args$args;
}

# assets, media
location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
expires 7d;
access_log off;
}

# svg, fonts
location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
add_header Access-Control-Allow-Origin "*";
expires 7d;
access_log off;
}

# robots.txt
location = /robots.txt {
allow all;
access_log off;
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /\n";
}

# deny dot-files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}

location ~ ^/(index\.php(/|$)|site/includes/roundcubemail/index\.php(/|$)|site/includes/roundcubemail/(/|$)) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param REWRITE_REAL_PATH $rewrite_real_path;
include fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 16k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_read_timeout 3600;
# internal;
}

Backup

Für ein Troi Backup muss die Datenbank sowie der troi Ordner im Webverzeichnis gesichert werden.

...

Empfohlenes Setup

  • OS: Ubuntu 18.04 Headless
  • CPU: >= 4 VCPU's min. 2 GHz
  • RAM: >= 4 GB RAM
  • HD: >= 50 GB
  • Webserver: Nginx
  • Software: PHP7-FPM (PHP 7.2), Java (openjdk-8), redis
  • DB-Software: MySQL 5.7
Pakete unter Ubuntu:

...

Lösungen

Es gibt 3 Wege Troi intern zu betreiben: Docker, Bare Metal und die ISO Lösung.

Jede Lösung hat seine Vor- und Nachteile:

DockerBare MetalIso
? Prebuild Env.? Changeable environment? Prebuild Env.
? Stable? Scalable? Fast
? Fast? Fast? Stable
? Supported? High maintenance requirements? Supported
? Low maintenance requirements? No Support? Low maintenance requirements
? Scalable
? Easy
? Easy