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
Backups in der Docker Lösung werden automatisiert durchgeführt, wenn entsprechend konfiguriert. Manuell können diese über den Befehl "troi-backup" angestoßen werden.
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
[mysqld] explicit_defaults_for_timestamp = Off sql_mode =
PHP Einstellung
conf.d/99-troi.ini
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)
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
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