https://github.com/zextras/carbonio-docs-editor
A Web office suite for Carbonio
https://github.com/zextras/carbonio-docs-editor
carbonio carbonio-component carbonio-docs collaboration collaboration-suite email email-server oss
Last synced: 4 months ago
JSON representation
A Web office suite for Carbonio
- Host: GitHub
- URL: https://github.com/zextras/carbonio-docs-editor
- Owner: zextras
- License: agpl-3.0
- Created: 2023-01-18T15:29:38.000Z (over 3 years ago)
- Default Branch: devel
- Last Pushed: 2026-02-11T16:30:51.000Z (4 months ago)
- Last Synced: 2026-02-11T18:04:47.852Z (4 months ago)
- Topics: carbonio, carbonio-component, carbonio-docs, collaboration, collaboration-suite, email, email-server, oss
- Language: Shell
- Homepage: https://zextras.com/carbonio
- Size: 108 KB
- Stars: 0
- Watchers: 7
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Carbonio Docs Editor
A document editing service for the Carbonio suite, providing web-based office document editing powered by Collabora Online with service mesh integration.
## Overview
Carbonio Docs Editor is a packaging and configuration project that builds [Collabora Online](https://github.com/CollaboraOnline/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.
## Components
### Core Service
- **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
### Key Files
- `carbonio-docs-editor`: Setup script for service configuration
- `carbonio-docs-editor.service`: Systemd service for the main application
- `carbonio-docs-editor-sidecar.service`: Systemd service for the Envoy sidecar
- `carbonio-docs-routes-generator.py`: Python script for generating Consul routing configurations
## Features
- 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
## Quick Start
```bash
# 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
```
### Prerequisites
- Podman or Docker installed
- Make
- (Optional) Pre-built artifacts from [carbonio-thirds](https://github.com/zextras/carbonio-thirds) and [carbonio-docs-core](https://github.com/zextras/carbonio-docs-core)
### Build Dependencies
This project requires packages from two sibling projects at build time:
- **carbonio-thirds** — provides `carbonio-openssl` and `carbonio-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`.
### Supported Targets
- `ubuntu-jammy` - Ubuntu 22.04 LTS
- `ubuntu-noble` - Ubuntu 24.04 LTS
- `rocky-8` - Rocky Linux 8
- `rocky-9` - Rocky Linux 9
### Configuration
You can customize the build by setting environment variables:
```bash
# 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/artifacts
```
## Installation
These packages are distributed as part of the [Carbonio platform](https://zextras.com/carbonio). To install:
### Ubuntu (Jammy/Noble)
```bash
apt-get install
```
### Rocky Linux (8/9)
```bash
yum install
```
## Service Configuration
The service uses:
- **Port**: 10000 for the main service
- **Proxy Port**: 20000 for upstream connectivity
- **Protocol**: HTTP
- **Service ID**: Generated automatically per instance
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for information on how to contribute to this project.
## License
This project is licensed under the GNU Affero General Public License v3.0 - see the [LICENSE.md](LICENSE.md) file for details.