Which one do I want?
| If you want to… | Install | Notes |
|---|---|---|
| Read on one computer and nothing else | Desktop app | Self-contained. Nothing else to set up. |
| Read on a computer and a phone, in step | Desktop app + Android app | Connect both through Google Drive or a synced folder. |
| Share one library across several devices or people | Server | Then use any browser, or point the desktop and Android apps at it. |
| Only read your own ebooks on a phone | Android app | Its standalone mode needs no server at all. |
Desktop app
The desktop app carries its own database and starts it for you. Nothing needs to be installed alongside it.
- Download the installer. Go to the project's releases page and download the file for your system: a
.exeinstaller for Windows, or an.AppImageor.debfor Linux. - Run it. Windows shows a blue “Windows protected your PC” panel, because the installer is not signed with a paid certificate. Choose More info and then Run anyway. On Linux, make the AppImage executable and open it, or install the
.debwith your package manager. - Answer the first question. Before anything is written to disk, the app asks where to keep your library. See Setting up.
Expect roughly 250–300 MB installed. Most of that is the browser engine the window is drawn with and the database engine that holds the library.
Portable mode
Put a file named portable.txt next to the executable and the whole installation lives in folders beside it. Library, settings and logs all travel with it, so it can run from a USB stick and leave nothing on the host computer. Automatic updates are switched off in this mode, and a path longer than 100 characters is refused instead of half-working.
Android app
The Android app is distributed as an APK from the releases page, not through Google Play.
- Download
fiction-reader-<version>-android.apkfrom the releases page, on the phone itself. - Allow the install. Android will ask whether your browser or file manager may install apps. Grant it, install, and then withdraw the permission again if you prefer.
- Choose what the app is for on first launch: connect to a Fiction Reader server, or keep a library on the phone. Both choices are explained on The Android app.
https://localhost in FR_CORS_ORIGINS, or the app reports that it cannot reach the server even when the network is fine. See Running a server.Home server
A server suits a household with several devices, or one always-on machine that can keep checking for new chapters while your laptop is closed. It needs Docker and about 4 GB of memory.
cd deploy/docker
cp .env.example .env
openssl rand -base64 32 # paste the result into FR_ENCRYPTION_KEY
docker compose up -d
Then open http://<that-machine>:8080 in any browser on the network. The full procedure, the configuration reference, backups and upgrades are on Running a server.
In a browser
Any browser on the same network as the server can use Fiction Reader by visiting its address. Nothing needs to be installed.
Chrome and Edge also offer Install app, which gives Fiction Reader its own window with no address bar and its own icon. This is the intended setup for a tablet. The installed window follows the theme you chose inside the app, including its title bar.
Saving stories for offline reading is not offered in a browser tab. A tab has a reload button and an address bar; the installed desktop and Android apps do not, and they are the ones that travel. See Reading offline.
Browser extension
An optional Chrome and Edge extension subscribes to the story in the current tab, without opening Fiction Reader and pasting the address. It shows the same subscribe form the app does, with threadmark categories, where to start, whether to download now, and whether to make it a trial.
- Unpack it. Extract the extension zip from the release into a folder you intend to keep. The browser loads it from that folder every time it starts, so deleting the folder uninstalls it.
- Load it. Open
chrome://extensions(oredge://extensions), turn on Developer mode, choose Load unpacked, and select the folder. - Point it at your library. Right-click the extension and choose Options, then enter your server address, your profile name, and the instance token if you set one.
The extension asks for permission to talk to your server the first time you save a story, instead of declaring up front that it can read every site you visit.
Updates
- Desktop checks the releases page and updates when you quit, never in the middle of a chapter. It will refuse to start on a library that a newer version has already upgraded, and will say which version to install.
- Android is updated by installing a newer APK over the top.
- Server is updated with
docker compose pull && docker compose up -d. Database migrations run automatically.