From f80475cb6e5028d5e4a0ff3d45c50f92b823699e Mon Sep 17 00:00:00 2001 From: drebs <drebs@riseup.net> Date: Thu, 11 Mar 2021 16:50:40 -0300 Subject: [PATCH] Run ONLYOFFICE DocumentServer with docker-compose (#787) --- profile/manifests/docker.pp | 1 + profile/manifests/onlyoffice.pp | 81 +++++++++++++++++++++++++++++++++ role/manifests/onlyoffice.pp | 1 + 3 files changed, 83 insertions(+) create mode 100644 profile/manifests/onlyoffice.pp diff --git a/profile/manifests/docker.pp b/profile/manifests/docker.pp index c2709ada..1f8938ca 100644 --- a/profile/manifests/docker.pp +++ b/profile/manifests/docker.pp @@ -1,4 +1,5 @@ # Install Docker class profile::docker { include docker + include docker::compose } diff --git a/profile/manifests/onlyoffice.pp b/profile/manifests/onlyoffice.pp new file mode 100644 index 00000000..1c0f1b58 --- /dev/null +++ b/profile/manifests/onlyoffice.pp @@ -0,0 +1,81 @@ +# An ONLYOFFICE installation based on Docker +class profile::onlyoffice ( + String $image_tag = 'latest', + String $jwt_secret = '', + Boolean $skip_fonts_generation = false, +) { + + $network = 'onlyoffice' + + docker_network { $network: + ensure => present, + subnet => '172.19.0.0/24', + gateway => '172.19.0.1', + ip_range => '172.19.0.0/29', + } + + docker::run { 'onlyoffice-documentserver': + image => "infrarednetwork/onlyoffice-documentserver:${image_tag}", + net => $network, + env => [ + 'RABBITMQ_SERVER_URL=amqp://guest:guest@onlyoffice-rabbitmq', + 'REDIS_SERVER_HOST=onlyoffice-redis', + 'REDIS_SERVER_PORT=6379', + 'POSTGRESQL_SERVER_HOST=onlyoffice-postgresql', + 'POSTGRESQL_SERVER_PORT=5432', + 'POSTGRESQL_SERVER_DB_NAME=onlyoffice', + 'POSTGRESQL_SERVER_USER=onlyoffice', + 'POSTGRESQL_SERVER_PASS=onlyoffice', + "JWT_SECRET=${jwt_secret}", + "SKIP_FONTS_GENERATION=${skip_fonts_generation}", + ], + ports => [ + '8000:8000', + '8080:8080', + ], + depends => [ + 'onlyoffice-postgresql', + 'onlyoffice-redis', + 'onlyoffice-rabbitmq', + ], + volumes => [ + 'onlyoffice-log:/var/log/onlyoffice', + 'onlyoffice-www-data:/var/www/onlyoffice/Data', + 'onlyoffice-lib:/var/lib/onlyoffice', + 'system-custom-fonts:/usr/share/fonts/truetype/custom', + ], + require => [ + Docker::Run['onlyoffice-redis'], + Docker::Run['onlyoffice-rabbitmq'], + Docker::Run['onlyoffice-postgresql'], + ], + } + + docker::run { 'onlyoffice-redis': + image => 'redis:alpine', + net => $network, + command => 'redis-server --appendonly yes', + expose => '6379', + volumes => [ 'redis-data:/data' ], + } + + docker::run { 'onlyoffice-rabbitmq': + image => 'rabbitmq:alpine', + net => $network, + expose => '5672', + volumes => [ 'rabbitmq-home:/var/lib/rabbitmq' ], + } + + docker::run { 'onlyoffice-postgresql': + image => 'postgres', + net => $network, + env => [ + 'POSTGRES_DB=onlyoffice', + 'POSTGRES_USER=onlyoffice', + 'POSTGRES_PASSWORD=onlyoffice', + ], + expose => '5432', + volumes => [ 'postgresql-data:/var/lib/postgresql/data' ], + } + +} diff --git a/role/manifests/onlyoffice.pp b/role/manifests/onlyoffice.pp index 31c63291..81c1b799 100644 --- a/role/manifests/onlyoffice.pp +++ b/role/manifests/onlyoffice.pp @@ -1,4 +1,5 @@ # Install OnlyOffice class role::onlyoffice { include profile::docker + include profile::onlyoffice } -- GitLab