This guide provides an Ansible playbook to install phpIPAM using Docker Compose for Debian 10+, Ubuntu LTS, and RHEL 9+ compatible systems.
phpIPAM is a PHP web application that requires:
Recommended deployment: Docker Compose with official images
- name: Install phpIPAM
hosts: phpipam
become: true
vars:
phpipam_dir: /opt/phpipam
db_password: "phpipam_secure_password_{{ 999999 | random }}"
root_password: "root_secure_password_{{ 999999 | random }}"
tasks:
- name: Create phpIPAM directory
file:
path: "{{ phpipam_dir }}"
state: directory
mode: "0755"
- name: Create docker-compose.yml
copy:
dest: "{{ phpipam_dir }}/docker-compose.yml"
content: |
services:
phpipam-www:
image: phpipam/phpipam-www:latest
container_name: phpipam
ports:
- "80:80"
environment:
- IPAM_DATABASE_HOST=db
- IPAM_DATABASE_NAME=phpipam
- IPAM_DATABASE_USER=phpipam
- IPAM_DATABASE_PASS={{ db_password }}
- IPAM_DATABASE_WEBHOST=%
depends_on:
- db
volumes:
- ./data:/var/www/phpipam
restart: unless-stopped
db:
image: mariadb:10.11
container_name: phpipam-db
environment:
- MYSQL_ROOT_PASSWORD={{ root_password }}
- MYSQL_DATABASE=phpipam
- MYSQL_USER=phpipam
- MYSQL_PASSWORD={{ db_password }}
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
volumes:
db_data:
- name: Start phpIPAM containers
community.docker.docker_compose:
project_src: "{{ phpipam_dir }}"
state: present
- name: Wait for phpIPAM to be ready
uri:
url: http://localhost
status_code: [200, 301, 302]
register: result
until: result.status == 200 or result.status == 301 or result.status == 302
retries: 15
delay: 5
failed_when: false
- name: Display installation info
debug:
msg: |
phpIPAM installation complete!
Access: http://{{ ansible_host }}
Default credentials: admin / phpipam
IMPORTANT: Change default credentials immediately!
For traditional installation without Docker:
- name: Install phpIPAM on LAMP stack
hosts: phpipam
become: true
tasks:
- name: Install LAMP stack
apt:
name:
- apache2
- mariadb-server
- php
- php-mysql
- php-gd
- php-xml
- php-mbstring
- php-zip
- libapache2-mod-php
state: present
- name: Download phpIPAM
get_url:
url: https://github.com/phpipam/phpipam/releases/latest/download/phpipam.zip
dest: /tmp/phpipam.zip
- name: Extract phpIPAM
unarchive:
src: /tmp/phpipam.zip
dest: /var/www/html
remote_src: true
phpipam/phpipam-www and phpipam/phpipam-cronAny questions?
Feel free to contact us. Find all contact information on our contact page.