byte.pro.bd

🛡️ CyberBlogs — Deployment Guide (byte.pro.bd)

Custom PHP 8 + MySQL CMS, OWASP Top 10 hardened. No frameworks, no third-party services, CSP locked to 'self'.

1. Upload

Upload everything to htdocs/ on InfinityFree. Notes:

Create two PNG icons in assets/icons/: icon-192.png, icon-512.png (export from favicon.svg).

2. Database

InfinityFree control panel → MySQL Databases → create one. Note the host / db name / username / password.

3. Install

Visit https://byte.pro.bd/install.php, fill in DB + first admin (password min 12 chars). The installer:

Then delete install.php from the server. Non-negotiable.

4. Cloudflare

  1. Add byte.pro.bd to Cloudflare (free plan), switch nameservers.
  2. SSL/TLS → Full (InfinityFree free hosting has no custom origin cert management, so Full Strict will error — Full still encrypts both legs).
  3. Enable: Always Use HTTPS, Bot Fight Mode, Browser Integrity Check.
  4. Cache rule: bypass cache for /admin/* (the .htaccess no-store headers already tell it to, this is belt-and-braces).

The app reads visitor IPs from CF-Connecting-IP only when the request actually comes from Cloudflare’s published ranges (config/security.php), so brute-force lockouts hit the real attacker, not the proxy. If Cloudflare adds new ranges later, update ipFromCloudflare() from cloudflare.com/ips.

5. Known InfinityFree quirks

6. Post-launch security checklist

Layout

config/     DB + security core (web access denied)
includes/   helpers, auth, TOTP, markdown (web access denied)
admin/      2FA-protected panel (login, dashboard, posts, comments,
            messages, files, subscribers, analytics, logs, backup, settings)
api/        react.php + comment-vote.php (CSRF-protected endpoints)
assets/     css / js / icons / vendor
sql/        schema.sql (installer), sample-posts.sql (optional),
            upgrade-v2.sql (ONLY for upgrading a pre-v2 database)
*.php       public pages

Feature pack v2

Included on top of the original build:

Upgrading an existing pre-v2 database? Run sql/upgrade-v2.sql in phpMyAdmin once. Fresh installs need nothing — schema.sql has it all.

Admin quick reference