October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk12 min

How to Self-Host phpIPAM for IP Address Management on a VPS

A practical, security-focused guide to running phpIPAM on your own VPS, covering native and Docker deployments, current database requirements, reverse proxies, discovery privileges, backups, and upgrades.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The dependable way to self-host phpIPAM is to run its web application on a VPS with a supported PHP runtime, a MySQL-compatible database, and HTTPS. You can install those components directly on the host or package the application in Docker. Native installation exposes the VPS operating system to your web and PHP configuration; Docker gives you cleaner packaging, but you still have to operate a database, persistent volumes, backups, and a separate cron container.

phpIPAM is an open-source web IP address management application. The current documentation identifies release 1.8.2 and the installation sequence: install prerequisites, check out the code, create config.php, initialize the database schema, complete the browser installer, and put the service behind HTTPS. This guide follows that sequence and adds the security, proxy, backup, and scaling details that determine whether a VPS deployment remains safe and recoverable.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What you are deploying

phpIPAM provides a browser interface and REST API for organizing sections, subnets, folders, VLANs, addresses, and related IPAM objects. The application serves dynamic PHP pages and stores its inventory in MySQL-compatible storage. Discovery features such as ping and SNMP add operating-system networking requirements beyond those of an ordinary web application.

The project’s documentation index lists version 1.8.2 and current installation guidance at phpipam.net/documents/. Treat that version as the application target, but verify the release and configuration notes when you install: PHP packages, database defaults, and container tags change independently of your VPS image.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

Choose native packages or Docker first

Both designs can run phpIPAM reliably. The right choice depends on who will maintain the host and how much isolation you need.

Decision area Native Nginx/Apache installation Docker installation
Operational complexity You manage the VPS web server, PHP-FPM or Apache module, PHP extensions, permissions, and upgrades directly. The application is packaged, but you still manage Docker, a database, persistent storage, networking, secrets, and a cron container.
Upgrade method Pull or check out the new phpIPAM code, review configuration and schema changes, then restart the web service after testing. Pull a tested image tag, recreate the frontend and cron services, and preserve the database and volumes.
Isolation PHP and the web server run with the host’s users, libraries, and security policy. Containers isolate application files and dependencies, but the Docker daemon and mounted volumes remain part of the trust boundary.
Backup layout Back up the MySQL database plus config.php and any locally stored application data. Back up the database and every persistent volume or bind mount used by the frontend and cron services; an image alone is not a backup.
Reverse proxy Terminate TLS in the VPS’s Nginx or Apache, or place another proxy in front of it. Terminate TLS in a proxy and forward only to the frontend container; preserve the URL base and filtered forwarded headers.
Network discovery privileges Discovery runs with the host process’s networking privileges, so restrict the service account and outbound access. Ping and SNMP require NET_ADMIN and NET_RAW capabilities. Kubernetes deployments also need allowPrivilegeEscalation=true for those capabilities.
Scaling Scale the web server and PHP workers as one host-level service. Multiple frontend replicas can be load-balanced, but only one cron container should run.

Choose native deployment when you already operate PHP and a web server and want the fewest moving parts. Choose Docker when repeatable images, separate service lifecycles, or an existing container platform are more valuable than host-level simplicity. Rootless Docker is unsupported by the maintained phpIPAM container documentation, so a container deployment must account for the security implications of a rootful Docker engine.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prerequisites and version constraints

The legacy installation text mentions Apache2 with PHP or Nginx with PHP-FPM and MySQL 5.1 or newer. That minimum is not an appropriate target for a current deployment. The repository guidance says MySQL 5.7.7 or newer is mandatory for utf8mb4 from phpIPAM 1.6.0 onward; MySQL 8.0 or newer, or MariaDB 10.2.1 or newer, is highly recommended for common-table-expression support. Read the current requirements before choosing a distribution image at github.com/phpipam/phpipam.

Component Requirement or recommendation Why it matters
Web server Apache2 with PHP, or Nginx with PHP-FPM Serves the application and performs the URL rewriting required by the web UI and API.
Database MySQL 5.7.7+ for utf8mb4; MySQL 8.0+ or MariaDB 10.2.1+ recommended Provides current character-set behavior and the SQL features used by modern releases.
PHP extensions PDO and PDO MySQL, sessions, sockets, OpenSSL, GMP, LDAP, crypt, SimpleXML, JSON, gettext, filter, mbstring, and PEAR These modules cover database access, authentication integrations, parsing, encryption, localization, and normal application functions.
Scanning support PHP CLI and pcntl when you use scanning or discovery jobs Command-line workers need a CLI runtime and process-control support.
Transport security HTTPS at the web server or at a dedicated reverse proxy Protects credentials, session cookies, and API traffic in transit.

Install the distribution packages that provide every extension in the table, then verify the loaded CLI and web PHP configurations separately. A module visible in php -m may still be absent from PHP-FPM if the VPS has more than one PHP version installed.

Native installation on a VPS

1. Prepare the host

Use a supported Linux image, a private administration path such as SSH keys, automatic security updates where appropriate, and a firewall that exposes only SSH from trusted networks plus HTTPS to users. Keep the database bound to localhost or a private network unless another host must connect. Create a dedicated system account or pool for the web service rather than running PHP workers as a login user.

Install Git, the selected web server, PHP with the extensions above, and MySQL or MariaDB. With Nginx, configure PHP-FPM; with Apache, enable the PHP integration and the rewrite functionality required by phpIPAM. Do not continue until a small test confirms that the web server is executing the intended PHP version.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Check out the application code

Use the official repository and pin the checkout to the release you have approved, rather than silently tracking an arbitrary development branch:

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
git clone https://github.com/phpipam/phpipam.git /var/www/phpipam
cd /var/www/phpipam
# check out the approved release or tag here

Set ownership so the web server can read the application and write only to directories that the installation documentation identifies as writable. Avoid making the whole checkout world-writable; excessive permissions turn a PHP vulnerability into a host-level file modification.

3. Create and protect config.php

Copy config.dist.php to config.php. Fill in the database host, database name, database user, and password, and set the BASE value to the URL path where phpIPAM is actually published. A site at https://ipam.example.net/ needs a different base setting from one mounted at https://example.net/ipam/.

Keep the file outside source-control repositories and restrict its permissions to the service account and administrators. If you later move the application behind a proxy or change its URL path, update the base setting and proxy configuration together; mismatches commonly produce redirect loops or missing JavaScript.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

4. Create the database with least privilege

Create a dedicated database and a dedicated account. Use utf8mb4 as the character set, choose a matching Unicode collation supported by your database version, and grant the account only the privileges needed for phpIPAM’s normal schema and migrations. Do not reuse a global administrator account in config.php.

The account must be able to create and alter the application’s tables during installation and upgrades. If your organization separates schema administration from runtime access, use a short-lived migration credential for upgrades and a restricted runtime credential afterward, provided the application’s upgrade process continues to work.

5. Initialize the schema

There are two supported paths. Import the repository’s db/SCHEMA.sql into the new database, or let the browser installer create the schema. The SQL-file route is predictable for scripted deployments; the browser route is convenient for a first installation. Do not run both against the same empty database.

After initialization, confirm that tables exist and that the application account can read and write them. Record the database server version and collation in your deployment notes; that information is valuable during a restore or upgrade.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by

6. Complete the browser installer

Point the web server document root or virtual host at the phpIPAM directory, open the configured URL, and follow the installer prompts. Set the administrator password immediately, review the generated configuration, and test a login in a private browser window. If the installer cannot connect, check the host name, socket-versus-TCP choice, credentials, and PHP PDO MySQL module before changing database permissions.

Once the first setup succeeds, disable installer helpers. For container deployments the documented setting is IPAM_DISABLE_INSTALLER=1; for a native installation, apply the equivalent setting or file-removal instruction in the release documentation. Leaving an installation endpoint available gives an attacker an unnecessary configuration surface.

7. Enable URL rewriting and HTTPS

phpIPAM’s REST API requires URL rewriting, and the web interface also expects consistent rewrite behavior. Test a normal page, a login, a static asset, and an API endpoint before declaring the virtual host complete. Redirect HTTP to HTTPS, enable secure and HTTP-only session cookies through the web-server and application settings available to your release, and renew certificates automatically.

Docker deployment

Understand the two service roles

The maintained container documentation separates the phpipam-www frontend from the phpipam-cron worker. Frontends are stateless only if you externalize the database and preserve every required persistent mount. You may run several frontend replicas behind a load balancer, but run exactly one cron container so scheduled jobs do not execute repeatedly.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the image documentation at hub.docker.com/r/phpipam/phpipam-www/ to select a release tag and the supported environment variables. Database credentials can be supplied as ordinary variables or as *_FILE variables that read secrets from mounted files. Prefer the file form or an external secret manager so passwords do not appear in shell history or process listings.

Persistent storage and networking

Attach the frontend and cron services to the same application network as the database, restrict database exposure to that network, and publish only the proxy or frontend port needed by users. Back up the database separately from container volumes. Recreating a container must never be your recovery plan.

Ping and SNMP functions require NET_ADMIN and NET_RAW. Grant those capabilities only to the service that needs discovery, document the reason, and monitor outbound traffic. In Kubernetes, the capabilities also require allowPrivilegeEscalation=true; if your policy forbids that setting, disable those discovery functions or use a deployment model that can satisfy the requirement.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.

First-run and upgrades

Start the database, then the frontend and cron services, and complete the web installer at the published URL. Set IPAM_DISABLE_INSTALLER=1 after setup and recreate the frontend so the setting is active. For upgrades, export a database backup, read the target image’s migration notes, stage the new image against a copy of production data, then recreate the services while retaining the same database and persistent mounts.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Reverse-proxy and forwarded-header security

When TLS terminates at a reverse proxy, phpIPAM must know the original scheme, host, port, and URI. The project README says to set $trust_x_forwarded_headers = true in config.php when deployed behind a reverse proxy as of version 1.6.0. Make that change only when the proxy strips or overwrites client-supplied forwarding headers.

Filter or overwrite all of these headers at the trusted proxy: X_FORWARDED_FOR, X_FORWARDED_HOST, X_FORWARDED_PORT, X_FORWARDED_PROTO, X_FORWARDED_SSL, and X_FORWARDED_URI. If arbitrary clients can supply them, they may influence generated links, security decisions, or login behavior. The project’s warning is explicit about this risk in the repository README.

Test both direct and proxied access. A correct setup keeps the browser on one HTTPS URL, generates HTTPS links, preserves the configured base path, records the real client address in a controlled way, and does not allow users to reach the backend around the proxy’s authentication or rate limits.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Backups and recovery are part of the installation

The official installation guide recommends a daily mysqldump and an example cleanup that removes backup files older than 10 days; see the installation guide. Treat that as a starting policy, not a complete disaster-recovery design.

  1. Dump the database daily. Run the dump with a credential that can read the phpIPAM schema, write the file to protected storage, and fail the job if the command or compression step fails.
  2. Encrypt and copy backups off the VPS. A local backup disappears with the disk or account. Keep at least one encrypted copy in a separate failure domain and restrict its access.
  3. Back up application state. For native installs, include config.php and any persistent uploads or local data used by your release. For Docker, include every named volume or bind mount required by the frontend and cron services, while keeping secrets protected.
  4. Monitor freshness. Alert when a scheduled job fails or when the newest off-site backup exceeds your recovery-point objective. Deleting files after 10 days does not prove that any surviving file is restorable.
  5. Practice restoration. Periodically restore a dump into a separate test database and start a separate phpIPAM instance against it. Verify login, subnet records, API access, and any discovery jobs before trusting the procedure in an outage.

Document the database version, phpIPAM release, web-server configuration, proxy settings, secret locations, and restore commands. That runbook is as important as the dump itself.

Automation through the REST API

phpIPAM exposes a REST API with authentication, authorization, encrypted-request options, and controllers for sections, subnets, folders, VLANs, and other IPAM objects. URL rewriting is required. Read the endpoint and authentication details at www.phpipam.net/api-documentation/.

Create narrowly scoped API credentials, store them in a secret manager, and restrict the automation host’s network path to the phpIPAM URL. Validate requests against a non-production instance first, especially for bulk subnet or address changes. Log who or what made each change, handle HTTP errors explicitly, and design jobs to be repeatable rather than blindly creating duplicate objects.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshooting by symptom

Blank page or missing class errors

Check that the PHP runtime used by the web server has every required extension, not merely the CLI modules. Confirm PHP-FPM is running the intended version, restart it after installing modules, and inspect the web-server error log for the first missing class or function.

Database connection or collation failures

Verify the database host and port in config.php, test the application account independently, and confirm that the server meets the current MySQL or MariaDB guidance. A legacy MySQL 5.1 installation may satisfy old prose in an installation page while failing modern utf8mb4 requirements.

Redirect loops or incorrect links behind a proxy

Check the BASE value, TLS termination point, and whether the proxy overwrites every forwarded header. Enable trusted-header handling only after filtering the six headers listed above. Ensure users cannot bypass the proxy and reach the backend with a different scheme or host.

API returns 404

Confirm that rewrite rules are enabled and that the proxy forwards the complete URI, including any subdirectory base. Test a simple browser page and a known API route from the same network path before changing application credentials.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Ping or SNMP discovery does nothing in Docker

Check that the cron or discovery service—not just the frontend—has the required NET_ADMIN and NET_RAW capabilities. In Kubernetes, verify allowPrivilegeEscalation=true is permitted. If your platform cannot grant those privileges, run discovery outside the container or disable that feature rather than granting broader privileges indiscriminately.

Scheduled jobs run twice

Inspect the container or host process list and ensure only one cron worker is active. Frontend replicas are supported; multiple cron containers are not.

Upgrade checklist

  1. Read the release and compatibility notes at the official documentation and repository.
  2. Export and verify a fresh database backup and copy configuration files to protected storage.
  3. Stage the new code or image against a restored copy of production data.
  4. Check PHP extensions, database version, URL rewriting, proxy headers, and discovery privileges.
  5. Apply schema migrations using the documented path, then test login, subnet editing, search, API calls, and scheduled jobs.
  6. Deploy during a maintenance window, monitor logs, and keep the previous code or image available for rollback.

Which VPS design is the practical default?

For a small team that already maintains Linux web servers, a native Nginx or Apache installation is straightforward: one host, one PHP runtime, one database, and a conventional backup job. Docker is the better operational fit when you already have image promotion, secret management, volume snapshots, and a load-balancing platform. In either case, the non-negotiable controls are current database compatibility, HTTPS, filtered proxy headers, disabled installer helpers, least-privilege credentials, and a restore that has actually been tested.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.