Skip to main content

Move to a new server

Your Qubix license is bound to the hardware fingerprint of the server it was activated on (derived from the motherboard's firmware IDs). This stops one license from running on several machines at once. When you move to a new server or replace the motherboard, the fingerprint changes, so you re-bind the license with a fresh activation code from your cabinet.

Re-issue the code before the first start on the new server — then the instance activates cleanly on boot, with no error in between.

note

A normal redeploy (new Docker image, recreated containers) on the same server does not change the fingerprint and does not require any of this.

The flow

Steps

  1. On the old server — stop the stack so the database is in a consistent state:
    Bash
    cd /opt/qubix && docker compose down
  2. Re-issue the activation code. Open the my.qubix.pro cabinet → your license → Reissue code. The old hardware binding is released and a fresh activation code is issued — copy it.
  3. Copy the instance to the new server. Everything you need to keep lives under /opt/qubix:
    • /opt/qubix/data/clickhouse — your database (all stats, campaigns, events and settings);
    • /opt/qubix/data/letsencrypt — your TLS certificates;
    • /opt/qubix/data/qubix — the backend's local state;
    • /opt/qubix/.env — your settings and secrets;
    • /opt/qubix/docker-compose.yml — the stack definition.
    Bash
    ssh newserver 'mkdir -p /opt/qubix'
    rsync -a /opt/qubix/ newserver:/opt/qubix/
    Because you stopped the stack in step 1, the database is shut down cleanly and its files are consistent — a plain copy is enough, no separate database dump is needed. The web-server configuration is rebuilt automatically on first start, so there is nothing else to copy.
  4. Replace the activation code on the new server. The copied /opt/qubix/.env still carries the old, already-used code. Replace its value with the one you just re-issued (remove the old code, write the new one):
    Bash
    LICENSE_ACTIVATION_CODE=XXXX-YYYY-ZZZZ
  5. Start the stack:
    Bash
    cd /opt/qubix && docker compose pull && docker compose up -d
    On first start Qubix activates with the new code and binds to the new server. Done.
Already started and saw a hardware-fingerprint error?

That's the same situation, not a failure. Do steps 2 and 4, then restart the backend:

Bash
cd /opt/qubix && docker compose restart qubixd
Keep off-host backups

Always keep an off-host backup of /opt/qubix/data before a move — it is your analytics database.

What's next