Collabora


Get Started with Apps!
App Version: 25.04.2.2.1 (Changelog)
Keywords: office, documents, productivity
Train: Stable
Home Page: https://www.collaboraoffice.com/
Added: 2024-08-02
Last Updated: 2025-06-07
Collabora is a collaborative online office suite based on LibreOffice technology
Run as Context- Collabora runs as non-root user.
Group: 101 / cool
User: 100 / cool - Nginx runs as root user.
Group: 0 / root
User: 0 / root

Security Capabilities
- Collabora, Nginx are able to change file ownership arbitrarily
- Collabora, Nginx are able to bypass file permission checks
- Collabora, Nginx are able to bypass permission checks for file operations
- Collabora is able to create special files using mknod()
- Collabora is able to set file capabilities on other files
- Collabora, Nginx are able to change group ID of processes
- Collabora, Nginx are able to change user ID of processes
- Collabora is able to use chroot() system call
App Metadata (Raw File)
{
"1.3.3": {
"healthy": true,
"supported": true,
"healthy_error": null,
"location": "/__w/apps/apps/trains/stable/collabora/1.3.3",
"last_update": "2025-06-07 23:02:15",
"required_features": [],
"human_version": "25.04.2.2.1_1.3.3",
"version": "1.3.3",
"app_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "25.04.2.2.1",
"capabilities": [
{
"description": "Collabora, Nginx are able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Collabora, Nginx are able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Collabora, Nginx are able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Collabora is able to create special files using mknod()",
"name": "MKNOD"
},
{
"description": "Collabora is able to set file capabilities on other files",
"name": "SETFCAP"
},
{
"description": "Collabora, Nginx are able to change group ID of processes",
"name": "SETGID"
},
{
"description": "Collabora, Nginx are able to change user ID of processes",
"name": "SETUID"
},
{
"description": "Collabora is able to use chroot() system call",
"name": "SYS_CHROOT"
}
],
"categories": [
"productivity"
],
"changelog_url": "https://www.collaboraonline.com/collabora-online-24-04-release-notes/",
"date_added": "2024-08-02",
"description": "Collabora is a collaborative online office suite based on LibreOffice technology",
"home": "https://www.collaboraoffice.com/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/collabora/icons/icon.png",
"keywords": [
"office",
"documents",
"productivity"
],
"lib_version": "2.1.35",
"lib_version_hash": "1bd4e0058fbd4d7c207df2cae606580065e8e6dba3e232f41bc1b006848b05d2",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "collabora",
"run_as_context": [
{
"description": "Collabora runs as non-root user.",
"gid": 101,
"group_name": "cool",
"uid": 100,
"user_name": "cool"
},
{
"description": "Nginx runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/collabora/screenshots/screenshot1.png"
],
"sources": [
"https://www.collaboraoffice.com/",
"https://github.com/CollaboraOnline/online",
"https://hub.docker.com/r/collabora/code"
],
"title": "Collabora",
"train": "stable",
"version": "1.3.3"
},
"schema": {
"groups": [
{
"name": "Collabora Configuration",
"description": "Configure Collabora"
},
{
"name": "Network Configuration",
"description": "Configure Network for Collabora"
},
{
"name": "Storage Configuration",
"description": "Configure Storage for Collabora"
},
{
"name": "Labels Configuration",
"description": "Configure Labels for Collabora"
},
{
"name": "Resources Configuration",
"description": "Configure Resources for Collabora"
}
],
"questions": [
{
"variable": "TZ",
"group": "Collabora Configuration",
"label": "Timezone",
"schema": {
"type": "string",
"default": "Etc/UTC",
"required": true,
"$ref": [
"definitions/timezone"
]
}
},
{
"variable": "collabora",
"label": "",
"group": "Collabora Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "server_name",
"label": "Server Name",
"description": "The server name for Collabora.",
"schema": {
"type": "string",
"default": "",
"$ref": [
"definitions/nodeIP"
]
}
},
{
"variable": "enable_webui",
"label": "Enable WebUI",
"description": "Enable WebUI for Collabora.",
"schema": {
"type": "boolean",
"default": true
}
},
{
"variable": "username",
"label": "Username",
"description": "The username for Collabora.",
"schema": {
"type": "string",
"show_if": [
[
"enable_webui",
"=",
true
]
],
"required": true
}
},
{
"variable": "password",
"label": "Password",
"description": "The password for Collabora.",
"schema": {
"type": "string",
"show_if": [
[
"enable_webui",
"=",
true
]
],
"valid_chars": "^[a-zA-Z0-9!@#$%^&*?]{8,}$|^$",
"valid_chars_error": "Password must be at least 8 characters long and contain at least one of the following:</br>\n- Uppercase letter</br>\n- Lowercase letter</br>\n- Number</br>\n- Special character (!@#$%^&*?)</br>\n- **Only** the above characters are allowed\n",
"required": true,
"private": true
}
},
{
"variable": "aliasgroup1",
"label": "Alias Group 1",
"description": "List of domains that will be allowed to access the Collabora server\nType one domain per line\n",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "alias",
"label": "Alias",
"schema": {
"type": "string"
}
}
]
}
},
{
"variable": "dictionaries",
"label": "Dictionaries",
"description": "Dictionaries to be used by Collabora.",
"schema": {
"type": "list",
"default": [
"de_DE",
"en_GB",
"en_US",
"es_ES",
"fr_FR",
"it",
"nl",
"pt_BR",
"pt_PT",
"ru"
],
"items": [
{
"variable": "dictionary",
"label": "Dictionary",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "extra_params",
"label": "Extra Parameters",
"description": "Extra parameters to be passed to Collabora.",
"schema": {
"type": "list",
"default": [
"--o:welcome.enable=false",
"--o:user_interface.mode=notebookbar",
"--o:ssl.termination=true",
"--o:ssl.enable=false",
"--o:net.proto=IPv4",
"--o:logging.level=warning",
"--o:logging.level_startup=warning",
"--o:mount_jail_tree=false"
],
"items": [
{
"variable": "extraParam",
"label": "Extra Parameter",
"schema": {
"type": "string",
"default": "",
"required": true
}
}
]
}
},
{
"variable": "additional_envs",
"label": "Additional Environment Variables",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "env",
"label": "Environment Variable",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "name",
"label": "Name",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "network",
"label": "",
"group": "Network Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "web_port",
"label": "WebUI Port",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "bind_mode",
"label": "Port Bind Mode",
"description": "The port bind mode.</br>\n- Publish: The port will be published on the host for external access.</br>\n- Expose: The port will be exposed for inter-container communication.</br>\n- None: The port will not be exposed or published.</br>\nNote: If the Dockerfile defines an EXPOSE directive,\nthe port will still be exposed for inter-container communication regardless of this setting.\n",
"schema": {
"type": "string",
"default": "published",
"enum": [
{
"value": "published",
"description": "Publish port on the host for external access"
},
{
"value": "exposed",
"description": "Expose port for inter-container communication"
},
{
"value": "",
"description": "None"
}
]
}
},
{
"variable": "port_number",
"label": "Port Number",
"schema": {
"type": "int",
"show_if": [
[
"bind_mode",
"=",
"published"
]
],
"default": 9980,
"min": 1,
"max": 65535,
"required": true
}
},
{
"variable": "host_ips",
"label": "Host IPs",
"description": "IPs on the host to bind this port",
"schema": {
"type": "list",
"show_if": [
[
"bind_mode",
"=",
"published"
]
],
"default": [],
"items": [
{
"variable": "host_ip",
"label": "Host IP",
"schema": {
"type": "string",
"required": true,
"$ref": [
"definitions/node_bind_ip"
]
}
}
]
}
}
]
}
},
{
"variable": "certificate_id",
"label": "Certificate ID",
"description": "The certificate ID to use for Elastic Search.",
"schema": {
"type": "int",
"null": true,
"$ref": [
"definitions/certificate"
]
}
}
]
}
},
{
"variable": "storage",
"label": "",
"group": "Storage Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "additional_storage",
"label": "Additional Storage",
"description": "Additional storage for Collabora.",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "storageEntry",
"label": "Storage Entry",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "type",
"label": "Type",
"description": "ixVolume: Is dataset created automatically by the system.</br>\nHost Path: Is a path that already exists on the system.</br>\nSMB Share: Is a SMB share that is mounted to as a volume.\n",
"schema": {
"type": "string",
"required": true,
"default": "ix_volume",
"immutable": true,
"enum": [
{
"value": "host_path",
"description": "Host Path (Path that already exists on the system)"
},
{
"value": "ix_volume",
"description": "ixVolume (Dataset created automatically by the system)"
},
{
"value": "cifs",
"description": "SMB/CIFS Share (Mounts a volume to a SMB share)"
}
]
}
},
{
"variable": "read_only",
"label": "Read Only",
"description": "Mount the volume as read only.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "mount_path",
"label": "Mount Path",
"description": "The path inside the container to mount the storage.",
"schema": {
"type": "path",
"required": true
}
},
{
"variable": "host_path_config",
"label": "Host Path Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"host_path"
]
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "acl",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
},
{
"variable": "path",
"label": "Host Path",
"description": "The host path to use for storage.",
"schema": {
"type": "hostpath",
"show_if": [
[
"acl_enable",
"=",
false
]
],
"required": true
}
}
]
}
},
{
"variable": "ix_volume_config",
"label": "ixVolume Configuration",
"description": "The configuration for the ixVolume dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"ix_volume"
]
],
"$ref": [
"normalize/ix_volume"
],
"attrs": [
{
"variable": "acl_enable",
"label": "Enable ACL",
"description": "Enable ACL for the storage.",
"schema": {
"type": "boolean",
"default": false
}
},
{
"variable": "dataset_name",
"label": "Dataset Name",
"description": "The name of the dataset to use for storage.",
"schema": {
"type": "string",
"required": true,
"immutable": true,
"default": "storage_entry"
}
},
{
"variable": "acl_entries",
"label": "ACL Configuration",
"schema": {
"type": "dict",
"show_if": [
[
"acl_enable",
"=",
true
]
],
"attrs": [],
"$ref": [
"normalize/acl"
]
}
}
]
}
},
{
"variable": "cifs_config",
"label": "SMB Configuration",
"description": "The configuration for the SMB dataset.",
"schema": {
"type": "dict",
"show_if": [
[
"type",
"=",
"cifs"
]
],
"attrs": [
{
"variable": "server",
"label": "Server",
"description": "The server to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "path",
"label": "Path",
"description": "The path to mount the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "username",
"label": "Username",
"description": "The username to use for the SMB share.",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "password",
"label": "Password",
"description": "The password to use for the SMB share.",
"schema": {
"type": "string",
"required": true,
"private": true
}
},
{
"variable": "domain",
"label": "Domain",
"description": "The domain to use for the SMB share.",
"schema": {
"type": "string"
}
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "labels",
"label": "",
"group": "Labels Configuration",
"schema": {
"type": "list",
"default": [],
"items": [
{
"variable": "label",
"label": "Label",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "key",
"label": "Key",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "value",
"label": "Value",
"schema": {
"type": "string",
"required": true
}
},
{
"variable": "containers",
"label": "Containers",
"description": "Containers where the label should be applied",
"schema": {
"type": "list",
"items": [
{
"variable": "container",
"label": "Container",
"schema": {
"type": "string",
"required": true,
"enum": [
{
"value": "collabora",
"description": "collabora"
},
{
"value": "nginx",
"description": "nginx"
}
]
}
}
]
}
}
]
}
}
]
}
},
{
"variable": "resources",
"label": "",
"group": "Resources Configuration",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "limits",
"label": "Limits",
"schema": {
"type": "dict",
"attrs": [
{
"variable": "cpus",
"label": "CPUs",
"description": "CPUs limit for Collabora.",
"schema": {
"type": "int",
"default": 2,
"required": true
}
},
{
"variable": "memory",
"label": "Memory (in MB)",
"description": "Memory limit for Collabora.",
"schema": {
"type": "int",
"default": 4096,
"required": true
}
}
]
}
}
]
}
}
]
},
"readme": "<h1>Collabora</h1> <p><a href=\"https://www.collaboraoffice.com/\">Collabora</a> is a collaborative online office suite based on LibreOffice technology</p>",
"changelog": null,
"chart_metadata": {
"annotations": {
"min_scale_version": "24.10.2.2"
},
"app_version": "25.04.2.2.1",
"capabilities": [
{
"description": "Collabora, Nginx are able to change file ownership arbitrarily",
"name": "CHOWN"
},
{
"description": "Collabora, Nginx are able to bypass file permission checks",
"name": "DAC_OVERRIDE"
},
{
"description": "Collabora, Nginx are able to bypass permission checks for file operations",
"name": "FOWNER"
},
{
"description": "Collabora is able to create special files using mknod()",
"name": "MKNOD"
},
{
"description": "Collabora is able to set file capabilities on other files",
"name": "SETFCAP"
},
{
"description": "Collabora, Nginx are able to change group ID of processes",
"name": "SETGID"
},
{
"description": "Collabora, Nginx are able to change user ID of processes",
"name": "SETUID"
},
{
"description": "Collabora is able to use chroot() system call",
"name": "SYS_CHROOT"
}
],
"categories": [
"productivity"
],
"changelog_url": "https://www.collaboraonline.com/collabora-online-24-04-release-notes/",
"date_added": "2024-08-02",
"description": "Collabora is a collaborative online office suite based on LibreOffice technology",
"home": "https://www.collaboraoffice.com/",
"host_mounts": [],
"icon": "https://media.sys.truenas.net/apps/collabora/icons/icon.png",
"keywords": [
"office",
"documents",
"productivity"
],
"lib_version": "2.1.35",
"lib_version_hash": "1bd4e0058fbd4d7c207df2cae606580065e8e6dba3e232f41bc1b006848b05d2",
"maintainers": [
{
"email": "dev@ixsystems.com",
"name": "truenas",
"url": "https://www.truenas.com/"
}
],
"name": "collabora",
"run_as_context": [
{
"description": "Collabora runs as non-root user.",
"gid": 101,
"group_name": "cool",
"uid": 100,
"user_name": "cool"
},
{
"description": "Nginx runs as root user.",
"gid": 0,
"group_name": "root",
"uid": 0,
"user_name": "root"
}
],
"screenshots": [
"https://media.sys.truenas.net/apps/collabora/screenshots/screenshot1.png"
],
"sources": [
"https://www.collaboraoffice.com/",
"https://github.com/CollaboraOnline/online",
"https://hub.docker.com/r/collabora/code"
],
"title": "Collabora",
"train": "stable",
"version": "1.3.3"
}
}
}
Support and documentation for applications within the Stable catalog is handled by the TrueNAS community. The TrueNAS Applications Portal hosts but does not validate or maintain any linked resources associated with this app.