IT Tools on Ubuntu 24.04 on Azure User Guide
Overview
IT Tools is an open-source, self-hosted collection of around 80 handy online utilities for developers and people working in IT: token, UUID and hash generators, encoders and decoders, format converters, a crontab helper, network and subnet calculators, JSON and YAML tools and much more. Every tool runs entirely in your browser as a client-side Vue single-page app, so the data you paste in never leaves the page and there is no external database or service to run.
The cloudimg image serves the built IT Tools app with nginx on port 80, hardened and ready on first boot. Because IT Tools is designed as an open public utility with no authentication of its own, this image is secure by default: nginx gates the whole app behind per-VM HTTP Basic-Auth, and a unique password is generated on the first boot of every instance and written to a root-only file, so no two instances share a credential. A public, unauthenticated health endpoint is exposed at /health. Built from IT Tools v2024.10.22-7ca5933 (GPL-3.0), backed by 24/7 cloudimg support.
What is included:
- IT Tools
v2024.10.22-7ca5933static app, built from the official source and served from/var/www/it-tools - nginx on
:80as the single public listener, gating the app behind per-VM HTTP Basic-Auth - A public, unauthenticated health endpoint at
/health - A first-boot service that generates a unique
adminpassword into a root-only0600file - The unmodified upstream source archive at
/usr/share/it-tools(GPL-3.0 corresponding source) nginx.service+it-tools-firstboot.serviceas systemd units, enabled on every boot- 24/7 cloudimg support
Prerequisites
An active Azure subscription, an SSH key pair, and a VNet plus subnet in the target region. Standard_B2s (2 vCPU / 4 GiB RAM) is a comfortable starting point; IT Tools serves static files, so it is light on resources. NSG inbound: allow 22/tcp from your management network and 80/tcp for the tools. IT Tools serves plain HTTP on port 80; for production, terminate TLS in front of it with your own domain.
Step 1 - Deploy from the Azure Marketplace
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for IT Tools by cloudimg, and select Create. On Basics pick your subscription, resource group, region and size; under Administrator account choose SSH public key and paste your key; under Inbound port rules allow SSH (22) and HTTP (80). Then Review + create and Create.
Step 2 - Deploy from the Azure CLI
az vm create \
--resource-group <your-rg> \
--name it-tools \
--image <marketplace-image-urn> \
--size Standard_B2s \
--admin-username azureuser \
--ssh-key-values ~/.ssh/id_ed25519.pub \
--vnet-name <your-vnet> --subnet <your-subnet> \
--public-ip-sku Standard
az vm open-port --resource-group <your-rg> --name it-tools --port 80 --priority 1010
Step 3 - Connect to your VM
ssh azureuser@<vm-public-ip>
Step 4 - Confirm the service is running
IT Tools is served by nginx, and a one-shot first-boot service prepares the per-VM login. Confirm both, and that nginx is the only public listener:
systemctl is-active nginx.service it-tools-firstboot.service
ss -tln | grep ':80 '
test -f /var/lib/cloudimg/it-tools-firstboot.done && echo "first boot complete"
nginx.service reports active and it-tools-firstboot.service reports active, nginx is listening on :80, and the sentinel confirms first boot finished:
active
active
LISTEN 0 511 0.0.0.0:80 0.0.0.0:*
LISTEN 0 511 [::]:80 [::]:*
first boot complete

Step 5 - Verify the authentication gate
IT Tools has no login of its own, so nginx gates the whole app behind HTTP Basic-Auth. The public /health endpoint returns 200 without credentials, the app returns 401 without credentials, and 200 with the per-VM login:
curl -s -o /dev/null -w 'health: %{http_code}\n' http://127.0.0.1/health
curl -s -o /dev/null -w 'unauth: %{http_code}\n' http://127.0.0.1/
sudo bash -c 'U=$(grep ^IT_TOOLS_USERNAME= /var/lib/cloudimg/it-tools-credentials.txt | cut -d= -f2-); P=$(grep ^IT_TOOLS_PASSWORD= /var/lib/cloudimg/it-tools-credentials.txt | cut -d= -f2-); curl -s -o /dev/null -w "auth: %{http_code}\n" -u "$U:$P" http://127.0.0.1/'
You see health: 200, unauth: 401 and auth: 200 - proof the app is reachable only with the per-VM credential:
health: 200
unauth: 401
auth: 200

Step 6 - Read your per-VM login
The unique per-VM credential (username admin) is written to a root-only file on first boot:
sudo stat -c 'file mode: %a owner: %U:%G' /var/lib/cloudimg/it-tools-credentials.txt
sudo cat /var/lib/cloudimg/it-tools-credentials.txt
Example output (your password is unique to this VM):
file mode: 600 owner: root:root
# IT-Tools 2024.10.22 on Ubuntu 24.04 (cloudimg Azure Marketplace image)
# Per-VM HTTP Basic-Auth credentials - UNIQUE to this VM, minted at first boot.
IT_TOOLS_URL=http://<vm-public-ip>/
IT_TOOLS_USERNAME=admin
IT_TOOLS_PASSWORD=6a84b312d11946e711ba7889ce701de5

Step 7 - Open IT Tools
Browse to http://<vm-public-ip>/ in any modern browser. Your browser prompts for the HTTP Basic-Auth login: enter admin and the password from Step 6. IT Tools opens on its home page, showing every tool grouped by category (Crypto, Converter, Web, Network, Text, Data, Development and more) in a searchable grid.

Step 8 - Generate a token
Open Token generator from the Crypto group (or search for it at the top). Choose which character sets to include (uppercase, lowercase, numbers, symbols) and the length, and IT Tools generates a random token on the spot. Click the copy icon to put it on your clipboard. Everything is computed in your browser - no token ever leaves the page.

Step 9 - Generate UUIDs
Open UUID generator. IT Tools generates a valid RFC-4122 UUID (v4 by default) immediately; change the version or the quantity to produce a batch, and copy the result. This is handy for seeding test data or generating identifiers without a database round-trip.

Step 10 - Hash text
Open Hash text from the Crypto group. Type or paste any text and IT Tools computes its MD5, SHA-1, SHA-256, SHA-512 and other digests live as you type, with a selectable output encoding (hex, base64, and more). For example, hashing hello gives the SHA-256 digest 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 - the well-known value, computed entirely client-side.

Maintenance
- Data: IT Tools is client-side; every tool computes in your browser and nothing is stored server-side. There is no database to back up.
- Change the login: the per-VM password lives in the nginx htpasswd file. To set your own, run
sudo htpasswd -B /etc/nginx/.it-tools-htpasswd adminand follow the prompts, thensudo systemctl reload nginx. - Source code: the unmodified upstream source for this GPL-3.0 release ships on disk at
/usr/share/it-tools/it-tools-v2024.10.22-7ca5933-source.tar.gz. - TLS: IT Tools serves plain HTTP on port 80; front it with TLS (for example certbot) and your own domain before production use.
- Restart:
sudo systemctl restart nginx.serviceif you need to bounce the web server. - Security patches: unattended-upgrades remains enabled so the OS continues to receive security updates automatically.
Support
cloudimg provides 24/7 expert support for this image. Contact support@cloudimg.co.uk.
IT Tools is open-source software released under the GNU General Public License v3.0 (GPL-3.0). cloudimg is not affiliated with, endorsed by, or sponsored by the IT Tools project or its author. This image packages the open-source IT Tools software for convenient deployment on Microsoft Azure. All trademarks are the property of their respective holders.