Self-hosted service
pH7Software/pH7-Social-Dating-CMS avatar
pH7Software/pH7-Social-Dating-CMS

pH7Builder: a self-hosted PHP dating site you install from a release ZIP

Self-hosted, open-source PHP 8.2+ software for building white-label dating sites, matchmaking communities, and social networks. Own your code, hosting, database, and member data.

1,060 stars610 forksPHPMIT

At a glance

What is it?
pH7Builder is MIT-licensed PHP 8.2 software for white-label dating sites and social networks, deployed on your own server with MySQL 8.0. It ships a Docker path for evaluation and a browser installer for production.
Who is it for?
Adopt pH7Builder if you want the code, database and member data on your own server and can run PHP 8.2 with MySQL 8.0 and URL rewriting. Do not adopt it if you need managed hosting, MariaDB support, or a platform that upgrades itself.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 8 days ago.
What is it written in?
Mainly PHP, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Who pH7Builder is for, and the rented-platform problem it answers

Most dating products start as a subscription to a hosted platform. The code is not yours, the member table sits on someone else's database, and the feature roadmap is set by the vendor. pH7Builder takes the opposite position. It is a PHP application you deploy on infrastructure you choose, and the README frames the pitch around ownership: the application, database, files and member data stay under your control. There is no required public attribution link, though the MIT notice remains with copies or substantial portions of the software.

The audience is narrow and specific. It fits an operator who has a niche in mind and wants to adapt the source, a developer comfortable with a LAMP or nginx stack, or an agency building white-label dating sites for several clients. It does not fit someone who wants to sign up, pick a theme and start accepting members the same afternoon. The README puts deployment and the guided browser installer at roughly 20 to 30 minutes once the server is ready, and explicitly excludes DNS, TLS certificate issuance and mail-provider approval from that estimate. Those three items are usually the slowest part of a real launch.

The modular MVC core behind pH7Builder

The application is not a monolith in the pejorative sense. The README describes a modular MVC application built on a project-specific framework, pH7Framework, and a template engine called PH7Tpl. Features are grouped into modules: discovery and matching, publishing and conversation, business tools, trust and moderation, and platform reach. The practical consequence is that the feature list is conditional. The README states plainly that features depend on the modules you enable and the external services you configure, so a fresh install and a fully configured site are different products.

That modularity also explains the dependency surface. Payment integrations, SMS verification, image screening and local video processing are not built-in engines; they are integrations you configure. FFmpeg is required only when locally uploaded video processing is enabled. The REST API, PWA support, cron automation and maintenance mode are likewise modules rather than core assumptions.

The framework layer is the part worth weighing before you commit. Because pH7Framework and PH7Tpl are project-specific rather than Symfony, Laravel or Twig, a PHP developer joining the project cannot transfer much prior knowledge. They will read the repository's own conventions. That is a real cost, and the README does not pretend otherwise by listing a familiar framework.

Installing pH7Builder from the release ZIP

The production path does not use Git. The README directs you to the ready-to-run ZIP attached to a tagged release, which includes locked production dependencies, so Composer 2 is only needed for a source checkout. You unpack it, set the writable paths the installer expects, configure the web server for URL rewriting, then open the installer directory in a browser.

bash
# after unpacking the release ZIP into your web root
# required writable paths, per the repository layout
chmod -R 0775 _install/data/caches _install/data/logs \
  _protected/app/configs _protected/data/backup \
  _protected/data/cache _protected/data/log \
  _protected/data/tmp data

The browser installer then checks the runtime, the PHP extensions, the writable paths, the MySQL version and the database connection before importing the schema. Expect it to stop you if MySQL is older than 8.0 or if MariaDB is in use, since the README states that older MySQL releases and MariaDB are not verified or supported for this release.

The extension list is long and worth checking before you upload anything: curl, dom, exif, fileinfo, GD with FreeType and WebP, hash, iconv, json, mbstring, openssl, pdo_mysql, simplexml, xmlwriter, xml, zip and zlib. The project's own Dockerfile fails the build if any of them is missing, which is a reasonable proxy for what the installer will demand.

Mail is the step that surprises people. The README says the application does not store SMTP credentials in its admin form; they are supplied through the server environment as PH7_MAILER_DSN, or you rely on a server sendmail transport. Plan for that before you invite members, because registration and password flows depend on outbound mail.

Evaluating pH7Builder with Docker before you buy a server

The repository ships a docker-compose.yml that starts nginx 1.28-alpine, a PHP-FPM image built from the included Dockerfile, and MySQL 8.4. The README is explicit that this path is for development and evaluation, not a production deployment. The web service binds to 127.0.0.1:8080, so it is not exposed on your network by default.

bash
git clone https://github.com/pH7Software/pH7-Social-Dating-CMS.git
cd pH7-Social-Dating-CMS
docker compose up --build -d
docker compose exec php php _install/create-install-token.php

The second command prints a one-time token. Open http://localhost:8080, paste the token, and fill the installer with database host db, database ph7builder, username ph7builder, password ph7builder and port 3306. Those values come from the compose file's MySQL service.

One behaviour deserves attention before you start editing files. The checkout is snapshotted into a Docker volume, so changes to the source on your host do not reach the running container. The README's remedy is to run docker compose down -v before bringing the stack up again, and it warns that this permanently deletes the local application and database volumes. There is no documented incremental sync. For a throwaway evaluation that is fine; for a long-running staging site it is a workflow you have to design around yourself. The README does not document rollback for the production upgrade path either, which is why the repository carries a separate docs/UPGRADING.md.

Moderation, payments and the parts you must configure yourself

The trust and moderation set is broader than the summary suggests: member and content approval queues, abuse reports, blocking tools, country restrictions, login-attempt protection, registration throttling, duplicate-content checks, optional image screening, two-factor authentication and optional SMS verification through configured providers. Note the word optional. Image screening and SMS verification are not features that work out of the box; they are integrations you point at a provider.

The same pattern applies to money. Membership groups, paid plans, advertisements, an affiliate programme and payment-gateway integrations are listed, but the README does not name a specific gateway or a specific version. If your business model depends on recurring billing, that integration is the first thing to verify against the exact production configuration, not the last. The README's own instruction is to complete docs/LAUNCH_CHECKLIST.md and test the exact production configuration before accepting real users or payments.

Two smaller details matter operationally. Sample-profile generation exists for non-production evaluation, which is useful for judging matchmaking and search behaviour without real members. Database backups and CSV user import are listed under business tools, so migration off another system is at least contemplated by the project.

Where pH7Builder is the wrong choice

The clearest failure mode is the database. MySQL 8.0 or newer with utf8mb4 is required, and the README states that MariaDB and older MySQL releases are not verified or supported for this release. Many shared hosts and Debian-family default installs still hand you MariaDB. If your host will not give you MySQL 8.0, this project is not for you, and no configuration flag changes that.

The second is operational appetite. A self-hosted dating site inherits every operational duty: TLS renewal, mail deliverability, backups, PHP upgrades, and the upgrade path between releases. The project publishes an upgrade guide, but the README does not document rollback, and the Docker evaluation path deletes volumes on refresh. An operator without a tested restore procedure is one bad upgrade away from losing member data.

The third is scale and ecosystem. Nothing in the repository claims a benchmark, a concurrency figure or a traffic ceiling, so treat capacity as unknown until you measure it on your own host. If you need a managed platform with an SLA, a mobile SDK, or an app-store presence, a PHP web application with PWA support served over HTTPS is a different category of product, not a cheaper version of the same one.

pH7Builder compared with a hosted dating SaaS and with generic CMS plugins

The obvious alternative is a hosted dating SaaS. The difference is not features, it is where the data and the code live. A hosted platform handles servers, upgrades and mail for you, and in exchange the member table, the customisations and the migration path belong to the vendor. pH7Builder inverts that: you own the deployment, and you also own the patching, the deliverability and the backups. Choosing between them is choosing which set of chores you would rather have.

The second alternative is a general-purpose CMS with a membership or directory plugin. WordPress with a paid-membership plugin can produce something that looks similar on the surface. The difference in approach is depth: pH7Builder ships matchmaking, nearby people, Hot or Not, profile ratings, visits and likes as part of the application, plus a REST API module and a mobile-ready PWA. A generic CMS gives you content management and asks you to assemble the dating mechanics from plugins that were not designed to work together. The trade is ecosystem size and hiring pool, where the general CMS wins easily.

The third comparison is other self-hosted dating scripts. What distinguishes this repository is not a feature claim but the surrounding engineering: a PHPStan configuration, a PHPUnit configuration, a php-cs-fixer config, GitHub Actions workflows for tests, static analysis and Composer, and a Dockerfile that fails fast on missing extensions. That is a project that expects contributors to run checks, which is a different posture from a one-off script dump.

Licence, maintenance and upgrade cost

The licence is MIT, stated in the README badge and in LICENSE.md. In practical terms that is permissive: you can modify and redistribute the software, and the README notes there is no required public attribution link, only that the MIT notice remains with copies or substantial portions of the software. This is not legal advice, and if you plan to redistribute a modified version or bundle it into a commercial product, read LICENSE.md and COPYRIGHT.md yourself.

Maintenance is current rather than dormant. The last push to the repository was on 2026-09-05, and the most recent release, v19.0.1, was tagged the same day with form and autocomplete fixes. That follows v19.0.0 on 2026-08-28 and v18.6.2 on 2026-08-26. The release cadence is fast enough that an operator should read the release notes before upgrading rather than assuming patch releases are cosmetic.

Upgrade cost is the part to budget for honestly. The repository carries docs/UPGRADING.md, docs/QUICK_START.md and docs/LAUNCH_CHECKLIST.md, which means the project expects upgrades to be a documented procedure rather than a file copy. Because the versioned release ZIP bundles locked production dependencies, a source checkout and a ZIP install follow different upgrade mechanics. The README does not describe a rollback path, so a database snapshot before each upgrade is the operator's own responsibility, not a documented feature.

Editorial conclusion

Adopt pH7Builder if you want the code, database and member data on your own server and can run PHP 8.2 with MySQL 8.0 and URL rewriting. Do not adopt it if you need managed hosting, MariaDB support, or a platform that upgrades itself. Before launch, verify the PHP extension list, the writable paths the installer checks, and the mail transport, since SMTP credentials are read from the PH7_MAILER_DSN server environment and not from the admin form.

Frequently asked questions

Is there a 100% free dating site without payment that I can build with pH7Builder?

The software itself is MIT-licensed and free to download, and the README states there is no required public attribution link. Whether your site charges members is a product decision, not a licensing one: paid plans, advertisements and an affiliate programme are optional modules you choose to enable.

What are the top 7 dating sites, and where does pH7Builder fit?

The project does not rank sites and the README makes no comparison with hosted platforms. It positions itself as a self-hosted alternative to rented SaaS, so the relevant distinction is that you deploy it on your own server and keep the code, database and member data rather than subscribing to someone else's platform.

What is the most secretive dating app, and can pH7Builder be one?

The README does not describe anonymity features or a private-by-design mode. What it does list under trust and moderation are privacy controls, blocking tools, country restrictions, account approval and optional image screening, all of which are moderation settings rather than a promise of secrecy.

What is the most popular dating site in the Philippines, and can pH7Builder serve that market?

The README does not discuss regional popularity or market share. It does document multilingual routes and content plus translated interface packs, which are the features relevant to running a site for a non-English audience, and country restrictions under trust and moderation.

Official sources

  1. License: MIT
  2. pH7Software/pH7-Social-Dating-CMS on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/ph7software-ph7-social-dating-cms.svg)](https://hysenlabs.com/projects/ph7software-ph7-social-dating-cms)