Skip to content

Releases: liyu1981/sifpress

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 14:06

Sifpress v0.1.0

One PHP file. The whole site. — the first tagged release of Sifpress, a
single-file PHP + React publishing system with rewrite-free routing.

Sifpress compiles a PHP JSON API, a full React admin app, its styles and the SPA
HTML into one sifpress.php artifact — SQL migrations included. Copy it into any
directory of any PHP host and it runs: no .htaccess, no try_files, no #/
hash routes, and no Node.js in production.

Highlights

  • Single-file artifact — API, admin UI, styles, HTML and migrations in one
    file. One HTTP request per page load (JS and CSS are inlined), and it works at
    /, /myapp/ or four levels deep without a rebuild.
  • Rewrite-free ?p= routing — ?p=sifpress/api&action=… serves JSON,
    ?p=sifpress/admin/… serves the admin UI, anything else belongs to the active
    sifront. Every URL is real, shareable and crawler-friendly; back/forward work.
  • Admin UI — React 19 + TanStack Router/Query + Tailwind v4 + shadcn/ui:
    articles with tags, front matter and full-text search (SQLite FTS5, WAL mode),
    a Milkdown WYSIWYG markdown editor, asset uploads with browser-generated
    thumbnails, SEO settings with sitemap/robots, analytics head tags, and a KV
    store for site configuration.
  • Ownership & permissions — DB-backed sessions, roles (admin / editor /
    viewer), per-page grants, and article ownership transfer from the editor
    (admins can transfer any article; owners their own).
  • Revisions — content-addressed history with commit messages, diffs and
    restore.
  • Sifronts — the public front end is a swappable theme shipped as a two-file
    .sifront archive: identity, version and the theme contract in meta.json,
    the whole app in bundle.js. Upload it from Admin → Sifronts; theme identity
    (welcome text, avatar, links, footer, background scene) is customizable from
    Admin → KVs without touching code.
  • Operations — CLI (setup · migrate · change_password · backup · config · cron · status), WAL-safe VACUUM INTO backups with pruning, and one-click
    self-update from a release manifest.

Release assets

Asset What it is
sifpress.php the complete application — this is the file you deploy
sifpress1.sifront the default public theme — upload it from Admin → Sifronts

Quick start

Requirements: PHP 8.3+ with pdo_sqlite (SQLite built with FTS5),
mbstring and fileinfo. Optional: curl, zlib.

# 1 — download the release artifact
curl -LO https://github.com/liyu1981/sifpress/releases/latest/download/sifpress.php
mkdir -p /var/www/html && cp sifpress.php /var/www/html/

# 2 — create the config + DB folder
cd /var/www/html
php sifpress.php setup

# 3 — apply the embedded migrations and seed the first admin
php sifpress.php migrate

Then open the admin UI:

https://example.com/sifpress.php?p=sifpress/admin

Sign in with admin / admin — a password change is forced on first login.
Building from source (Node.js, pnpm) is only needed for local development.

Notes

  • This release publishes latest.json to master; running instances read it
    for update checks (?p=sifpress/update&action=status) and offer the
    one-click upgrade.
  • The update manifest carries the artifact's md5, which the in-app updater
    verifies after download.
  • This is the first tagged release: expect rough edges, and please report them.

Website: https://liyu1981.github.io/sifpress/ · Documentation: README · Development guide: AGENTS.md