Create a new server running the latest stable Ubuntu release on Azure, then connect to it via SSH.
The default user on Azure doesn't have direct root access. Switch to a root shell before running the commands below
sudo -i
Install Docker Engine with the Compose plugin using the official install script, which tracks upstream releases more closely than the Ubuntu-packaged version
curl -fsSL https://get.docker.com | sh
Disable the Docker userland proxy so the large port range below doesn't spawn a process per port
echo '{"userland-proxy": false}' > /etc/docker/daemon.json && systemctl restart docker
Create directories for persistent data and logs
mkdir -p /opt/traccar/data /opt/traccar/logs
Download the official Docker Compose file that runs Traccar together with a MySQL database
curl -o /opt/traccar/compose.yaml https://raw.githubusercontent.com/traccar/traccar/master/docker/compose/traccar-mysql.yaml
Start Traccar
cd /opt/traccar && docker compose up -d
Traccar will be available on port 8082. See the Docker page for more configuration options, including a TimescaleDB (PostgreSQL) compose example.
Note that you can use above commands on any Ubuntu server, not just Azure.
Traccar is now running over plain HTTP. As a next step, see the Secure Connection guide to serve it securely with a free automatic SSL certificate.
DigitalOcean · AWS · Google Cloud · Vultr · Linode · Hetzner · OVHcloud · Contabo · Oracle Cloud