A document editing service for the Carbonio suite, providing web-based office document editing powered by Collabora Online with service mesh integration.
Carbonio Docs Editor is a packaging and configuration project that builds Collabora Online with Zextras branding and integration patches, producing DEB and RPM packages for deployment within the Carbonio email and collaboration platform. It provides document editing functionality through a web interface and integrates with HashiCorp Consul for service discovery and management.
- Main Service: Runs on port 10000 using Collabora Online (coolwsd)
- Sidecar Proxy: Envoy-based proxy for service mesh integration
- Service Discovery: Consul-based service registration and routing
carbonio-docs-editor: Setup script for service configurationcarbonio-docs-editor.service: Systemd service for the main applicationcarbonio-docs-editor-sidecar.service: Systemd service for the Envoy sidecarcarbonio-docs-routes-generator.py: Python script for generating Consul routing configurations
- Document editing via web interface
- Service mesh integration with Consul Connect
- Automatic service discovery and routing
- Support for multiple service instances
- HTTP protocol support with specific path permissions
# See all available commands
make help
# Build for Ubuntu 22.04 (Zextras devs with Artifactory access)
make build TARGET=ubuntu-jammy
# Build with locally built dependencies (community contributors)
make build TARGET=ubuntu-jammy \
THIRDS_DIR=../carbonio-thirds/artifacts \
CORE_DIR=../carbonio-docs-core/artifacts
# Clean build artifacts
make clean- Podman or Docker installed
- Make
- (Optional) Pre-built artifacts from carbonio-thirds and carbonio-docs-core
This project requires packages from two sibling projects at build time:
- carbonio-thirds — provides
carbonio-opensslandcarbonio-poco - carbonio-docs-core — provides
carbonio-docs-core
Zextras developers with Artifactory access can build without providing these locally. Community contributors should build both projects first, then pass their artifact directories via THIRDS_DIR and CORE_DIR.
ubuntu-jammy- Ubuntu 22.04 LTSubuntu-noble- Ubuntu 24.04 LTSrocky-8- Rocky Linux 8rocky-9- Rocky Linux 9
You can customize the build by setting environment variables:
# Use a specific container runtime
make build TARGET=ubuntu-jammy CONTAINER_RUNTIME=docker
# Specify dependency directories
make build TARGET=rocky-9 \
THIRDS_DIR=../carbonio-thirds/artifacts \
CORE_DIR=../carbonio-docs-core/artifactsThese packages are distributed as part of the Carbonio platform. To install:
apt-get install <package-name>yum install <package-name>The service uses:
- Port: 10000 for the main service
- Proxy Port: 20000 for upstream connectivity
- Protocol: HTTP
- Service ID: Generated automatically per instance
See CONTRIBUTING.md for information on how to contribute to this project.
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE.md file for details.