You can use containers inside container orchestration platforms and of course you can do that with phpIPAM as well, but in my case I just wanted the convenience of the container packaging approach and running it on a single Linux host without having to worry about the overheads of K8S style platforms.
I was using a RHEL derivative, Alma Linux 9.0 in this case and also using Podman rather than Docker.
I did want to use the docker-compose approach to configuring and maintaining the application. The compose format makes it really quite simple to deploy and maintain simple container applications that are single system hosted.
Since I wasn’t using Docker, rather Podman, I found that you can use a tool called podman-compose to orchestrate podman to deliver the outcome you’d expect from a docker-compose file.
Firstly, start like this, getting podman and pip3 installed.
yum install podman python3-pip
Then it’s simple to install podman-compose
pip3 install podman-compose
With a docker-compose.yml file similar to the following (change the default passwords i’ve put in the file) you can get going very quickly.
version: '3'
services:
phpipam-web:
image: docker.io/phpipam/phpipam-www:latest
ports:
- "80:80"
environment:
- TZ=Australia/Melbourne
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_USER=root
- IPAM_DATABASE_PASS=<mysql_root_pass>
restart: unless-stopped
volumes:
- phpipam-logo:/phpipam/css/images/logo
depends_on:
- phpipam-mariadb
phpipam-mariadb:
image: docker.io/library/mariadb:latest
environment:
- MARIADB_ROOT_PASSWORD=<mysql_root_pass>
restart: unless-stopped
volumes:
- phpipam-db-data:/var/lib/mysql
volumes:
phpipam-db-data:
phpipam-logo:
Then it’s as simple as
podman-compose up -d
Then you connect to the IP address of your underlying system, and execute the installation dialogue. You should only need to enter the MySQL/MariaDB username / password, everything else should be pre-filled with the correct information.
