The Docker path ships the same install tree baked into a single runtime image. You pull the image from Docker Hub (or load it from a tarball for air-gapped hosts), then run a small wrapper script that renders configuration, stages your license, mints a TLS cert, and starts the container.Documentation Index
Fetch the complete documentation index at: https://docs.wirekite.io/llms.txt
Use this file to discover all available pages before exploring further.
Requirements
| Requirement | Notes |
|---|---|
| Operating system | Any Linux distro that runs current Docker |
| Docker engine | 20.10 or newer (docker --version) |
| Privileges | Root or sudo (the wrapper writes under /var/lib/wirekite/) |
| Free TCP port | 8443 by default (changeable via --port-host) |
| Outbound HTTPS | To docker.io for the image pull, and to your target databases for migrations |
| Disk | ~700 MB for the image; migration data + change files on disks you allocate |
What you receive from Wirekite
Three things, delivered out-of-band:- Docker Hub credentials — a username + Personal Access Token (PAT) that
grants read access to
wirekite/wirekite. (Air-gapped customers receive awirekite-image.tarinstead.) - License pair —
wirekite.licenseandwirekite.key. Keep both files together. - A pinned image tag — for example
wirekite/wirekite:0.1.0. The same image supports every source and target Wirekite ships.
Stage the license
Place both license files in a single directory on the host. The path is your choice; you’ll pass it to--license-pair-dir later.
wirekite user (uid 999);
mode 0644 covers that.
One-time setup
Docker login
(Optional) Provision data + change disks
For production, allocate two host directories — one for each migration’s data files (initial-load rows in transit) and one for change files (CDC chunks). They can sit on separate physical disks for better throughput./var/lib/wirekite/<your-id>/data/ — fine for evaluation, not recommended
for production.
Install in three steps
Step 1: Extract the wrapper script from the image
docker_setup.sh to your current directory. Substitute <tag> with the
pinned tag you received.
Step 2: Run the wrapper
Pick one invocation depending on whether you provisioned split disks. Single-mount (evaluation / dev):<your-id>— a short identifier you pick (lowercase alphanumeric + hyphens). Becomes the container name (wirekite-<your-id>) and the per-customer state dir (/var/lib/wirekite/<your-id>/by default).<host-or-ip>— the hostname or IP your users will type in a browser. This value is baked into the TLS certificate’s SAN so the browser doesn’t flag a mismatch.
TLS and Let’s Encrypt: by default Wirekite mints a self-signed CA.
Browsers will show a warning until users accept the cert or you bring your own.
Let’s Encrypt does not issue certificates for IPs — it requires a real DNS
name. To use a CA-issued cert see Bring your own TLS
certificate below.
Step 3: Browse to the URL
Openhttps://<host>:8443/ in a browser. Accept the self-signed cert warning
(or use a CA-issued cert as below). You’ll land on the setup page. Create
the root user (username + password), then sign in.
Bring your own TLS certificate
If your organization requires a CA-issued certificate, pass the cert flags instead of relying on the default self-signed CA:CN or SAN must include <host-or-ip>.
Wirekite does not run ACME or auto-renew certs inside the container — that
is your operational responsibility.
Common operations
Restart the container
Upgrade to a new image tag
Stop temporarily
--restart=unless-stopped).
Uninstall
/mnt/wk-data, /mnt/wk-change) is
preserved unless you remove those host directories yourself.
Troubleshooting
docker pull fails with “denied: requested access to the resource is denied”
You’re not logged in or your PAT lacks read access to wirekite/wirekite. Run
docker login -u <your-username> docker.io and paste your PAT.
Wrapper says “container ‘wirekite-<id>’ already exists”
A previous install left a stopped or running container. Remove it:
docker logs shows “license file does not exist”
The --license-pair-dir you passed doesn’t contain wirekite.license and
wirekite.key, or the directory permissions block the container’s uid (999).
Container restarts in a loop
- License invalid or expired — contact your Wirekite rep
- Bind-mounted cert/key files unreadable — check permissions (
0644) - Port
8443already in use on the host — stop the conflicting process or pass--port-host=<other-port>to the wrapper
Cannot reach a database at 127.0.0.1 from the container
The container is on Docker’s default bridge network — 127.0.0.1 inside the
container is the container’s own loopback, not the host’s. Use the host’s
reachable IP, or ask your Wirekite rep about local-mode (host-network) installs
for same-host MySQL/Postgres source extracts.