1. What you need
- A 64-bit Linux server (x86-64 or ARM64) with Docker Engine 24+ and Docker Compose v2 — or Windows 10/11 with Docker Desktop (WSL 2).
- At least 2 CPU cores, 4 GB RAM and 10 GB free disk space (more for large workloads).
- A licence: a key from a Business or Enterprise plan (https://axto.io/app/self-hosted), or a Lifetime licence (https://axto.io/app/lifetime).
2. Option A — AXTO Setup (recommended)
AXTO Setup checks Docker, downloads the signed images, writes the configuration and starts the app. It keeps your data when you update.
- Windows: download AXTO Setup from the portal (Self-hosted → Download AXTO Setup), run it and paste your licence key.
- Linux: download the installer and install with your key (ARM64 servers: use os=linux-arm64 — AXTO Setup picks the matching ARM64 images):
curl -fsSL -o axto-setup "https://axto.io/api/download/installer?os=linux-amd64" chmod +x axto-setup ./axto-setup install --key SOC-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX - Lifetime licence: use the installer key (LIFE-…) shown in https://axto.io/app/lifetime. AXTO Setup installs the app and activates this device automatically (one device slot); on the command line: axto-setup install soc --key LIFE-…
3. Option B — Docker by hand (air-gapped friendly)
Use this on servers without internet access: copy the files over, load the images and start the app.
- Download the images from the portal (Self-hosted, or Lifetime licences → Downloads) and load them:
docker load -i soc-core.tar.gz - Download soc-compose.yml and soc.example.yml from the portal, put them in one folder and save the config as soc.yml.
- Subscription only: paste your licence key into soc.license_key. (Lifetime: leave it empty.)
- Start the app:
docker compose -p axto-soc -f soc-compose.yml up -d - Open http://localhost:8083 in your browser.
4. Activate online (subscription)
- The app checks its licence with axto.io at start and every 30 minutes. If axto.io cannot be reached it keeps working for up to 4 hours on its last verified proof.
- The licence binds to the first server that uses it. Moving to new hardware? Press “Reset server binding” in https://axto.io/app/self-hosted.
- Licences renew with your plan — no new key is needed when you renew.
5. Activate offline (Lifetime licence)
A Lifetime licence needs no internet connection at all: each device gets a signed activation file that the app verifies locally. AXTO Setup does these steps for you (see Option A); by hand, for air-gapped servers:
- Start the app once (without a key). Read its machine ID — it is also printed in the app's log:
docker compose -p axto-soc -f soc-compose.yml exec -T soc-core cat /soc/data/.axto/machine-id - With AXTO Setup: axto-setup machine-id soc
- In https://axto.io/app/lifetime, press “Activate a device”, paste the machine ID and download the file.
- Install the file and restart — with AXTO Setup: axto-setup activate soc soc.axto-license — or by hand:
docker compose -p axto-soc -f soc-compose.yml cp soc.axto-license soc-core:/soc/data/.axto/soc.axto-license docker compose -p axto-soc -f soc-compose.yml restart - The app now runs with no connection to axto.io. The file only works on that machine and that app; activate each device separately.
6. Update
- AXTO Setup: axto-setup update soc
- By hand: load the new images, then run the start command again. Your data volumes and activation stay in place.
7. Your data & backups
- Everything the app stores lives in Docker volumes; the machine ID and licence state live in /soc/data/.axto.
- Stopping or updating never deletes data. Only removing the volumes (docker compose down -v, or uninstall without --keep-data) does.
- Back up the volumes regularly with your usual Docker backup tooling.
8. Troubleshooting
- Port 8083 already in use → install with --port <other port> (AXTO Setup) or change the port in soc-compose.yml.
- “Licence bound to a different server” → reset the binding in https://axto.io/app/self-hosted.
- Lifetime file “belongs to another machine” → activate this machine's ID in https://axto.io/app/lifetime.
- Docker not running → axto-setup doctor tells you exactly what to fix.
- See what the app says:
docker compose -p axto-soc -f soc-compose.yml logs --tail 100 soc-core
Need help? Chat with us or e-mail hello@axto.io.