rglaue / ddi-phpipam

DDI - phpIPAM - DNS, DHCP, and IPAM in Docker containers

Home Page:https://phpipam.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

phpipam

Docker image for phpIPAM

Forked Documentation

This project is forked from Newlode/phpipam.

Changes from what was forked

  • docker-compose 3.5 configuration supported (was 2.0)

What is DDI, How is it supported

DDI is an acronym for DNS/DHCP/IPAM; See IP Address Management

phpIPAM has support for PowerDNS, and has an issue #777 open about Kea DHCP integration. There is an alternative that uses a scripted approach to writing out a DHCPd configuration file: https://github.com/debops/phpipam-scripts.

DDI is a suite of services to manage dynamic and static IP assignment within Computing Infrastructure. The desire is to have a central administrative system for tracking this information, and making it available to domain name and IP services.

phpIPAM has a REST api that can be leveraged to assist assignment of IPs in provisioning systems that want to use static assignment. This could be IaC (Infrastructure as Code), or Virtual Machine provisioning. phpIPAM integrates with PowerDNS which provides Authoritative DNS services. And progress is moving with ISC Kea integration to manage dynamic (DHCP) assignment. DHCP is also widely used in Virtual Machine provisioning systems.

How to use this fork

Give docker interfaces trusted privilege to pass traffic through the firewall

  • docker0 is the docker interface
  • br-ddi_net is the container bridge interface defined in docker-compose.yml
firewall-cmd --zone=trusted --add-interface=docker0   
firewall-cmd --permanent --zone=trusted --add-interface=docker0
firewall-cmd --zone=trusted --add-interface=br-ddi_net
firewall-cmd --permanent --zone=trusted --add-interface=br-ddi_net

Clone this forked repository, and bring up the containers

git clone https://github.com/rglaue/ddi-phpipam.git
sudo docker-compose up -d

How to configure the DDI setup

Enable the PowerDNS and (optionally) API modules in phpIPAM

  • under SERVER MANAGEMENT (in the left side bar)
    • click on "phpIPAM settings"
      • under Feature settings > (enable modules by changing the switch from OFF to ON)
        • API: ON
        • Enable PowerDNS: ON
      • Click [Save] button  (scroll to bottom)

After enabling these modules, you will see them appear in the the left side bar: "API", "PowerDNS".

Connect phpIPAM to the the PowerDNS database

  • SERVER MANAGEMENT > PowerDNS > Settings
    • Host
      • change value to: powerdns_db    (this is the hostname defined in docker-compose.yml)

Using phpIPAM API

[End of Forked Documentation]

How to use

git clone https://github.com/Newlode/phpipam.git
sudo docker-compose up

Features

Roadmap

Misc

Default login:

admin / ipamadmin

PowerDns configuration exemple:

PowerDns configuration Example

Variable list

Variable Values Default
DEBUG true or false false
PROXY_ENABLED true or false false
PROXY_ADDRESS any emtpy
PROXY_PORT any empty
PROXY_AUTH true or false false
PROXY_USER any empty
PROXY_PASSWORD any empty
SSL_OFFLOAD true or false false
DATABASE_HOST any empty
DATABASE_PORT any 3306
DATABASE_NAME any empty
DATABASE_USER any root
DATABASE_PASSWORD any empty

Sources

About

DDI - phpIPAM - DNS, DHCP, and IPAM in Docker containers

https://phpipam.net

License:GNU General Public License v3.0


Languages

Language:PHP 45.9%Language:TSQL 37.0%Language:Dockerfile 17.1%