Skip to content

Releases: intothisshadow/LumoraFiction

Lumora Fiction v1.1.0 Release Notes

Choose a tag to compare

@intothisshadow intothisshadow released this 27 Oct 23:16

🚀 What's New in v1.1.0

The first update to Lumora Fiction: readers can take stories away, you can see how they are read, and the site can update and back itself up from the admin.

🔄 Updates, backups and maintenance mode (LF-010, LF-057)

Maintenance > Updates checks GitHub for a newer release when you ask, or takes an uploaded release ZIP, verifies its SHA-256 checksum and shows a review screen before anything changes. The update backs up the files and the database first, carries on step by step so a slow host never times out, and puts everything back by itself if a step fails. Backups makes one on demand, downloads it, and restores one after a confirmation. Maintenance mode shows visitors a short notice in the site's theme while Administrators keep working. The progress pages now update in place instead of reloading between steps, and fall back to the ordinary form if anything goes wrong.

📥 Story downloads (LF-055)

Readers can download a published story as an EPUB, a PDF or a single HTML page from a Download button on the story page. Administrators choose which formats are offered, whether downloads are counted, and Authors can switch downloads off for their own stories. A PDF is made only for stories up to 100,000 words so a small host is never overloaded.

📊 Visitor Stats plugin (LF-054, LF-056)

A bundled plugin, off until you turn it on, that counts story views on this site alone: no cookies, no IP addresses, nothing that identifies a reader. It adds a dashboard card, a Visitor stats screen (views over time, most read stories, referrers, browsers, devices and countries) and a Views panel on each story's screen. Country data is imported from a GeoLite2 file you put on the server yourself (or type its path), which is reliable for files too big for a browser upload, and an alert tells you when it is more than six months old.

🛠️ Upgrading and administration

Upgrading from 1.0.0 by uploading the new files now applies the database changes the first time an Administrator opens the admin, once and under a lock, and records it in the activity log. The dashboard's Recent activity reads as plain sentences. System Information shows the Install folder on the screen only (never in the downloadable snapshot), and shows the version from one place so it can never disagree with itself.

🧪 Quality

The full suite of 3,321 tests passes on PHP 8.2, 8.3, 8.4 and 8.5 with MariaDB 11.8 (11 permission tests skip because the test containers run as root). The database part of a backup is also written in one linear pass now (LF-059), so an update no longer stalls at "Create update backup" on a table with hundreds of thousands of rows.

Lumora Fiction v1.0.0 Release Notes

Choose a tag to compare

@intothisshadow intothisshadow released this 25 Oct 18:45

🚀 What's New in v1.0.0

The first public release of Lumora Fiction: a lightweight, self-hosted archive for fanfiction, original fiction and serialised stories. Install it from the browser on ordinary shared hosting, no SSH, Composer or Node needed.

📦 Browser installer and accounts (LF-005, LF-004, LF-022)

Checks the server, tests the database login, builds the tables with a random prefix and creates the first administrator. Visitors register, confirm their email, sign in, reset a forgotten password and manage their own account. Every account has a private login name, separate from its public name.

✍️ Writing and editing (LF-023, LF-007, LF-025)

Stories made of numbered chapters, with drafts, previews and an unsaved-changes warning. Write in a Visual editor, Markdown, HTML or plain text and switch between them without losing formatting; everything passes one safety filter, and pasting from Google Docs or Word keeps italics, bold and lists (LF-040). Story covers (LF-015), author pages with a picture and text (LF-044), and suggestions while typing fandoms and tags (LF-045).

🏷️ Classification, search and browsing (LF-024, LF-021, LF-030, LF-037)

Fandoms, characters, relationships, genres, tags, categories, ratings, warnings and relationship categories, with aliases, merging and ready-made starter lists. Search with filters, and a Browse page with an index for every kind of classification.

✅ Publishing workflow and moderation (LF-026, LF-035, LF-011, LF-049)

An approval queue with reasons for sending a story back, a Users screen, suspension and publishing rights, notifications, trash, copies, earlier chapter versions, and an Alerts page for site problems.

📖 Reading (LF-029, LF-031, LF-041, LF-042, LF-043)

Public story, chapter, author and term pages. Signed-in readers get bookmarks, a Continue reading page, a saved place in each chapter, following with an "updated since you read" notice, and reading preferences that follow them between devices.

📰 News and a two-column home page (LF-034, LF-052, LF-053)

Editors and Administrators post announcements, with pinning, a preview and a switch to turn the feature off. The home page shows the latest stories on the left and news on the right, and Settings > Front page chooses how many stories each list shows.

🎨 Themes and plugins (LF-027, LF-028, LF-048, LF-032, LF-020)

Classic PHP-template themes with the bundled Storybook theme (light and dark, reader controls, print layout) and a plain built-in fallback. Upload, update and delete themes from a ZIP. A plugin loader with a Plugins screen, and a bundled Dummy Content plugin for testing at archive scale.

🔒 Security (LF-008, LF-009, LF-051)

Sign-in lockout with escalation, registration spam protection and optional Akismet, reverse-proxy awareness, HTTPS-only option, password length and session length settings, strict Content-Security-Policy, and an audit log of every administrative change.

🧪 Quality

The full suite of 2,945 tests passes on PHP 8.2, 8.3, 8.4 and 8.5 with MariaDB 11.8 (8 permission tests skip because the test containers run as root).

Still to come: feeds, sitemap, export, an in-admin updater with backups, a privacy page, caching and a Classic Archive theme.