TeemIp
Overview
TeemIp is a web-based IP Address Management (IPAM) application with integrated DHCP and DNS management, delegated administration and a complete IP audit trail. Built on the iTop CMDB framework, it models IP blocks, subnets, ranges and individual addresses across IPv4 and IPv6. It manages DHCP scopes and DNS zones and records a full change history, so teams can plan, allocate and reclaim address space with confidence.
This SecureAnyCloud image ships TeemIp 3.2 served by nginx and PHP 8.3 FPM on a hardened Ubuntu 24.04 LTS base, patched at build time. A bundled local MariaDB server makes the appliance complete on its own. The setup wizard is completed headlessly and locked, so the application is ready the moment the instance boots.
What you get:
- TeemIp 3.2.3 served by nginx and PHP 8.3 FPM, managed by systemd
- A bundled MariaDB server holding the TeemIp database, already installed and ready
- The iTop setup wizard completed headlessly and locked, so no setup wizard is ever exposed on the web
- A per-VM administrator password generated on first boot and recorded in a root-only file
- No shipped default login: the administrator password ships rotated to a discarded random value, and the real per-VM password is set on first boot
- MariaDB bound to
127.0.0.1only, never exposed to the network (the loopback interface, 127.0.0.1:3306) - Graphviz installed for the impact and lifecycle graph rendering that iTop uses
nginx.service,php8.3-fpm.serviceandmariadb.serviceas enabled systemd units- An unauthenticated
/healthzendpoint for Azure Load Balancer health probes - The complete AGPL-3.0 source on disk under
/var/www/teemip - 24/7 SecureAnyCloud support
Prerequisites
You need an active Azure subscription, an SSH key pair, and a VNet with a subnet in the target region.
Standard_D2s_v3 (2 vCPU / 8 GiB RAM) is a sensible starting size for typical production use. A smaller size such as Standard_B2s works for a small deployment.
Configure the network security group (NSG) to allow inbound 22/tcp from your management network, 80/tcp for the application, and 443/tcp if you terminate TLS on the VM. The bundled MariaDB listens on 127.0.0.1 only, so port 3306 stays off the network.
Step 1 - Deploy from the Azure Marketplace
Sign in to the Azure Portal, choose Create a resource, search the Marketplace for TeemIp by SecureAnyCloud, and select Create.
On the Basics tab, 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), HTTP (80) and HTTPS (443).
Then select Review + create and Create.
Step 2 - Deploy from the Azure CLI
Accept the Marketplace terms once per subscription, then create the VM.
# Accept the Marketplace terms once per subscription (required before the first CLI deploy)
az vm image terms accept --urn sac1647283583153:teemip-ubuntu-24-04:default:latest
az vm create \
--resource-group <your-rg> \
--name teemip \
--image sac1647283583153:teemip-ubuntu-24-04:default:latest \
--size Standard_D2s_v3 \
--admin-username azureuser \
--generate-ssh-keys \
--public-ip-sku StandardOpen ports 80 and 443:
az vm open-port --resource-group <your-rg> --name teemip --port 80,443Step 3 - Confirm the services are running
SSH in as azureuser and confirm that nginx, PHP FPM, MariaDB and the first-boot service are all active. MariaDB listens only on 127.0.0.1:3306, while nginx serves TeemIp on port 80.
systemctl is-active nginx php8.3-fpm mariadb teemip-firstbootExpected output:
active active active activeConfirm that the bundled database is bound to loopback only. Port 3306 never leaves the VM.
sudo ss -tlnp | grep -E ':80 |:3306'MariaDB appears on 127.0.0.1:3306 while nginx listens on 0.0.0.0:80:
Step 4 - Retrieve the per-VM administrator password
Every VM generates a unique administrator password on first boot. It records the password, along with the database credentials, in a root-only file. Read the file over SSH:
sudo cat /root/teemip-credentials.txtThe file records the browse URL, the admin user and its per-VM password.
There is no shipped default. The administrator password is rotated to a discarded random value in the image, and the real per-VM password is set on first boot. A credential round trip at build time proves that the per-VM password authenticates while blank and common weak guesses are all rejected.
Step 5 - Sign in
Browse to http://<vm-ip>/. On the TeemIp welcome page, sign in as the admin user with the password from the credentials file.
You land on the TeemIp welcome dashboard, which groups your Configuration Items, Networking objects and IP Management at a glance.
Step 6 - Manage your IP address space
TeemIp organises address space as IP blocks that contain subnets, ranges and individual addresses.
From the left menu, open IP Management. Create an IPv4 Block, for example 10.0.0.0 to 10.255.255.255, and add IPv4 Subnets inside it. The IPv4 Subnets view lists every subnet with its mask, status, owning organization and allocation date, and it supports rich filtering.
Open a block to see its full detail: the address range, delegation information, and tabs for the child blocks and subnets it contains. You can drill down through the hierarchy of your address plan.
Step 7 - Verify the application endpoint
The image exposes an unauthenticated /healthz endpoint for load balancer probes. It serves the TeemIp login page on /pages/UI.php and denies web access to the setup directory. Check the health endpoint:
curl -s -o /dev/null -w 'HTTP %{http_code}\n' http://127.0.0.1/healthzExpected output:
HTTP 200Step 8 - What is installed
TeemIp 3.2 is licensed under the GNU Affero General Public License v3. The complete source ships on disk under /var/www/teemip. Confirm the runtime versions:
php -v | head -1 && mariadb --version && dot -VSecurity notes
- No default login. The administrator password ships rotated to a discarded random value. On the first boot of every VM, the
teemip-firstboot.serviceunit generates a fresh administrator password and a fresh database password. It records them in/root/teemip-credentials.txt(mode0600, root only) and rewrites the application base URL to the VM's resolved address. - Loopback-only database. The bundled MariaDB listens on
127.0.0.1:3306only and is never exposed to the network. Keep port 3306 closed in your NSG. - Setup locked. The iTop configuration file is read-only, and nginx denies web access to the
setup,conf,dataandlogdirectories. The setup wizard can never be reached from a browser. - Fully patched base. The Ubuntu 24.04 LTS base is fully patched at build time and keeps unattended security upgrades enabled for the running VM.
Where your data lives
The TeemIp database is held in the bundled MariaDB on the OS disk. For on-box database maintenance, connect as root over the local socket. No password is needed.
sudo mariadb teemip -e 'SHOW TABLES;' | headEnable HTTPS (optional)
For production, front the appliance with your own domain and a TLS certificate. Point a DNS record at the VM's public IP, then install a certificate with Certbot. Replace the example domain in the last command with your own.
sudo apt-get update && sudo apt-get install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.example.comSupport
Every SecureAnyCloud image includes 24/7 support. For questions about deploying or operating TeemIp on Azure, contact the SecureAnyCloud team.
Deploy on Azure
Launch TeemIp 3.2 IPAM DHCP DNS on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.
View this image
Need Help?
Our support team is available 24/7.
sales@secureanycloud.com