Compare commits

...

169 commits
1.1 ... main

Author SHA1 Message Date
dave@tiredofit.ca 0018572076 Release 24.04.4-1 - See CHANGELOG.md 2024-06-06 08:01:40 -07:00
dave@tiredofit.ca d45635519b Release 24.04.3-2 - See CHANGELOG.md 2024-05-31 12:01:25 -07:00
dave@tiredofit.ca 62de89e46c Release 24.04.3-1 - See CHANGELOG.md 2024-05-21 09:20:16 -07:00
dave@tiredofit.ca bfd0cae6d1 Release 24.04.2-1 - See CHANGELOG.md 2024-05-08 13:24:16 -07:00
dave@tiredofit.ca 0f1997b2e0 Release 24.04.1-4 - See CHANGELOG.md 2024-04-25 08:53:15 -07:00
dave@tiredofit.ca cca3a97eda Release 24.04.1-2 - See CHANGELOG.md 2024-04-08 09:51:04 -07:00
Dave Conroy 1ce3732a09 Poco 1.13.3 2024-04-05 08:34:36 -07:00
dave@tiredofit.ca 991a1aefff Release 23.05.10-1 - See CHANGELOG.md 2024-03-26 14:49:54 -07:00
dave@tiredofit.ca 4f4cf1da29 Release 23.05.9-4 - See CHANGELOG.md 2024-03-10 08:38:36 -07:00
dave@tiredofit.ca 740468908f Release 23.05.9-2 - See CHANGELOG.md 2024-02-26 08:36:48 -08:00
dave@tiredofit.ca 37d3de3806 Release 23.05.9-1 - See CHANGELOG.md 2024-02-14 08:12:56 -08:00
dave@tiredofit.ca 9431c3a4eb Release 23.05.8-4 - See CHANGELOG.md 2024-02-02 09:02:59 -08:00
dave@tiredofit.ca b762ac257e Release 23.05.8-3 - See CHANGELOG.md 2024-01-31 20:29:29 -08:00
dave@tiredofit.ca 51aff14100 Release 23.05.8-1 - See CHANGELOG.md 2024-01-24 22:38:08 -08:00
dave@tiredofit.ca bfda53eac3 Release 23.05.7-5 - See CHANGELOG.md 2024-01-19 09:13:58 -08:00
dave@tiredofit.ca 2086ec9d6a Release 23.05.7-4 - See CHANGELOG.md 2024-01-18 13:40:56 -08:00
dave@tiredofit.ca 467ffe34de Release 23.05.7-3 - See CHANGELOG.md 2024-01-17 13:12:13 -08:00
dave@tiredofit.ca b99db9ac88 Release 23.05.7-2 - See CHANGELOG.md 2024-01-11 09:11:18 -08:00
dave@tiredofit.ca 704177441c Release 23.05.7-1 - See CHANGELOG.md 2024-01-10 11:50:50 -08:00
dave@tiredofit.ca 556199751e Release 23.05.6-4 - See CHANGELOG.md 2023-12-19 11:28:02 -08:00
dave@tiredofit.ca 6f76f2abf9 Release 23.05.6-3 - See CHANGELOG.md 2023-12-14 08:38:37 -08:00
dave@tiredofit.ca fe08e28f06 Release 23.05.6-2 - See CHANGELOG.md 2023-12-05 09:09:11 -08:00
Dave Conroy 8c1916c0e9 Poco 1.12.5p2 2023-12-04 11:58:33 -08:00
dave@tiredofit.ca 364df2e100 Release 23.05.6-1 - See CHANGELOG.md 2023-12-04 08:35:24 -08:00
dave@tiredofit.ca 4eea9021bc Release 23.05.5-4 - See CHANGELOG.md 2023-11-10 10:05:12 -08:00
Dave Conroy 0d71714834 Update poco to 1.25.1p1 2023-11-02 10:56:37 -07:00
dave@tiredofit.ca d197f10ba3 Release 23.05.5-3 - See CHANGELOG.md 2023-10-26 14:21:56 -07:00
dave@tiredofit.ca a3b7e75527 Release 23.05.5-2 - See CHANGELOG.md 2023-10-19 08:00:23 -07:00
dave@tiredofit.ca 1204bb49b2 Release 23.05.5-1 - See CHANGELOG.md 2023-10-11 12:12:35 -07:00
dave@tiredofit.ca 2edaabadcc Release 23.05.4-2 - See CHANGELOG.md 2023-09-19 14:08:42 -07:00
dave@tiredofit.ca f9e596b357 Release 23.05.4-1 - See CHANGELOG.md 2023-09-11 14:46:05 -07:00
dave@tiredofit.ca f9419b1ee7 Release 23.05.3-1 - See CHANGELOG.md 2023-08-28 14:39:52 -07:00
Dave Conroy 7882c908b4
Merge pull request #35 from framasoft/fix-language-doc
📝 — Document the LANGUAGE env var.
2023-08-02 10:06:48 -07:00
Dave Conroy 062310f287 Switch to Debian Bookworm 2023-07-25 16:19:58 -07:00
dave@tiredofit.ca 6e2d882863 Release 23.05.2-2.1 - See CHANGELOG.md 2023-07-25 09:56:05 -07:00
Dave Conroy 379d74a05e Fix unterminated sed command and font caching 2023-07-25 08:11:47 -07:00
dave@tiredofit.ca 35ff368880 Release 23.05.2-2 - See CHANGELOG.md 2023-07-24 12:08:59 -07:00
dave@tiredofit.ca 3de2c8a4b9 Release 23.05.2-1 - See CHANGELOG.md 2023-07-20 08:29:36 -07:00
dave@tiredofit.ca 5c8eab9f72 Release 23.05.1-2 - See CHANGELOG.md 2023-06-26 10:47:02 -07:00
dave@tiredofit.ca a851d189f8 Release 23.05.1-1 - See CHANGELOG.md 2023-06-23 10:39:47 -07:00
dave@tiredofit.ca 7284208857 Release 23.05.0-5 - See CHANGELOG.md 2023-06-12 06:39:30 -07:00
dave@tiredofit.ca 2a8950e065 Release 23.05.0-4 - See CHANGELOG.md 2023-06-09 05:45:25 -07:00
dave@tiredofit.ca a2a01894c6 Release 23.05.0-3 - See CHANGELOG.md 2023-06-05 08:02:29 -07:00
dave@tiredofit.ca 1ca12f8b21 Release 23.05.0-2 - See CHANGELOG.md 2023-06-01 12:26:04 -07:00
Dave Conroy 9d704f6f5f Update Github Feature Request Templates 2023-05-24 08:45:50 -07:00
dave@tiredofit.ca 9ae4bd0f7e Release 23.05.0-1 - See CHANGELOG.md 2023-05-19 08:23:04 -07:00
Dave Conroy bafe31df0e Collabora Office 22.05.14-4 2023-05-16 08:37:32 -07:00
dave@tiredofit.ca 4e1e110986 Release 2.4.34 - See CHANGELOG.md 2023-05-05 10:43:25 -07:00
dave@tiredofit.ca c6d4e81ad6 Release 2.4.33 - See CHANGELOG.md 2023-05-04 07:30:28 -07:00
dave@tiredofit.ca ed3a7c118d Release 2.4.32 - See CHANGELOG.md 2023-05-03 09:53:10 -07:00
dave@tiredofit.ca 5af7030f6e Release 2.4.31 - See CHANGELOG.md 2023-04-26 14:39:27 -07:00
Dave Conroy 9092dd5a87 Add _FILE support 2023-04-26 10:23:07 -07:00
dave@tiredofit.ca 560ab340e3 Release 2.4.30 - See CHANGELOG.md 2023-04-17 08:09:15 -07:00
Luc Didry 01badcdb36
📝 — Document the LANGUAGE env var. 2023-04-05 11:30:15 +02:00
dave@tiredofit.ca 86d962387a Release 2.4.29 - See CHANGELOG.md 2023-03-28 11:20:07 -07:00
dave@tiredofit.ca 5c8bcea23b Release 2.4.28 - See CHANGELOG.md 2023-03-28 11:18:00 -07:00
Dave Conroy dd8a23f7f4 Fix sed command 2023-03-28 11:03:04 -07:00
Dave Conroy 849eb2a698 Convert some booleans values to lowercase 2023-03-28 10:32:52 -07:00
dave@tiredofit.ca 17aa6840d6 Release 2.4.27 - See CHANGELOG.md 2023-03-28 08:36:42 -07:00
Dave Conroy 9ff78810aa
Merge pull request #32 from dormancygrace/patch-1
Update README.md
2023-03-26 11:24:38 -07:00
dormancygrace b458a70428
Update README.md 2023-03-26 15:43:41 +03:00
dave@tiredofit.ca f12ccb4ff7 Release 2.4.26 - See CHANGELOG.md 2023-03-24 08:46:25 -07:00
dave@tiredofit.ca 8a51d894ce Release 2.4.25 - See CHANGELOG.md 2023-03-23 09:44:02 -07:00
dave@tiredofit.ca 102f18ca26 Release 2.4.24 - See CHANGELOG.md 2023-03-23 07:14:40 -07:00
dave@tiredofit.ca a128a27e95 Release 2.4.23 - See CHANGELOG.md 2023-03-20 12:14:25 -07:00
dave@tiredofit.ca c9691eee75 Release 2.4.22 - See CHANGELOG.md 2023-02-24 09:23:49 -08:00
dave@tiredofit.ca 2754c779fc Release 2.4.21 - See CHANGELOG.md 2023-01-31 17:58:08 -08:00
dave@tiredofit.ca 9b97b18c23 Release 2.4.20 - See CHANGELOG.md 2023-01-31 10:20:38 -08:00
dave@tiredofit.ca 538a09ea57 Release 2.4.19 - See CHANGELOG.md 2023-01-18 12:22:50 -08:00
Dave Conroy e83ba22ac9 Change year in license 2023-01-12 20:41:23 -08:00
Dave Conroy 99d2163aae Change default interface to Notebook bar instead of classic 2023-01-12 20:39:01 -08:00
Dave Conroy b6da93e967
Merge pull request #30 from framasoft/allow-to-change-brand
Allow to change brand
2023-01-12 09:24:18 -08:00
Luc Didry 63f4c65575
Allow to change brand 2023-01-12 14:43:15 +01:00
dave@tiredofit.ca 938b20ffff Release 2.4.18 - See CHANGELOG.md 2022-12-19 15:23:30 -08:00
dave@tiredofit.ca d50b45fda5 Release 2.4.17 - See CHANGELOG.md 2022-11-22 13:06:08 -08:00
Dave Conroy 9132775f12
Merge pull request #24 from joergmschulz/master
remove wildcard from traefik example
2022-11-22 08:55:56 -08:00
Dave Conroy 52eb81c373
Merge pull request #23 from joergmschulz/patch-1
Readme: clarify no wildcards
2022-11-22 08:55:47 -08:00
Jörg Michael Schulz bd8b13c956 Update docker-compose.yml
multiple hosts
2022-11-22 00:10:11 +01:00
Jörg Michael Schulz 62bdbc9958 example with multi hosts 2022-11-22 00:05:46 +01:00
joergmschulz ce03067855
remove wildcard from traefik example 2022-11-21 23:47:44 +01:00
joergmschulz af221daff8
Readme: clarify no wildcards 2022-11-21 23:45:51 +01:00
dave@tiredofit.ca ecb2b3c55b Release 2.4.16 - See CHANGELOG.md 2022-11-08 10:27:55 -08:00
dave@tiredofit.ca b93a443236 Release 2.4.15 - See CHANGELOG.md 2022-11-07 15:49:54 -08:00
dave@tiredofit.ca dc1398bb62 Release 2.4.14 - See CHANGELOG.md 2022-11-07 13:57:41 -08:00
Dave Conroy 4066462e64 Release 2.4.13 - See CHANGELOG.md 2022-10-31 08:45:21 -07:00
Dave Conroy 1e3f1eeb37 Poco Project 1.12.4 2022-10-31 08:25:27 -07:00
dave@tiredofit.ca 06fd31f40f Release 2.4.12 - See CHANGELOG.md 2022-10-24 09:29:24 -07:00
dave@tiredofit.ca 16d64b55ff Release 2.4.11 - See CHANGELOG.md 2022-09-27 09:44:33 -07:00
dave@tiredofit.ca 9d1c19f91f Release 2.4.10 - See CHANGELOG.md 2022-09-15 09:15:00 -07:00
dave@tiredofit.ca 2336dc1f1f Release 2.4.9 - See CHANGELOG.md 2022-08-16 09:31:29 -07:00
Dave Conroy 2fc736ddea Update workflows to free up space 2022-08-08 12:19:22 -07:00
Dave Conroy e3df85ee61 Update workflows 2022-08-08 11:51:51 -07:00
dave@tiredofit.ca 71e63272c9 Release 2.4.8 - See CHANGELOG.md 2022-08-08 11:03:43 -07:00
dave@tiredofit.ca cc15c757c9 Release 2.4.7 - See CHANGELOG.md 2022-08-07 09:07:43 -07:00
Dave Conroy 7ce67f822e POCO Libraries 1.12.2 2022-08-07 09:06:04 -07:00
dave@tiredofit.ca ed5db53864 Release 2.4.6 - See CHANGELOG.md 2022-08-06 18:07:16 -07:00
Dave Conroy 01862877e3 Add 'Home Mode' feature 2022-07-25 16:20:51 -07:00
Dave Conroy a6f1779011 Poco 1.12.1 2022-07-16 14:13:46 -07:00
dave@tiredofit.ca 6edabb68a3 Release 2.4.5 - See CHANGELOG.md 2022-07-14 15:22:28 -07:00
dave@tiredofit.ca 2f15036185 Release 2.4.4 - See CHANGELOG.md 2022-07-08 12:05:16 -07:00
dave@tiredofit.ca f481caa89b Release 2.4.3 - See CHANGELOG.md 2022-06-30 07:19:27 -07:00
dave@tiredofit.ca b4a3a941ba Release 2.4.2 - See CHANGELOG.md 2022-06-28 09:29:17 -07:00
dave@tiredofit.ca 5b958bbf6e Release 2.3.8 - See CHANGELOG.md 2022-06-20 17:58:47 -07:00
Dave Conroy 419fc1ea24 Merge branch 'master' of https://github.com/tiredofit/docker-collabora-online 2022-06-20 13:44:38 -07:00
dave@tiredofit.ca 5c9a2409b7 Release 2.3.7 - See CHANGELOG.md 2022-06-20 13:39:12 -07:00
Dave Conroy 240a2ba5e4 Update Poco libraries to 1.11.3 2022-06-12 17:22:24 -07:00
Dave Conroy a05b39e38b Release 2.4.1 - See CHANGELOG.md 2022-04-12 16:11:38 -07:00
Dave Conroy a13a75ca90 Release 2.4.0 - See CHANGELOG.md 2022-04-08 09:43:50 -07:00
Dave Conroy 94796ed164 Release 2.3.6 - See CHANGELOG.md 2022-03-22 18:42:22 -07:00
Dave Conroy fa7eb29fbe
Update README.md 2022-02-10 13:29:41 -08:00
Dave Conroy a59a9d1c27
Update README.md 2022-02-10 13:29:05 -08:00
Dave Conroy 8d0d702f0c Release 2.3.5 - See CHANGELOG.md 2022-02-10 12:22:00 -08:00
Dave Conroy 925213a72b Release 2.3.4 - See CHANGELOG.md 2022-01-27 16:24:22 -08:00
sd111 abd52157b4 Release 2.3.3 - See CHANGELOG.md 2021-12-15 08:00:32 -08:00
sd111 f3b722384f Release 2.3.2 - See CHANGELOG.md 2021-12-03 14:08:16 -08:00
sd111 d51519d462 Release 2.3.0 - See CHANGELOG.md 2021-12-02 19:29:43 -08:00
sd111 3988009f2c Release 2.3.0 - See CHANGELOG.md 2021-12-02 19:26:38 -08:00
Dave Conroy 067a405c4f Release 2.2.4 - See CHANGELOG.md 2021-10-29 09:42:18 -07:00
Dave Conroy ddcbcb396d Change the way logrotation is configured 2021-09-04 16:33:22 -07:00
Dave Conroy 6aeacd2844 Release 2.2.3 - See CHANGELOG.md 2021-09-02 07:33:50 -07:00
Dave Conroy 441fc34a65 Release 2.2.2 - See CHANGELOG.md 2021-08-21 07:49:14 -07:00
Dave Conroy 5c1e2ab854 Release 2.2.1 - See CHANGELOG.md 2021-07-26 07:32:49 -07:00
Dave Conroy 3c25f25c57 Release 2.2.0 - See CHANGELOG.md 2021-07-11 09:54:02 -07:00
Dave Conroy 9f9cc49762 Fix Poco Version 2021-07-03 10:35:01 -07:00
Dave Conroy 0d9629dba5 Merge branch 'master' of https://github.com/tiredofit/docker-libreoffice-online 2021-07-03 10:34:26 -07:00
Dave Conroy 33b540ce21 Release 2.1.7 - See CHANGELOG.md 2021-07-03 10:33:13 -07:00
Dave Conroy 5ad8bddc3c Update README.md 2021-05-29 14:01:26 -07:00
Dave Conroy 947703a04c Update docker-compose.yml samples 2021-05-29 14:00:40 -07:00
Dave Conroy f156272e41 Release 2.1.6 - See CHANGELOG.md 2021-05-27 08:18:16 -07:00
Dave Conroy 675867a0ba 2.1.5 2021-05-18 06:52:51 -07:00
Dave Conroy 3c6efafa70 Release 2.1.4 - See CHANGELOG.md 2021-05-06 06:46:45 -07:00
Dave Conroy eac6096435 Update README 2021-05-02 16:47:14 -07:00
Dave Conroy a31665985a Add Issue Templates 2021-05-02 14:52:25 -07:00
Dave Conroy 80fd90b055 Release 2.1.3 - See CHANGELOG.md 2021-04-26 09:38:03 -07:00
sd111 a26ba103c5 Release 2.1.2 - See CHANGELOG.md 2021-04-11 13:50:20 -07:00
Dave Conroy bfd80f4e9b Release 2.1.1 - See CHANGELOG.md 2021-04-11 13:04:53 -07:00
Dave Conroy fabbf2425a Release 2.1.0 - See CHANGELOG.md 2021-04-11 12:07:35 -07:00
Dave Conroy b667f7c743 Release 2.1.0 - See CHANGELOG.md 2021-04-11 12:00:55 -07:00
sd111 528cbb867f Release 2.0.4 - See CHANGELOG.md 2021-04-09 16:15:54 -07:00
Dave Conroy 032f2ce52c Release 2.0.2 - See CHANGELOG.md 2021-03-24 10:37:19 -07:00
Dave Conroy 188aa1d6da Release 2.0.1 - See CHANGELOG.md 2021-02-21 16:50:41 -08:00
Dave Conroy 37e2bce1ab Release 2.0.0 - See CHANGELOG.md 2021-02-19 18:52:09 -08:00
Dave Conroy 9dcd66f56a
Create FUNDING.yml 2020-06-24 17:18:42 -07:00
sd121 db967e8dbc Release 1.6.1 - See CHANGELOG.md 2020-01-21 14:55:05 -08:00
Dave Conroy ba7ed49774
Merge pull request #5 from joergmschulz/patch-1
change quotation sign from ' to "
2020-01-21 14:53:11 -08:00
joergmschulz a679e09658
change quotation sign from ' to " 2020-01-21 21:25:12 +01:00
Dave Conroy b29758a159 Merge branch 'master' of https://github.com/tiredofit/docker-libreoffice-online 2020-01-13 14:38:20 -08:00
Dave Conroy 66f9d1c592 Release 1.6.0 - See CHANGELOG.md 2020-01-13 14:37:48 -08:00
sd121 e3349fe03a Update README 2019-07-16 14:08:15 -07:00
sd121 7178960622 Patchup Zabbix Script 2019-07-16 14:04:47 -07:00
Dave Conroy e5efaa5ff4 Patchup for SSL 2019-07-16 14:02:58 -07:00
Dave Conroy 2ca43a4c03 Patchup Startup Script 2019-07-16 13:58:08 -07:00
Dave Conroy a898bc0041 New environment Variables 2019-07-16 13:54:28 -07:00
Dave Conroy 0125b781fb Add more environment variables 2019-07-16 13:50:02 -07:00
Dave Conroy f32a95d26c Update README 2019-07-16 11:01:35 -07:00
Dave Conroy 21f2911eea Split examples for nginx-proxy and traefik 2019-07-16 10:59:32 -07:00
Dave Conroy f7fe09f912 New environment Variables 2019-07-16 10:47:00 -07:00
Dave Conroy 6e24057a03 Update README 2019-07-07 15:12:45 -07:00
sd121 69f8ae4f2c Fixup for failing upgraded packages 2019-07-07 15:09:06 -07:00
Dave Conroy b6486940a5 Fixup for failing upgraded packages 2019-07-07 06:22:23 -07:00
sd121 e0df75aa12 Patchup for broken upgrades 2019-07-07 06:19:10 -07:00
sd121 1d9b492dab Add EXTRA_OPTIONS variable 2019-07-07 06:08:29 -07:00
Dave Conroy f0df21908f
Merge pull request #2 from whlsxl/master
Update README.md
2019-07-06 08:44:46 -07:00
Wang Hailong de457bf097
Update README.md
Port should be 9980
2019-07-06 02:30:53 +08:00
sd121 ff7129ac34 LO 6.0.30, fix SSL issues, Stop pinning LibSSL from Debian Jessie 2019-05-08 15:36:08 -07:00
Dave Conroy 08ca6f3d52
Update README.md with variants 2019-03-11 15:10:48 -07:00
Dave Conroy 1728f25619 Collabora Office 6.0.25 + Libreoffice Online 4.0.1 2019-03-11 15:03:17 -07:00
Dave Conroy 3e34560a65
Update README.md 2019-02-28 16:17:52 -08:00
Dave Conroy d4d385c73b Fix Base 2019-02-28 08:04:10 -08:00
33 changed files with 2564 additions and 1389 deletions

1
.dockerignore Normal file
View file

@ -0,0 +1 @@
examples/

1
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1 @@
github: [tiredofit]

42
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,42 @@
---
name: Bug report
about: If something isn't working right..
title: ''
labels: bug
assignees: ''
---
### Summary
<!-- Summarize the bug encountered -->
### Steps to reproduce
<!-- Describe how one can reproduce the issue - this is very important. Please use an ordered list. -->
### What is the expected *correct* behavior?
<!-- Describe what should be seen instead. -->
### Relevant logs and/or screenshots
<!-- Paste any relevant logs - please use code blocks (```) to format console output, logs, and code as it's tough to read otherwise. -->
### Environment
<!--Your Configuration (please complete the following information): -->
- Image version / tag:
- Host OS:
<details>
<summary>Any logs | docker-compose.yml</summary>
</details>
<!-- Include anything additional -->
### Possible fixes
<!-- If you can, provide details to the root cause that might be responsible for the problem. -->

View file

@ -0,0 +1,23 @@
---
name: Feature request
about: Suggest an idea or feature
title: ''
labels: enhancement
assignees: ''
---
---
name: Feature Request
about: Suggest an idea for this project
---
**Description of the feature**
<!-- A clear description of the feature you'd like implemented -->
**Benftits of feature**
<!-- Explain the measurable benefits this feature would achieve. -->
**Additional context**
<!--Add any other context or screenshots about the feature request here. -->

7
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,7 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"

15
.github/workflows/main.yml vendored Normal file
View file

@ -0,0 +1,15 @@
name: "build_image"
on:
push:
paths:
- "**"
- "!README.md"
jobs:
build:
uses: tiredofit/github_actions/.github/workflows/default_amd64.yml@main
#uses: tiredofit/github_actions/.github/workflows/default_amd64.yml@main
#uses: tiredofit/github_actions/.github/workflows/default_amd64_armv7_arm64.yml@main
#uses: tiredofit/github_actions/.github/workflows/default_amd64_arm64.yml@main
secrets: inherit

16
.github/workflows/manual.yml vendored Normal file
View file

@ -0,0 +1,16 @@
name: "manual_build_image"
on:
workflow_dispatch:
inputs:
Manual Build:
description: 'Manual Build'
required: false
jobs:
build:
uses: tiredofit/github_actions/.github/workflows/default_amd64.yml@main
#uses: tiredofit/github_actions/.github/workflows/default_amd64.yml@main
#uses: tiredofit/github_actions/.github/workflows/default_amd64_armv7_arm64.yml@main
#uses: tiredofit/github_actions/.github/workflows/default_amd64_arm64.yml@main
secrets: inherit

6
.gitignore vendored Normal file
View file

@ -0,0 +1,6 @@
/build-assets/container/*
!/build-assets/container/.empty
/build-assets/core/*
!/build-assets/core/.empty
/build-assets/online/*
!/build-assets/online/.empty

View file

@ -1,3 +1,809 @@
## 24.04.4-1 2024-06-06 <dave at tiredofit dot ca>
### Added
- Collabora Office 24.04.4-1
- Collabora Online 24.04.4-1
## 24.04.3-2 2024-05-31 <dave at tiredofit dot ca>
### Added
- Collabora Online 24.04.3-2
- Collabora Office 24.04.3-2
## 24.04.3-1 2024-05-21 <dave at tiredofit dot ca>
### Added
- Collabora Online 24.04.3-1
- Collabora Office 24.04.3-1
## 24.04.2-1 2024-05-08 <dave at tiredofit dot ca>
### Added
- Collabora Office 24.04.2-1
- Collabora Online 24.04.2-1
## 24.04.1-4 2024-04-25 <dave at tiredofit dot ca>
### Added
- Collabora Online 24.04-1.4
- Collabora Office 24.04-1.4
## 24.04.1-2 2024-04-08 <dave at tiredofit dot ca>
### Added
- Collabora Office 24.04.1-2
- Collabora Online 24.04.1-2
## 23.05.10-1 2024-03-26 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.10-1
- Collabora Office 23.05.10-1
## 23.05.9-4 2024-03-10 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.9-4
- Collabora Office 23.05.9-4
## 23.05.9-2 2024-02-26 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.9-2
- Collabora Office 23.05.9-2
## 23.05.9-1 2024-02-14 <dave at tiredofit dot ca>
### Added
- Collabora Office cp23.05.9-1
- Collabora Online cp23.05.9-1
## 23.05.8-4 2024-02-02 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.8-4
- Collabora office 23.05.8-4
## 23.05.8-3 2024-01-31 <dave at tiredofit dot ca>
### Added
- Collabora Office 23.05.8-3
- Collabora Online 23.05.8-3
## 23.05.8-1 2024-01-24 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-23.05.8-1
- Collabora Online cp-23.05.8-1
## 23.05.7-5 2024-01-19 <dave at tiredofit dot ca>
### Added
- Collabora Office cp23.05.7-5
- Collabora Online cp23.05.7-5
## 23.05.7-4 2024-01-18 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.7-4
- Collabora Office 23.05.7-4
## 23.05.7-3 2024-01-17 <dave at tiredofit dot ca>
### Added
- Collabora Office 23.05.7-3
- Collabora Online 23.05.7-3
## 23.05.7-2 2024-01-11 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-23.05.7-2
- Collabora Office cp-23.05.7-2
## 23.05.7-1 2024-01-10 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-23.05.7-1
- Collabora Office cp-23.05.7-1
## 23.05.6-4 2023-12-19 <dave at tiredofit dot ca>
### Added
- Collabora Office 23.05.6-4
- Collabora Online 23.05.6-4
## 23.05.6-3 2023-12-14 <dave at tiredofit dot ca>
### Added
- Collabora Office 23.05.6-3
- Collabora Online 23.05.6-3
## 23.05.6-2 2023-12-05 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-23.05.6-2
- Collabora Office cp-23.05.6-2
## 23.05.6-1 2023-12-04 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.6.1
- Collabora Office 23.05.6.1
## 23.05.5-4 2023-11-10 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-23.05.5-4
- Collabora Office cp-23.05.5-4
## 23.05.5-3 2023-10-26 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-23.05.5-3
- Collabora Office cp-23.05.5-3
- Poco 1.12.5
## 23.05.5-2 2023-10-19 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-23.05.5-2
- Collabora Online cp-23.05.5-2
## 23.05.5-1 2023-10-11 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-23.05.5-1
- Collabora Office cp-23.05.5-1
## 23.05.4-2 2023-09-19 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-23.05.4-2
- Collabora Online cp-23.05.4-2
## 23.05.4-1 2023-09-11 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-23.05.4-1
- Collabora Online cp-23.05.4-1
## 23.05.3-1 2023-08-28 <dave at tiredofit dot ca>
### Added
- Collabora Office 23.05.3-1
- Collabora Online 23.05.3-1
## 23.05.2-2.1 2023-07-25 <dave at tiredofit dot ca>
### Changed
- Fix small issue with sed statement for DeepL
- Run fontconfig under cool user
## 23.05.2-2 2023-07-24 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.2-2
- Collabora Office 23.05.2-2
## 23.05.2-1 2023-07-20 <dave at tiredofit dot ca>
### Added
- Collabora Office 23.05.2-1
- Collabora Online 23.05.2-1
## 23.05.1-2 2023-06-26 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-23.05.1-2
- Collabora Online cp-23.05.1-2
## 23.05.1-1 2023-06-23 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-23.05.1-1
- Collabora Online cp-23.05.1-1
## 23.05.0-5 2023-06-12 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.0-5
- Collaobra Office 23.05.0-5
## 23.05.0-4 2023-06-09 <dave at tiredofit dot ca>
### Added
- Collabora Online 23.05.0-4
- Collabora Office 23.05.0-4
## 23.05.0-3 2023-06-05 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-23.05.0-3
- Collabora Online cp-23.05.0-3
## 23.05.0-2 2023-06-01 <dave at tiredofit dot ca>
### Added
- 23.05.0-2
## 23.05.0-1 2023-05-19 <dave at tiredofit dot ca>
New versioning scheme
### Added
- Collabora Online 23.05.0-1
- Collabora Office 23.05.0-1
## 2.4.34 2023-05-05 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-22.05.14-3
- Collabora Online cp-22.05.14-3
## 2.4.33 2023-05-04 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-22.05.14-2
- Collabora Online cp-22.05.14-2
## 2.4.32 2023-05-03 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.14-1
- Collabora Office 22.05.14-1
## 2.4.31 2023-04-26 <dave at tiredofit dot ca>
### Added
- Add support for _FILE environment variables
## 2.4.30 2023-04-17 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.13-1
- Collabora Office 22.05.13-1
## 2.4.29 2023-03-28 <dave at tiredofit dot ca>
### Changed
- Add default for LOG_PROTOCOL
## 2.4.28 2023-03-28 <dave at tiredofit dot ca>
### Added
- Fix logging issue relating to Javascript protocol
- Change some booleans to false
- Fix sed statements
## 2.4.27 2023-03-28 <dave at tiredofit dot ca>
### Changed
- Fix a number of issues in config generation in 2.4.26 and 2.4.26
## 2.4.26 2023-03-24 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.12-4
## 2.4.25 2023-03-23 <dave at tiredofit dot ca>
### Added
- Add DeepL Translation Support
- Add Zotero Citation Support
- Add support for Fonts Missing
- Add more options for Language Tool
- Add UI option to Group Download As items
- Add performance settings for minimum time between saves/uploads
- Add PDF Resolution DPI settings
### Reverted
- Remove MEMORY_DATA_LIMIT
- Remove LOLEAFLET_HTML
- Rework config to be better legible
## 2.4.24 2023-03-23 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.12-3
- Collabora Office 22.05.12-3
## 2.4.23 2023-03-20 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-22.05.12-2
- Collabora Office cp-22.05.11-1
## 2.4.22 2023-02-24 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-22.05.10-7
- Collabora Office cp-22.05.10-7
## 2.4.21 2023-01-31 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-22.05.10-1
- Collabora Online cp-22.05.10-1
## 2.4.20 2023-01-31 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-22.05.9-5
- Colaabora Online cp-22.05.9-5
## 2.4.19 2023-01-18 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-22.05.9-3
- Collabora Online cp-22.05.9-3
- Add libpng-dev packages for building
- Add x11-dev packages for building
### Changed
- Switch to package management via base image functions
## 2.4.18 2022-12-19 <dave at tiredofit dot ca>
### Added
- Collabra Online 22.05.9-2
- Collabora Office 22.05.9-2
## 2.4.17 2022-11-22 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-22.05.8-3
- Collabora Online cp-22.05.8-3
## 2.4.16 2022-11-08 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.8-2
- Collabora Office 22.05.8-1
## 2.4.15 2022-11-07 <dave at tiredofit dot ca>
### Added
- Add libzstd-dev for building online
## 2.4.14 2022-11-07 <dave at tiredofit dot ca>
### Added
- Collabra Online 22.05.8-1
- Collabora Office 22.05.8-1
## 2.4.13 2022-10-31 <dave at tiredofit dot ca>
### Added
- Poco Project 1.12.4
- Collabora Office 22.05.7-3
- Collabora Online 22.05.7-3
## 2.4.12 2022-10-24 <dave at tiredofit dot ca>
### Added
- Poco Project 1.12.3
- Collabora Online 22.5.7.2
- Collabora Office 22.5.7.2
## 2.4.11 2022-09-27 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.6-3
- Collabora Office 22.05.6-3
## 2.4.10 2022-09-15 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.6-1
- Collabora Office 22.05.6-1
## 2.4.9 2022-08-16 <dave at tiredofit dot ca>
### Added
- Collabora Office cp-22.05.5-3
- Collabora Online cp-22.05.5-3
## 2.4.8 2022-08-08 <dave at tiredofit dot ca>
### Changed
- Fix problem with "Home Users" configuration
## 2.4.7 2022-08-07 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.2-2
- Collabora Office 22.05.2-2
- Poco Libraries 1.12.2
## 2.4.6 2022-08-06 <dave at tiredofit dot ca>
### Added
- Start using custom_scripts and custom_files functions from base
## 2.4.5 2022-07-14 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.4-1
- Collabora Office 22.05.4.1
## 2.4.4 2022-07-08 <dave at tiredofit dot ca>
### Added
- Poco 1.12.0
## 2.4.3 2022-06-30 <dave at tiredofit dot ca>
### Added
- Add 'VERSION_SUFFIX' in order to be able to bust client cache for development purposes
## 2.4.2 2022-06-28 <dave at tiredofit dot ca>
### Added
- Collabora Online 22.05.3.1
- Collabora Office 22.05.3.1
- Add support for Language Tool Grammar checking
- Add support for file quarantining
- Add support for user statistics
- Add support for document statstics
- Add support for remote JSON font loading
- Add support for Tile Caching
- Add more rules for client logging
- Add support for experimental features
- Add support to hexify embedded URLs
- Add support to enable Integrators theme
## 2.3.8 2022-06-20 <dave at tiredofit dot ca>
### Changed
- Restore Build Asset overrides
## 2.3.7 2022-06-20 <dave at tiredofit dot ca>
### Added
- Collabora Online cp21.11.5-3
- Libreoffice Core cp-21.06.31-1
## 2.4.1 2022-04-12 <dave at tiredofit dot ca>
### Changed
- Cleanup some old unused lines and code
## 2.4.0 2022-04-07 <dave at tiredofit dot ca>
### Added
- Collabora Online cp-22.05.0-1
- LibreOffice Core cp-22.05.0-1
### Changed
- Changed how ALLOWED_HOSTS works - may require https://url, instead of Regex
- Changed Idle Timeout from 15 minutes to 1 hour
## 2.3.6 2022-03-22 <dave at tiredofit dot ca>
### Added
- Libreoffice Core cp-21.06.22-1
- Collabora Online cp-21.11.3-2
## 2.3.5 2022-02-10 <dave at tiredofit dot ca>
## Changed
- Collbora Online 21.11.2-0
- Libreoffice Core 21.06.16-1
## 2.3.4 2022-01-27 <dave at tiredofit dot ca>
## Changed
- Collbora Online 21.11.1-4
- Libreoffice Core 21.06.13-1
## 2.3.3 2021-12-15 <dave at tiredofit dot ca>
## Changed
- Zabbix Monitoring templates
- Collabora Online 21.11.0-5
## 2.3.2 2021-12-03 <dave at tiredofit dot ca>
### Added
- Allow abilities to use macros
- Allow unauthenticated metrics gathering
- Fix for Log rotation when LOG_TYPE=FILES
- Allow setting Admin JWT token lifetime
## 2.3.0 2021-12-02 <dave at tiredofit dot ca>
### Added
- Debian Bulleye Base
- Collabora Online 21.11.0-3
- Libreoffice CO2021
## 2.2.4 2021-10-29 <dave at tiredofit dot ca>
### Added
- Libreoffice Core 6.4-49
- Collabora Online 6.4.13-3
## 2.2.3 2021-09-02 <dave at tiredofit dot ca>
### Added
- LibreOffice 6.4-47
- Collabora Online 6.4.11-1
## 2.2.2 2021-08-21 <dave at tiredofit dot ca>
### Added
- Collabora Online 6.4.10-10
- LibreOffice 6.4-46
## 2.2.1 2021-07-26 <dave at tiredofit dot ca>
### Added
- Libreoffice Core 6.4.45
- Collabora Online 6.4.10-5
### Changed
- Bugfix for console output when adding new languages
## 2.2.0 2021-07-11 <dave at tiredofit dot ca>
### Added
- Additional Dictionaries now supported upon container startup
### Changed
- Libreoffice 6.4-44
## 2.1.7 2021-07-03 <dave at tiredofit dot ca>
### Added
- Poco 1.11.0
- LibreOffice Core 6.4-42
- Collabora Online 6.4.10.1
## 2.1.6 2021-05-27 <dave at tiredofit dot ca>
### Added
- Libreoffice 6.4-39
- Collabora Online 6.4.8-8
## 2.1.5 2021-05-17 <dave at tiredofit dot ca>
### Added
- Libreoffice 6.4-38
- Collabora Online 6.4.8-6
### Added
- Changd LOOL_* variables to COLLABORA_ONLINE_*
## 2.1.4 2021-05-06 <dave at tiredofit dot ca>
### Added
- Collabora Online 6.4.8-4
## 2.1.3 2021-04-26 <dave at tiredofit dot ca>
### Added
- Collabora Office 6.4-37
- Collabora Online 6.4.8-2
## 2.1.2 2021-04-11 <dave at tiredofit dot ca>
### Fixed
- Safety net to enforce custom fonts to be included
## 2.1.0 2021-04-11 <dave at tiredofit dot ca>
### Added
- Custom Font insertion Support
### Removed
- My opinionated required font list
## 2.0.4 2021-04-09 <dave at tiredofit dot ca>
### Added
- Collabora Office 6.4-34
- Collabora Online 6.4.7-6
## 2.0.3 2021-04-06 <dave at tiredofit dot ca>
### Added
- Collabora Office 6.4-33
- Collabora Online 6.4.7-5
- APP_NAME build argumment: Changed from Collabora Online Development Envionment to 'Document Editor'
### Changed
- Max Open Documents to 100000 (from 5000)
- Max Users to 100000 (from 5000)
## 2.0.2 2021-03-24 <dave at tiredofit dot ca>
### Added
- Collabora Office 6.4-31
- Collabora Online 6.4.7
## 2.0.1 2021-02-21 <dave at tiredofit dot ca>
### Changed
- Fix for ENABLE_TLS_REVERSE_PROXY flag
## 2.0.0 2021-02-20 <dave at tiredofit dot ca>
### Added
- Refreshed Image = Lots more environment variables (See README)
- Debian Buster base
- Libreoffice 6.4-23
- Libreoffice Online 6.4.6-4
### Fixed
- TLS Issues
## 1.6.1 2020-01-21 <joergmschulz at github>
### Fixed
- Misquote in the startup script
## 1.6.0 2020-01-12 <dave at tiredofit dot ca>
### Added
- Update to support new tiredofit/debian base image
## 1.5 2019-07-16 <dave at tiredofit dot ca>
* Added more environment variables
-`AUTO_SAVE` (Default `300`}
- `ENABLE_ADMIN_CONSOLE` (Default `TRUE`)
- `FILE_SIZE_LIMIT` (Default `0`}
- `IDLE_SAVE` (Default `30`}
- `IDLE_UNLOAD_TIMEOUT` (Default `3600`}
- `LOG_ANONYMIZE_FILES` (Default `FALSE`)
- `LOG_ANONYMIZE_USERS` (Default `FALSE`)
- `LOG_TYPE` (Default `CONSOLE`)
- `MAX_FILE_LOAD_LIMIT` (Default `100`}
- `MAX_OPEN_FILES` (Default `0`}
- `MAX_THREADS_DOCUMENT` (Default `4`}
- `MEMORY_DATA_LIMIT` (Default `0`}
- `MEMORY_STACK_LIMIT` (Default `8000`}
- `MEMORY_USAGE_MAX` (Default `80.0`}
- `PRESPAWN_CHILD_PROCESSES` (Default `1`}
- `SETUP_TYPE` (Default `AUTO`)
- `USER_IDLE_TIMEOUT` (Default `900`}
- `USER_OUT_OF_FOCUS_TIMEOUT` (Default `60`}
* Included traefik example docker-compose
## 1.4 2019-07-16 <dave at tiredofit dot ca>
* Added new Environment Variables
- `ENABLE_TLS` (Default: `TRUE`)
- `ENABLE_TLS_CERT_GENERATE` (Default: `TRUE`)
- `ENABLE_TLS_REVERSE_PROXY` (Default: `FALSE`)
- `TLS_CERT_PATH` (Default: `/etc/coolwsd/certs`)
- `TLS_CA_FILENAME` (Default: `ca-chain-cert.pem`)
- `TLS_CERT_FILENAME` (Default: `cert.pem`)
- `TLS_KEY_FILENAME` (Default: `key.pem`)
## 1.3.3 2019-07-07 <dave at tiredofit dot ca>
* Final Fixup for failing upgraded packages
## 1.3.2 2019-07-07 <dave at tiredofit dot ca>
* Fixup for failing upgraded packages
## 1.3.1 2019-07-07 <dave at tiredofit dot ca>
* Add `EXTRA_OPTIONS` variable
## 1.3 2019-05-08 <dave at tiredofit dot ca>
* Collabora Office 6.0.30
* Libreoffice Online 4.0.4.1
* Fix SSL Startup Errors
* Stop pinning Debian Jessie libssl
* Make Log Level information as default
## 1.2 2019-03-11 <dave at tiredofit dot ca>
* Collabora Office 6.0.25
* Libreoffice Online 4.0.1.1
## 1.1.1 2019-02-28 <dave at tiredofit dot ca>
* Add Cron entry to cleanup cache for long running containers
## 1.1 2019-02-28 <dave at tiredofit dot ca>
* Switch back to Debian Stretch

View file

@ -1,286 +1,276 @@
FROM registry.selfdesign.org/docker/debian/stretch as builder
FROM docker.io/tiredofit/debian:bookworm as builder
LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)"
LABEL org.opencontainers.image.source="https://github.com/tiredofit/docker-collabora-online"
### Set Environment Variables
ENV LIBREOFFICE_BRANCH=master \
## cp-5.3.61
LIBREOFFICE_COMMIT=cd2475c52a096b001a7e3179f02e11cbc8a5615f \
LOOL_BRANCH=master \
## 3.4.2.1
LOOL_COMMIT=d02d1983e164b322dc3f46753433bcb23c871ce6 \
MAX_CONNECTIONS=5000 \
### Buildtime arguments
ARG COLLABORA_ONLINE_VERSION
ARG COLLABORA_ONLINE_REPO_URL
ARG LIBREOFFICE_VERSION
ARG LIBREOFFICE_REPO_URL
ARG MAX_CONNECTIONS
ARG MAX_DOCUMENTS
ARG APP_NAME
ARG APP_BRAND
### Environment Variables
ENV COLLABORA_ONLINE_VERSION=${COLLABORA_ONLINE_VERSION:-"cp-24.04.4-1"} \
COLLABORA_ONLINE_REPO_URL=${COLLABORA_ONLINE_REPO_URL:-"https://github.com/CollaboraOnline/online"} \
#
LIBREOFFICE_VERSION=${LIBREOFFICE_VERSION:-"cp-24.04.4-1"} \
LIBREOFFICE_REPO_URL=${LIBREOFFICE_REPO_URL:-"https://github.com/LibreOffice/core"} \
#
APP_NAME=${APP_NAME:-"Document Editor"} \
APP_BRAND=${APP_BRAND:-"unbranded"} \
#
POCO_VERSION=${POCO_VERSION:-"poco-1.13.3-release.tar.gz"} \
POCO_URL=${POCO_URL:-"https://github.com/pocoproject/poco/archive/"} \
#
MAX_CONNECTIONS=${MAX_CONNECTIONS:-"100000"} \
## Uses Approximately 20mb per document open
MAX_DOCUMENTS=5000 \
POCO_VERSION=1.9.0
MAX_DOCUMENTS=${MAX_DOCUMENTS:-"100000"}
### Get Updates
RUN set -x && \
### Add Repositories
echo "deb http://ftp.us.debian.org/debian/ jessie-backports main" >>/etc/apt/sources.list && \
echo "deb-src http://ftp.us.debian.org/debian/ jessie-backports main" >>/etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian stretch contrib" >> /etc/apt/sources.list && \
curl -sL https://deb.nodesource.com/setup_6.x | bash - && \
\
### Downgrade LibSSL
echo "Package: openssl libssl1.0.0 libssl-dev libssl-doc" >> /etc/apt/preferences.d/00_ssl && \
echo "Pin: release a=jessie-backports" >> /etc/apt/preferences.d/00_ssl && \
echo "Pin-Priority: 1001" >> /etc/apt/preferences.d/00_ssl && \
apt-get install openssl libssl-dev locales -y --allow-downgrades && \
COPY build-assets /build-assets
RUN source /assets/functions/00-container && \
set -x && \
echo "deb-src http://deb.debian.org/debian $(cat /etc/os-release |grep "VERSION=" | awk 'NR>1{print $1}' RS='(' FS=')') main" >> /etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian $(cat /etc/os-release |grep "VERSION=" | awk 'NR>1{print $1}' RS='(' FS=')') contrib" >> /etc/apt/sources.list && \
package update && \
apt-get -o Dpkg::Options::="--force-confold" upgrade -y && \
\
### Setup Distribution
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \
\
mkdir -p /home/lool && \
useradd lool -G sudo && \
chown lool:lool /home/lool -R && \
mkdir -p /home/cool && \
useradd cool -G sudo && \
chown cool:cool /home/cool -R && \
\
BUILD_DEPS=' \
adduser \
automake \
build-essential \
bison \
cpio \
default-jre \
devscripts \
flex \
fontconfig \
g++ \
git \
gperf \
inotify-tools \
libcap-dev \
libcap2-bin \
libcppunit-dev \
libghc-zlib-dev \
libkrb5-dev \
libpam-dev \
libpam0g-dev \
libpng-dev \
libssl-dev \
libtool \
libubsan1 \
libx11-dev \
libzstd-dev \
locales-all \
m4 \
nasm \
nodejs \
npm \
openssl \
pkg-config \
procps \
python3-lxml \
python3-polib \
rsync \
sudo \
translate-toolkit \
ttf-mscorefonts-installer \
unzip \
wget \
zip \
' && \
## Add Build Dependencies
apt-get install -y \
cpio \
git \
libcap-dev \
libghc-zlib-dev \
libpam0g-dev \
libtool \
nasm \
nodejs \
python-polib \
sudo \
translate-toolkit \
ttf-mscorefonts-installer \
wget \
&& \
package install -y \
${BUILD_DEPS} \
&& \
\
apt-get build-dep -y \
libreoffice \
&& \
package build-dep -y \
libreoffice \
&& \
\
### Build and Install Poco Libraries
### Build Poco
mkdir -p /usr/src/poco && \
curl -sSL https://pocoproject.org/releases/poco-${POCO_VERSION}/poco-${POCO_VERSION}-all.tar.gz | tar xvfz - --strip 1 -C /usr/src/poco && \
curl -sSL ${POCO_URL}${POCO_VERSION} | tar xvfz - --strip 1 -C /usr/src/poco && \
cd /usr/src/poco && \
./configure \
--no-samples \
--no-tests \
--prefix=/opt/poco \
&& \
--static \
--no-tests \
--no-samples \
--no-sharedlibs \
--cflags="-fPIC" \
--omit=Zip,Data,Data/SQLite,Data/ODBC,Data/MySQL,MongoDB,PDF,CppParser,PageCompiler,Redis,Encodings \
--prefix=/opt/poco \
&& \
make -j$(nproc) && \
make install && \
\
### Build Fetch LibreOffice - This will take a while..
git clone -b ${LIBREOFFICE_BRANCH} https://github.com/LibreOffice/core.git /usr/src/libreoffice-core && \
cd /usr/src/libreoffice-core && \
echo "lo_sources_ver="`env | grep LIBREOFFICE_VERSION | cut -d'-' -f2` > sources.ver && \
git reset --hard ${LIBREOFFICE_COMMIT} && \
git submodule init && \
git submodule update translations && \
git submodule update dictionaries && \
cd /usr/src/libreoffice-core && \
echo "--disable-dbus \n\
--disable-dconf \n\
--disable-epm \n\
--disable-evolution2 \n\
--disable-ext-nlpsolver \n\
--disable-ext-wiki-publisher \n\
--disable-firebird-sdbc \n\
--disable-gio \n\
--disable-gstreamer-0-10 \n\
--disable-gstreamer-1-0 \n\
--disable-gtk \n\
--disable-gtk3 \n\
--disable-kde4 \n\
--disable-odk \n\
--disable-online-update \n\
--disable-pdfimport \n\
--disable-postgresql-sdbc \n\
--disable-report-builder \n\
--disable-scripting-beanshell \n\
--disable-scripting-javascript \n\
--disable-sdremote \n\
--disable-sdremote-bluetooth \n\
--enable-extension-integration \n\
--enable-mergelibs \n\
--enable-python=internal \n\
--enable-release-build \n\
--with-external-dict-dir=/usr/share/hunspell \n\
--with-external-hyph-dir=/usr/share/hyphen \n\
--with-external-thes-dir=/usr/share/mythes \n\
--with-fonts \n\
--with-galleries=no \n\
--with-lang=en-GB en-US\n\
--with-linker-hash-style=both \n\
--with-system-dicts \n\
--with-system-zlib \n\
--with-theme=galaxy \n\
#--with-system-xmlsec \n\
--without-branding \n\
--without-help \n\
--without-java \n\
--without-junit \n\
--without-myspell-dicts \n\
--without-package-format \n\
--without-system-jars \n\
--without-system-jpeg \n\
--without-system-libpng \n\
--without-system-libxml \n\
--without-system-openssl \n\
--without-system-poppler \n\
--without-system-postgresql \n\
--prefix=/opt/libreoffice \n\
" > /usr/src/libreoffice-core/distro-configs/LibreOfficeOnline.conf && \
./autogen.sh --with-distro="LibreOfficeOnline" && \
cd /usr/src/libreoffice-core && \
sed -i "s/export XMLSEC_TARBALL := xmlsec1-1.2.26.tar.gz/export XMLSEC_TARBALL := xmlsec1-1.2.25.tar.gz/g" download.lst && \
chown -R lool /usr/src/libreoffice-core && \
sudo -u lool make && \
cd /usr/src/libreoffice-core && \
### Build Fetch LibreOffice - This will take a while..
clone_git_repo ${LIBREOFFICE_REPO_URL} ${LIBREOFFICE_VERSION} ${GIT_REPO_SRC_CORE} && \
if [ -d "/build-assets/core/src" ] && [ -n "$(ls -A "/build-assets/core/src" 2>/dev/null)" ]; then cp -R /build-assets/core/src/* / ; fi; \
if [ -d "/build-assets/core/scripts" ] && [ -n "$(ls -A "/build-assets/core/scripts" 2>/dev/null)" ]; then for script in /build-assets/core/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \
sed -i "s|--enable-symbols|--disable-symbols|g" ${GIT_REPO_SRC_CORE}/distro-configs/CPLinux-LOKit.conf && \
\
echo "--prefix=/opt/libreoffice" >> ${GIT_REPO_SRC_CORE}/distro-configs/CPLinux-LOKit.conf && \
./autogen.sh \
--with-distro="CPLinux-LOKit" \
--disable-epm \
--without-package-format && \
chown -R cool ${GIT_REPO_SRC_CORE} && \
sudo -u cool make fetch && \
sudo -u cool make -j$(nproc) build && \
mkdir -p /opt/libreoffice && \
chown -R lool /opt/libreoffice && \
sudo -u lool make install && \
cp -R /usr/src/libreoffice-core/instdir/* /opt/libreoffice/ && \
\
### Build LibreOffice Online (Not as long as above)
git clone -b ${LOOL_BRANCH} https://github.com/LibreOffice/online.git /usr/src/libreoffice-online && \
cd /usr/src/libreoffice-online && \
git reset --hard ${LOOL_COMMIT} && \
npm install -g \
bootstrap \
browserify-css \
d3 \
d3 \
eslint \
evol-colorpicker \
exorcist \
jake \
npm \
uglify-js \
&& \
chown -R cool /opt/libreoffice && \
cp -R ${GIT_REPO_SRC_CORE}/instdir/* /opt/libreoffice/ && \
\
### Build LibreOffice Online (Not as long as above)
clone_git_repo ${COLLABORA_ONLINE_REPO_URL} ${COLLABORA_ONLINE_VERSION} ${GIT_REPO_SRC_ONLINE} && \
if [ -d "/build-assets/online/src" ] ; then cp -R /build-assets/online/src/* ${GIT_REPO_SRC_ONLINE} ; fi; \
if [ -d "/build-assets/online/scripts" ] ; then for script in /build-assets/online/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \
sed -i \
-e "s|Collabora Online Development Edition|${APP_NAME}|g" \
-e "s|unbranded|${APP_BRAND}|g" \
${GIT_REPO_SRC_ONLINE}/configure.ac \
${GIT_REPO_SRC_ONLINE}/browser/admin/admin.strings.js \
${GIT_REPO_SRC_ONLINE}/browser/src/control/Toolbar.js \
${GIT_REPO_SRC_ONLINE}/browser/src/core/Socket.js \
${GIT_REPO_SRC_ONLINE}/browser/src/layer/marker/ProgressOverlay.js \
${GIT_REPO_SRC_ONLINE}/browser/src/map/Clipboard.js \
${GIT_REPO_SRC_ONLINE}/browser/welcome/*.html \
&& \
./autogen.sh && \
./configure --enable-silent-rules \
--with-lokit-path=/usr/src/libreoffice-online/bundled/include \
--with-lokit-path="${GIT_REPO_SRC_CORE}/include" \
--with-lo-path=/opt/libreoffice \
--with-max-connections=${MAX_CONNECTIONS} \
--with-max-documents=${MAX_DOCUMENTS} \
--with-logfile=/var/log/cool/cool.log \
--prefix=/opt/cool \
--sysconfdir=/etc \
--localstatedir=/var \
--with-poco-includes=/opt/poco/include \
--with-poco-libs=/opt/poco/lib \
--with-logfile=/var/log/lool/lool.log \
--prefix=/opt/lool \
--sysconfdir=/etc \
--localstatedir=/var && \
( cd loleaflet/po && ../../scripts/downloadpootle.sh ) && \
( cd loleaflet && make l10n) || exit 1 && \
( scripts/locorestrings.py /usr/src/libreoffice-online /usr/src/libreoffice-core/translations ) && \
make -j`nproc` && \
mkdir -p /opt/lool && \
chown -R lool /opt/lool && \
cp -R loolwsd.xml /opt/lool/ && \
cp -R loolkitconfig.xcu /opt/lool && \
--with-app-name="${APP_NAME}" \
--with-vendor="tiredofit@github" \
${COOL_CONFIGURE_ARGS} \
&& \
make -j$(nproc) && \
mkdir -p /opt/cool && \
chown -R cool /opt/cool && \
cp -R coolwsd.xml /opt/cool/ && \
cp -R coolkitconfig.xcu /opt/cool && \
make install && \
\
### Cleanup
cd / && \
apt-get autoremove -y && \
apt-get clean && \
### Cleanup
rm -rf /usr/src/* && \
rm -rf /usr/share/doc && \
rm -rf /usr/share/man && \
rm -rf /usr/share/locale && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/log/*
package cleanup && \
rm -rf \
/usr/share/doc \
/usr/share/locale \
/usr/share/man \
/usr/src/* \
/var/log/*
FROM registry.selfdesign.org/docker/debian/stretch
FROM docker.io/tiredofit/debian:bookworm
LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)"
LABEL org.opencontainers.image.source="https://github.com/tiredofit/docker-collabora-online"
### Set Defaults
ENV ADMIN_USER=admin \
ADMIN_PASS=libreoffice \
LOG_LEVEL=warning \
DICTIONARIES="en_GB en_US" \
ENABLE_SMTP=false \
PYTHONWARNINGS=ignore
ADMIN_PASS=collaboraonline \
CONTAINER_ENABLE_MESSAGING=FALSE \
IMAGE_NAME="tiredofit/collabora-online" \
IMAGE_REPO_URL="https://github.com/tiredofit/docker-collabora-online/"
### Grab Compiled Assets from builder image
COPY --from=builder /opt/ /opt/
COPY CHANGELOG.md /assets/.changelogs/tiredofit_docker-collabora-online.md
### Install Dependencies
RUN set -x && \
adduser --quiet --system --group --home /opt/lool lool && \
\
### Add Repositories
echo "deb http://ftp.us.debian.org/debian/ jessie-backports main" >>/etc/apt/sources.list && \
echo "deb-src http://ftp.us.debian.org/debian/ jessie-backports main" >>/etc/apt/sources.list && \
echo "deb http://deb.debian.org/debian stretch contrib" >> /etc/apt/sources.list && \
curl -sL https://deb.nodesource.com/setup_6.x | bash - && \
\
### Downgrade LibSSL
echo "Package: openssl libssl1.0.0 libssl-dev libssl-doc" >> /etc/apt/preferences.d/00_ssl && \
echo "Pin: release a=jessie-backports" >> /etc/apt/preferences.d/00_ssl && \
echo "Pin-Priority: 1001" >> /etc/apt/preferences.d/00_ssl && \
apt-get install openssl libssl-dev locales -y --allow-downgrades && \
COPY build-assets /build-assets
RUN source /assets/functions/00-container && \
set -x && \
adduser --quiet --system --group --home /opt/cool cool && \
\
echo "deb http://deb.debian.org/debian $(cat /etc/os-release |grep "VERSION=" | awk 'NR>1{print $1}' RS='(' FS=')') contrib" >> /etc/apt/sources.list && \
echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections && \
apt-get upgrade -y && \
apt-get install -y\
adduser \
apt-transport-https \
cpio \
findutils \
fonts-droid-fallback \
fonts-noto-cjk \
hunspell \
hunspell-en-us \
hunspell-en-gb \
libcap2-bin \
libcups2 \
libfontconfig1 \
libfreetype6 \
libgl1-mesa-glx \
libpam0g \
libpng16-16 \
libsm6 \
libxcb-render0 \
libxcb-shm0 \
libxinerama1 \
libxrender1 \
locales-all \
python3-requests \
python3-websocket \
sudo \
ttf-mscorefonts-installer \
&& \
package update && \
apt-get -o Dpkg::Options::="--force-confold" upgrade -y && \
package install \
apt-transport-https \
cpio \
findutils \
fontconfig \
hunspell \
hunspell-en-ca \
hunspell-en-gb \
hunspell-en-us \
inotify-tools \
libcap2-bin \
libcups2 \
libfontconfig1 \
libfreetype6 \
libgl1-mesa-glx \
libpam0g \
libpng16-16 \
libsm6 \
libubsan1 \
libxcb-render0 \
libxcb-shm0 \
libxinerama1 \
libxrender1 \
locales \
locales-all \
openssl \
openssh-client \
procps \
python3-requests \
python3-websocket \
ttf-mscorefonts-installer \
&& \
\
### Setup Directories and Permissions
mkdir -p /etc/loolwsd && \
mv /opt/lool/loolwsd.xml /etc/loolwsd/ && \
mv /opt/lool/loolkitconfig.xcu /etc/loolwsd/ && \
chown -R lool /etc/loolwsd && \
mkdir -p /opt/lool/jails && \
chown -R lool /opt/* && \
mkdir -p /var/cache/loolwsd && \
chown -R lool /var/cache/loolwsd && \
setcap cap_fowner,cap_mknod,cap_sys_chroot=ep /opt/lool/bin/loolforkit && \
# setcap cap_sys_admin=ep /opt/lool/bin/loolmount && \
mkdir -p /etc/coolwsd && \
mv /opt/cool/coolwsd.xml /etc/coolwsd/ && \
mv /opt/cool/coolkitconfig.xcu /etc/coolwsd/ && \
chown -R cool /etc/coolwsd && \
mkdir -p /opt/cool/child-roots && \
chown -R cool /opt/* && \
mkdir -p /var/cache/coolwsd && \
chown -R cool /var/cache/coolwsd && \
setcap cap_fowner,cap_chown,cap_mknod,cap_sys_chroot=ep /opt/cool/bin/coolforkit && \
setcap cap_sys_admin=ep /opt/cool/bin/coolmount && \
mkdir -p /usr/share/hunspell && \
mkdir -p /usr/share/hyphen && \
mkdir -p /usr/share/mythes && \
mkdir -p /var/cache/coolwsd && \
chown -R cool /var/cache/coolwsd && \
mkdir -p /var/log/cool && \
touch /var/log/cool/coolwsd.log && \
chown -R cool /var/log/cool && \
\
### Setup LibreOffice Online Jails
sudo -u lool /opt/lool/bin/loolwsd-systemplate-setup /opt/lool/systemplate /opt/libreoffice && \
sudo -u cool /opt/cool/bin/coolwsd-systemplate-setup /opt/cool/systemplate /opt/libreoffice && \
\
apt-get autoremove -y && \
apt-get clean && \
\
rm -rf /usr/src/* && \
rm -rf /usr/share/doc && \
rm -rf /usr/share/man && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/log/* && \
rm -rf /tmp/* && \
mkdir -p /var/log/lool && \
touch /var/log/lool/loolwsd.log && \
chown -R lool /var/log/lool
if [ -d "/build-assets/container/src" ] && [ -n "$(ls -A "/build-assets/container/src" 2>/dev/null)" ]; then cp -R /build-assets/container/src/* / ; fi; \
if [ -d "/build-assets/container/scripts" ] && [ -n "$(ls -A "/build-assets/container/scripts" 2>/dev/null)" ]; then for script in /build-assets/container/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \
package cleanup && \
rm -rf \
/build-assets \
/tmp/* \
/usr/src/* \
/usr/share/doc \
/usr/share/man \
/var/lib/apt/lists/* \
/var/log/*
### Networking Configuration
EXPOSE 9980
### Assets
ADD install /
COPY install /

173
Dockerfile.alpine Normal file
View file

@ -0,0 +1,173 @@
FROM tiredofit/alpine:3.18 as builder
LABEL maintainer="Dave Conroy (dave at tiredofit dot ca)"
LABEL org.opencontainers.image.source="https://github.com/tiredofit/docker-collabora-online"
### Buildtime arguments
ARG COLLABORA_ONLINE_VERSION
ARG COLLABORA_ONLINE_REPO_URL
ARG LIBREOFFICE_VERSION
ARG LIBREOFFICE_REPO_URL
ARG MAX_CONNECTIONS
ARG MAX_DOCUMENTS
ARG APP_NAME
ARG APP_BRAND
### Environment Variables
ENV COLLABORA_ONLINE_VERSION=${COLLABORA_ONLINE_VERSION:-"cp-23.05.0-2"} \
COLLABORA_ONLINE_REPO_URL=${COLLABORA_ONLINE_REPO_URL:-"https://github.com/CollaboraOnline/online"} \
#
LIBREOFFICE_VERSION=${LIBREOFFICE_VERSION:-"cp-23.05.0-2"} \
LIBREOFFICE_REPO_URL=${LIBREOFFICE_REPO_URL:-"https://github.com/LibreOffice/core"} \
#
APP_NAME=${APP_NAME:-"Document Editor"} \
APP_BRAND=${APP_BRAND:-"unbranded"} \
#
POCO_VERSION=${POCO_VERSION:-"poco-1.12.4-release.tar.gz"} \
POCO_URL=${POCO_URL:-"https://github.com/pocoproject/poco/archive/"} \
#
MAX_CONNECTIONS=${MAX_CONNECTIONS:-"100000"} \
## Uses Approximately 20mb per document open
MAX_DOCUMENTS=${MAX_DOCUMENTS:-"100000"}
COPY build-assets /build-assets
RUN source /assets/functions/00-container && \
set -x && \
package update && \
package upgrade && \
package install .container-build-deps \
build-base \
git \
&& \
package install .collabora-office-build-deps \
abseil-cpp-dev \
apache-ant \
autoconf \
automake \
bison \
bluez-dev \
boost-dev \
box2d-dev \
clang \
clucene-dev \
coreutils \
cppunit-dev \
cups-dev \
doxygen \
findutils \
flex \
freetype-dev \
glew-dev \
glm-dev \
glu-dev \
gperf \
gpgme-dev \
gst-plugins-base-dev \
gstreamer-dev \
gtk+3.0-dev \
gtk4.0-dev \
harfbuzz-dev \
hunspell-dev \
hyphen-dev \
icu-dev \
junit \
kconfig-dev \
lcms2-dev \
libabw-dev \
libcdr-dev \
libe-book-dev \
libepubgen-dev \
libetonyek-dev \
libexttextcat-dev \
libfreehand-dev \
libjpeg-turbo-dev \
libmspub-dev \
libmwaw-dev \
libnumbertext-dev \
libodfgen-dev \
liborcus-dev \
libpagemaker-dev \
libpq-dev \
libqxp-dev \
libstaroffice-dev \
libvisio-dev \
libwebp-dev \
libwpd-dev \
libwpg-dev \
libwps-dev \
libxml2-utils \
libxrandr-dev \
libxrender-dev \
libxslt-dev \
libzmf-dev \
llvm-dev \
mariadb-dev \
mdds-dev \
mythes-dev \
neon-dev \
nss-dev \
openjpeg-dev \
openldap-dev \
openssl-dev \
perl \
perl-archive-zip \
plasma-framework-dev \
poppler-dev \
py3-setuptools \
python3-dev \
qt5-qtbase-dev \
qt5-qttools-dev \
qt6-qtbase-dev \
qt6-qttools-dev \
redland-dev \
sed \
tar \
unixodbc-dev \
vigra-dev \
xmlsec-dev \
xz \
zip \
&& \
\
### Build Poco
mkdir -p /usr/src/poco && \
curl -sSL ${POCO_URL}${POCO_VERSION} | tar xvfz - --strip 1 -C /usr/src/poco && \
cd /usr/src/poco && \
./configure \
--static \
--no-tests \
--no-samples \
--no-sharedlibs \
--cflags="-fPIC" \
--omit=Zip,Data,Data/SQLite,Data/ODBC,Data/MySQL,MongoDB,PDF,CppParser,PageCompiler,Redis,Encodings \
--prefix=/opt/poco \
&& \
make -j$(nproc) && \
make install && \
\
### Build Fetch LibreOffice - This will take a while..
clone_git_repo ${LIBREOFFICE_REPO_URL} ${LIBREOFFICE_VERSION} ${GIT_REPO_SRC_CORE}
RUN source /assets/functions/00-container && \
set -x && \
GIT_REPO_SRC_CORE=/usr/src/core && \
adduser -D -S -h /dev/null -s /sbin/nologin -u 1000 cool && \
cd /usr/src/core && \
if [ -d "/build-assets/core/src" ] && [ -n "$(ls -A "/build-assets/core/src" 2>/dev/null)" ]; then cp -R /build-assets/core/src/* / ; fi; \
if [ -d "/build-assets/core/scripts" ] && [ -n "$(ls -A "/build-assets/core/scripts" 2>/dev/null)" ]; then for script in /build-assets/core/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \
sed -i "s|--enable-symbols|--disable-symbols|g" ${GIT_REPO_SRC_CORE}/distro-configs/CPLinux-LOKit.conf && \
\
echo "--prefix=/opt/libreoffice" >> ${GIT_REPO_SRC_CORE}/distro-configs/CPLinux-LOKit.conf && \
./autogen.sh \
--with-distro="CPLinux-LOKit" \
--disable-epm \
--without-package-format && \
chown -R cool ${GIT_REPO_SRC_CORE} && \
sudo -u cool make fetch
RUN source /assets/functions/00-container && \
set -x && \
sudo -u cool make -j$(nproc) build && \
mkdir -p /opt/libreoffice && \
chown -R cool /opt/libreoffice && \
cp -R ${GIT_REPO_SRC_CORE}/instdir/* /opt/libreoffice/

View file

@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2019 Dave Conroy
Copyright (c) 2023 Dave Conroy
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

406
README.md
View file

@ -1,111 +1,397 @@
# hub.docker.com/r/tiredofit/libreoffice-online
# github.com/tiredofit/docker-collabora-online
[![Build Status](https://img.shields.io/docker/build/tiredofit/libreoffice-online.svg)](https://hub.docker.com/r/tiredofit/libreoffice-online)
[![Docker Pulls](https://img.shields.io/docker/pulls/tiredofit/libreoffice-online.svg)](https://hub.docker.com/r/tiredofit/libreoffice-online)
[![Docker Stars](https://img.shields.io/docker/stars/tiredofit/libreoffice-online.svg)](https://hub.docker.com/r/tiredofit/libreoffice-online)
[![Docker Layers](https://images.microbadger.com/badges/image/tiredofit/libreoffice-online.svg)](https://microbadger.com/images/tiredofit/libreoffice-online)
[![GitHub release](https://img.shields.io/github/v/tag/tiredofit/docker-collabora-online?style=flat-square)](https://github.com/tiredofit/docker-collabora-online/releases/latest)
[![Docker Stars](https://img.shields.io/docker/stars/tiredofit/collabora-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/collabora-online/)
[![Docker Pulls](https://img.shields.io/docker/pulls/tiredofit/collabora-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/collabora-online/)
[![Become a sponsor](https://img.shields.io/badge/sponsor-tiredofit-181717.svg?logo=github&style=flat-square)](https://github.com/sponsors/tiredofit)
[![Paypal Donate](https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal&style=flat-square)](https://www.paypal.me/tiredofit)
[![Docker Stars](https://img.shields.io/docker/stars/tiredofit/libreoffice-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/collabora-online/)
[![Docker Pulls](https://img.shields.io/docker/pulls/tiredofit/libreoffice-online.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/collabora-online/)
* * *
# Introduction
This will build a container for [LibreOffice Online](https://libreoffice.org/) for editing documents in a browser from supported applications
## About
* This Container uses a [customized Debian Linux base](https://hub.docker.com/r/tiredofit/debian) which includes [s6 overlay](https://github.com/just-containers/s6-overlay) enabled for PID 1 Init capabilities, [zabbix-agent](https://zabbix.org) for individual container monitoring, Cron also installed along with other tools (bash,curl, less, logrotate, nano, vim) for easier management.
This will build a Docker image for [Collabora Online](https://www.collaboraoffice.com/collabora-online/) for editing documents in a browser from supported applications.
* Configurable Concurrent User and Document Limit (set to generarous values by default)
* Custom Font Support
* Set features to support autogeneration of TLS certificates/activate reverse proxy support
* Zabbix Monitoring of Active Documents, Users, Memory Consumed
[Changelog](CHANGELOG.md)
# Authors
## Maintainer
- [Dave Conroy](https://github.com/tiredofit)
# Table of Contents
## Table of Contents
- [Introduction](#introduction)
- [Changelog](CHANGELOG.md)
- [Prerequisites](#prerequisites)
- [About](#about)
- [Maintainer](#maintainer)
- [Table of Contents](#table-of-contents)
- [Prerequisites and Assumptions](#prerequisites-and-assumptions)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Build from Source](#build-from-source)
- [Prebuilt Images](#prebuilt-images)
- [Multi Architecture](#multi-architecture)
- [Configuration](#configuration)
- [Database](#database)
- [Data Volumes](#data-volumes)
- [Environment Variables](#environmentvariables)
- [Quick Start](#quick-start)
- [Persistent Storage](#persistent-storage)
- [Environment Variables](#environment-variables)
- [Base Images used](#base-images-used)
- [General Usage](#general-usage)
- [Administration](#administration)
- [Logging](#logging)
- [Language](#languages-for-writing-aids-spell-checker-grammar-checker-thesaurus-hyphenation)
- [Spell Check](#spell-check)
- [TLS Settings](#tls-settings)
- [Performance and Limits](#performance-and-limits)
- [Files Quarantine](#files-quarantine)
- [DeepL Translation](#deepl-translation)
- [Language Tool](#language-tool)
- [Zotero](#zotero)
- [Cleanup](#cleanup)
- [Other Settings](#other-settings)
- [Adding Custom Fonts](#adding-custom-fonts)
- [Networking](#networking)
- [Maintenance](#maintenance)
- [Shell Access](#shell-access)
- [References](#references)
- [Support](#support)
- [Usage](#usage)
- [Bugfixes](#bugfixes)
- [Feature Requests](#feature-requests)
- [Updates](#updates)
- [License](#license)
# Prerequisites
## Prerequisites and Assumptions
* Assumes you are using some sort of SSL terminating reverse proxy such as:
* [Traefik](https://github.com/tiredofit/docker-traefik)
* [Nginx](https://github.com/jc21/nginx-proxy-manager)
* [Caddy](https://github.com/caddyserver/caddy)
This image assumes that you are using a reverse proxy such as [jwilder/nginx-proxy](https://github.com/jwilder/nginx-proxy) and optionally the [Let's Encrypt Proxy Companion @ https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) in order to serve your pages. However, it will run just fine on it's own if you map appropriate ports.
## Installation
### Build from Source
- Clone this repository and build the image with `docker build <arguments> (imagename) .`
- If you decide to compile this, it will take quite a few hours even on the fastest computer due to the amount of data required to download to compile. At some stages this image will grow to 30GB before shedding most of it for it's final size.
# Installation
Automated builds of the image are available on [Docker Hub](https://hub.docker.com/tiredofit/libreoffice-online) and is the
recommended method of installation.
If you decide to compile this, it will take quite a few hours.
### Prebuilt Images
Builds of the image are available on [Docker Hub](https://hub.docker.com/r/tiredofit/collabora-online) and is the recommended method of installation.
```bash
docker pull tiredofit/libreoffice-online
docker pull tiredofit/collabora-online:(imagetag)
```
The following image tags are available:
The following image tags are available along with their tagged release based on what's written in the [Changelog](CHANGELOG.md):
* `latest` - Collabora Libreoffice 5.3.61 with Collabora Office Online 3.4.2.1
| Collabora Office version | Collabora Online version | Tag |
| ------------------------ | ------------------------ | ---------- |
| `2024` | `24.04.x` | `24.04.xx` |
| `2024` | `24.04.x` | `latest` |
| `2023` | `23.05.x` | `23.05.xx` |
| `2022` | `22.05.x` | `2.4.0` |
| `2021` | `21.11.0` | `2.3.0` |
| `6.4.x` | `6.4.x` | `2.1` |
| `6.4.x` | `6.4.x` | `2.0` |
| `6.0.x` | `4.0.x` | `1.6` |
| `5.3.x` | `3.4.x` | `1.1` |
# Quick Start
#### Multi Architecture
Images are built primarily for `amd64` architecture, and may also include builds for `arm/v7`, `arm64` and others. These variants are all unsupported. Consider [sponsoring](https://github.com/sponsors/tiredofit) my work so that I can work with various hardware. To see if this image supports multiple architecures, type `docker manifest (image):(tag)`
* The quickest way to get started is using [docker-compose](https://docs.docker.com/compose/). See the examples folder for a working [docker-compose.yml](examples/docker-compose.yml) that can be modified for development or production use.
* Set various [environment variables](#environment-variables) to understand the capabilities of this image. A Sample `docker-compose.yml` is provided that will work right out of the box for most people without any fancy optimizations.
## Configuration
### Quick Start
* The quickest way to get started is using [docker-compose](https://docs.docker.com/compose/). See the examples folder for a working [compose.yml](examples/compose.yml) that can be modified for development or production use.
* Set various [environment variables](#environment-variables) to understand the capabilities of this image. A Sample `compose.yml` is provided that will work right out of the box for most people without any fancy optimizations.
* Map [persistent storage](#data-volumes) for access to configuration and data files for backup.
# Configuration
* Make sure you set your hostname e.g. online.example.com when starting your container to make sure the administration console urls are correct.
### Persistent Storage
The following directories should be mapped for persistent storage in order to utilize the container effectively.
| Folder | Description |
|-----------|-------------|
| `/var/log/loolwsd` | Log files
| `/assets/custom` | If you want to update the theme of LibreOffice online, dropping files in here will overwrite /opt/lool/share on startup |
| Folder | Description |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------- |
| `/logs/` | Log files |
| `/assets/custom` | If you want to update the theme of Collabora online, dropping files in here will overwrite /opt/cool/share on startup |
| `/assets/custom-fonts` | (Optional) If you want to include custom truetype fonts, place them in this folder |
| `/assets/custom-scripts` | (Optional) If you want to execute a bash script before the application starts, drop your files here |
| `/etc/coolwsd/certs` | (Optional) If you would like to use your own certificates, map this volume and set appropriate variables |
### Environment Variables
Along with the Environment Variables from the [Base image](https://hub.docker.com/r/tiredofit/debian), below is the complete list of available options that can be used to customize your installation.
#### Base Images used
| Parameter | Description |
|-----------|-------------|
| `ADMIN_USER` | User for accessing Administration Console - Default `admin` |
| `ADMIN_PASS` | Password for accessing Administration Console - Default `libreoffice` |
| `ALLOWED_HOSTS` | Set which domains which can access service - Example: `^(.*)\.example\.org` |
| `DICTIONARIES` | Spell Check Languages - Available `de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru` - Default `en_GB en_US` |
| `LOG_LEVEL` | Log Level - Available `none, fatal, critical, error, warning, notice, information, debug, trace` - Default `warning` |
This image relies on a [Debian Linux](https://hub.docker.com/r/tiredofit/debian) base image that relies on an [init system](https://github.com/just-containers/s6-overlay) for added capabilities. Outgoing SMTP capabilities are handlded via `msmtp`. Individual container performance monitoring is performed by [zabbix-agent](https://zabbix.org). Additional tools include: `bash`,`curl`,`less`,`logrotate`,`nano`,`vim`.
Be sure to view the following repositories to understand all the customizable options:
| Image | Description |
| ------------------------------------------------------ | -------------------------------------- |
| [OS Base](https://github.com/tiredofit/docker-debian/) | Customized Image based on Debian Linux |
#### General Usage
| Parameter | Description | Default |
| -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------- |
| `SETUP_TYPE` | Automatically generate configuration with defaults. Set to `MANUAL` and map the configuration file to use your own | `AUTO` |
| `ALLOWED_HOSTS` | Set which domains which can access service Seperate Multiple with `,` - Example: `https://www.example\.org` (no wildcards) | `` |
| `EXTRA_OPTIONS` | If you want to pass additional arguments upon startup, add it here | `` |
| `INTERFACE` | Web interface type `classic` or `notebookbar` | `notebookbar` |
| `GROUP_DOWNLOAD_AS` | Group Download as Icons into dropdown in notebookbar view | `TRUE` |
| `WATERMARK_OPACITY` | Watermark Opacity | `0.2` |
| `WATERMARK_TEXT` | Text to display for watermark | `` |
| `ENABLE_MACROS` | Enable Macros | `FALSE` |
| `MACRO_SECURITY_LEVEL` | Macro Security Level `1` Medium `0` Low | `1` |
| `ENABLE_METRICS_UNAUTHENTICATED` | Enable Unauthenticated Metrics | `FALSE` |
| `ENABLE_HOME_MODE` | Enable more features with home mode | `FALSE` |
#### Administration
| Parameter | Description | Default | `_FILE` |
| ---------------------- | --------------------------------------------- | ----------------- | ------- |
| `ENABLE_ADMIN_CONSOLE` | Enable Administration Console | `TRUE` | |
| `ADMIN_USER` | User for accessing Administration Console | `admin` | x |
| `ADMIN_PASS` | Password for accessing Administration Console | `collaboraonline` | x |
| `ADMIN_JWT_EXPIRY` | Admin JWT Expiry in seconds | `1800` | |
#### Logging
| Parameter | Description | Default |
| -------------------------------- | ------------------------------------------------------------------------------------------------ | --------------- |
| `LOG_TYPE` | Write Logs to `CONSOLE` or to `FILE` | `CONSOLE` |
| `LOG_LEVEL` | Log Level - Available `none, fatal, critical, error, warning, notice, information, debug, trace` | `warning` |
| `LOG_PATH` | Log Path | `/var/log/cool` |
| `LOG_FILE` | Log File | `cool.log` |
| `ENABLE_DOCUMENT_STATISTICS` | Enable Collecting statistics about documents | `FALSE` |
| `ENABLE_USER_STATISTICS` | Enable collecting statistics about the user working on document | `FALSE` |
| `LOG_ANONYMIZE_SALT` | Salt for anonymizing log data | 8 char random |
| `LOG_ANONYMIZE` | Anonymize File+User information in Logs `TRUE` or `FALSE` | `FALSE` |
| `LOG_CLIENT_CONSOLE` | Log in users browser console | `false` |
| `LOG_COLOURIZE` | Colourize the log entries in console | `true` |
| `LOG_FILE_FLUSH` | Flush Entries on each line to log file | `false` |
| `LOG_LEVEL_CLIENT_LEAST_VERBOSE` | Least verbose log level to ever send to client | `FATAL` |
| `LOG_LEVEL_CLIENT_MOST_VERBOSE` | Most verbose log level to ever send to client | `NOTICE` |
| `LOG_LIBREOFFICE` | Log filter what Libreoffice entries | `-INFO-WARN` |
| `LOG_PROTOCOL` | Log Client Server Protocol | `false` |
#### Languages for writing aids (spell checker, grammar checker, thesaurus, hyphenation)
The image comes with English (US, GB variants) baked into the image, however upon container startup you can add more languages via environment variables.
Add multiple languages by seperating with a space.
| Parameter | Value | Description |
| -------------- | ------- | -------------------------- |
| `LANGUAGE` | `en_GB` | English (Great Britain) |
| | `en_US` | English (US) |
| | `fr_FR` | French (France) |
The above table is just a sample of valid values.
Please note that allowing too many has negative effect on startup performance.
Default value: `en_GB en_US`
#### Spell Check
The image comes with English (US, GB, Canada variants) baked into the image, however upon container startup you can add more spell check variants via environment variables. Add multiple dictionaries by seperating with a comma.
| Parameter | Value | Description |
| -------------- | ------- | ---------------------- |
| `DICTIONARIES` | `af` | Afrikaans |
| | `an` | Aragonese |
| | `ar` | Arabic |
| | `be` | Belarusian |
| | `bg` | Bulgarian |
| | `bn` | Bengali |
| | `br` | Breton |
| | `bs` | Bosnian |
| | `ca` | Catalan |
| | `cs` | Czech |
| | `da` | Danish |
| | `de` | German |
| | `el` | Greek |
| | `en-au` | English (Australia) |
| | `en-za` | English (South Africa) |
| | `es` | Spanish |
| | `fr` | French |
| | `gd` | Gaelic |
| | `he` | Hebrew |
| | `hi` | Hindi |
| | `hu` | Hungarian |
| | `id` | Indonesian |
| | `is` | Icelandic |
| | `it` | Italian |
| | `ko` | Korean |
| | `lo` | Laotian |
| | `lt` | Lithuanian |
| | `lv` | Latvian |
| | `ne` | Nepalese |
| | `nl` | Dutch |
| | `no` | Norwegian |
| | `pl` | Polish |
| | `pt-br` | Portugese (Brazil) |
| | `pt-pt` | Portugese |
| | `ro` | Romanian |
| | `ru` | Russian |
| | `sk` | Slovak |
| | `sr` | Serbian |
| | `sv` | Swedish |
| | `sw` | Kiswahili |
| | `th` | Thai |
| | `tr` | Turkish |
| | `uk` | Ukranian |
| | `vi` | Vietnamese |
Dont forget to add the according languages to the [`LANGUAGE`](#languages-for-writing-aids-spell-checker-grammar-checker-thesaurus-hyphenation) environment variable.
#### TLS Settings
| Parameter | Description | Default |
| -------------------------- | ------------------------------------------------------------------- | -------------------- |
| `ENABLE_TLS` | Enable TLS | `FALSE` |
| `ENABLE_TLS_CERT_GENERATE` | Enable Self Signed Certificate Generation | `TRUE` |
| `ENABLE_TLS_REVERSE_PROXY` | If using a Reverse SSL terminating proxy in front of this container | `TRUE` |
| `TLS_CA_FILENAME` | TLS CA Cert filename with extension | `ca-chain-cert.pem` |
| `TLS_CERT_FILENAME` | TLS Certificate filename with extension | `cert.pem` |
| `TLS_CERT_PATH` | TLS certificates path | `/etc/coolwsd/certs` |
| `TLS_KEY_FILENAME` | TLS Private Key filename with extension | `key.pem` |
#### Performance and Limits
| Parameter | Description | Default |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
| `AUTO_SAVE` | The number of seconds after which document, if modified, should be saved | `300` |
| `BATCH_PRIORITY` | A (lower) priority for use by batch convert to processes to avoid starving interactive ones | `5` |
| `CONNECTION_TIMEOUT` | Connection, Send, Receeive timeout in seconds for connections initiated by coolwsd | `30` |
| `ENABLE_TILES_CACHE` | Enable caching of tiles should document be opened up twice | `TRUE` |
| `FILE_SIZE_LIMIT` | The maximum file size allowed to each document process to write | `0` (unlimited) |
| `IDLE_SAVE` | The number of idle seconds after which document, if modified, should be saved | `30` |
| `IDLE_UNLOAD_TIMEOUT` | The maximum number of seconds before unloading an idle documen | `3600` |
| `MIN_TIME_BETWEEN_SAVES` | Minimum number of milliseconds between saving document on disk | `500` |
| `MIN_TIME_BETWEEN_UPLOADS` | Minimum number of milliseconds between uploading document to storage | `5000` |
| `MAX_CONVERT_LIMIT` | Maximum time in seconds to wait for a convert process to complete | `30` |
| `MAX_FILE_LOAD_LIMIT` | Maximum number of seconds to wait for a document load to succeed | `100` |
| `MAX_OPEN_FILES` | The maximum number of files allowed to each document process to open | `0` (unlimited) |
| `MAX_THREADS_DOCUMENT` | How many threads to use when opening a document | `4` |
| `MEMORY_STACK_LIMIT` | The maximum stack size allowed to each document process | `0` (unlimited) |
| `MEMORY_USAGE_MAX` | Maximum percentage of system memory to be used | `80.0` |
| `MEMORY_VIRT_LIMIT` | Maximum virtual memory allowed to each document process | `0` |
| `PRESPAWN_CHILD_PROCESSES` | Amount of Child processes to start upon container init | `1` |
| `USER_IDLE_TIMEOUT` | The maximum number of seconds before dimming and stopping updates when the user is no longer active (even if the browser is in focus) | `900` |
| `USER_OUT_OF_FOCUS_TIMEOUT` | The maximum number of seconds before dimming and stopping updates when the browser tab is no longer in focus | `60` |
#### Files Quarantine
| Parameter | Description | Default |
| --------------------------------------- | ------------------------------------------------------ | ------------ |
| `ENABLE_FILES_QUARANTINE` | Alllow file quaranting for review of crashed/bad files | `FALSE` |
| `FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT` | Directory size limit in MB | `250` |
| `FILES_QUARANTINE_MAX_VERSIONS` | Hold this many versions in quarantime | `2` |
| `FILES_QUARANTINE_PATH` | Relative path for storing files | `quarantine` |
| `FILES_QUARANTINE_EXPIRY` | Files expiry in minutes | `30` |
#### DeepL Translation
| Parameter | Description | Default | `_FILE` |
| ---------------- | -------------------------------- | ------- | ------- |
| `ENABLE_DEEPL` | Enable DeepL Translation Support | `FALSE` | |
| `DEEPL_API_URL` | DeepL API URL | `` | x |
| `DEEPL_AUTH_KEY` | DeepL Auth Key | `` | x |
#### Language Tool
| Parameter | Description | Default | `_FILE` |
| ----------------------------- | ------------------------------------------------------------------------ | ------- | ------- |
| `ENABLE_LANGUAGE_TOOL` | Enable Language Tool Grammar checking integration | `FALSE` | |
| `LANGUAGE_TOOL_BASE_URL` | Base URL for Language Tool | | x |
| `LANGUAGE_TOOL_USER_NAME` | Language Tool User Name | | x |
| `LANGUAGE_TOOL_API_KEY` | Language Tool provided API Key | | x |
| `LANGUAGE_TOOL_REST_PROTOCOL` | REST protocol. blank for Language Tool `duden` for Duden Korrekturserver | | |
| `LANGUAGE_TOOL_SSL_VERIFY` | SSL Verify | `TRUE` | |
#### Zotero
| Parameter | Description | Default |
| --------------- | ----------------------- | ------- |
| `ENABLE_ZOTERO` | Enable Zotero Citations | `TRUE` |
#### Cleanup
| Parameter | Description | Default |
| ---------------------------- | ------------------------------------------------------------------------------- | ------- |
| `ENABLE_CLEANUP` | Enable Cleanup of documents and processes | `false` |
| `CLEANUP_INTERVAL` | Interval between cleanup checks | `10000` |
| `CLEANUP_BAD_BEHAVIOUR_TIME` | Minimum time period for a document to be in bad state before killing in seconds | `60` |
| `CLEANUP_IDLE_TIME` | Minimum idle time for a document to be candidate for bad state in seconds | `300` |
| `CLEANUP_LIMIT_DIRTY_MEMORY` | Minimum memory usage in MB for a document to be candidate for bad state | `3072` |
| `CLEANUP_LIMIT_CPU_PER` | Minimum CPU usage in percent for a document to be candidate for bad state | `85` |
#### Other Settings
| Parameter | Description | Default |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------- |
| `CHILD_ROOT_PATH` | Child root path | `child-roots` |
| `DOCUMENT_SIGNING_URL` | Endpoint URL of signing server | `` |
| `ENABLE_CAPABILITIES` | Enable Capabilities | `TRUE` |
| `ENABLE_CONFIG_RELOAD` | Enable Reload of coolwsd if config changed in container | `TRUE` |
| `ENABLE_EXPERIMENTAL_FEATURES` | Enable experimental features | `FALSE` |
| `ENABLE_MOUNT_JAIL` | Enable mounting jails | `true` |
| `ENABLE_SECCOMP` | Enable Seccomp | `TRUE` |
| `FILE_SERVER_ROOT_PATH` | Path to directory considered as root | `browser/../` |
| `FRAME_ANCESTORS` | Hosts where interface can be hosted in Iframe | `` |
| `HEXIFY_EMBEDDED_URLS` | Hexify Embedded URLS (useful for Azure deployments) | `FALSE` |
| `INDIRECTION_ENDPOINT` | URL endpoint to server which zervers routeToken in json format | |
| `PDF_RESOLUTION_DPI` | PDF Resolution DPI when rendering PDF documents as image | `96` |
| `REDLINING_AS_COMMENTS` | Show red-lines as comments | `false` |
| `REMOTE_URL` | Remote server to send request to get remote config | |
| `SYS_TEMPLATE_PATH` | System Template Path | `systemplate` |
| `USE_INTEGRATOR_THEME` | Use the remote integrators theme | `TRUE` |
| `VERSION_SUFFIX` | Append this value onto version to break cache when developing. Generates random uuid when using value of `random` | |
#### Adding Custom Fonts
This image comes with some highly opninionated default fonts by the LibreOffice team, and also includes the Microsoft TTF fonts from the late 90s. To add custom fonts into this image, cxport a volume and place them in `/assets/custom-fonts` and they will be inserted upon next container restart.
You can also configure this inside the container with a compatible application.
| Parameter | Description | Default |
| ---------------------- | ------------------------------------------------------------------------ | ------- |
| `REMOTE_FONT_URL` | URL to json font lists to load | |
| `FONTS_MISSING_ACTION` | How to handle fonts missing in a document `report` `log` `both` `ignore` | `log` |
### Networking
The following ports are exposed.
| Port | Description |
|-----------|-------------|
| `9880` | Libreoffice Web Services |
| Port | Description |
| ------ | ---------------------- |
| `9980` | Collabora Web Services |
# Maintenance
#### Shell Access
* * *
## Maintenance
For debugging and maintenance purposes you may want access the containers shell.
### Shell Access
```bash
docker exec -it (whatever your container name is e.g. libreoffice-online) bash
```
For debugging and maintenance purposes you may want access the containers shell.
``bash
docker exec -it (whatever your container name is) bash
``
## Support
These images were built to serve a specific need in a production environment and gradually have had more functionality added based on requests from the community.
### Usage
- The [Discussions board](../../discussions) is a great place for working with the community on tips and tricks of using this image.
- Consider [sponsoring me](https://github.com/sponsors/tiredofit) personalized support.
### Bugfixes
- Please, submit a [Bug Report](issues/new) if something isn't working as expected. I'll do my best to issue a fix in short order.
### Feature Requests
- Feel free to submit a feature request, however there is no guarantee that it will be added, or at what timeline.
- Consider [sponsoring me](https://github.com/sponsors/tiredofit) regarding development of features.
### Updates
- Best effort to track upstream changes, More priority if I am actively using the image in a production environment.
- Consider [sponsoring me](https://github.com/sponsors/tiredofit) for up to date releases.
## License
MIT. See [LICENSE](LICENSE) for more details.
# References
* https://libreoffice.org
* https://www.collaboraoffice.com/collabora-online/

View file

0
build-assets/core/.empty Normal file
View file

View file

39
examples/compose.yml Normal file
View file

@ -0,0 +1,39 @@
services:
collabora-online-app:
image: tiredofit/collabora-online
container_name: collabora-online-app
hostname: online.example.com
cap_add:
- MKNOD
- NET_ADMIN
privileged: true
labels:
- traefik.enable=true
- traefik.http.routers.collabora-online-app.rule=Host(`online.example.com`)
- traefik.http.services.collabora-online-app.loadbalancer.server.port=9980
volumes:
- ./logs:/logs
environment:
- TIMEZONE=America/Vancouver
- CONTAINER_NAME=collabora-online-app
- ADMIN_USER=admin
- ADMIN_PASS=collabora-online
- ALLOWED_HOSTS=host1.example.org,host2.example.org,host1.example.net
- ENABLE_TLS=FALSE
- ENABLE_TLS_REVERSE_PROXY=TRUE
- INTERFACE=notebookbar
- LOG_TYPE=FILE
networks:
- proxy
- services
restart: always
networks:
proxy:
external: true
services:
external: true

View file

@ -1,30 +0,0 @@
libreoffice-app:
image: tiredofit/libreoffice-online
container_name: libreoffice-app
expose:
- 9980
cap_add:
- MKNOD
environment:
- VIRTUAL_HOST=libreoffice.example.com
- VIRTUAL_NETWORK=nginx-proxy
- VIRTUAL_PORT=9980
- VIRTUAL_PROTO=https
- LETSENCRYPT_HOST=libreoffice.example.com
- LETSENCRYPT_EMAIL=techsupport@example.com
- ZABBIX_HOSTNAME=libreoffice-app
- ADMIN_USER=admin
- ADMIN_PASS=libreoffice
- ALLOWED_HOSTS=allowedhostname.example.com
- DICTIONARIES="en_GB en_US"
- LOG_LEVEL=warning
networks:
- proxy-tier
networks:
proxy-tier:
external:
name: nginx-proxy

View file

@ -0,0 +1 @@
0 0 */1 * * root find /var/cache/coolwsd -type f -a -atime +10 -exec rm {} \;

View file

@ -0,0 +1,94 @@
#!/usr/bin/with-contenv bash
ADMIN_JWT_EXPIRY=${ADMIN_JWT_EXPIRY:-"1800"}
ALWAYS_SAVE_ON_EXIT=${ALWAYS_SAVE_ON_EXIT:-"false"}
AUTO_SAVE=${AUTO_SAVE:-300}
BATCH_PRIORITY=${BATCH_PRIORITY:-"5"}
CHILD_ROOT_PATH=${CHILD_ROOT_PATH:-"child-roots"}
CLEANUP_BAD_BEHAVIOUR_TIME=${CLEANUP_BAD_BEHAVIOUR_TIME:-60}
CLEANUP_IDLE_TIME=${CLEANUP_IDLE_TIME:-300}
CLEANUP_INTERVAL=${CLEANUP_INTERVAL:-"10000"}
CLEANUP_LIMIT_CPU_PER=${CLEANUP_LIMIT_CPU_PER:-85}
CLEANUP_LIMIT_DIRTY_MEMORY=${CLEANUP_LIMIT_DIRTY_MEMORY:-3072}
CONNECTION_TIMEOUT=${CONNECTION_TIMEOUT:-30}
DEEPL_API_URL=${DEEPL_API_URL:-""}
DEEPL_AUTH_KEY=${DEEPL_AUTH_KEY:-""}
ENABLE_ADMIN_CONSOLE=${ENABLE_ADMIN_CONSOLE:-"TRUE"}
ENABLE_CAPABILITIES=${ENABLE_CAPABILITIES:-"true"}
ENABLE_CLEANUP=${ENABLE_CLEANUP:-"false"}
ENABLE_CONFIG_RELOAD=${ENABLE_CONFIG_RELOAD:-"TRUE"}
ENABLE_DEEPL=${ENABLE_DEEPL:-"FALSE"}
ENABLE_DOCUMENT_STATISTICS=${ENABLE_DOCUMENT_STATISTICS:-"FALSE"}
ENABLE_EXPERIMENTAL_FEATURES=${ENABLE_EXPERIMENTAL_FEATURES:-"false"}
ENABLE_FILES_QUARANTINE=${ENABLE_FILES_QUARANTINE:-"FALSE"}
ENABLE_HOME_MODE=${ENABLE_HOME_MODE:-"FALSE"}
ENABLE_LANGUAGE_TOOL=${ENABLE_LANGUAGE_TOOL:-"FALSE"}
ENABLE_MACROS=${ENABLE_MACROS:-"FALSE"}
ENABLE_METRICS_UNAUTHENTICATED=${ENABLE_METRICS_UNAUTHENTICATED:-"FALSE"}
ENABLE_MOUNT_JAIL=${ENABLE_MOUNT_JAIL:-"true"}
ENABLE_SECCOMP=${ENABLE_SECCOMP:-"true"}
ENABLE_TILES_CACHE=${ENABLE_TILES_CACHE:-"TRUE"}
ENABLE_TLS=${ENABLE_TLS:-"FALSE"}
ENABLE_TLS_CERT_GENERATE=${ENABLE_TLS_CERT_GENERATE:-"TRUE"}
ENABLE_TLS_REVERSE_PROXY=${ENABLE_TLS_REVERSE_PROXY:-"TRUE"}
ENABLE_USER_STATISTICS=${ENABLE_USER_STATISTICS:-"FALSE"}
ENABLE_ZOTERO=${ENABLE_ZOTERO:-"TRUE"}
FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT=${FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT:-"250"}
FILES_QUARANTINE_EXPIRY=${FILES_QUARANTINE_EXPIRY:-"30"}
FILES_QUARANTINE_MAX_VERSIONS=${FILES_QUARANTINE_MAX_VERSIONS:-"2"}
FILES_QUARANTINE_PATH=${FILES_QUARANTINE_PATH:-"quarantine"}
FILE_SERVER_ROOT_PATH=${FILE_SERVER_ROOT_PATH:-"browser/../"}
FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-0}
FONTS_MISSING_ACTION=${FONTS_MISSING_ACTION:-"log"}
GROUP_DOWNLOAD_AS=${GROUP_DOWNLOAD_AS:-"TRUE"}
HEXIFY_EMBEDDED_URLS=${HEXIFY_EMBEDDED_URLS:-"FALSE"}
IDLE_SAVE=${IDLE_SAVE:-30}
IDLE_UNLOAD_TIMEOUT=${IDLE_UNLOAD_TIMEOUT:-3600}
INDIRECTION_ENDPOINT=${INDIRECTION_ENDPOINT:-""}
INTERFACE=${INTERFACE:-"notebookbar"}
LANGUAGE=${LANGUAGE:-'en_GB en_US'}
LANGUAGE_TOOL_API_KEY=${LANGUAGE_TOOL_API_KEY:-""}
LANGUAGE_TOOL_BASE_URL=${LANGUAGE_TOOL_BASE_URL:-""}
LANGUAGE_TOOL_USER_NAME=${LANGUAGE_TOOL_USER_NAME:-""}
LANGUAGE_TOOL_REST_PROTOCOL=${LANGUAGE_TOOL_REST_PROTOCOL:-""}
LANGUAGE_TOOL_SSL_VERIFY=${LANGUAGE_TOOL_SSL_VERIFY:-"TRUE"}
LOG_ANONYMIZE=${LOG_ANONYMIZE:-"FALSE"}
LOG_ANONYMIZE_SALT=${LOG_ANONYMIZE_SALT:-"$(date +%s%N | cut -b12-19)"}
LOG_CLIENT_CONSOLE=${LOG_CLIENT_CONSOLE:-"false"}
LOG_COLOURIZE=${LOG_COLOURIZE:-"true"}
LOG_FILE=${LOG_FILE:-"cool.log"}
LOG_FILE_FLUSH=${LOG_FILE_FLUSH:-"false"}
LOG_LEVEL=${LOG_LEVEL:-"warning"}
LOG_LEVEL_CLIENT_LEAST_VERBOSE=${LOG_LEVEL_CLIENT_LEAST_VERBOSE:-"FATAL"}
LOG_LEVEL_CLIENT_MOST_VERBOSE=${LOG_LEVEL_CLIENT_MOST_VERBOSE:-"NOTICE"}
LOG_LIBREOFFICE=${LOG_LIBREOFFICE:-"-INFO-WARN"}
LOG_PROTOCOL=${LOG_PROTOCOL:-"FALSE"}
LOG_PATH=${LOG_PATH:-"/logs/"}
LOG_TYPE=${LOG_TYPE:-"CONSOLE"}
MACRO_SECURITY_LEVEL=${MACRO_SECURITY_LEVEL:-"1"}
MAX_CONVERT_LIMIT=${MAX_CONVERT_LIMIT:-100}
MAX_FILE_LOAD_LIMIT=${MAX_FILE_LOAD_LIMIT:-100}
MAX_OPEN_FILES=${MAX_OPEN_FILES:-0}
MAX_THREADS_DOCUMENT=${MAX_THREADS_DOCUMENT:-4}
MIN_TIME_BETWEEN_SAVES=${MIN_TIME_BETWEEN_SAVES:-"500"}
MIN_TIME_BETWEEN_UPLOADS=${MIN_TIME_BETWEEN_UPLOADS:-"5000"}
MEMORY_STACK_LIMIT=${MEMORY_STACK_LIMIT:-8000}
MEMORY_USAGE_MAX=${MEMORY_USAGE_MAX:-"80.0"}
MEMORY_VIRT_LIMIT=${MEMORY_VIRT_LIMIT:-0}
PATH_PREFIX=${PATH_PREFIX:-"/opt/cool/"}
PDF_RESOLUTION_DPI=${PDF_RESOLUTION_DPI:-"96"}
PRESPAWN_CHILD_PROCESSES=${PRESPAWN_CHILD_PROCESSES:-1}
REDLINING_AS_COMMENTS=${REDLINING_AS_COMMENTS:-"false"}
REMOTE_FONT_URL=${REMOTE_FONT_URL:-""}
SETUP_TYPE=${SETUP_TYPE:-"AUTO"}
SYS_TEMPLATE_PATH=${SYS_TEMPLATE_PATH:-"systemplate"}
TLS_CA_FILENAME=${TLS_CA_FILENAME:-"ca-chain.cert.pem"}
TLS_CERT_FILENAME=${TLS_CERT_FILENAME:-"cert.pem"}
TLS_CERT_PATH=${TLS_CERT_PATH:-"/etc/coolwsd/certs"}
TLS_KEY_FILENAME=${TLS_KEY_FILENAME:-"key.pem"}
USER_IDLE_TIMEOUT=${USER_IDLE_TIMEOUT:-3600}
USER_OUT_OF_FOCUS_TIMEOUT=${USER_OUT_OF_FOCUS_TIMEOUT:-60}
USE_INTEGRATOR_THEME=${USE_INTEGRATOR_THEME:-"TRUE"}
WATERMARK_OPACITY=${WATERMARK_OPACITY:-"0.2"}
if [ "${VERSION_SUFFIX,,}" = "random" ] ; then VERSION_SUFFIX="$(cat /proc/sys/kernel/random)" ; fi ;

View file

@ -0,0 +1,6 @@
#!/usr/bin/with-contenv bash
set_config() {
print_debug "Setting: '${1}' with value: '${2}'"
/opt/cool/bin/coolconfig set ${1} ""${2}""
}

View file

@ -0,0 +1,332 @@
#!/usr/bin/with-contenv bash
source /assets/functions/00-container
prepare_service single
prepare_service 03-monitoring
PROCESS_NAME="collabora-online"
transform_file_var \
ADMIN_USER \
ADMIN_PASS \
DEEPL_API_URL \
DEEPL_AUTH_KEY \
LANGUAGE_TOOL_USER_NAME \
LANGUAGE_TOOL_REST_PROTOCOL
sanity_var "ALLOWED_HOSTS" "Allowed Hostnames"
print_debug "Creating directories and setting up logging"
mkdir -p "${LOG_PATH}"
touch "${LOG_PATH}"/"${LOG_FILE}"
chown -R cool "${LOG_PATH}"
print_debug "Setting up DNS Resolution"
rm /opt/cool/systemplate/etc/resolv.conf
cp /etc/hosts /opt/cool/systemplate/etc/
cp /etc/resolv.conf /opt/cool/systemplate/etc/
## Custom Dictionary Support
if [ -n "${DICTIONARIES}" ]; then
langs=$(echo "${DICTIONARIES}" | tr "," "\n")
print_notice "Setting up custom dictionary support - Please wait.."
silent apt-get update
for lang in $langs
do
print_notice "Adding dictionary for '${lang}' - Please wait.."
case "${lang}" in
"de" )
silent apt-get install -y hunspell-de-de
cp -R /usr/share/hunspell/de*.{aff,dic} /opt/libreoffice/share/extensions/dict-de/
;;
"en-au" )
silent apt-get install -y hunspell-en-au
cp -R /usr/share/hunspell/en*.{aff,dic} /opt/libreoffice/share/extensions/dict-en/
;;
"en-za" )
silent apt-get install -y hunspell-en-za
cp -R /usr/share/hunspell/en*.{aff,dic} /opt/libreoffice/share/extensions/dict-en/
;;
"pt-br" )
silent apt-get install -y hunspell-pt-br
cp -R /usr/share/hunspell/pt*.{aff,dic} /opt/libreoffice/share/extensions/dict-pt-BR/
;;
"pt-pt" )
silent apt-get install -y hunspell-pt-pt
cp -R /usr/share/hunspell/pt*.{aff,dic} /opt/libreoffice/share/extensions/dict-pt-PT/
;;
* )
silent apt-get install -y hunspell-"${lang}"
cp -R /usr/share/hunspell/"${lang}"*.{aff,dic} /opt/libreoffice/share/extensions/dict-"${lang}"/
;;
esac
done
silent apt-get clean
rm -rf /var/lib/apt/lists/*
chown -R cool. /opt/libreoffice/share/extensions/*
rm -rf /opt/cool/systemplate/*
silent sudo -u cool /opt/cool/bin/coolwsd-systemplate-setup /opt/cool/systemplate /opt/libreoffice
fi
custom_files "${CONTAINER_CUSTOM_PATH}" /opt/cool/share/ cool cool
custom_scripts
### Load Custom Fonts
if [ -d /assets/custom-fonts/ ] ; then
print_warn "Found Custom Fonts to insert"
chown -R cool /assets/custom-fonts
chmod +rx /assets/custom-fonts
ln -s /assets/custom-fonts /usr/share/fonts/truetype/custom
silent fc-cache -f -v
silent sudo -i cool fc-cache -f -v
rm -rf /opt/cool/systemplate/*
silent sudo -u cool /opt/cool/bin/coolwsd-systemplate-setup /opt/cool/systemplate /opt/libreoffice
fi
if var_true "${ENABLE_TLS}" ; then
print_debug "TLS Enabled"
if [ ! -d "${TLS_CERT_PATH}" ] || [ ! -f "${TLS_KEY_FILENAME}" ] || [ ! -f "${TLS_CA_FILENAME}" ] || [ ! -f "${TLS_CERT_FILENAME}" ] ; then
print_debug "No TLS Certificates found"
if var_true "${ENABLE_TLS_CERT_GENERATE}" ; then
print_debug "TLS Certificate Autogeneration"
mkdir -p "$TLS_CERT_PATH"
# Generate new SSL certificate instead of using the default
print_notice "Auto Generating Self Signed Certificates"
mkdir -p /tmp/ssl/
cd /tmp/ssl/
mkdir -p certs/ca
silent openssl genrsa -out certs/ca/root.key.pem 2048
silent openssl req -x509 -new -nodes -key certs/ca/root.key.pem -days 9131 -out certs/ca/root.crt.pem -subj "/C=XX/ST=XX/L=XX/O=Dummy
Authority/CN=Dummy Authority"
mkdir -p certs/{servers,tmp}
mkdir -p "certs/servers/localhost"
silent openssl genrsa -out "certs/servers/localhost/privkey.pem" 2048
if test "${cert_domain-set}" == set; then
silent openssl req -key "certs/servers/localhost/privkey.pem" -new -sha256 -out "certs/tmp/localhost.csr.pem" -subj "/C=XX/ST=XX/L=XX/O=Dummy Authority/CN=localhost"
else
silent openssl req -key "certs/servers/localhost/privkey.pem" -new -sha256 -out "certs/tmp/localhost.csr.pem" -subj "/C=XX/ST=XX/L=XX/O=Dummy Authority/CN=${cert_domain}"
fi
silent openssl x509 -req -in "certs/tmp/localhost.csr.pem" -CA "certs/ca/root.crt.pem" -CAkey "certs/ca/root.key.pem" -CAcreateserial -out "certs/servers/localhost/cert.pem" -days 9131
cp -R certs/servers/localhost/privkey.pem "${TLS_CERT_PATH}"/"${TLS_KEY_FILENAME}"
cp -R certs/servers/localhost/cert.pem "${TLS_CERT_PATH}"/"${TLS_CERT_FILENAME}"
cp -R certs/ca/root.crt.pem "${TLS_CERT_PATH}"/"${TLS_CA_FILENAME}"
rm -rf /tmp/ssl
chown -R cool "${TLS_CERT_PATH}"
else
if [ ! -f "${TLS_CERT_PATH}"/"${TLS_KEY_FILENAME}" ] || [ ! -f "${TLS_CERT_PATH}"/"${TLS_CA_FILENAME}" ] || [ ! -f "${TLS_CERT_PATH}"/"${TLS_CERT_FILENAME}" ] ; then
print_error "TLS Certificates missing... Please switch to autogenerate mode, or place your certifcates in the correct location."
exit 1
fi
fi
fi
fi
if [ "${SETUP_TYPE,,}" = "auto" ]; then
print_notice "Autogenerating Configuration File"
### Replace Configuration directives
sed -i -e "s|<allowed_languages \(.*\)>.*</allowed_languages>|<allowed_languages \1>${LANGUAGE}</allowed_languages>|g" /etc/coolwsd/coolwsd.xml
## Language Tool
sed -i \
-e "s|<enabled desc=\"Enable Remote Spell and Grammar Checker\"\(.*\)>.*</enabled>|<enabled desc=\"Enable Remote Spell and Grammar Checker\"\1>${ENABLE_LANGUAGE_TOOL,,}</enabled>|g" \
-e "s|<base_url desc=\"Http endpoint for the API server\(.*\)>.*<\/base_url>|<base_url desc=\"Http endpointfor the API server\1>${LANGUAGE_TOOL_BASE_URL}<\/base_url>|g" \
-e "s|<user_name desc=\"Lan\(.*\)>.*<\/user_name>|<user_name desc=\"Lan\1>${LANGUAGE_TOOL_USER_NAME}<\/user_name>|g" \
-e "s|<api_key desc=\"API key provided by Lan\(.*\)>.*<\/api_key>|<api_key desc=\"API key provided by Lan\1>${LANGUAGE_TOOL_API_KEY}<\/api_key>|g" \
-e "s|<ssl_verification desc=\"Enable or disable SSL\(.*\)>.*<\/ssl_verification>|<ssl_verification desc=\"Enable or disable SSL\1>${LANGUAGE_TOOL_SSL_VERIFY,,}<\/ssl_verification>|g" \
-e "s|<rest_protocol desc=\"REST API protocol\(.*\)>.*<\/rest_protocol>|<rest_protocol desc=\"REST API protocol\1>${LANGUAGE_TOOL_REST_PROTOCOL,,}<\/rest_protocol>|g" \
/etc/coolwsd/coolwsd.xml
## DeepL
sed -i \
-e "s|<enabled desc=\"If true, shows translate option as a menu\(.*\)>.*</enabled>|<enabled desc=\"If true, shows translate option as a menu\1>${ENABLE_DEEPL,,}</enabled>|g" \
-e "s|<api_url desc=\"URL for the API\"\(.*\)>.*<\/api_url>|<api_url desc=\"URL for the API\"\1>${DEEPL_API_URL}<\/api_url>|g" \
-e "s|<auth_key desc=\"Auth Key generated by your account\"\(.*\)>.*<\/auth_key>|<auth_key desc=\"Auth Key generated by your account\"\1>${DEEPL_AUTH_KEY}<\/auth_key>|g" \
/etc/coolwsd/coolwsd.xml
sed -i -e "s|<sys_template_path \(.*\)>.*</sys_template_path>|<sys_template_path \1>${SYS_TEMPLATE_PATH}</sys_template_path>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<child_root_path \(.*\)>.*</child_root_path>|<child_root_path \1>${CHILD_ROOT_PATH}</child_root_path>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<mount_jail_tree \(.*\)>.*</mount_jail_tree>|<mount_jail_tree \1>${ENABLE_MOUNT_JAIL,,}</mount_jail_tree>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<server_name \(.*\)>.*</server_name>|<server_name \1>${HOSTNAME}</server_name>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<file_server_root_path \(.*\)>.*</file_server_root_path>|<file_server_root_path \1>${FILE_SERVER_ROOT_PATH}</file_server_root_path>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<hexify_embedded_urls \(.*\)>.*<\/hexify_embedded_urls>|<hexify_embedded_urls \1>${HEXIFY_EMBEDDED_URLS,,}<\/hexify_embedded_urls>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<experimental_features \(.*\)>.*<\/experimental_features>|<experimental_features \1>${ENABLE_EXPERIMENTAL_FEATURES,,}<\/experimental_features>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<memproportion \(.*\)>.*</memproportion>|<memproportion \1>${MEMORY_USAGE_MAX}</memproportion>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<num_prespawn_children \(.*\)>.*</num_prespawn_children>|<num_prespawn_children \1>${PRESPAWN_CHILD_PROCESSES}</num_prespawn_children>|" /etc/coolwsd/coolwsd.xml
## Per Document
sed -i \
-e "s|<max_concurrency \(.*\)>.*<\/max_concurrency>|<max_concurrency \1>${MAX_THREADS_DOCUMENT}<\/max_concurrency>|" \
-e "s|<batch_priority \(.*\)>.*<\/batch_priority>|<batch_priority \1>${BATCH_PRIORITY}<\/batch_priority>|" \
-e "s|<document_signing_url \(.*\)>.*<\/document_signing_url>|<document_signing_url \1>${DOCUMENT_SIGNING_URL}<\/document_signing_url>|" \
-e "s|<redlining_as_comments \(.*\)>.*<\/redlining_as_comments>|<redlining_as_comments \1>${REDLINING_AS_COMMENTS}<\/redlining_as_comments>|" \
-e "s|<pdf_resolution_dpi \(.*\)>.*<\/pdf_resolution_dpi>|<pdf_resolution_dpi \1>${PDF_RESOLUTION_DPI}<\/pdf_resolution_dpi>|" \
-e "s|<idle_timeout_secs \(.*\)>.*<\/idle_timeout_secs>|<idle_timeout_secs \1>${IDLE_UNLOAD_TIMEOUT}<\/idle_timeout_secs>|" \
-e "s|<idlesave_duration_secs \(.*\)>.*<\/idlesave_duration_secs>|<idlesave_duration_secs \1>${IDLE_SAVE}<\/idlesave_duration_secs>|" \
-e "s|<autosave_duration_secs \(.*\)>.*<\/autosave_duration_secs>|<autosave_duration_secs \1>${AUTO_SAVE}<\/autosave_duration_secs>|" \
-e "s|<always_save_on_exit \(.*\)>.*<\/always_save_on_exit>|<always_save_on_exit \1>${ALWAYS_SAVE_ON_EXIT}<\/always_save_on_exit>|" \
-e "s|<limit_virt_mem_mb \(.*\)>.*<\/limit_virt_mem_mb>|<limit_virt_mem_mb \1>${MEMORY_VIRT_LIMIT}<\/limit_virt_mem_mb>|" \
-e "s|<limit_stack_mem_kb \(.*\)>.*<\/limit_stack_mem_kb>|<limit_stack_mem_kb \1>${MEMORY_STACK_LIMIT}<\/limit_stack_mem_kb>|" \
-e "s|<limit_file_size_mb \(.*\)>.*<\/limit_file_size_mb>|<limit_file_size_mb \1>${FILE_SIZE_LIMIT}<\/limit_file_size_mb>|" \
-e "s|<limit_num_open_files \(.*\)>.*<\/limit_num_open_files>|<limit_num_open_files \1>${MAX_OPEN_FILES}<\/limit_num_open_files>|" \
-e "s|<limit_load_secs \(.*\)>.*<\/limit_load_secs>|<limit_load_secs \1>${MAX_FILE_LOAD_LIMIT}<\/limit_load_secs>|" \
-e "s|<limit_convert_secs \(.*\)>.*<\/limit_convert_secs>|<limit_convert_secs \1>${MAX_CONVERT_LIMIT}<\/limit_convert_secs>|" \
-e "s|<min_time_between_saves_ms \(.*\)>.*<\/min_time_between_saves_ms>|<min_time_between_saves_ms \1>${MIN_TIME_BETWEEN_SAVES}<\/min_time_between_saves_ms>|" \
-e "s|<min_time_between_uploads_ms \(.*\)>.*<\/min_time_between_uploads_ms>|<min_time_between_uploads_ms \1>${MIN_TIME_BETWEEN_UPLOADS}<\/min_time_between_uploads_ms>|" \
/etc/coolwsd/coolwsd.xml
## Cleanup
sed -i \
-e "s|<cleanup desc=\(.*\)>.*>|<cleanup desc=\1>${ENABLE_CLEANUP},,>|" \
-e "s|<cleanup_interval_ms \(.*\)>.*<\/cleanup_interval_ms>|<cleanup_interval_ms \1>${CLEANUP_INTERVAL}<\/cleanup_interval_ms>|" \
-e "s|<bad_behavior_period_secs \(.*\)>.*<\/bad_behavior_period_secs>|<bad_behavior_period_secs \1>${CLEANUP_BAD_BEHAVIOUR_TIME}<\/bad_behavior_period_secs>|" \
-e "s|<idle_time_secs \(.*\)>.*<\/<idle_time_secs>|<<idle_time_secs \1>${CLEANUP_IDLE_TIME}<\/<idle_time_secs>|" \
-e "s|<limit_dirty_mem_mb \(.*\)>.*<\/limit_dirty_mem_mb>|<limit_dirty_mem_mb \1>${CLEANUP_LIMIT_DIRTY_MEMORY}<\/limit_dirty_mem_mb>|" \
-e "s|<limit_cpu_per \(.*\)>.*<\/limit_cpu_per>|<limit_cpu_per \1>${CLEANUP_LIMIT_CPU_PER}<\/limit_cpu_per>|" \
/etc/coolwsd/coolwsd.xml
## Per View Settings
sed -i \
-e "s|<group_download_as \(.*\)>.*<\/group_download_as>|<group_download_as \1>${GROUP_DOWNLOAD_AS,,}<\/group_download_as>|" \
-e "s|<out_of_focus_timeout_secs \(.*\)>.*<\/out_of_focus_timeout_secs>|<out_of_focus_timeout_secs \1>${USER_OUT_OF_FOCUS_TIMEOUT}<\/out_of_focus_timeout_secs>|" \
-e "s|<idle_timeout_secs \(.*\)>.*<\/idle_timeout_secs>|<idle_timeout_secs \1>${USER_IDLE_TIMEOUT}<\/idle_timeout_secs>|" \
/etc/coolwsd/coolwsd.xml
sed -i -e "s|<ver_suffix \(.*\)>.*<\/ver_suffix>|<ver_suffix \1>${VERSION_SUFFIX}<\/ver_suffix>|" /etc/coolwsd/coolwsd.xml
## Logging
sed -i \
-e "s|<color \(.*\)>.*<\/color>|<color \1>${LOG_COLOURIZE}<\/color>|" \
-e "s|<level \(.*\)>.*<\/level>|<level \1>${LOG_LEVEL,,}<\/level>|" \
-e "s|<protocol \(.*\)>.*<\/protocol>|<protocol \1>${LOG_CLIENT_CONSOLE}<\/protocol>|" \
-e "s|<lokit_sal_log \(.*\)>.*<\/lokit_sal_log>|<lokit_sal_log \1>${LOG_LIBREOFFICE}<\/lokit_sal_log>|" \
-e "s|<browser_logging \(.*\)>.*<\/browser_logging>|<browser_logging \1>${LOG_CLIENT_CONSOLE}<\/browser_logging>|" \
-e "s|<protocol \(.*\)>.*<\/protocol>|<protocol \1>${LOG_PROTOCOL,,}<\/protocol>|" \
-e "s|<most_verbose_level_settable_from_client \(.*\)>.*<\/most_verbose_level_settable_from_client>|<most_verbose_level_settable_from_client \1>${LOG_LEVEL_CLIENT_MOST_VERBOSE}<\/most_verbose_level_settable_from_client>|" \
-e "s|<least_verbose_level_settable_from_client \(.*\)>.*<\/least_verbose_level_settable_from_client>|<least_verbose_level_settable_from_client \1>${LOG_LEVEL_CLIENT_LEAST_VERBOSE}<\/least_verbose_level_settable_from_client>|" \
/etc/coolwsd/coolwsd.xml
if [ "${LOG_TYPE,,}" = "file" ]; then
sed -i \
-e "s|<file enable=\"false\"|<file enable=\"true\"|" \
-e "s|<property name=\"path\"\(.*\)>.*<\/property>|<property name=\"path\" \1>${LOG_PATH}/${LOG_FILE}<\/property>|" \
-e "s|<property name=\"flush\"\(.*\)>.*<\/property>|<property name=\"flush\" \1>${LOG_FILE_FLUSH}<\/property>|" \
-e "s|<property name=\"rotateOnOpen\"\(.*\)>.*<\/property>|<property name=\"rotateOnOpen\" \1>false<\/property>|" \
/etc/coolwsd/coolwsd.xml
create_logrotate cool "${LOG_PATH}"/"${LOG_FILE}" none cool cool
else
print_debug "Log: Console"
fi
if var_true "${LOG_ANONYMIZE}"; then
sed -i \
-e "s|<anonymize_user_data \(.*\)>.*<\/anonymize_user_data>|<anonymize_user_data \1>${LOG_ANONYMIZE}<\/anonymize_user_data>|" \
-e "s|<anonymization_salt \(.*\)>.*<\/anonymization_salt>|<anonymization_salt \1>${LOG_ANONYMIZE_SALT}<\/anonymization_salt>|" \
/etc/coolwsd/coolwsd.xml
fi
sed -i -e "s|<docstats \(.*\)>.*<\/docstats>|<docstats \1>${ENABLE_DOCUMENT_STATISTICS,,}<\/docstats>|" /etc/coolwsd/coolwsd.xml
sed -i -e "s|<userstats \(.*\)>.*<\/userstats>|<userstats \1>${ENABLE_USER_STATISTICS,,}<\/userstats>|" /etc/coolwsd/coolwsd.xml
## Network
### Allowed Hosts
sed -i -e 's|<alias_groups \(.*\) mode=.*>|<alias_groups \1 mode="groups">|' /etc/coolwsd/coolwsd.xml
allowed_hosts=$(echo "${ALLOWED_HOSTS}" | tr "," "\n")
for host in $allowed_hosts; do
print_info "Adding Allowed Host: ${host}"
sed -i "/<alias_groups .*>/a \ <group><host desc=\"hostname to allow or deny.\" allow=\"true\">${host}</host></group>" /etc/coolwsd/coolwsd.xml
done
sed -i \
-e "s|<frame_ancestors \(.*\)>.*<\/frame_ancestors>|<frame_ancestors \1>${FRAME_ANCESTORS}<\/frame_ancestors>|" \
-e "s|<connection_timeout \(.*\)>.*<\/connection_timeout>|<connection_timeout \1>${CONNECTION_TIMEOUT}<\/connection_timeout>|" \
/etc/coolwsd/coolwsd.xml
## SSL
if var_false "${ENABLE_TLS}" ; then
sed -i -E "s|<enable type=\"bool\" desc=\"Controls(.*)>.*<\/enable>|<enable type=\"bool\" desc=\"Controls\1>false<\/enable>|" /etc/coolwsd/coolwsd.xml
fi
if var_true "${ENABLE_TLS_REVERSE_PROXY}" ; then
sed -i -e "s|<termination \(.*\)>.*<\/termination>|<termination \1>true<\/termination>|" /etc/coolwsd/coolwsd.xml
else
sed -i -e "s|<termination \(.*\)>.*<\/termination>|<termination \1>false<\/termination>|" /etc/coolwsd/coolwsd.xml
fi
sed -i \
-e "s|<ca_file_path \(.*\) relative=\"false\">.*<\/ca_file_path>|<ca_file_path \1 relative=\"false\">${TLS_CERT_PATH}/${TLS_CA_FILENAME}<\/ca_file_path>|" \
-e "s|<cert_file_path \(.*\) relative=\"false\">.*<\/cert_file_path>|<cert_file_path \1 relative=\"false\">${TLS_CERT_PATH}/${TLS_CERT_FILENAME}<\/cert_file_path>|" \
-e "s|<key_file_path \(.*\) relative=\"false\">.*<\/key_file_path>|<key_file_path \1 relative=\"false\">${TLS_CERT_PATH}/${TLS_KEY_FILENAME}<\/key_file_path>|" \
/etc/coolwsd/coolwsd.xml
## Security
sed -i \
-e "s|<seccomp \(.*\)>.*<\/seccomp>|<seccomp \1>${ENABLE_SECCOMP,,}<\/seccomp>|" \
-e "s|<capabilities \(.*\)>.*<\/capabilities>|<capabilities \1>${ENABLE_CAPABILITIES,,}<\/capabilities>|" \
-e "s|<jwt_expiry_secs \(.*\)>.*<\/jwt_expiry_secs>|<jwt_expiry_secs \1>${ADMIN_JWT_EXPIRY}<\/jwt_expiry_secs>|" \
-e "s|<enable_macros_execution \(.*\)>.*<\/enable_macros_execution>|<enable_macros_execution \1>${ENABLE_MACROS,,}<\/enable_macros_execution>|" \
-e "s|<macro_security_level \(.*\)>.*<\/macro_security_level>|<macro_security_level \1>${MACRO_SECURITY_LEVEL}<\/macro_security_level>|" \
-e "s|<enable_metrics_unauthenticated \(.*\)>.*<\/enable_metrics_unauthenticated>|<enable_metrics_unauthenticated \1>${ENABLE_METRICS_UNAUTHENTICATED,,}<\/enable_metrics_unauthenticated>|" \
/etc/coolwsd/coolwsd.xml
## Watermark
sed -i \
-e "s|<opacity \(.*\)>.*<\/opacity>|<opacity \1>${WATERMARK_OPACITY}<\/opacity>|" \
-e "s|<text \(.*\)>.*<\/text>|<text \1>${WATERMARK_TEXT}<\/text>|" \
/etc/coolwsd/coolwsd.xml
## User Interface
sed -i \
-e "s|<mode \(.*\)>.*<\/mode>|<mode \1>${INTERFACE}<\/mode>|" \
-e "s|<use_integration_theme \(.*\)>.*<\/use_integration_theme>|<use_integration_theme \1>${USE_INTEGRATOR_THEME,,}<\/use_integration_theme>|" \
/etc/coolwsd/coolwsd.xml
sed -i -e "s|<tile_cache_persistent \(.*\)>.*<\/tile_cache_persistent>|<tile_cache_persistent \1>${ENABLE_TILES_CACHE,,}<\/tile_cache_persistent>|" /etc/coolwsd/coolwsd.xml
## Admin Console
sed -i \
-e "s|<enable desc=\(.*\)>.*<\/enable>|<enable desc=\1>${ENABLE_ADMIN_CONSOLE,,}<\/enable>|" \
-e "s|<username \(.*\)>.*<\/username>|<username \1>${ADMIN_USER}<\/username>|" \
-e "s|<password \(.*\)>.*<\/password>|<password \1>${ADMIN_PASS}<\/password>|" \
/etc/coolwsd/coolwsd.xml
## Quarantine Files
sed -i \
-e "s|<quarantine_files \(.*\) enable\".*\">|<quarantine_files \1> enable=\"${ENABLE_FILES_QUARANTINE,,}\">|" \
-e "s|<limit_dir_size_mb \(.*\)>.*<\/limit_dir_size_mb>|<limit_dir_size_mb \1>${FILES_QUARANTINE_DIRECTORY_SIZE_LIMIT}<\/limit_dir_size_mb>|" \
-e "s|<path desc=\"Path to directory\(.*\)>.*<\/path>|<path desc=\"Path to directory\1>${FILES_QUARANTINE_PATH}<\/path>|" \
-e "s|<max_versions_to_maintain \(.*\)>.*<\/max_versions_to_maintain>|<max_versions_to_maintain \1>${FILES_QUARANTINE_MAX_VERSIONS}<\/max_versions_to_maintain>|" \
-e "s|<expiry_min \(.*\)>.*<\/expiry_min>|<expiry_min \1>${FILES_QUARANTINE_EXPIRY}<\/expiry_min>|" \
/etc/coolwsd/coolwsd.xml
## Remote Config
sed -i -e "s|<remote_url desc=\(.*\)>.*<\/remote_url>|<remote_url desc=\1>${REMOTE_URL}<\/remote_url>|" /etc/coolwsd/coolwsd.xml
## Remote Fonts
sed -i -e "s|<url desc=\"URL of optional JSON\(.*\)>.*<\/url>|<url desc=\"URL of optional JSON\1>${REMOTE_FONT_URL}<\/url>|" /etc/coolwsd/coolwsd.xml
## Home Mode
sed -i -e "s|<enable desc=\"Enable more configuration options for home users\(.*\)>.*<\/enable>|<enable desc=\"Enable more configuration options for home users\1>${ENABLE_HOME_MODE,,}<\/enable>|g" /etc/coolwsd/coolwsd.xml
## Fonts Missing
sed -i -e "s|<handling desc=\(.*\)>.*<\/handling>|<handling desc=\1>${FONTS_MISSING_ACTION}<\/handling>|" /etc/coolwsd/coolwsd.xml
## Indirection Endpoint
sed -i -e "s|<url desc=\"URL endpoint to server which servers routeToken in\(.*\)>.*<\/url>|<url desc=\"URL endpoint to server which servers routeToken in\1>${INDIRECTION_ENDPOINT}<\/url>|" /etc/coolwsd/coolwsd.xml
## Zotero
sed -i -e "s|<enable .*=\"Enable Zotero Plugin\(.*\)>.*<\/url>|<enable desc=\"Enable Zotero Plugin\1>${ENABLE_ZOTERO}<\/enable>|" /etc/coolwsd/coolwsd.xml
fi
# Generate WOPI proof key
if [ ! -f /etc/coolwsd/proof_key.pub ]; then
silent /opt/cool/bin/coolwsd-generate-proof-key
fi
# Enable Config Reload (Restart when /etc/coolwsd/coolwsd.xml changes)
if var_false "${ENABLE_CONFIG_RELOAD}" ; then
print_debug "Disabling Automatic Configuration Reloader"
rm -rf /etc/services.available/11-inotify
fi
print_info "Container Initialization Complete"
liftoff

View file

@ -1,57 +0,0 @@
#!/usr/bin/with-contenv bash
### Set Debug Mode
if [ "$DEBUG_MODE" = "TRUE" ] || [ "$DEBUG_MODE" = "true" ]; then
set -x
fi
echo "** [libreoffice-online] Setting configuration"
mkdir -p /var/log/lool
touch /var/log/lool/loolwsd.log
chown -R lool /var/log/lool
rm /opt/lool/systemplate/etc/resolv.conf
ln -s /etc/resolv.conf /opt/lool/systemplate/etc/resolv.conf
### Custom File Support
if [ -d /assets/custom ] ; then
echo "** [libreoffice-online] Custom Files Found, Copying over top of Master.."
cp -R /assets/custom/* /opt/lool/share/
chown -R lool. /opt/lool/share/
fi
if test "${DONT_GEN_SSL_CERT-set}" == set; then
# Generate new SSL certificate instead of using the default
mkdir -p /tmp/ssl/
cd /tmp/ssl/
mkdir -p certs/ca
openssl genrsa -out certs/ca/root.key.pem 2048
openssl req -x509 -new -nodes -key certs/ca/root.key.pem -days 9131 -out certs/ca/root.crt.pem -subj "/C=XX/ST=XX/L=XX/O=Dummy
Authority/CN=Dummy Authority"
mkdir -p certs/{servers,tmp}
mkdir -p "certs/servers/localhost"
openssl genrsa -out "certs/servers/localhost/privkey.pem" 2048 -key "certs/servers/localhost/privkey.pem"
if test "${cert_domain-set}" == set; then
openssl req -key "certs/servers/localhost/privkey.pem" -new -sha256 -out "certs/tmp/localhost.csr.pem" -subj "/C=XX/ST=XX/L=XX/O=Dummy Authority/CN=localhost"
else
openssl req -key "certs/servers/localhost/privkey.pem" -new -sha256 -out "certs/tmp/localhost.csr.pem" -subj "/C=XX/ST=XX/L=XX/O=Dummy Authority/CN=${cert_domain}"
fi
openssl x509 -req -in certs/tmp/localhost.csr.pem -CA certs/ca/root.crt.pem -CAkey certs/ca/root.key.pem -CAcreateserial -out certs/servers/localhost/cert.pem -days 9131
mv certs/servers/localhost/privkey.pem /etc/loolwsd/key.pem
mv certs/servers/localhost/cert.pem /etc/loolwsd/cert.pem
mv certs/ca/root.crt.pem /etc/loolwsd/ca-chain.cert.pem
rm -rf /tmp/ssl
fi
# Replace Configureation directives
perl -pi -e "s/<allowed_languages (.*)>.*<\/allowed_languages>/<allowed_languages \1>${DICTIONARIES}<\/allowed_languages>/" /etc/loolwsd/loolwsd.xml
perl -pi -e "s/<level (.*)>.*<\/level>/<level \1>${LOG_LEVEL}<\/level>/" /etc/loolwsd/loolwsd.xml
perl -pi -e "s/localhost<\/host>/${ALLOWED_HOSTS}<\/host>/g" /etc/loolwsd/loolwsd.xml
perl -pi -e "s/localhost<\/host>/${ALLOWED_HOSTS}<\/host>/g" /etc/loolwsd/loolwsd.xml
perl -pi -e "s/<username (.*)>.*<\/username>/<username \1>${ADMIN_USER}<\/username>/" /etc/loolwsd/loolwsd.xml
perl -pi -e "s/<password (.*)>.*<\/password>/<password \1>${ADMIN_PASS}<\/password>/" /etc/loolwsd/loolwsd.xml
perl -pi -e "s/<server_name (.*)>.*<\/server_name>/<server_name \1>${HOSTNAME}<\/server_name>/" /etc/loolwsd/loolwsd.xml
mkdir -p /tmp/state
echo 'Initialization Complete' >/tmp/state/10-loolwsd-init

View file

@ -1,10 +0,0 @@
/var/log/lool/*.log {
daily
ifempty
rotate 7
missingok
compress
dateext
copytruncate
}

View file

@ -1,14 +0,0 @@
#!/usr/bin/with-contenv bash
while [ ! -f /tmp/state/10-loolwsd-init ]
do
sleep 1
done
if [ ! -f /tmp/state/10-loolwsd ]; then
touch /tmp/state/10-loolwsd
fi
echo '**'
echo '** [libreoffice-online] Starting Libreoffice Online Web Services daemon'
exec s6-setuidgid lool /opt/lool/bin/loolwsd --version --o:sys_template_path=/opt/lool/systemplate --o:lo_template_path=/opt/libreoffice --o:child_root_path=/opt/lool/jails --o:file_server_root_path=/opt/lool/share/loolwsd storage.filesystem[@allow]=true --o:admin_console.username=${ADMIN_USER} --o:admin_console.password=${ADMIN_PASS} >> /var/log/lool/loolwsd.log

View file

@ -0,0 +1,22 @@
#!/usr/bin/with-contenv bash
source /assets/functions/00-container
prepare_service defaults single
PROCESS_NAME="collabora-online"
check_container_initialized
check_service_initialized init
liftoff
export LC_CTYPE=en_US.UTF-8
print_start "Starting Libreoffice Online Web Services daemon"
exec sudo -u cool /opt/cool/bin/coolwsd \
--version \
--o:sys_template_path=/opt/cool/systemplate \
--o:lo_template_path=/opt/libreoffice \
--o:child_root_path=/opt/cool/child-roots \
--o:file_server_root_path=/opt/cool/share/coolwsd storage.filesystem[@allow]=true \
--o:admin_console.username=${ADMIN_USER} \
--o:admin_console.password=${ADMIN_PASS} \
${EXTRA_OPTIONS} >> ${LOG_PATH}/${LOG_FILE}

View file

@ -0,0 +1,15 @@
#!/usr/bin/with-contenv bash
source /assets/functions/00-container
prepare_service defaults single
PROCESS_NAME="config-reloader"
check_container_initialized
check_service_initialized init 10-coolwsd
liftoff
while inotifywait -q -e create,delete,modify,attrib /etc/coolwsd/coolwsd.xml ; do
print_info "Reloading coolwsd configuration do to a detected certificate change"
pkill -f --signal 1 coolwsd
exit 0
done

View file

@ -0,0 +1,5 @@
# Zabbix Collbora Online Configuration - Automatically Generated
# Find Companion Zabbix Server Templates at https://github.com/tiredofit/docker-collabora-online
# Autoregister=collabora-online
UserParameter=cool.get_statistics,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-cool.py

View file

@ -1,5 +0,0 @@
UserParameter=lool.mem_consumed,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.mem.consumed' | awk '{print $2}'
UserParameter=lool.active_users,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.active_users_count' | awk '{print $2}'
UserParameter=lool.active_docs,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.active_docs' | awk '{print $2}'
UserParameter=lool.bytes_sent,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.sent_bytes' | awk '{print $2}'
UserParameter=lool.bytes_received,/etc/zabbix/zabbix_agentd.conf.d/scripts/check-lool.py | grep 'lool.recv_bytes' | awk '{print $2}'

View file

@ -2,7 +2,7 @@
import requests
from websocket import create_connection,WebSocket
import ssl
import datetime
import sys
import os
@ -15,7 +15,7 @@ def get_token_value(url,username,password):
def get_doc_info(socket_url,token_value):
data = {}
ws = create_connection(socket_url,sslopt={"cert_reqs": ssl.CERT_NONE})
ws = create_connection(socket_url)
"""Authenticating with Server """
ws.send('auth '+'jwt='+token_value)
"""Now fetching information """
@ -29,12 +29,13 @@ def get_doc_info(socket_url,token_value):
return data
if __name__ == '__main__':
url = "https://localhost:9980/loleaflet/dist/admin/admin.html"
url = "http://localhost:9980/browser/dist/admin/admin.html"
username = os.getenv('ADMIN_USER')
password = os.getenv('ADMIN_PASS')
token_value = get_token_value(url,username,password)
socket_url = "wss://localhost:9980/lool/adminws"
socket_url = "ws://localhost:9980/cool/adminws"
data = get_doc_info(socket_url,token_value)
now = datetime.datetime.now()
print (now.strftime('%Y-%m-%d %H:%M:%S')+" Collabora Online Monitoring")
for key,value in data.items() :
print("lool."+key , value)
print("cool."+key, value)

View file

@ -0,0 +1,377 @@
{
"zabbix_export": {
"version": "5.4",
"date": "2021-12-15T15:57:43Z",
"groups": [
{
"uuid": "a571c0d144b14fd4a87a9d9b2aa9fcd6",
"name": "Templates/Applications"
}
],
"templates": [
{
"uuid": "00f612e4dc8e44c686e89d2b540de330",
"template": "Collabora Online",
"name": "Collabora Online",
"groups": [
{
"name": "Templates/Applications"
}
],
"items": [
{
"uuid": "3a4d06d031844b1fa3f217f7ab4a1e75",
"name": "Collabora Online: Get Statistics",
"type": "ZABBIX_ACTIVE",
"key": "cool.get_statistics",
"history": "60m",
"trends": "0",
"value_type": "TEXT"
},
{
"uuid": "07fdc378b8804f68952204f9223c705b",
"name": "Collabora Online: Active Documents",
"type": "DEPENDENT",
"key": "cool.stats.active_docs",
"delay": "0",
"history": "7d",
"preprocessing": [
{
"type": "REGEX",
"parameters": [
"cool.active_docs_count ([0-9]+)",
"\\1"
]
}
],
"master_item": {
"key": "cool.get_statistics"
},
"request_method": "POST",
"tags": [
{
"tag": "Application",
"value": "LibreOffice Online"
}
]
},
{
"uuid": "65854e1f94cd453f84e7efe7ccca9bfa",
"name": "Collabora Online: Active Users",
"type": "DEPENDENT",
"key": "cool.stats.active_users",
"delay": "0",
"history": "7d",
"preprocessing": [
{
"type": "REGEX",
"parameters": [
"cool.active_users_count ([0-9]+)",
"\\1"
]
}
],
"master_item": {
"key": "cool.get_statistics"
},
"request_method": "POST",
"tags": [
{
"tag": "Application",
"value": "LibreOffice Online"
}
]
},
{
"uuid": "0d370f09daf0472c83a3af43cc810bc5",
"name": "Collabora Online: Bytes received",
"type": "DEPENDENT",
"key": "cool.stats.bytes_received",
"delay": "0",
"history": "7d",
"units": "B",
"preprocessing": [
{
"type": "REGEX",
"parameters": [
"cool.recv_bytes ([0-9]+)",
"\\1"
]
}
],
"master_item": {
"key": "cool.get_statistics"
},
"request_method": "POST",
"tags": [
{
"tag": "Application",
"value": "LibreOffice Online"
}
]
},
{
"uuid": "43d3e041925042a3b74150a7ef9489c4",
"name": "Collabora Online: Bytes sent",
"type": "DEPENDENT",
"key": "cool.stats.bytes_sent",
"delay": "0",
"history": "7d",
"units": "B",
"preprocessing": [
{
"type": "REGEX",
"parameters": [
"cool.sent_bytes ([0-9]+)",
"\\1"
]
}
],
"master_item": {
"key": "cool.get_statistics"
},
"request_method": "POST",
"tags": [
{
"tag": "Application",
"value": "LibreOffice Online"
}
]
},
{
"uuid": "447722d607644a9d993a1d084558ec4c",
"name": "Collabora Online: Memory consumed",
"type": "DEPENDENT",
"key": "cool.stats.mem_consumed",
"delay": "0",
"history": "7d",
"preprocessing": [
{
"type": "REGEX",
"parameters": [
"cool.mem_consumed ([0-9]+)",
"\\1"
]
}
],
"master_item": {
"key": "cool.get_statistics"
},
"request_method": "POST",
"tags": [
{
"tag": "Application",
"value": "LibreOffice Online"
}
]
},
{
"uuid": "35706f863505475f8115a7ab08e3765a",
"name": "Collabora Online: Service is running",
"key": "proc.num[coolwsd]",
"history": "7d",
"request_method": "POST",
"tags": [
{
"tag": "Application",
"value": "LibreOffice Online"
}
],
"triggers": [
{
"uuid": "f973afdb7f444e24b94dd6a1bc51bff8",
"expression": "sum(/Collabora Online/proc.num[coolwsd],#3)=0",
"name": "Collabora Online Service is down",
"priority": "HIGH"
}
]
}
],
"dashboards": [
{
"uuid": "bdca680af1f5409d856b7ad7f48f63ef",
"name": "Collabora Online",
"pages": [
{
"widgets": [
{
"type": "GRAPH_CLASSIC",
"width": "12",
"height": "5",
"fields": [
{
"type": "GRAPH",
"name": "graphid",
"value": {
"name": "Active Users",
"host": "Collabora Online"
}
}
]
},
{
"type": "GRAPH_CLASSIC",
"x": "12",
"width": "12",
"height": "5",
"fields": [
{
"type": "GRAPH",
"name": "graphid",
"value": {
"name": "Active Documents",
"host": "Collabora Online"
}
}
]
},
{
"type": "GRAPH_CLASSIC",
"x": "12",
"y": "5",
"width": "12",
"height": "5",
"fields": [
{
"type": "GRAPH",
"name": "graphid",
"value": {
"name": "All Statistics",
"host": "Collabora Online"
}
}
]
},
{
"type": "GRAPH_CLASSIC",
"y": "5",
"width": "12",
"height": "5",
"fields": [
{
"type": "GRAPH",
"name": "graphid",
"value": {
"name": "Memory Consumed",
"host": "Collabora Online"
}
}
]
},
{
"type": "GRAPH_CLASSIC",
"y": "10",
"width": "12",
"height": "5",
"fields": [
{
"type": "GRAPH",
"name": "graphid",
"value": {
"name": "Network Traffic",
"host": "Collabora Online"
}
}
]
}
]
}
]
}
]
}
],
"graphs": [
{
"uuid": "cf1222f4fc464cfda66ffe1f4856fbe9",
"name": "Active Documents",
"graph_items": [
{
"color": "1A7C11",
"item": {
"host": "Collabora Online",
"key": "cool.stats.active_docs"
}
}
]
},
{
"uuid": "6b46328682d64157906e51a8bdb92204",
"name": "Active Users",
"graph_items": [
{
"color": "1A7C11",
"item": {
"host": "Collabora Online",
"key": "cool.stats.active_users"
}
}
]
},
{
"uuid": "84f045fb9fc447a49813543545284458",
"name": "All Statistics",
"graph_items": [
{
"color": "1A7C11",
"item": {
"host": "Collabora Online",
"key": "cool.stats.active_docs"
}
},
{
"sortorder": "1",
"color": "F63100",
"item": {
"host": "Collabora Online",
"key": "cool.stats.active_users"
}
},
{
"sortorder": "2",
"color": "2774A4",
"item": {
"host": "Collabora Online",
"key": "cool.stats.mem_consumed"
}
}
]
},
{
"uuid": "9bd057eaa6c24fdc8ec9ebe432128fea",
"name": "Memory Consumed",
"graph_items": [
{
"color": "1A7C11",
"item": {
"host": "Collabora Online",
"key": "cool.stats.mem_consumed"
}
}
]
},
{
"uuid": "2d2d7f65e3234af7843ae8f2b4271017",
"name": "Network Traffic",
"graph_items": [
{
"sortorder": "1",
"color": "1A7C11",
"item": {
"host": "Collabora Online",
"key": "cool.stats.bytes_received"
}
},
{
"sortorder": "2",
"color": "F63100",
"item": {
"host": "Collabora Online",
"key": "cool.stats.bytes_sent"
}
}
]
}
]
}
}

View file

@ -1,452 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>3.4</version>
<date>2018-09-17T12:09:21Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>APP - Libreoffice Online</template>
<name>APP - Libreoffice Online</name>
<description/>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>LibreOffice Online</name>
</application>
</applications>
<items>
<item>
<name>Active Documents</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>lool.active_docs</key>
<delay>1m</delay>
<history>7d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>LibreOffice Online</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Active Users</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>lool.active_users</key>
<delay>1m</delay>
<history>7d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>LibreOffice Online</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Bytes Received</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>lool.bytes_received</key>
<delay>1m</delay>
<history>7d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>LibreOffice Online</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Bytes Sent</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>lool.bytes_sent</key>
<delay>1m</delay>
<history>7d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>LibreOffice Online</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Memory Consumed</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>lool.mem_consumed</key>
<delay>1m</delay>
<history>7d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>LibreOffice Online</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Libreoffice Online service is running</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>proc.num[loolwsd]</key>
<delay>1m</delay>
<history>7d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>LibreOffice Online</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
</items>
<discovery_rules/>
<httptests/>
<macros/>
<templates/>
<screens/>
</template>
</templates>
<triggers>
<trigger>
<expression>{APP - Libreoffice Online:proc.num[loolwsd].sum(#3)}=0</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>Libreoffice Online Service is down</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>4</priority>
<description/>
<type>0</type>
<manual_close>0</manual_close>
<dependencies/>
<tags/>
</trigger>
</triggers>
<graphs>
<graph>
<name>Active Documents</name>
<width>900</width>
<height>200</height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period>1</show_work_period>
<show_triggers>1</show_triggers>
<type>0</type>
<show_legend>1</show_legend>
<show_3d>0</show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1>0</ymin_type_1>
<ymax_type_1>0</ymax_type_1>
<ymin_item_1>0</ymin_item_1>
<ymax_item_1>0</ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0</sortorder>
<drawtype>0</drawtype>
<color>1A7C11</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>APP - Libreoffice Online</host>
<key>lool.active_docs</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Active Users</name>
<width>900</width>
<height>200</height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period>1</show_work_period>
<show_triggers>1</show_triggers>
<type>0</type>
<show_legend>1</show_legend>
<show_3d>0</show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1>0</ymin_type_1>
<ymax_type_1>0</ymax_type_1>
<ymin_item_1>0</ymin_item_1>
<ymax_item_1>0</ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0</sortorder>
<drawtype>0</drawtype>
<color>1A7C11</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>APP - Libreoffice Online</host>
<key>lool.active_users</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>All Statistics</name>
<width>900</width>
<height>200</height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period>1</show_work_period>
<show_triggers>1</show_triggers>
<type>0</type>
<show_legend>1</show_legend>
<show_3d>0</show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1>0</ymin_type_1>
<ymax_type_1>0</ymax_type_1>
<ymin_item_1>0</ymin_item_1>
<ymax_item_1>0</ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0</sortorder>
<drawtype>0</drawtype>
<color>1A7C11</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>APP - Libreoffice Online</host>
<key>lool.active_docs</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>0</drawtype>
<color>F63100</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>APP - Libreoffice Online</host>
<key>lool.active_users</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<drawtype>0</drawtype>
<color>2774A4</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>APP - Libreoffice Online</host>
<key>lool.mem_consumed</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>Memory Consumed</name>
<width>900</width>
<height>200</height>
<yaxismin>0.0000</yaxismin>
<yaxismax>100.0000</yaxismax>
<show_work_period>1</show_work_period>
<show_triggers>1</show_triggers>
<type>0</type>
<show_legend>1</show_legend>
<show_3d>0</show_3d>
<percent_left>0.0000</percent_left>
<percent_right>0.0000</percent_right>
<ymin_type_1>0</ymin_type_1>
<ymax_type_1>0</ymax_type_1>
<ymin_item_1>0</ymin_item_1>
<ymax_item_1>0</ymax_item_1>
<graph_items>
<graph_item>
<sortorder>0</sortorder>
<drawtype>0</drawtype>
<color>1A7C11</color>
<yaxisside>0</yaxisside>
<calc_fnc>2</calc_fnc>
<type>0</type>
<item>
<host>APP - Libreoffice Online</host>
<key>lool.mem_consumed</key>
</item>
</graph_item>
</graph_items>
</graph>
</graphs>
</zabbix_export>

View file

@ -1,515 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>3.4</version>
<date>2018-02-02T19:04:27Z</date>
<groups>
<group>
<name>Discovered Containers</name>
</group>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Service - ICMP</template>
<name>Service - ICMP (Ping)</name>
<description/>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>ICMP</name>
</application>
</applications>
<items>
<item>
<name>ICMP ping</name>
<type>3</type>
<snmp_community/>
<snmp_oid/>
<key>icmpping</key>
<delay>1m</delay>
<history>1w</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>ICMP</name>
</application>
</applications>
<valuemap>
<name>Service state</name>
</valuemap>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>ICMP loss</name>
<type>3</type>
<snmp_community/>
<snmp_oid/>
<key>icmppingloss</key>
<delay>1m</delay>
<history>1w</history>
<trends>365d</trends>
<status>0</status>
<value_type>0</value_type>
<allowed_hosts/>
<units>%</units>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>ICMP</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>ICMP response time</name>
<type>3</type>
<snmp_community/>
<snmp_oid/>
<key>icmppingsec</key>
<delay>1m</delay>
<history>1w</history>
<trends>365d</trends>
<status>0</status>
<value_type>0</value_type>
<allowed_hosts/>
<units>s</units>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>ICMP</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
</items>
<discovery_rules/>
<httptests/>
<macros/>
<templates/>
<screens/>
</template>
<template>
<template>Zabbix - Container Agent</template>
<name>Zabbix - Container Agent</name>
<description/>
<groups>
<group>
<name>Discovered Containers</name>
</group>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>Packages</name>
</application>
<application>
<name>Zabbix agent</name>
</application>
</applications>
<items>
<item>
<name>Hostname of Container</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>agent.hostname</key>
<delay>1h</delay>
<history>1w</history>
<trends>0</trends>
<status>0</status>
<value_type>1</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>3</inventory_link>
<applications>
<application>
<name>Zabbix agent</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Contaner OS</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>agent.os</key>
<delay>6h</delay>
<history>30d</history>
<trends>0</trends>
<status>0</status>
<value_type>1</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>5</inventory_link>
<applications>
<application>
<name>Zabbix agent</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Zabbix Agent ping</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>agent.ping</key>
<delay>1m</delay>
<history>1w</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description>The agent always returns 1 for this item. It could be used in combination with nodata() for availability check.</description>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>Zabbix agent</name>
</application>
</applications>
<valuemap>
<name>Zabbix agent ping status</name>
</valuemap>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Zabbix Agent Version</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>agent.version</key>
<delay>1h</delay>
<history>1w</history>
<trends>0</trends>
<status>0</status>
<value_type>1</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>Zabbix agent</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
<item>
<name>Upgradable Packages</name>
<type>0</type>
<snmp_community/>
<snmp_oid/>
<key>packages.upgradable</key>
<delay>6h</delay>
<history>90d</history>
<trends>365d</trends>
<status>0</status>
<value_type>3</value_type>
<allowed_hosts/>
<units/>
<snmpv3_contextname/>
<snmpv3_securityname/>
<snmpv3_securitylevel>0</snmpv3_securitylevel>
<snmpv3_authprotocol>0</snmpv3_authprotocol>
<snmpv3_authpassphrase/>
<snmpv3_privprotocol>0</snmpv3_privprotocol>
<snmpv3_privpassphrase/>
<params/>
<ipmi_sensor/>
<authtype>0</authtype>
<username/>
<password/>
<publickey/>
<privatekey/>
<port/>
<description/>
<inventory_link>0</inventory_link>
<applications>
<application>
<name>Packages</name>
</application>
</applications>
<valuemap/>
<logtimefmt/>
<preprocessing/>
<jmx_endpoint/>
<master_item/>
</item>
</items>
<discovery_rules/>
<httptests/>
<macros/>
<templates/>
<screens/>
</template>
</templates>
<triggers>
<trigger>
<expression>{Service - ICMP:icmpping.max(3m)}=3</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>Cannot be pinged</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>5</priority>
<description/>
<type>0</type>
<manual_close>0</manual_close>
<dependencies/>
<tags/>
</trigger>
<trigger>
<expression>{Service - ICMP:icmppingloss.min(10m)}&gt;50</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>Ping loss is too high</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>4</priority>
<description/>
<type>0</type>
<manual_close>0</manual_close>
<dependencies>
<dependency>
<name>Cannot be pinged</name>
<expression>{Service - ICMP:icmpping.max(3m)}=3</expression>
<recovery_expression/>
</dependency>
</dependencies>
<tags/>
</trigger>
<trigger>
<expression>{Service - ICMP:icmppingsec.avg(2m)}&gt;100</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>Ping Response time is too high</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>4</priority>
<description/>
<type>1</type>
<manual_close>0</manual_close>
<dependencies>
<dependency>
<name>Cannot be pinged</name>
<expression>{Service - ICMP:icmpping.max(3m)}=3</expression>
<recovery_expression/>
</dependency>
</dependencies>
<tags/>
</trigger>
<trigger>
<expression>{Zabbix - Container Agent:packages.upgradable.last()}&gt;0</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>Upgraded Packages in Container Available</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>1</priority>
<description/>
<type>0</type>
<manual_close>0</manual_close>
<dependencies/>
<tags/>
</trigger>
<trigger>
<expression>{Zabbix - Container Agent:agent.ping.nodata(3m)}=1</expression>
<recovery_mode>0</recovery_mode>
<recovery_expression/>
<name>Zabbix agent is unreachable</name>
<correlation_mode>0</correlation_mode>
<correlation_tag/>
<url/>
<status>0</status>
<priority>5</priority>
<description/>
<type>0</type>
<manual_close>0</manual_close>
<dependencies/>
<tags/>
</trigger>
</triggers>
<value_maps>
<value_map>
<name>Service state</name>
<mappings>
<mapping>
<value>0</value>
<newvalue>Down</newvalue>
</mapping>
<mapping>
<value>1</value>
<newvalue>Up</newvalue>
</mapping>
</mappings>
</value_map>
<value_map>
<name>Zabbix agent ping status</name>
<mappings>
<mapping>
<value>1</value>
<newvalue>Up</newvalue>
</mapping>
</mappings>
</value_map>
</value_maps>
</zabbix_export>