Available for new projectsDiscuss a project
Product documentation

Ultimate SiteTest Pro

Complete installation, setup, website testing, client reporting, maintenance, support, Brevo or SMTP, administration, licensing, security, troubleshooting and release guidance for Ultimate SiteTest Pro.

01 / Start here

Product overview

Ultimate SiteTest Pro combines authorised public-website diagnostics with private client reporting, maintenance records and support operations. It is a complete self-hosted application, not a browser-only speed-test page or a third-party performance API wrapper.

ProductUltimate SiteTest Pro
Version1.0.0
AuthorFrey Gabor
LicenceOne product / one exact domain

Included operations

  • Safe server-side testingMeasure public HTTP and HTTPS websites while rejecting credentials in URLs, unsafe schemes, non-standard ports, private or reserved networks and redirects into blocked destinations.
  • Performance reportingStore point-in-time tests, compare history and create branded on-screen and PDF reports for assigned clients.
  • Client deliveryCreate invite-only client accounts, assign only the correct websites, publish reports and retain private messages in the application inbox.
  • Maintenance and supportTrack maintenance subscriptions, completed work, client-ready maintenance PDFs, report requests and private support conversations.
  • Email administrationUse Brevo Transactional API, authenticated SMTP or host PHP mail with editable event templates, connection checks, real-message tests, logs and controlled retries.
02 / Environment

Server and hosting requirements

Install on the final licensed HTTPS hostname. Normal PHP shared hosting is supported when Apache-compatible rewriting, the required extensions and protected writable storage are available.

RequirementMinimum or expected valueUsed for
PHP8.2 or newerApplication runtime, secure password handling and typed services
DatabaseMySQL 8.0 or MariaDB 10.6+Accounts, websites, tests, reports, notifications and audit history
PHP extensionsPDO MySQL, cURL, OpenSSL, JSON, mbstring, DOM/XML and sessionsDatabase access, HTTP tests, cryptography, parsing and authentication
Web serverApache with .htaccess overrides or equivalent routingClean routes and denial of protected source/configuration paths
NetworkOutbound HTTPS to public test targets and shop.freygabor.comWebsite diagnostics, activation and periodic licence validation
Email networkBrevo API over HTTPS or provider-approved SMTP/PHP mailInvitations, reports, support and operational notices
TLSValid HTTPS certificate on the exact licensed hostnameSecure cookies, credentials, client reports and licensing traffic

Writable and protected locations

  • config must allow the installer to create config/env.php without making it publicly downloadable.
  • storage must allow creation of installed.lock, cache entries, licence state, private logs and generated working files.
  • Preserve the supplied .htaccess file so directory listing and direct access to configuration, database, storage, logs, keys and metadata remain blocked.
  • Grant write access only to the PHP/hosting account. Do not use world-writable permissions as a permanent fix.
03 / Installation

Run the protected eight-step installer

Create an empty database, upload the complete package into the final domain or subdomain document root, enable HTTPS and open the site. Public, administrator and client content remain protected until signed activation succeeds.

  1. 01

    Welcome

    Start the secure installation session and confirm Ultimate SiteTest Pro version 1.0.0, the installation stages and documentation link.

  2. 02

    Server checks

    Resolve every critical PHP, extension, session and writable-directory failure. The wizard deliberately prevents continuation when the environment is unsafe or incomplete.

  3. 03

    Database configuration

    Enter the hosting database host, port, empty database name, username and password. The password and full connection string are never displayed or written to an ordinary log.

  4. 04

    Database installation

    Retry-safe schema and versioned migrations create the application tables, seed fictional demonstration data, record version history and generate the installation application key.

  5. 05

    Website settings

    Set the application name, final canonical HTTPS URL, contact email, verified sender email and timezone. The canonical hostname is also used for licensing.

  6. 06

    Administrator account

    Create the first administrator with a unique password of at least 12 characters. Only a secure password hash is stored.

  7. 07

    Licence activation

    Enter the key issued for ultimate-sitetest-pro and this exact normalized hostname. The signed response must pass local RSA-SHA256 verification.

  8. 08

    Completion and lock

    The installer records completion in the database, creates storage/installed.lock atomically, clears the installation session and exposes the public, administrator and client entry points.

Account entry points after installation
Administrator: https://your-domain.example/admin-login
Client:        https://your-domain.example/client-login
04 / Setup guide

Configure the system before inviting clients

Sign in at /admin-login and complete a private acceptance test before creating real client accounts or enabling automatic email.

  1. 01

    Confirm identity and timezone

    Review the product/business name, contact identity, canonical URL, sender details, timezone and report branding before creating scheduled or client-facing records.

  2. 02

    Configure email safely

    Choose Brevo API, authenticated SMTP or approved PHP mail. Verify the sender, check the connection and send a real test before enabling automatic delivery.

  3. 03

    Review every notification template

    Check invitation, password reset, report, maintenance, access-request and support messages. Keep required replacement variables intact.

  4. 04

    Add a test client and website

    Create a dedicated test client, add an authorised public HTTPS website and assign that website only to the test client.

  5. 05

    Run a controlled website test

    Review response, redirects, timings, resource observations, compression, technology signals and security-header notes before generating a report.

  6. 06

    Verify both portals

    Confirm administrator controls, client first-login password change, assigned website visibility, report history, maintenance, support, inbox and account settings.

  7. 07

    Back up and launch

    Back up database, config/env.php, application files and writable storage, then document a restore procedure before inviting real users.

05 / Website tests

Run and interpret website diagnostics

Tests execute from the PHP hosting server rather than the visitor’s browser. Location, network route, caching, browser rendering and third-party scripts can therefore produce different results from browser-based tools.

ObservationWhat the record meansReview note
Requested/final URL and redirectsThe submitted public URL, each accepted redirect and final destinationEvery redirect is resolved and revalidated before following it
DNS, connection and TLSServer-side connection phases available from cURLHosting location and network path materially affect these values
Time to first byte and total timePoint-in-time server response and transfer timingCompare repeated runs; do not promise a fixed outcome
HTTP status and transfer sizeResponse state and bytes transferred during the testAuthentication walls, error pages and caching may change the result
Compression and resourcesDetected compression plus parsed page resourcesThis is an HTTP/HTML inspection, not a complete browser rendering trace
Technology and security headersObservable technology signals and selected response headersAbsence is an observation, not proof that the entire system is insecure
06 / Reports

Performance history and branded PDF reports

A completed test becomes a historical technical record. Administrators can review the run, compare context and generate a client-ready report without granting access to another client’s data.

  • Review before publishingCheck the requested/final URL, response, redirect chain, measurements and automatically generated advice. Correct misleading wording before sharing.
  • Explain measurement contextState that results came from the hosting server at a specific time and may differ from a browser, geography, warm cache or later deployment.
  • Use client assignmentReports are visible only through the authenticated account assigned to the corresponding website. Recheck ownership before publishing.
  • PDF handlingTreat generated PDFs as private client documents. Review the branding and operational detail, then share only through approved channels.
  • Comparison requestsUse historical runs to describe change without implying causation, guaranteed rankings or guaranteed commercial results.
07 / Clients

Client accounts, invitations and assignments

Ultimate SiteTest Pro has no public self-registration or subscription checkout. Administrators create invite-only client access and remain responsible for every website assignment.

  1. 01

    Create one account per person

    Use a unique email address and accurate company identity. Do not share one client login between several people.

  2. 02

    Assign the correct websites

    A client sees only explicitly assigned website and report records. Review assignments whenever a person joins or leaves a client organisation.

  3. 03

    Send the invitation

    The invitation includes the private client login and a one-time initial password. It must not be forwarded.

  4. 04

    Require first-login replacement

    The client must choose a new strong password before using the private portal normally.

  5. 05

    Acceptance-test access

    Verify dashboard, assigned websites, report history, report requests, maintenance, support, inbox and account settings with a dedicated test-client account.

  6. 06

    Disable departed users

    Disable the account, invalidate access as appropriate and audit website assignments without deleting client reporting history unnecessarily.

08 / Email

Brevo, SMTP and editable notifications

Email is optional, but invitations and operational alerts should not be enabled until the sender identity, authentication and a real delivery test have passed.

Delivery methodConfigurationRecommended use
Brevo Transactional APIVerified sender domain/address and a least-privilege transactional API keyPreferred when HTTPS API delivery and provider event visibility are required
Authenticated SMTPProvider hostname, port, TLS mode, username and SMTP/application passwordSuitable for Brevo SMTP and other maintained business mail providers
PHP mailHosting-level sender alignment and outbound mail configurationUse only when the host explicitly supports reliable authenticated delivery

Safe connection sequence

  1. 01

    Verify the sender

    Complete the provider’s sender-domain and sender-address verification, including SPF, DKIM and DMARC where applicable.

  2. 02

    Save a new credential

    Paste the API key or SMTP password once. The saved secret is encrypted using the installation application key and is not displayed again.

  3. 03

    Check the connection

    Use the built-in connection action to validate authentication and network access without exposing the saved credential.

  4. 04

    Send a real test

    Confirm arrival, sender alignment and provider event status before turning on automatic delivery.

  5. 05

    Review templates and logs

    Keep required variables, inspect failed attempts and retry only after correcting the underlying transport or sender problem.

09 / Operations

Maintenance reporting and private support

Operational records should describe work actually agreed and completed. The application preserves a private history so email is not the sole record of client service.

  • Maintenance subscriptionsRecord the correct client, website, service status, cadence and next reporting date for genuine support agreements.
  • Maintenance reportsDocument completed updates, backups, security/performance observations, findings and recommendations accurately before publishing a client PDF.
  • Report requestsClients can request performance, comparison or maintenance reporting without receiving administrator access.
  • Support ticketsUse category, priority, status and private replies to maintain an auditable support conversation. Never use tickets as a password vault.
  • Private inboxIn-app notices keep important application events available even when an email is delayed or rejected.
10 / Administration

Administrator control areas

The focused administration area separates account access, test operations, client delivery and system configuration. Every state-changing action requires authentication, role authorization and CSRF validation.

AreaPrimary purposeOperational caution
Dashboard and WebsitesReview activity, add authorised sites and manage ownershipArchive or reassign where possible before removing linked history
Run Test and ReportsExecute diagnostics, inspect results and publish reportsReview automated advice and client assignment before sharing
Clients and RequestsCreate invitations, assign websites and handle access/report requestsOne account per person; expire sensitive invitations and reset links
Maintenance and SupportRecord genuine service work and private conversationsDo not include credentials or unrelated personal data
Notifications and Email LogEdit event wording and review delivery attemptsPreserve variables; fix the cause before retrying
Activity and LicenceReview audit history and signed licence statusUse manual validation; never edit signed/local licence data to bypass the service
11 / Licensing

Signed one-product, one-domain licensing

The licensing server is authoritative for product, hostname, activation, expiry, suspension and revocation. The distributed package contains only the public verification material required to validate signed responses.

  • Keys are issued only by shop.freygabor.com after a verified purchase. The package never generates, releases, transfers or resets licence keys.
  • One key is valid for Ultimate SiteTest Pro on one exact normalized domain. A different root, www hostname or subdomain needs a separate licence unless the official service explicitly states otherwise.
  • Activation sends the key, product identifier, version, canonical hostname, environment and installation UUID from PHP over HTTPS.
  • Accepted responses are verified locally with RSA-SHA256. The private signing key and licensing master secrets are never distributed.
  • The complete key required for controlled validation and same-domain recovery is encrypted with AES-256-GCM derived from the installation application key; interfaces and logs show only a masked hint.
  • Periodic validation is cached. A temporary network failure enters only a finite grace period while the last signed token remains valid; a timeout is not revocation.
  • Explicit invalid, expired, suspended or revoked status—or grace expiry—protects application content without deleting client, test, report, maintenance or support records.
12 / Security

Production security checklist

Secure defaults reduce risk, but the operator remains responsible for supported hosting, authorised use, account lifecycle, mail/payment provider security and tested recovery.

  • Force HTTPS; retain HSTS, Content Security Policy, clickjacking, MIME-sniffing, referrer and permissions headers.
  • Keep config/env.php, database assets, storage, logs, public verification keys and installed.lock inaccessible over HTTP.
  • Use a database account limited to this database, unique administrator/client passwords and hosting-account multi-factor authentication.
  • Retain cookie-only secure sessions, HttpOnly/SameSite cookies, regeneration after login, CSRF checks, prepared PDO statements, output escaping and login throttling.
  • Do not weaken Tester.php private/reserved-network, DNS-rebinding, redirect, credential-in-URL or port protections.
  • Review generated reports before sharing because URLs, findings and operational detail may be client-confidential.
  • Keep PHP, Apache and MySQL/MariaDB on supported security releases; log production failures privately and show generic public errors.
13 / Backup & updates

Back up, restore and update safely

A usable backup includes data and the installation-specific cryptographic/configuration material needed to read saved credentials and validate the installed state.

Back up together

  • The complete MySQL or MariaDB database, including migration and installation metadata.
  • config/env.php and any protected environment configuration containing the application key.
  • The complete application package and writable storage, including installed.lock and cached licence state.
  • Generated/private report assets and other operator-created files retained by the deployment.
  • Encrypted off-site copies with a documented retention policy and regular restoration tests.

Update sequence

  1. 01

    Read the release notes

    Confirm supported PHP/database versions, changed files and supplied migrations before touching production.

  2. 02

    Create and verify a backup

    Back up database, configuration, application and storage, then confirm the archive can be read.

  3. 03

    Use a protected test copy

    Test under the product’s valid exact-domain policy without copying production activation material to an unlicensed hostname.

  4. 04

    Deploy documented changes

    Preserve environment configuration and writable customer data. Run only migrations supplied with the release.

  5. 05

    Run acceptance checks

    Verify administrator and client login, tests, reports/PDFs, assignments, email, maintenance, support, licensing and production error pages.

14 / Customization

Brand and interface customization

Production has no Node.js requirement. The supplied CSS and PHP views can be adapted after a complete backup while retaining accessibility, authorization, output escaping and commercial authorship notices.

  • Brand identityUpdate approved business wording, logo assets, sender identity and report branding without representing fictional demonstrations as real client work.
  • Colour and typographyEdit the documented CSS variables and component styles, then recheck contrast, visible focus, hover states, error states and reduced-motion behaviour.
  • Notification copyEdit subjects and bodies from administration while preserving the replacement variables required by each event.
  • Security-sensitive codeRetain authorization, CSRF, prepared statements, safe redirects, session controls, mail-header validation, SSRF defenses, protected paths and signature verification.
  • AuthorshipRetain Frey Gabor, FreyDesigns and Developments, copyright and included commercial-licence notices. Do not claim ownership of third-party libraries.
15 / Troubleshooting

Common installation and operating problems

Use the friendly browser message, private application log and hosting control panel together. Redact personal data and every secret before sharing diagnostics.

Folders are listed instead of the installer

Point the hostname at the directory containing index.php, enable DirectoryIndex and Apache .htaccess overrides, preserve the supplied .htaccess file and disable directory listing.

The installer keeps appearing

config/env.php or storage/installed.lock is absent. On a new site, finish every step. On an existing site, do not reinstall over live data; restore the protected files from backup or contact support.

The database connection fails

Use the exact database host, port, prefixed database and username from the hosting panel and grant that user privileges on the database. The installer intentionally hides detailed credential errors.

A migration was interrupted

Back up the partial database and return to the database-installation step. Retry-safe tables, migration history and duplicate-safe seeds allow a controlled retry.

Licence activation or manual validation fails

Confirm HTTPS, exact canonical hostname, outbound HTTPS to shop.freygabor.com and the product/domain state in the licensing account. Never edit local signed state or reveal the complete key.

A website cannot be tested

Confirm it is an authorised public HTTP/HTTPS site on port 80 or 443 with compatible public DNS. Local/private/reserved addresses, embedded credentials, unsafe redirects and unresolvable destinations are blocked intentionally.

Results differ from a browser performance tool

The PHP server has a different location, network and rendering model. Compare repeated runs and explain caching, geography and browser-rendering differences.

A client sees no websites or reports

Confirm the account is active and explicitly assigned to the correct website. Do not weaken authorization checks to make records visible.

Email connection succeeds but delivery is missing

Confirm the exact sender is verified, send a real test and review the application Email Log, spam folder and provider events plus SPF, DKIM and DMARC alignment.

PDF generation or download fails

Confirm the required DOM/XML support, writable private storage and that the requested record belongs to the signed-in administrator or assigned client. Review private logs for the friendly error code.

FAQ

Frequently asked questions

Short answers to common installation, ownership, licensing and support questions.

Where are the administrator and client logins?

After successful installation and activation, use /admin-login for administrators and /client-login for invited clients.

Can visitors create their own client accounts?

No. Client access is invite-only. The public request centre can collect access or report requests for administrator review.

Does Ultimate SiteTest Pro use Google PageSpeed or another paid testing API?

No. Core website diagnostics run from the installed PHP hosting server through the application’s protected tester.

Which websites may I test?

Only public HTTP/HTTPS websites you are authorised to assess. Tests are restricted to ports 80 and 443 and reject private/reserved destinations and unsafe redirects.

Why do results differ from my browser?

Server location, network route, caching, connection reuse, browser rendering and third-party scripts differ. Treat each result as a point-in-time technical observation.

Are security-header observations a complete security audit?

No. They report selected observable response headers and technical signals; they are not penetration testing, legal advice or proof of overall security.

How does a client receive a new report?

Assign the website to the correct client, review and publish the completed report, then use the configured notification workflow. The client opens it inside the authenticated portal.

Can clients see one another’s websites or reports?

No. Client routes enforce explicit website ownership/assignment. Test this isolation with a dedicated acceptance account before launch.

Which email methods are supported?

Brevo Transactional API, authenticated SMTP and host PHP mail are supported. Verify the sender, check the connection and send a real test before enabling automation.

Are maintenance reports automatic proof that work was completed?

No. Administrators must record genuine agreed work accurately and review each client-facing report before publication.

Can the same licence be used on another subdomain?

No. Each different exact normalized domain or subdomain requires its own licence unless the official licensing service explicitly documents otherwise.

What happens during a licensing-server outage?

A verified cached token can continue only within the finite permitted grace period. A timeout is not treated as revocation, and the grace period is never extended indefinitely.

Does an invalid licence delete client data?

No. Invalid, expired, suspended or revoked status protects application content without deleting accounts, tests, reports, maintenance records or support history.

Does production require Node.js?

No. Production uses PHP, MySQL or MariaDB, the supplied CSS and application JavaScript.

What should a support request include?

Include product version 1.0.0, PHP and database versions, exact hostname, expected behaviour, reproducible steps, time of failure and redacted log excerpts. Never include passwords, complete licence keys, application keys, API secrets or personal data.

Release history

Changelog

Review the release notes before updating an installed website.

v1.0.011 Aug 2026

Initial commercial release

  • Added the protected eight-step first-run installer, retry-safe migrations, database installation metadata and atomic installation lock.
  • Added signed exact-domain FreyDesigns activation, cached validation, same-domain recovery and a finite offline grace period.
  • Added secure administrator and invite-only client portals, first-login password replacement and protected recovery.
  • Added public HTTP/HTTPS diagnostics with redirect revalidation, private-network, unsafe-port and DNS-rebinding protections.
  • Added response, redirect, DNS, connection, TLS, first-byte, transfer, compression, resource, technology and selected security-header observations.
  • Added historical results, client assignment, branded performance reports and downloadable PDFs.
  • Added public access/report requests, maintenance subscriptions, maintenance reporting, support tickets and private inbox notifications.
  • Added editable event templates, delivery logs, retries, PHP mail, authenticated SMTP and Brevo Transactional API delivery.
  • Added secure sessions, CSRF validation, prepared PDO statements, output escaping, login throttling, safe redirects and production security headers.
  • Added commercial authorship, licence, third-party, installation, administration, setup, email, security and troubleshooting documentation.
Documentation did not solve it?

Send a safe, reproducible support request.

Include SiteTest Pro version 1.0.0, PHP and database versions, the final hostname, expected behaviour, steps to reproduce and redacted log excerpts.

Do not send passwords, API secrets, database dumps, application keys or a complete licence key.