mirror of
https://github.com/tiredofit/docker-collabora-online.git
synced 2024-06-10 09:42:25 +02:00
Compare commits
141 commits
Author | SHA1 | Date | |
---|---|---|---|
dave@tiredofit.ca | 0018572076 | ||
dave@tiredofit.ca | d45635519b | ||
dave@tiredofit.ca | 62de89e46c | ||
dave@tiredofit.ca | bfd0cae6d1 | ||
dave@tiredofit.ca | 0f1997b2e0 | ||
dave@tiredofit.ca | cca3a97eda | ||
Dave Conroy | 1ce3732a09 | ||
dave@tiredofit.ca | 991a1aefff | ||
dave@tiredofit.ca | 4f4cf1da29 | ||
dave@tiredofit.ca | 740468908f | ||
dave@tiredofit.ca | 37d3de3806 | ||
dave@tiredofit.ca | 9431c3a4eb | ||
dave@tiredofit.ca | b762ac257e | ||
dave@tiredofit.ca | 51aff14100 | ||
dave@tiredofit.ca | bfda53eac3 | ||
dave@tiredofit.ca | 2086ec9d6a | ||
dave@tiredofit.ca | 467ffe34de | ||
dave@tiredofit.ca | b99db9ac88 | ||
dave@tiredofit.ca | 704177441c | ||
dave@tiredofit.ca | 556199751e | ||
dave@tiredofit.ca | 6f76f2abf9 | ||
dave@tiredofit.ca | fe08e28f06 | ||
Dave Conroy | 8c1916c0e9 | ||
dave@tiredofit.ca | 364df2e100 | ||
dave@tiredofit.ca | 4eea9021bc | ||
Dave Conroy | 0d71714834 | ||
dave@tiredofit.ca | d197f10ba3 | ||
dave@tiredofit.ca | a3b7e75527 | ||
dave@tiredofit.ca | 1204bb49b2 | ||
dave@tiredofit.ca | 2edaabadcc | ||
dave@tiredofit.ca | f9e596b357 | ||
dave@tiredofit.ca | f9419b1ee7 | ||
7882c908b4 | |||
Dave Conroy | 062310f287 | ||
dave@tiredofit.ca | 6e2d882863 | ||
Dave Conroy | 379d74a05e | ||
dave@tiredofit.ca | 35ff368880 | ||
dave@tiredofit.ca | 3de2c8a4b9 | ||
dave@tiredofit.ca | 5c8eab9f72 | ||
dave@tiredofit.ca | a851d189f8 | ||
dave@tiredofit.ca | 7284208857 | ||
dave@tiredofit.ca | 2a8950e065 | ||
dave@tiredofit.ca | a2a01894c6 | ||
dave@tiredofit.ca | 1ca12f8b21 | ||
Dave Conroy | 9d704f6f5f | ||
dave@tiredofit.ca | 9ae4bd0f7e | ||
Dave Conroy | bafe31df0e | ||
dave@tiredofit.ca | 4e1e110986 | ||
dave@tiredofit.ca | c6d4e81ad6 | ||
dave@tiredofit.ca | ed3a7c118d | ||
dave@tiredofit.ca | 5af7030f6e | ||
Dave Conroy | 9092dd5a87 | ||
dave@tiredofit.ca | 560ab340e3 | ||
01badcdb36 | |||
dave@tiredofit.ca | 86d962387a | ||
dave@tiredofit.ca | 5c8bcea23b | ||
Dave Conroy | dd8a23f7f4 | ||
Dave Conroy | 849eb2a698 | ||
dave@tiredofit.ca | 17aa6840d6 | ||
9ff78810aa | |||
b458a70428 | |||
dave@tiredofit.ca | f12ccb4ff7 | ||
dave@tiredofit.ca | 8a51d894ce | ||
dave@tiredofit.ca | 102f18ca26 | ||
dave@tiredofit.ca | a128a27e95 | ||
dave@tiredofit.ca | c9691eee75 | ||
dave@tiredofit.ca | 2754c779fc | ||
dave@tiredofit.ca | 9b97b18c23 | ||
dave@tiredofit.ca | 538a09ea57 | ||
Dave Conroy | e83ba22ac9 | ||
Dave Conroy | 99d2163aae | ||
b6da93e967 | |||
63f4c65575 | |||
dave@tiredofit.ca | 938b20ffff | ||
dave@tiredofit.ca | d50b45fda5 | ||
9132775f12 | |||
52eb81c373 | |||
bd8b13c956 | |||
62bdbc9958 | |||
ce03067855 | |||
af221daff8 | |||
dave@tiredofit.ca | ecb2b3c55b | ||
dave@tiredofit.ca | b93a443236 | ||
dave@tiredofit.ca | dc1398bb62 | ||
Dave Conroy | 4066462e64 | ||
Dave Conroy | 1e3f1eeb37 | ||
dave@tiredofit.ca | 06fd31f40f | ||
dave@tiredofit.ca | 16d64b55ff | ||
dave@tiredofit.ca | 9d1c19f91f | ||
dave@tiredofit.ca | 2336dc1f1f | ||
Dave Conroy | 2fc736ddea | ||
Dave Conroy | e3df85ee61 | ||
dave@tiredofit.ca | 71e63272c9 | ||
dave@tiredofit.ca | cc15c757c9 | ||
Dave Conroy | 7ce67f822e | ||
dave@tiredofit.ca | ed5db53864 | ||
Dave Conroy | 01862877e3 | ||
Dave Conroy | a6f1779011 | ||
dave@tiredofit.ca | 6edabb68a3 | ||
dave@tiredofit.ca | 2f15036185 | ||
dave@tiredofit.ca | f481caa89b | ||
dave@tiredofit.ca | b4a3a941ba | ||
dave@tiredofit.ca | 5b958bbf6e | ||
Dave Conroy | 419fc1ea24 | ||
dave@tiredofit.ca | 5c9a2409b7 | ||
Dave Conroy | 240a2ba5e4 | ||
Dave Conroy | a05b39e38b | ||
Dave Conroy | a13a75ca90 | ||
Dave Conroy | 94796ed164 | ||
fa7eb29fbe | |||
a59a9d1c27 | |||
Dave Conroy | 8d0d702f0c | ||
Dave Conroy | 925213a72b | ||
abd52157b4 | |||
f3b722384f | |||
d51519d462 | |||
3988009f2c | |||
Dave Conroy | 067a405c4f | ||
Dave Conroy | ddcbcb396d | ||
Dave Conroy | 6aeacd2844 | ||
Dave Conroy | 441fc34a65 | ||
Dave Conroy | 5c1e2ab854 | ||
Dave Conroy | 3c25f25c57 | ||
Dave Conroy | 9f9cc49762 | ||
Dave Conroy | 0d9629dba5 | ||
Dave Conroy | 33b540ce21 | ||
Dave Conroy | 5ad8bddc3c | ||
Dave Conroy | 947703a04c | ||
Dave Conroy | f156272e41 | ||
Dave Conroy | 675867a0ba | ||
Dave Conroy | 3c6efafa70 | ||
Dave Conroy | eac6096435 | ||
Dave Conroy | a31665985a | ||
Dave Conroy | 80fd90b055 | ||
a26ba103c5 | |||
Dave Conroy | bfd80f4e9b | ||
Dave Conroy | fabbf2425a | ||
Dave Conroy | b667f7c743 | ||
528cbb867f | |||
032f2ce52c | |||
Dave Conroy | 188aa1d6da |
1
.dockerignore
Normal file
1
.dockerignore
Normal file
|
@ -0,0 +1 @@
|
|||
examples/
|
42
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
42
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal 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. -->
|
23
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
23
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal 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
7
.github/dependabot.yml
vendored
Normal 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
15
.github/workflows/main.yml
vendored
Normal 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
16
.github/workflows/manual.yml
vendored
Normal 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
|
723
CHANGELOG.md
723
CHANGELOG.md
|
@ -1,3 +1,724 @@
|
|||
## 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
|
||||
|
@ -49,7 +770,7 @@
|
|||
- `ENABLE_TLS` (Default: `TRUE`)
|
||||
- `ENABLE_TLS_CERT_GENERATE` (Default: `TRUE`)
|
||||
- `ENABLE_TLS_REVERSE_PROXY` (Default: `FALSE`)
|
||||
- `TLS_CERT_PATH` (Default: `/etc/loolwsd/certs`)
|
||||
- `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`)
|
||||
|
|
390
Dockerfile
390
Dockerfile
|
@ -1,276 +1,276 @@
|
|||
FROM tiredofit/debian:buster 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"
|
||||
|
||||
### Buildtime arguments
|
||||
ARG LIBREOFFICE_BRANCH
|
||||
ARG COLLABORA_ONLINE_VERSION
|
||||
ARG COLLABORA_ONLINE_REPO_URL
|
||||
ARG LIBREOFFICE_VERSION
|
||||
ARG LIBREOFFICE_REPO_URL
|
||||
ARG LOOL_BRANCH
|
||||
ARG LOOL_VERSION
|
||||
ARG LOOL_REPO_URL
|
||||
ARG MAX_CONNECTIONS
|
||||
ARG MAX_DOCUMENTS
|
||||
ARG APP_NAME
|
||||
ARG APP_BRAND
|
||||
|
||||
### Environment Variables
|
||||
ENV LIBREOFFICE_BRANCH=${LIBREOFFICE_BRANCH:-"master"} \
|
||||
LIBREOFFICE_VERSION=${LIBREOFFICE_VERSION:-"cp-6.4-23"} \
|
||||
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"} \
|
||||
#
|
||||
LOOL_BRANCH=${LOOL_BRANCH:-"master"} \
|
||||
LOOL_VERSION=${LOOL_VERSION:-"cp-6.4.6-2"} \
|
||||
LOOL_REPO_URL=${LOOL_REPO_URL:-"https://github.com/CollaboraOnline/online"} \
|
||||
APP_NAME=${APP_NAME:-"Document Editor"} \
|
||||
APP_BRAND=${APP_BRAND:-"unbranded"} \
|
||||
#
|
||||
POCO_VERSION=${POCO_VERSION:-"poco-1.10.1-release.tar.gz"} \
|
||||
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:-"5000"} \
|
||||
MAX_CONNECTIONS=${MAX_CONNECTIONS:-"100000"} \
|
||||
## Uses Approximately 20mb per document open
|
||||
MAX_DOCUMENTS=${MAX_DOCUMENTS:-"5000"}
|
||||
MAX_DOCUMENTS=${MAX_DOCUMENTS:-"100000"}
|
||||
|
||||
ADD build-assets /build-assets
|
||||
COPY build-assets /build-assets
|
||||
|
||||
### Get Updates
|
||||
RUN set -x && \
|
||||
### Add Repositories
|
||||
apt-get update && \
|
||||
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 && \
|
||||
echo "deb-src http://deb.debian.org/debian buster main" >> /etc/apt/sources.list && \
|
||||
echo "deb http://deb.debian.org/debian buster contrib" >> /etc/apt/sources.list && \
|
||||
curl -sL https://deb.nodesource.com/setup_10.x | bash - && \
|
||||
\
|
||||
### 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 \
|
||||
cpio \
|
||||
default-jre \
|
||||
devscripts \
|
||||
fontconfig \
|
||||
g++ \
|
||||
git \
|
||||
inotify-tools \
|
||||
libcap-dev \
|
||||
libcap2-bin \
|
||||
libcppunit-dev \
|
||||
libghc-zlib-dev \
|
||||
libkrb5-dev \
|
||||
libpam-dev \
|
||||
libpam0g-dev \
|
||||
libpng16-16 \
|
||||
libssl-dev \
|
||||
libtool \
|
||||
libubsan1 \
|
||||
locales-all \
|
||||
m4 \
|
||||
nasm \
|
||||
nodejs \
|
||||
openssl \
|
||||
pkg-config \
|
||||
procps \
|
||||
python3-lxml \
|
||||
python3-polib \
|
||||
python-polib \
|
||||
sudo \
|
||||
translate-toolkit \
|
||||
ttf-mscorefonts-installer \
|
||||
wget \
|
||||
' && \
|
||||
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 \
|
||||
${BUILD_DEPS} \
|
||||
&& \
|
||||
package install -y \
|
||||
${BUILD_DEPS} \
|
||||
&& \
|
||||
\
|
||||
apt-get build-dep -y \
|
||||
libreoffice \
|
||||
&& \
|
||||
package build-dep -y \
|
||||
libreoffice \
|
||||
&& \
|
||||
\
|
||||
### 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 \
|
||||
&& \
|
||||
--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} ${LIBREOFFICE_REPO_URL} /usr/src/libreoffice-core && \
|
||||
cd /usr/src/libreoffice-core && \
|
||||
git checkout ${LIBREOFFICE_VERSION} && \
|
||||
if [ -d "/build-assets/core/src" ] ; then cp -R /build-assets/core/src/* /usr/src/libreoffice-core ; fi; \
|
||||
if [ -d "/build-assets/core/scripts" ] ; then for script in /build-assets/core/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \
|
||||
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" >> /usr/src/libreoffice-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 lool /usr/src/libreoffice-core && \
|
||||
sudo -u lool make fetch && \
|
||||
sudo -u lool make -j$(nproc) build-nocheck && \
|
||||
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 && \
|
||||
cp -R /usr/src/libreoffice-core/instdir/* /opt/libreoffice/ && \
|
||||
chown -R cool /opt/libreoffice && \
|
||||
cp -R ${GIT_REPO_SRC_CORE}/instdir/* /opt/libreoffice/ && \
|
||||
\
|
||||
### Build LibreOffice Online (Not as long as above)
|
||||
git clone -b ${LOOL_BRANCH} ${LOOL_REPO_URL} /usr/src/libreoffice-online && \
|
||||
cd /usr/src/libreoffice-online && \
|
||||
git checkout ${LOOL_VERSION} && \
|
||||
if [ -d "/build-assets/online/src" ] ; then cp -R /build-assets/online/src/* /usr/src/libreoffice-online ; fi; \
|
||||
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-core/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/lool/lool.log \
|
||||
--prefix=/opt/lool \
|
||||
--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-app-name="${APP_NAME}" \
|
||||
--with-vendor="tiredofit@github" \
|
||||
${COOL_CONFIGURE_ARGS} \
|
||||
&& \
|
||||
\
|
||||
( scripts/locorestrings.py /usr/src/libreoffice-online /usr/src/libreoffice-core/translations ) && \
|
||||
( scripts/unocommands.py --update /usr/src/libreoffice-online /usr/src/libreoffice-core ) && \
|
||||
( scripts/unocommands.py --translate /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 && \
|
||||
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 && \
|
||||
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 tiredofit/debian:buster
|
||||
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 \
|
||||
ENABLE_SMTP=false
|
||||
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
|
||||
|
||||
ADD build-assets /build-assets
|
||||
COPY build-assets /build-assets
|
||||
|
||||
### Install Dependencies
|
||||
RUN set -x && \
|
||||
adduser --quiet --system --group --home /opt/lool lool && \
|
||||
\
|
||||
### Add Repositories
|
||||
echo "deb http://deb.debian.org/debian buster contrib" >> /etc/apt/sources.list && \
|
||||
curl -sL https://deb.nodesource.com/setup_10.x | bash - && \
|
||||
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 && \
|
||||
package update && \
|
||||
apt-get -o Dpkg::Options::="--force-confold" upgrade -y && \
|
||||
apt-get install -y\
|
||||
apt-transport-https \
|
||||
cpio \
|
||||
findutils \
|
||||
fontconfig \
|
||||
fonts-droid-fallback \
|
||||
fonts-hack \
|
||||
fonts-liberation \
|
||||
fonts-noto-cjk \
|
||||
fonts-wqy-microhei \
|
||||
fonts-wqy-zenhei \
|
||||
fonts-ocr-a \
|
||||
fonts-ocr-b \
|
||||
fonts-open-sans \
|
||||
hunspell \
|
||||
hunspell-en-ca \
|
||||
hunspell-en-gb \
|
||||
hunspell-en-us \
|
||||
inotify-tools \
|
||||
libcap2-bin \
|
||||
libcups2 \
|
||||
libfontconfig1 \
|
||||
libfreetype6 \
|
||||
libgl1-mesa-glx \
|
||||
libpam0g \
|
||||
libpng16-16 \
|
||||
libsm6 \
|
||||
libubsan0 \
|
||||
libubsan1 \
|
||||
libxcb-render0 \
|
||||
libxcb-shm0 \
|
||||
libxinerama1 \
|
||||
libxrender1 \
|
||||
locales \
|
||||
locales-all \
|
||||
openssl \
|
||||
openssh-client \
|
||||
procps \
|
||||
python3-requests \
|
||||
python3-websocket \
|
||||
ttf-mscorefonts-installer \
|
||||
&& \
|
||||
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/child-roots && \
|
||||
chown -R lool /opt/* && \
|
||||
mkdir -p /var/cache/loolwsd && \
|
||||
chown -R lool /var/cache/loolwsd && \
|
||||
setcap cap_fowner,cap_chown,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/loolwsd && \
|
||||
chown -R lool /var/cache/loolwsd && \
|
||||
mkdir -p /var/log/lool && \
|
||||
touch /var/log/lool/loolwsd.log && \
|
||||
chown -R lool /var/log/lool && \
|
||||
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 && \
|
||||
\
|
||||
if [ -d "/build-assets/container/src" ] ; then cp -R /build-assets/container/src/* /usr/src/libreoffice-container ; fi; \
|
||||
if [ -d "/build-assets/container/scripts" ] ; then for script in /build-assets/container/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \
|
||||
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 /build-assets && \
|
||||
rm -rf /tmp/*
|
||||
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
173
Dockerfile.alpine
Normal 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/
|
2
LICENSE
2
LICENSE
|
@ -1,6 +1,6 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2021 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
|
||||
|
|
403
README.md
403
README.md
|
@ -1,131 +1,260 @@
|
|||
# hub.docker.com/r/tiredofit/libreoffice-online
|
||||
# github.com/tiredofit/docker-collabora-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)
|
||||
* Set features to support autogeneration of TLS certificates/activate reverse proxy support, others..
|
||||
* 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), or [Traefik](https://github.com/tiredofit/docker-traefik) 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
|
||||
|
||||
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 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 large before sheeding most of it for it's final size.
|
||||
|
||||
### 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` - See most recent versioned tag
|
||||
* `2.0` - Collabora Libreoffice 6.4-23 with Collabora Office Online 6.4.6-2
|
||||
* `1.6` - Collabora Libreoffice 6.0.30 with Collabora Office Online 4.0.4-1
|
||||
* `1.1` - 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 |
|
||||
| `/etc/loolwsd/certs` | (Optional) If you would like to use your own certificates, map this volume and set appropriate variables |
|
||||
| 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
|
||||
|
||||
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` |
|
||||
|
||||
### 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: `^(.*)\.example\.org` |
|
||||
| `DICTIONARIES` | Spell Check Languages - Available `en_GB en_US` | `en_GB en_US` |
|
||||
| `EXTRA_OPTIONS` | If you want to pass additional arguments upon startup, add it here |
|
||||
| `INTERFACE` | Web interface type `classic` or `notebookbar` | `classic` |
|
||||
| `WATERMARK_OPACITY | Watermark Opacity | `0.2` |
|
||||
| `WATERMARK_TEXT` | Text to display for watermark | `` |
|
||||
|
||||
#### Administration
|
||||
| Parameter | Description | Default |
|
||||
| ---------------------- | --------------------------------------------- | ------------- |
|
||||
| `ENABLE_ADMIN_CONSOLE` | Enable Administration Console | `TRUE` |
|
||||
| `ADMIN_USER` | User for accessing Administration Console | `admin` |
|
||||
| `ADMIN_PASS` | Password for accessing Administration Console | `libreoffice` |
|
||||
| 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/lool` |
|
||||
| `LOG_FILE` | Log File | `lool.log` |
|
||||
| `LOG_ANONYMIZE` | Anonymize File+User information in Logs `TRUE` or `FALSE` | `FALSE` |
|
||||
| `LOG_ANONYMIZE_SALT` | Salt for anonymizing log data | 8 char random |
|
||||
| `LOG_CLIENT_CONSOLE` | Log in users browser console | `false` |
|
||||
| `LOG_COLOURIZE` | Colourize the log entries in console | `true` |
|
||||
| `LOG_LIBREOFFICE` | Log filter what Libreoffice entries | `-INFO-WARN` |
|
||||
| `LOG_FILE_FLUSH` | Flush Entries on each line to log file | `false` |
|
||||
| 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 |
|
||||
|
||||
Don’t 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` | 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` |
|
||||
| `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/loolwsd/certs` |
|
||||
| `TLS_CERT_PATH` | TLS certificates path | `/etc/coolwsd/certs` |
|
||||
| `TLS_KEY_FILENAME` | TLS Private Key filename with extension | `key.pem` |
|
||||
|
||||
#### Performance and Limits
|
||||
|
@ -133,15 +262,17 @@ Along with the Environment Variables from the [Base image](https://hub.docker.co
|
|||
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
|
||||
| `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 loolwsd | `30` |
|
||||
| `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_DATA_LIMIT` | The maximum memory data segment allowed to each document process | `0` (unlimited) |
|
||||
| `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` |
|
||||
|
@ -149,6 +280,37 @@ Along with the Environment Variables from the [Base image](https://hub.docker.co
|
|||
| `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 |
|
||||
| ---------------------------- | ------------------------------------------------------------------------------- | ------- |
|
||||
|
@ -160,43 +322,76 @@ Along with the Environment Variables from the [Base image](https://hub.docker.co
|
|||
| `CLEANUP_LIMIT_CPU_PER` | Minimum CPU usage in percent for a document to be candidate for bad state | `85` |
|
||||
|
||||
#### Other Settings
|
||||
| Parameter | Description | Default |
|
||||
| ----------------------- | ------------------------------------------------------- | --------------- |
|
||||
| `ALLOW_172_XX_SUBNET` | Allow 172.16.0.0/12 Subnet | `TRUE` |
|
||||
| `ENABLE_CAPABILITIES` | Enable Capabilities | `TRUE` |
|
||||
| `ENABLE_CONFIG_RELOAD` | Enable Reload of loolwsd if config changed in container | `TRUE` |
|
||||
| `ENABLE_SECCOMP` | Enable Seccomp | `TRUE` |
|
||||
| `LOLEAFLET_HTML` | Name of loleaflet.html to use | `loleafet.html` |
|
||||
| `REDLINING_AS_COMMENTS` | Show red-lines as comments | `false` |
|
||||
| `DOCUMENT_SIGNING_URL` | Endpoint URL of signing server | `` |
|
||||
| `NETWORK_PROTOCOL` | Network Protocol `ipv4` `ipv6` `all` | `ipv4` |
|
||||
| `ENABLE_WEBDAV` | Enable WebDav Storage | `FALSE` |
|
||||
| `FILE_SERVER_ROOT_PATH` | Path to directory considered as root | `loleaflet/../` |
|
||||
| `FRAME_ANCESTORS` | Hosts where interface van be hosted in Iframe | `` |
|
||||
| `ENABLE_MOUNT_JAIL` | Enable mounting jails | `true` |
|
||||
| `CHILD_ROOT_PATH` | Child root path | `child-roots` |
|
||||
| `SYS_TEMPLATE_PATH` | System Template Path | `systemplate` |
|
||||
| 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 |
|
||||
| ------ | ------------------------ |
|
||||
| `9980` | Libreoffice Web Services |
|
||||
| Port | Description |
|
||||
| ------ | ---------------------- |
|
||||
| `9980` | Collabora Web Services |
|
||||
|
||||
# Maintenance
|
||||
#### Shell Access
|
||||
* * *
|
||||
## Maintenance
|
||||
|
||||
### Shell Access
|
||||
|
||||
For debugging and maintenance purposes you may want access the containers shell.
|
||||
|
||||
```bash
|
||||
docker exec -it (whatever your container name is e.g. libreoffice-online) bash
|
||||
```
|
||||
``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/
|
||||
|
||||
|
||||
|
|
39
examples/compose.yml
Normal file
39
examples/compose.yml
Normal 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
|
|
@ -1,47 +0,0 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
|
||||
libreoffice-app:
|
||||
image: tiredofit/libreoffice-online:latest
|
||||
container_name: libreoffice-app
|
||||
expose:
|
||||
- 9980
|
||||
cap_add:
|
||||
- MKNOD
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.frontend.rule=Host:libreoffice.example.com
|
||||
- traefik.port=9980
|
||||
- traefik.protocol=http
|
||||
- traefik.docker.network=proxy
|
||||
- traefik.backend=libreoffice-app
|
||||
environment:
|
||||
- VIRTUAL_HOST=libreoffice.example.com
|
||||
- VIRTUAL_NETWORK=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
|
||||
- internal
|
||||
- services
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
internal:
|
||||
external: false
|
||||
services:
|
||||
external: true
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
|
||||
libreoffice-online-app:
|
||||
image: tiredofit/libreoffice-online
|
||||
container_name: libreoffice-online-app
|
||||
hostname: libreoffice
|
||||
domainname: example.com
|
||||
expose:
|
||||
- 9980
|
||||
cap_add:
|
||||
- MKNOD
|
||||
- NET_ADMIN
|
||||
privileged: true
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.frontend.rule=Host:libreoffice.example.com
|
||||
- traefik.port=9980
|
||||
- traefik.protocol=http
|
||||
- traefik.docker.network=proxy
|
||||
- traefik.backend=libreoffice-online-app
|
||||
volumes:
|
||||
- ./logs:/var/log/lool
|
||||
environment:
|
||||
- ZABBIX_HOSTNAME=libreoffice-online-app
|
||||
|
||||
- ADMIN_USER=admin
|
||||
- ADMIN_PASS=libreoffice
|
||||
|
||||
- ALLOWED_HOSTS=^(.*)\.example\.org
|
||||
|
||||
- ENABLE_TLS=FALSE
|
||||
- ENABLE_TLS_REVERSE_PROXY=TRUE
|
||||
networks:
|
||||
- proxy
|
||||
- services
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
services:
|
||||
external: true
|
||||
|
1
install/assets/cron/coolwsd
Normal file
1
install/assets/cron/coolwsd
Normal file
|
@ -0,0 +1 @@
|
|||
0 0 */1 * * root find /var/cache/coolwsd -type f -a -atime +10 -exec rm {} \;
|
|
@ -1,2 +0,0 @@
|
|||
0 0 */1 * * root find /var/cache/loolwsd -type f -a -atime +10 -exec rm {} \;
|
||||
|
94
install/assets/defaults/10-coolwsd
Executable file
94
install/assets/defaults/10-coolwsd
Executable 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 ;
|
|
@ -1,61 +0,0 @@
|
|||
#!/usr/bin/with-contenv bash
|
||||
|
||||
### Set Defaults
|
||||
ALWAYS_SAVE_ON_EXIT=${ALWAYS_SAVE_ON_EXIT:-"false"}
|
||||
ALLOW_172_XX_SUBNET=${ALLOW_172_XX_SUBNET:-"TRUE"}
|
||||
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}
|
||||
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_MOUNT_JAIL=${ENABLE_MOUNT_JAIL:-"true"}
|
||||
ENABLE_SECCOMP=${ENABLE_SECCOMP:-"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_WEBDAV=${ENABLE_WEBDAV:-"FALSE"}
|
||||
FILE_SERVER_ROOT_PATH=${FILE_SERVER_ROOT_PATH:-"loleaflet/../"}
|
||||
FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-0}
|
||||
IDLE_SAVE=${IDLE_SAVE:-30}
|
||||
IDLE_UNLOAD_TIMEOUT=${IDLE_UNLOAD_TIMEOUT:-3600}
|
||||
INTERFACE=${INTERFACE:-"classic"}
|
||||
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:-"lool.log"}
|
||||
LOG_FILE_FLUSH=${LOG_FILE_FLUSH:-"false"}
|
||||
LOG_LEVEL=${LOG_LEVEL:-"warning"}
|
||||
LOG_LIBREOFFICE=${LOG_LIBREOFFICE:-"-INFO-WARN"}
|
||||
LOG_PATH=${LOG_PATH:-"/var/log/lool/"}
|
||||
LOG_TYPE=${LOG_TYPE:-"CONSOLE"}
|
||||
LOLEAFLET_HTML=${LOLEAFLET_HTML:-"loleaflet.html"}
|
||||
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}
|
||||
MEMORY_DATA_LIMIT=${MEMORY_DATA_LIMIT:-0}
|
||||
MEMORY_STACK_LIMIT=${MEMORY_STACK_LIMIT:-8000}
|
||||
MEMORY_USAGE_MAX=${MEMORY_USAGE_MAX:-"80.0"}
|
||||
MEMORY_VIRT_LIMIT=${MEMORY_VIRT_LIMIT:-0}
|
||||
NETWORK_PROTOCOL=${NETWORK_PROTOCOL:-"ipv4"}
|
||||
PATH_PREFIX=${PATH_PREFIX:-"/opt/lool/"}
|
||||
PRESPAWN_CHILD_PROCESSES=${PRESPAWN_CHILD_PROCESSES:-1}
|
||||
REDLINING_AS_COMMENTS=${REDLINING_AS_COMMENTS:-"false"}
|
||||
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/loolwsd/certs"}
|
||||
TLS_KEY_FILENAME=${TLS_KEY_FILENAME:-"key.pem"}
|
||||
USER_IDLE_TIMEOUT=${USER_IDLE_TIMEOUT:-900}
|
||||
USER_OUT_OF_FOCUS_TIMEOUT=${USER_OUT_OF_FOCUS_TIMEOUT:-60}
|
||||
WATERMARK_OPACITY=${WATERMARK_OPACITY:-"0.2"}
|
|
@ -2,5 +2,5 @@
|
|||
|
||||
set_config() {
|
||||
print_debug "Setting: '${1}' with value: '${2}'"
|
||||
/opt/lool/bin/loolconfig set ${1} ""${2}""
|
||||
/opt/cool/bin/coolconfig set ${1} ""${2}""
|
||||
}
|
332
install/etc/cont-init.d/10-coolwsd
Executable file
332
install/etc/cont-init.d/10-coolwsd
Executable 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
|
|
@ -1,182 +0,0 @@
|
|||
#!/usr/bin/with-contenv bash
|
||||
|
||||
source /assets/functions/00-container
|
||||
prepare_service single
|
||||
PROCESS_NAME="libreoffice-online"
|
||||
|
||||
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 lool "${LOG_PATH}"
|
||||
|
||||
print_debug "Setting up DNS Resolution"
|
||||
rm /opt/lool/systemplate/etc/resolv.conf
|
||||
cp /etc/hosts /opt/lool/systemplate/etc/
|
||||
cp /etc/resolv.conf /opt/lool/systemplate/etc/
|
||||
|
||||
|
||||
### Custom File Support
|
||||
if [ -d /assets/custom ] ; then
|
||||
print_warn "Custom Files Found, Copying over top of Master.."
|
||||
cp -R /assets/custom/* /opt/lool/share/
|
||||
chown -R lool. /opt/lool/share/
|
||||
fi
|
||||
|
||||
### Execute Custom Scripts if exist to modify parts of the system
|
||||
if [ -d /assets/custom-scripts/ ] ; then
|
||||
print_warn "Found Custom Scripts to Execute"
|
||||
for f in $(find /assets/custom-scripts/ -name \*.sh -type f); do
|
||||
print_warn "Running Script ${f}"
|
||||
chmod +x "${f}"
|
||||
${f}
|
||||
done
|
||||
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 lool "${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."
|
||||
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>${DICTIONARIES}</allowed_languages>|g" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<sys_template_path \(.*\)>.*</sys_template_path>|<sys_template_path \1>${SYS_TEMPLATE_PATH}</sys_template_path>|g" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<child_root_path \(.*\)>.*</child_root_path>|<child_root_path \1>${CHILD_ROOT_PATH}</child_root_path>|g" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<mount_jail_tree \(.*\)>.*</mount_jail_tree>|<mount_jail_tree \1>${ENABLE_MOUNT_JAIL}</mount_jail_tree>|g" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<server_name \(.*\)>.*</server_name>|<server_name \1>${HOSTNAME}</server_name>|g" /etc/loolwsd/loolwsd.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>|g" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<memproportion \(.*\)>.*</memproportion>|<memproportion \1>${MEMORY_USAGE_MAX}</memproportion>|g" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<num_prespawn_children \(.*\)>.*</num_prespawn_children>|<num_prespawn_children \1>${PRESPAWN_CHILD_PROCESSES}</num_prespawn_children>|g" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<max_concurrency \(.*\)>.*<\/max_concurrency>|<max_concurrency \1>${MAX_THREADS_DOCUMENT}<\/max_concurrency>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<batch_priority \(.*\)>.*<\/batch_priority>|<batch_priority \1>${BATCH_PRIORITY}<\/batch_priority>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<document_signing_url \(.*\)>.*<\/document_signing_url>|<document_signing_url \1>${DOCUMENT_SIGNING_URL}<\/document_signing_url>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<redlining_as_comments \(.*\)>.*<\/redlining_as_comments>|<redlining_as_comments \1>${REDLINING_AS_COMMENTS}<\/redlining_as_comments>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<idle_timeout_secs \(.*\)>.*<\/idle_timeout_secs>|<idle_timeout_secs \1>${IDLE_UNLOAD_TIMEOUT}<\/idle_timeout_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<idlesave_duration_secs \(.*\)>.*<\/idlesave_duration_secs>|<idlesave_duration_secs \1>${IDLE_SAVE}<\/idlesave_duration_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<autosave_duration_secs \(.*\)>.*<\/autosave_duration_secs>|<autosave_duration_secs \1>${AUTO_SAVE}<\/autosave_duration_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<always_save_on_exit \(.*\)>.*<\/always_save_on_exit>|<always_save_on_exit \1>${ALWAYS_SAVE_ON_EXIT}<\/always_save_on_exit>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_virt_mem_mb \(.*\)>.*<\/limit_virt_mem_mb>|<limit_virt_mem_mb \1>${MEMORY_VIRT_LIMIT}<\/limit_virt_mem_mb>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_stack_mem_kb \(.*\)>.*<\/limit_stack_mem_kb>|<limit_stack_mem_kb \1>${MEMORY_STACK_LIMIT}<\/limit_stack_mem_kb>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_file_size_mb \(.*\)>.*<\/limit_file_size_mb>|<limit_file_size_mb \1>${FILE_SIZE_LIMIT}<\/limit_file_size_mb>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_num_open_files \(.*\)>.*<\/limit_num_open_files>|<limit_num_open_files \1>${MAX_OPEN_FILES}<\/limit_num_open_files>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_load_secs \(.*\)>.*<\/limit_load_secs>|<limit_load_secs \1>${MAX_FILE_LOAD_LIMIT}<\/limit_load_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_convert_secs \(.*\)>.*<\/limit_convert_secs>|<limit_convert_secs \1>${MAX_CONVERT_LIMIT}<\/limit_convert_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<cleanup desc=\(.*\)>.*>|<cleanup desc=\1>${ENABLE_CLEANUP}>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<cleanup_interval_ms \(.*\)>.*<\/cleanup_interval_ms>|<cleanup_interval_ms \1>${CLEANUP_INTERVAL}<\/cleanup_interval_ms>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<bad_behavior_period_secs \(.*\)>.*<\/bad_behavior_period_secs>|<bad_behavior_period_secs \1>${CLEANUP_BAD_BEHAVIOUR_TIME}<\/bad_behavior_period_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<idle_time_secs \(.*\)>.*<\/<idle_time_secs>|<<idle_time_secs \1>${CLEANUP_IDLE_TIME}<\/<idle_time_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_dirty_mem_mb \(.*\)>.*<\/limit_dirty_mem_mb>|<limit_dirty_mem_mb \1>${CLEANUP_LIMIT_DIRTY_MEMORY}<\/limit_dirty_mem_mb>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_cpu_per \(.*\)>.*<\/limit_cpu_per>|<limit_cpu_per \1>${CLEANUP_LIMIT_CPU_PER}<\/limit_cpu_per>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -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>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<idle_timeout_secs \(.*\)>.*<\/idle_timeout_secs>|<idle_timeout_secs \1>${USER_IDLE_TIMEOUT}<\/idle_timeout_secs>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<loleaflet_html \(.*\)>.*<\/loleaflet_html>|<loleaflet_html \1>${LOLEAFLET_HTML}<\/loleaflet_html>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<color \(.*\)>.*<\/color>|<color \1>${LOG_COLOURIZE}<\/color>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<level \(.*\)>.*<\/level>|<level \1>${LOG_LEVEL}<\/level>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<protocol \(.*\)>.*<\/protocol>|<protocol \1>${LOG_CLIENT_CONSOLE}<\/protocol>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<lokit_sal_log \(.*\)>.*<\/lokit_sal_log>|<lokit_sal_log \1>${LOG_LIBREOFFICE}<\/lokit_sal_log>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<loleaflet_logging \(.*\)>.*<\/loleaflet_logging>|<loleaflet_logging \1>${LOG_CLIENT_CONSOLE}<\/loleaflet_logging>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<proto \(.*\)>.*<\/proto>|<proto \1>${NETWORK_PROTOCOL}<\/proto>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<frame_ancestors \(.*\)>.*<\/frame_ancestors>|<frame_ancestors \1>${FRAME_ANCESTORS}<\/frame_ancestors>|" /etc/loolwsd/loolwsd.xml
|
||||
#sed -i -e "s|localhost<\/host>|${ALLOWED_HOSTS}<\/host>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<connection_timeout \(.*\)>.*<\/connection_timeout>|<connection_timeout \1>${CONNECTION_TIMEOUT}<\/connection_timeout>|" /etc/loolwsd/loolwsd.xml
|
||||
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>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -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>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -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/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<seccomp \(.*\)>.*<\/seccomp>|<seccomp \1>${ENABLE_SECCOMP}<\/seccomp>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<capabilities \(.*\)>.*<\/capabilities>|<capabilities \1>${ENABLE_CAPABILITIES}<\/capabilities>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<opacity \(.*\)>.*<\/opacity>|<opacity \1>${WATERMARK_OPACITY}<\/opacity>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<text \(.*\)>.*<\/text>|<text \1>${WATERMARK_TEXT}<\/text>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<mode \(.*\)>.*<\/mode>|<mode \1>${INTERFACE}<\/mode>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<webdav desc=\(.*\) allow=\".*\">|<webdav desc=\1 allow=\"${ENABLE_WEBDAV}\">|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<enable desc=\(.*\)>.*<\/enable>|<enable desc=\1>${ENABLE_ADMIN_CONSOLE}<\/enable>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<username \(.*\)>.*<\/username>|<username \1>${ADMIN_USER}<\/username>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<password \(.*\)>.*<\/password>|<password \1>${ADMIN_PASS}<\/password>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<limit_data_mem_kb \(.*\)>.*<\/limit_data_mem_kb>|<limit_data_mem_kb \1>${MEMORY_DATA_LIMIT}<\/limit_data_mem_kb>|" /etc/loolwsd/loolwsd.xml
|
||||
|
||||
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/loolwsd/loolwsd.xml
|
||||
fi
|
||||
|
||||
if var_true "${ENABLE_TLS_REVERSE_PROXY}" ; then
|
||||
sed -i -E "s|<termination \(.*\)>.*<\/termination>|<termination \1>true<\/termination>|" /etc/loolwsd/loolwsd.xml
|
||||
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>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<anonymization_salt \(.*\)>.*<\/anonymization_salt>|<anonymization_salt \1>${LOG_ANONYMIZE_SALT}<\/anonymization_salt>|" /etc/loolwsd/loolwsd.xml
|
||||
fi
|
||||
|
||||
if [ "$LOG_TYPE" = "FILE" ]; then
|
||||
sed -i -e "s|<file enable=\"false\"|<file enable=\"true\"|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<property name=\"path\"\(.*\)>.*<\/property>|<property name=\"path\" \1>${LOG_PATH}/${LOG_FILE}<\/property>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i -e "s|<property name=\"flush\"\(.*\)>.*<\/property>|<property name=\"flush\" \1>${LOG_FILE_FLUSH}<\/property>|" /etc/loolwsd/loolwsd.xml
|
||||
sed -i "s|<LOG_PATH>|${LOG_PATH}|g" /etc/logrotate.d/loolwsd
|
||||
else
|
||||
print_debug "Log: Console"
|
||||
rm -rf /etc/logrotate.d/loolwsd
|
||||
fi
|
||||
|
||||
### Allowed Hosts
|
||||
allowed_hosts=$(echo "${ALLOWED_HOSTS}" | tr "," "\n")
|
||||
for host in $allowed_hosts
|
||||
do
|
||||
print_info "Adding Allowed Host: ${host}"
|
||||
sed -i "/>localhost<\/host>/a \ \ \ \ \ \ \ \ \ \ \ \ \<host desc=\"Docker\ added\ regex\ pattern\ of\ hostname\ to\ allow\ or\ deny.\"\ allow=\"true\">${host}</host>" /etc/loolwsd/loolwsd.xml
|
||||
done
|
||||
|
||||
if var_true "${ALLOW_172_XX_SUBNET}" ; then
|
||||
print_debug "Allowing 172.16.0.0/12 Subnet"
|
||||
sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ <host\ desc=\"Additional\ Docker\ Networks to allow\">172\\.1\[6789\]\.\[0-9\]\{1,3\}\.\[0-9\]\{1,3\}<\/host>" /etc/loolwsd/loolwsd.xml
|
||||
sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ <host\ desc=\"Additional\ Docker\ Networks to allow\">172\\.2\[0-9\]\\.\[0-9\]\{1,3\}\\.\[0-9\]\{1,3\}<\/host>" /etc/loolwsd/loolwsd.xml
|
||||
sed -i "/<\/post_allow>/i \ \ \ \ \ \ \ \ <host\ desc=\"Additional\ Docker\ Networks to allow\">172\\.3\[01\]\\.\[0-9\]\{1,3\}\\.\[0-9\]\{1,3\}<\/host>" /etc/loolwsd/loolwsd.xml
|
||||
fi
|
||||
fi
|
||||
|
||||
# Generate WOPI proof key
|
||||
if [ ! -f /etc/loolwsd/proof_key.pub ]; then
|
||||
silent /opt/lool/bin/loolwsd-generate-proof-key
|
||||
fi
|
||||
|
||||
# Enable Config Reload (Restart when /etc/loolwsd/loolwsd.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
|
|
@ -1,10 +0,0 @@
|
|||
<LOG_PATH>/*.log {
|
||||
daily
|
||||
ifempty
|
||||
rotate 7
|
||||
missingok
|
||||
compress
|
||||
dateext
|
||||
copytruncate
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
source /assets/functions/00-container
|
||||
prepare_service defaults single
|
||||
PROCESS_NAME="libreoffice-online"
|
||||
PROCESS_NAME="collabora-online"
|
||||
|
||||
check_container_initialized
|
||||
check_service_initialized init
|
||||
|
@ -10,13 +10,13 @@ liftoff
|
|||
|
||||
export LC_CTYPE=en_US.UTF-8
|
||||
|
||||
print_info "Starting Libreoffice Online Web Services daemon"
|
||||
exec sudo -u lool /opt/lool/bin/loolwsd \
|
||||
print_start "Starting Libreoffice Online Web Services daemon"
|
||||
exec sudo -u cool /opt/cool/bin/coolwsd \
|
||||
--version \
|
||||
--o:sys_template_path=/opt/lool/systemplate \
|
||||
--o:sys_template_path=/opt/cool/systemplate \
|
||||
--o:lo_template_path=/opt/libreoffice \
|
||||
--o:child_root_path=/opt/lool/child-roots \
|
||||
--o:file_server_root_path=/opt/lool/share/loolwsd storage.filesystem[@allow]=true \
|
||||
--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} >> /var/log/lool/loolwsd.log
|
||||
${EXTRA_OPTIONS} >> ${LOG_PATH}/${LOG_FILE}
|
|
@ -5,12 +5,11 @@ prepare_service defaults single
|
|||
PROCESS_NAME="config-reloader"
|
||||
|
||||
check_container_initialized
|
||||
check_service_initialized init 10-loolwsd
|
||||
check_service_initialized init 10-coolwsd
|
||||
liftoff
|
||||
|
||||
while inotifywait -q -e create,delete,modify,attrib /etc/loolwsd/loolwsd.xml
|
||||
do
|
||||
print_info "Reloading loolwsd configuration do to a detected certificate change"
|
||||
pkill -f --signal 1 loolwsd
|
||||
exit 0
|
||||
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
|
||||
|
|
|
@ -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
|
|
@ -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}'
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
import requests
|
||||
from websocket import create_connection,WebSocket
|
||||
import datetime
|
||||
import sys
|
||||
import os
|
||||
|
||||
|
@ -28,12 +29,13 @@ def get_doc_info(socket_url,token_value):
|
|||
return data
|
||||
|
||||
if __name__ == '__main__':
|
||||
url = "http://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 = "ws://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)
|
377
zabbix_templates/app-collabora_online.json
Normal file
377
zabbix_templates/app-collabora_online.json
Normal 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"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -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>
|
|
@ -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)}>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)}>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()}>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>
|
Loading…
Reference in a new issue