QuickBooks Desktop On-Premise Setup
QuickBooks Desktop runs locally and can’t be accessed directly from the cloud. To sync data from it, you need two things running on your network:
- CData QuickBooks Desktop Gateway — A Windows service that exposes QuickBooks data over HTTP/HTTPS
- Resplendent Sync Agent — A Docker container that connects to our cloud and relays sync requests to the Gateway
The sync agent connects outbound to Resplendent (no inbound firewall rules needed). When a sync runs, our cloud tells the agent what to fetch, the agent queries the Gateway, and sends the data back.
┌─────────────────────────────────────────────────────────────────┐│ Your local network ││ ││ ┌──────────────────┐ ┌──────────────────────────────┐ ││ │ Linux VM │ HTTP │ Windows machine │ ││ │ (Sync Agent) │◄───────►│ (QuickBooks + Gateway) │ ││ └────────┬─────────┘ └──────────────────────────────┘ ││ │ │└───────────│─────────────────────────────────────────────────────┘ │ WebSocket (outbound only) ▼ ┌───────────────────┐ │ Resplendent │ │ Cloud │ └───────────────────┘Part 1: Create a sync agent in Resplendent
Section titled “Part 1: Create a sync agent in Resplendent”- Log in to Resplendent at https://app.resplendentdata.com
- Go to Data Settings → Sync Agents in the left sidebar
- Click the Add button (top right of the table)
- Enter a name for your agent (e.g., “Office Sync Agent”)
- Click Save
After saving, the page shows your Agent UUID and Agent Key. Copy both — you’ll need them when installing the agent.
The Agent Key appears after the first save and remains accessible on this page for future reference.
Part 2: Install the sync agent
Section titled “Part 2: Install the sync agent”Requirements
Section titled “Requirements”- Linux server (Ubuntu 20.04+ or similar)
- Docker and Docker Compose installed
- Network access to your Windows machine running QuickBooks
The agent also runs on any machine with Docker, including Windows with WSL2 or macOS. We recommend a dedicated Linux VM because it’s easier to keep running 24/7.
Quick install
Section titled “Quick install”SSH into your server and run:
mkdir resplendent_sync_agentcd resplendent_sync_agentcurl -sSL https://app.resplendentdata.com/api/public/sync-agent-install.sh | bashThe script prompts for your Agent UUID and Agent Key. It creates a docker-compose.yaml and starts the agent.
Manual install
Section titled “Manual install”If you prefer not to pipe scripts to bash, create docker-compose.yaml manually:
services: sync-agent: image: resplendentdata/sync-agent:latest container_name: sync-agent environment: - SYNC_AGENT_UUID=your-uuid-here - SYNC_AGENT_KEY=your-key-here labels: - 'com.centurylinklabs.watchtower.enable=true' restart: always
watchtower: image: containrrr/watchtower container_name: watchtower volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - WATCHTOWER_CLEANUP=true - WATCHTOWER_INCLUDE_RESTARTING=true - WATCHTOWER_ROLLING_RESTART=true - WATCHTOWER_POLL_INTERVAL=21600 dns: # Watchtower needs public DNS to resolve Docker Hub for image updates - 8.8.8.8 - 1.1.1.1 restart: alwaysReplace the UUID and Key values, then run:
docker compose up -dWatchtower checks for updates every 6 hours and restarts the agent automatically when new versions are released.
Verify it’s working
Section titled “Verify it’s working”docker compose logs -f sync-agentYou should see:
INFO:__main__:Authenticating with serverINFO:__main__:Successfully authenticated with the serverBack in Resplendent, the Last Connection field on the Sync Agents page should update to show the current time. The agent sends a heartbeat every 30 seconds.
Part 3: Install the CData Gateway (Windows)
Section titled “Part 3: Install the CData Gateway (Windows)”Requirements
Section titled “Requirements”- Windows machine where QuickBooks Desktop is installed
- QuickBooks Desktop must be running during syncs
- Administrator access
Installation
Section titled “Installation”-
Download the CData QuickBooks Desktop Gateway from: https://www.cdata.com/products/quickbooksgateway/
-
Run the installer
-
The Gateway Control Panel opens after installation. If not, find “CData QuickBooks Desktop Gateway” in the Start Menu.
Part 4: Configure the Gateway
Section titled “Part 4: Configure the Gateway”Create a Gateway user
Section titled “Create a Gateway user”- Open the CData QuickBooks Desktop Gateway
- Go to the Users tab
- Click Add User
- Enter a username (e.g.,
resplendent) and a password - Click Save
Write down the username and password. You’ll enter these in Resplendent later.
Configure the service
Section titled “Configure the service”- Go to the Service tab
- Note the Port (default: 8166)
- SSL is not required for local connections — the sync agent runs on the same network, so HTTP is fine
- Note the URL shown (e.g.,
http://192.168.1.100:8166) - Click Start Service
Authorize QuickBooks access
Section titled “Authorize QuickBooks access”- Open QuickBooks Desktop as an administrator
- In the Gateway, go to the Connection tab
- Click Connect to QuickBooks
- QuickBooks shows an authorization prompt — select “Yes, always allow access”
- Verify the status shows “Connected”
QuickBooks must be open and logged in whenever a sync runs. If it’s closed, syncs will fail with a “QuickBooks not responding” error.
Part 5: Connect in Resplendent
Section titled “Part 5: Connect in Resplendent”- In Resplendent, go to Data Settings → Integrations
- Find QuickBooks Desktop and click Connect
- Enter your Gateway details:
- Gateway URL: The URL from Part 4 (e.g.,
http://192.168.1.100:8166) - Username: The Gateway user from Part 4
- Password: The password you created
- Gateway URL: The URL from Part 4 (e.g.,
- Scroll down to On-Premise Sync Agent
- Toggle Enable On-Premise Sync
- Select your sync agent from the list
- Click Save & Test
If the test succeeds, you’ll see a green “Connected” status. Click Sync Dataset to choose which QuickBooks tables to sync.
Managing the sync agent
Section titled “Managing the sync agent”Common commands (run from the directory containing docker-compose.yaml):
# View logsdocker compose logs -f sync-agent
# Restart the agentdocker compose restart sync-agent
# Stop the agentdocker compose down
# Pull latest version manuallydocker compose pull && docker compose up -dTroubleshooting
Section titled “Troubleshooting””Network unreachable” or connection timeout
Section titled “”Network unreachable” or connection timeout”- Verify the Linux VM can reach the Windows machine:
ping <windows-ip> - Check Windows Firewall allows inbound connections on port 8166
- Make sure the Gateway service is running (check the Service tab)
“Authentication failed”
Section titled ““Authentication failed””- Verify the username and password match what you created in the Gateway
- Check the Gateway URL matches (http vs https if you enabled SSL)
“QuickBooks not responding”
Section titled ““QuickBooks not responding””- Make sure QuickBooks Desktop is open and logged into a company file
- Verify the Gateway shows “Connected” in the Connection tab
- Try clicking Connect to QuickBooks again in the Gateway
Sync agent not connecting
Section titled “Sync agent not connecting”- Check Docker is running:
docker ps - Verify the UUID and Key in docker-compose.yaml match what’s in Resplendent
- Check logs for authentication errors:
docker compose logs sync-agent
Agent shows “Never connected” in Resplendent
Section titled “Agent shows “Never connected” in Resplendent”- The agent might not have started. Check
docker compose ps - Outbound WebSocket connections might be blocked. The agent connects to
wss://app.resplendentdata.comon port 443 - DNS issues: try adding
dns: [8.8.8.8, 1.1.1.1]under the sync-agent service
Security notes
Section titled “Security notes”- HTTP is fine for local connections — The sync agent runs on your local network, so HTTPS isn’t required. If you prefer encryption, you can enable SSL in the Gateway settings.
- Restrict Gateway access — Configure Windows Firewall to only allow the sync agent’s IP on port 8166
- Use strong passwords — The Gateway user password protects access to your QuickBooks data
- Keep software updated — The sync agent updates automatically; update QuickBooks and the Gateway manually
- Docker socket access — Watchtower mounts the Docker socket (
/var/run/docker.sock) to manage container updates. This grants Watchtower privileged access to control containers on the host. Some enterprise security policies may prohibit socket access. If you need manual update control, remove the watchtower service from docker-compose.yaml and rundocker compose pull && docker compose up -dto update manually.
The sync agent only makes outbound connections. It doesn’t open any inbound ports or accept incoming connections.
Support
Section titled “Support”If you’re stuck, email support@resplendentdata.com with:
- Sync agent logs (
docker compose logs sync-agent) - Screenshot of the Gateway’s Connection tab
- Any error messages from the Resplendent UI