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 =

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:

openjdk-8-jre-headless nginx-light php7.2-fpm php7.2-curl php7.2-gd php7.2-cli mysql-server php7.2-mysql php7.2-mbstring php7.2-zip php7.2-sqlite3 php7.2-bcmath php7.2-xml php-redis mysql-client redis-server

Table of Contents
outlinetrue

...


Es gibt drei Wege TROI intern zu betreiben:

  1. Docker
  2. Bare Metal
  3. ISO Lösung


Jede Lösung hat seine Vor- und Nachteile (Wir empfehlen die Docker Variante):

DockerBare MetalIso
(tick) Prebuild Env.(tick) Changeable environment(tick) Prebuild Env.
(tick) Scalable(tick) Scalable(error) Not scalable
(tick) Fast(warning) Fast(tick) Fast
(tick) Stable(warning) Stable(tick) Stable
(tick) Low maintenance requirements(error) High maintenance requirements(tick) Low maintenance requirements
(tick) Supported(error) No Support(tick) Supported
(tick) Easy(error) Complex(tick) Easy