Download the Latest YeCha
Current version: 1.0 Beta b2 Build20260928 (built 2026-09-28) · security-fix release · A lightweight blog system that runs on a single PHP process. Unpack, point it at your database, and write your first post.
This release fixes two defects in the published package itself — all sites should update: ① Security: the shipped rewrite template was missingcore, which left the kernel source directory downloadable (e.g./core/Db.php) — now blocked by a deny rule; ② Installation: the same template also denied the installer directory, so a freshly deployed site got a 403 on/install/with no hint as to why — the installer now has its own rule. It also fixes a case where concurrent settings writes could lose configuration (option writes are now an atomic upsert). ③ Source disclosure: that same rule was briefly written aslocation ^~ /install/— on a real server this madeGET /install/index.phpreturn 200 with the raw PHP source (source disclosure) andPOSTreturn 405 (installer could not run). The^~prefix was the root cause; removing it fixes both (reordering locations or adding a try_files sentinel did NOT work). Corrected and measured in this build:GET/POSTboth return 302.
📦 Download
① Main package (installer)
- ⬇ yecha-blog-1.0-beta-b2-build20260928.zip (≈ 18.1 MB)
- SHA-256:
A30991AB26C8F68DA6E69D13CD7B4BB99E072314672470851FCCE722F497C6DE
② Demo themes & assets package (separate, optional)
- ⬇ yecha-demo-themes-20260928.zip (≈ 66.7 MB)
- SHA-256:
146B0D9163C74E978D0A1A5118CE6D9D04112A68DB91A43003AD2FF73BEDB2A0 - Contains 26 demo themes (
themes/<id>/) plusINSTALL.txt,theme-list.jsonand a per-file checksum listSHA256SUMS.txt; unpack and merge thethemes/directories into your site'sthemes/folder — they appear automatically under Admin → Themes.
- Verify after download: Windows
certutil -hashfile FILE SHA256; Linux/macOSsha256sum FILE
### ⚠️ Read first: older packages are missing one protection Onlyyecha-blog-1.0-beta-b2-build20260928.zipis the current version — only it ships a correcteddeploy/nginx-rewrite.conf. Earlier packages (Build20260926/Build20260911/Build20260910/ the1.0.x-betaseries) carry a template without thecoredeny rule, so deploying with it leaves kernel source files such as/core/Db.phpdownloadable over HTTP (200) (measured A/B: 200 before the fix, 403 after). Use the latest package for new installs. Already deployed from an older package? You do not need to reinstall: paste thedeploy/nginx-rewrite.conffrom the latest package into your rewrite rules, save, and reload nginx. (The older packages stay online purely for historical traceability; they are not recommended. They do not contain the more serious "installer directory written as^~, serving raw source" defect — that existed only in the day's first package, which has been withdrawn.)
What's inside (clean build, no private config or content)
- Core: admin / core / install / lang / tools +
deploy/nginx-rewrite.confrewrite suggestions +config.inc.php.example - Official plugins (10): Poly (multilingual), Forum, Links (blogroll), Market, Autosave, Subscribe, Site (corporate website: 12 industry style packs,
/site/themesgallery, three-layer i18n), Ai (chat / translation / RAG knowledge base / support; keys encrypted at rest), GuardWeb (access protection), Home Static - Official themes (6): yecha (default for this site), octern, teadoc, forest, tales-hue, tales-ink
- Includes
CHANGELOG.mdandTHIRD-PARTY-NOTICES.md(asset sources and licences)
Highlights
- Light: PHP 8.1+ / MySQL 5.7+; no Composer, no Node, no Redis
- Multilingual: Chinese + English (translation groups, AI translation,
/en/URLs with hreflang); document language<html lang|dir>can be overridden (Arabic renders RTL) - Theme & plugin system, app market, forum, corporate website, RSS / Sitemap / search / archives
- All data stays on your own server; no ads on the front end
Requirements
- PHP 8.1+ (
pdo_mysql / mbstring / simplexml / curl); 8.3/8.4 recommended - MySQL 5.7+ (8.0 recommended); create your own database and account
- Nginx or Apache; Redis / Composer / Node are not required
Install in 3 Steps
- Unpack into your site directory; copy
config.inc.php.exampletoconfig.inc.phpand fill in the database (or open the site root to run the one-time installer); - Open the site in a browser → the installer creates tables and an admin account;
- Log in to the admin, set up your site, pick a theme, and start writing.
Installer returns 403? If/install/answers with 403 Forbidden, that is your rewrite rules blocking it — not a broken installer. Make sure you are using thedeploy/nginx-rewrite.conffrom this package (earlier versions put the installer directory in the same deny rule as the sensitive directories). After installing, delete the wholeinstall/directory — that is how the wizard is closed and re-installs prevented.
Upgrading & Backups
- Official update source:
https://atsvg.com/updates/manifest.json(fill it into Admin → System Upgrade for one-click upgrades; a full database backup is taken first) - Before upgrading: full database backup (one-click backup in Admin → System Upgrade, or
mysqldump); - Replace files with the new version (keep
config.inc.phpanduploads), then run Admin → System Upgrade to apply migrations; - Migrations are idempotent and recorded in
ye_migrations. - Fixed in this release: the shipped rewrite template missed
core, leaving kernel source downloadable (security — deny rule added); the same template denied the installer directory too, so new installs hit a 403 (now a separate allow rule, plus "deleteinstall/to close the wizard"); concurrent option writes could lose configuration (now an atomic upsert, removing primary-key conflicts and lost rows); plus the previously shipped fixes such as the fresh-install/archives500 and migration output polluting response headers.
Multilingual & Security
- Enable languages and add translations (AI-assisted) in Admin → Multilingual; UI strings live in
lang/*.php; - Change the admin password right after setup; apply
deploy/nginx-rewrite.conffor rewrites and blocking sensitive paths; - This release brings the kernel source directory
core/under the deny rules; if you deployed with the older template, update your rewrite rules once.
Related
- Setup help & FAQ: Official forum → (Official Help board)
- Plugin/theme development: Developer docs · Market
- What's new: Changelog