Skip to content

Verify an Install

Use this checklist after installing DaCollector on Windows or with Docker. It verifies the server process, the Web UI, and a clean SQLite startup path.

What Passing Looks Like

Check Expected result
Port DaCollector listens on TCP 38111.
Startup API GET http://127.0.0.1:38111/api/v3/Init/Status returns HTTP 200.
Web UI http://127.0.0.1:38111/webui returns HTTP 200 and loads in a browser.
SQLite startup A clean data directory creates SQLite databases without migration errors in the logs.

Quick Check with the Verification Script

For a one-command check on Windows, run the included PowerShell script from the repository root:

.\scripts\verify-install.ps1

Pass -Port to use a non-default local port, -BaseUrl to verify another machine, or -Docker to also check the container health and print recent logs:

.\scripts\verify-install.ps1 -Port 38112 -Docker
.\scripts\verify-install.ps1 -BaseUrl http://192.168.1.50:38111

On a Linux Docker host, use the shell verifier:

chmod +x ./scripts/verify-install.sh
./scripts/verify-install.sh --docker
./scripts/verify-install.sh --base-url http://192.168.1.50:38111

The script exits 0 when all checks pass and 1 when any check fails.


Windows Verification

Start DaCollector from the installer, ZIP, or local publish. Then run:

$baseUrl = "http://127.0.0.1:38111"
Invoke-WebRequest "$baseUrl/api/v3/Init/Status" -UseBasicParsing
Invoke-WebRequest "$baseUrl/webui" -UseBasicParsing

Both commands should return StatusCode : 200.

Check the port listener:

Get-NetTCPConnection -LocalPort 38111 -State Listen

For a clean SQLite startup test, run DaCollector with a temporary data directory:

$env:DACOLLECTOR_HOME = "$env:TEMP\DaCollector-verify"
Remove-Item $env:DACOLLECTOR_HOME -Recurse -Force -ErrorAction SilentlyContinue
.\DaCollector.exe

After the Web UI loads, inspect the log folder under $env:DACOLLECTOR_HOME. There should be no startup failure, database blocked state, or migration exception.

Docker Compose Verification

Start the recommended Compose service:

docker compose up -d
docker compose ps

The dacollector service should be running and should publish 38111:38111.

Verify the HTTP endpoints:

curl -i http://127.0.0.1:38111/api/v3/Init/Status
curl -i http://127.0.0.1:38111/webui

Check logs for startup or migration errors:

docker compose logs --tail 200 dacollector

For a clean SQLite startup test, stop the service, remove only the DaCollector data volume for this test instance, then start it again:

docker compose down
docker volume rm dacollector_dacollector-data
docker compose up -d
docker compose logs -f dacollector

Only remove the volume when you intentionally want to reset the test instance.

Troubleshooting

Symptom Check
Invoke-WebRequest cannot connect Confirm DaCollector is running and no other process owns port 38111.
/api/v3/Init/Status returns an error Read the latest server log and look for startup or migration exceptions.
/webui returns 404 Confirm the published output includes the webui folder.
Docker starts but Windows cannot connect Confirm the Compose file maps "38111:38111" and Docker Desktop is running.
Clean SQLite startup fails Save the logs before deleting the temporary data directory or Docker volume.
Docker appears stuck after Starting ownership repair... The container is running chown -R on the data directory. On TrueNAS/ZFS with many files this takes minutes. Set SKIP_CHOWN=true in docker-compose.yml to bypass it if you manage permissions externally. See TrueNAS and ZFS.