Which one do I want?
| If you want to… | Install | Notes |
|---|---|---|
| Read on one computer and nothing else | Desktop app | It's self-contained, so there's nothing else to set up. |
| Read on a computer and a phone, and keep them in step | Desktop app and Android app | Connect them 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 | It can keep its own library and doesn't need a server. |
Desktop app
The desktop app comes with its own database and starts it for you. You don't need to install anything alongside it.
- Download it. Go to the project's releases page and get the file for your system. Windows has an installer (
.exe) and a zip you can unpack anywhere. Linux has an.AppImage. - Run it. Windows shows a blue "Windows protected your PC" panel, because the installer isn't signed with a paid certificate. Choose More info, then Run anyway. On Linux, make the AppImage executable and open it.
- Choose a folder. The first time it starts, the app asks where to keep your library. See Setting up.
It takes roughly 350 to 400 MB once installed. Most of that is the browser engine the window is drawn with and the database that holds the library.
Each release also lists SHA-256 checksums for its files. Nothing is signed, so the checksum is how you confirm a download is the one that was published.
Portable mode
Put a file named portable.txt next to the executable and the app keeps everything in folders beside it: library, settings and logs. You can then run it from a USB stick without leaving anything on the computer. On Windows, keep the path under 100 characters or the app will refuse it.
Android app
The Android app is an APK on the releases page. It isn't on Google Play.
- Download
fiction-reader-<version>-android.apkfrom the releases page, on the phone itself. - Allow the install. Android asks whether your browser or file manager may install apps. Allow it, install, and take the permission away again afterwards if you like.
- Choose what the app is for when it first opens: connect to a Fiction Reader server, or keep a library on the phone. The Android app explains both.
https://localhost in FR_CORS_ORIGINS. Without it the app says it can't reach the server, even when the network is fine. See Running a server.Home server
A server makes sense for a household with several devices, or if you have a machine that's always on and can keep checking for new chapters. 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 your network. Running a server has the full procedure, the settings, backups and upgrades.
In a browser
Any browser on the same network as the server can use Fiction Reader at the server's address. There's nothing to install.
Chrome and Edge also offer Install app, which gives Fiction Reader its own window and icon with no address bar. That works well on a tablet. The installed window follows the theme you choose in the app, title bar included.
A browser tab can't save stories for offline reading. Only the desktop and Android apps can. See Reading offline.
Browser extension
There's an optional extension for Chrome and Edge. It subscribes to the story in the tab you're looking at, so you don't have to open Fiction Reader and paste the address. It shows the same subscribe form as the app.
- Get it. The extension is in the
extension/distfolder of the source repository, as a zip. Unpack it into a folder you plan to keep. The browser loads it from that folder every time it starts, so deleting the folder removes the extension. - 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. Enter your server address, your profile name, and the instance token if your server uses one.
The first time you save its settings, the browser asks you to approve access to your server's address. The extension doesn't ask for access to every site you visit.
Updates
- Desktop. Download the new version from the releases page and install it over the old one. Your library is kept. The app doesn't update itself.
- Android. Install the newer APK over the top.
- Server. Pull or rebuild the image and run
docker compose up -d. Database changes are applied automatically when it starts.
If you use the desktop or Android app with a server, update the server first. The apps load the interface from the server, so they pick up the new version the next time they're opened.