Skip to content

Quick Start

This guide takes you from starting BoldDocServer to editing a Word document in SharePoint. It uses HTTPS on port 443 and enables collaborative editing.

You need:

  • A host that runs Linux containers, with Docker Engine and Docker Compose installed and port 443 available.
  • The BoldDocServer Docker image, license key, and spell-check dictionary package.
  • A hostname for BoldDocServer, with a trusted TLS certificate and its private key.
  • A Redis server and connection string for collaborative editing.
  • A SharePoint Server test library, a .docx file, and a user account with edit permission. A SharePoint administrator is needed for step 6.

SharePoint and user browsers must be able to reach the BoldDocServer hostname over HTTPS. BoldDocServer must be able to reach SharePoint and Redis. See Deployment Prerequisites for the full requirements.

This guide uses a direct connection to BoldDocServer. If you use NGINX or IIS in front of the application, follow reverse-proxy setup.

On the container host, create a folder for the deployment and subfolders for certificates and dictionaries.

Linux/macOS shell:

Terminal window
mkdir -p bold-doc-server/certs bold-doc-server/data
cd bold-doc-server

PowerShell:

Terminal window
New-Item -ItemType Directory -Force -Path ./bold-doc-server
Set-Location ./bold-doc-server
New-Item -ItemType Directory -Force -Path ./certs, ./data

Run the Docker commands in this guide from this folder.

Create docker-compose.yaml in the deployment folder with the following settings:

services:
app:
image: "<bold-doc-server-image>"
container_name: bold-doc-server
restart: unless-stopped
environment:
BOLD_DOC_SERVER_LICENSE: "<your-license-key>"
WOPI_HOST_URL: "https://bolddocserver.example.com"
ENABLE_COLLABORATIVE_EDITING: "true"
VERSION_COMMIT_INTERVAL_MS: "300000"
AUTO_SAVE_INTERVAL_MS: "10000"
SPELLCHECK_DICTIONARY_PATH: /app/data
SPELLCHECK_JSON_FILENAME: spellcheck.json
SPELLCHECK_CACHE_COUNT: "2"
REDIS_CACHE_CONNECTION_STRING: "<your-redis-connection-string>"
SSL_CERT_PATH: /https/certificate.crt
SSL_KEY_PATH: /https/private-key.key
ports:
- "443:443"
volumes:
- ./certs:/https:ro
- ./data:/app/data:ro

Replace these values directly in docker-compose.yaml:

Value Replace with
<bold-doc-server-image> The full Docker image name provided with BoldDocServer.
<your-license-key> Your BoldDocServer license key.
https://bolddocserver.example.com Your BoldDocServer HTTPS URL. The hostname must match your certificate.
<your-redis-connection-string> The connection string for the Redis server used for collaboration.

Use your BoldDocServer hostname in place of bolddocserver.example.com in the remaining steps.

Copy your certificate chain to certs/certificate.crt and its private key to certs/private-key.key. Copy the spell-check dictionary package into data/, including spellcheck.json and any accompanying dictionary files.

Your folder should now contain:

bold-doc-server/
├── docker-compose.yaml
├── certs/
│ ├── certificate.crt
│ └── private-key.key
└── data/
├── spellcheck.json
└── (other files from the dictionary package)

Keep docker-compose.yaml and the private key out of source control once they contain your deployment credentials, and restrict access to them.

Run:

Terminal window
docker compose up -d
docker compose ps

Expected result: The app service is listed as running.

If it fails to start, see Container fails to start.

Run this command in PowerShell on the SharePoint server. It checks that SharePoint can reach BoldDocServer over HTTPS and retrieve its list of document types and actions.

Terminal window
curl.exe -i https://bolddocserver.example.com/hosting/discovery

Expected result: The request succeeds over trusted HTTPS and returns XML. The editor URLs in the XML use your BoldDocServer hostname.

If the request fails, see Discovery troubleshooting.

Ask your SharePoint administrator to run these commands in SharePoint Management Shell on the test SharePoint server.

First, inspect the existing document bindings and WOPI zone:

Terminal window
Get-SPWOPIBinding
Get-SPWOPIZone

Bindings tell SharePoint which application opens each document type. If bindings for your document types already exist, follow the integration guide before changing them.

Register BoldDocServer:

Terminal window
New-SPWOPIBinding -ServerName "bolddocserver.example.com"

Use the hostname only, without https:// or a path.

The WOPI zone selects which editor URLs SharePoint uses. If your discovery XML advertises the external-https zone and that zone matches your SharePoint setup, select it:

Terminal window
Set-SPWOPIZone -Zone "external-https"

For other setups, follow Select the WOPI zone. Changing the zone affects the SharePoint farm.

Check the result:

Terminal window
Get-SPWOPIBinding -Server "bolddocserver.example.com"
Get-SPWOPIZone

Expected result: Bindings are listed for viewing and editing Word documents, and the zone matches your chosen setup.

For registration errors, see Connect SharePoint.

  1. Sign in to SharePoint with the account that has edit permission.
  2. Upload your test .docx file to the document library.
  3. Use the library’s browser editing command to open it in the BoldDocServer DOCX editor. The command label varies by SharePoint version.
  4. Add the sentence BoldDocServer save test to the document.
  5. Use the editor’s save action, if available, or wait for auto-save. This example sets auto-save to run every 10 seconds.
  6. Wait for the save to complete, then close the editor.
  7. Reopen the same file from the SharePoint library and check that BoldDocServer save test is still present.

Expected result: Your edit is present after reopening. You have now opened, edited, and saved a document through BoldDocServer.

To try collaborative editing, open the same document in another browser session using a second account with edit permission. Make a change in one session and check that it appears in the other.

If a save error appears, keep the document open and follow Saving troubleshooting. SharePoint Version History depends on the library’s versioning settings; saving a change does not necessarily create a new version.