Skip to content

fnOS Deployment Guide

Leelaa Reader is available in the fnOS app store for one-click install and automatic updates.

Steps

  1. Open App Store in fnOS.
  2. Search for leelaa or audiobook.
  3. Click Install.
  4. Configure parameters:
    • Service Port: default 8686.
    • User Data State:
      • Existing users: choose this when DB already contains users.
      • No users: choose this for first install or clean reinstall.
    • Initial admin username: default admin when needed.
    • Initial admin password: optional. If omitted, random password is generated and written to password.txt.
    • Database path: optional absolute path (for example /vol1/1000/docker/leelaa).
  5. Launch app from desktop icon.

2. Docker Compose (Advanced)

If you prefer manual lifecycle management, use Docker Compose.

The Docker image supports linux/amd64 (x86_64) and linux/arm64 (ARM64/aarch64). fnOS devices usually pull the matching architecture automatically. If container logs show exec format error, add platform: linux/amd64 or platform: linux/arm64 under the service in docker-compose.yml.

Suggested Directory Layout

text
/vol1/1000/docker/leelaa/
├── docker-compose.yml
└── data/

Example docker-compose.yml

yaml
services:
  leelaa-reader:
    image: leedaisen/leelaa-reader-server:latest
    container_name: leelaa-reader
    ports:
      - "8686:8686"
    volumes:
      - ./data:/data
    environment:
      - DEFAULT_ADMIN_USERNAME=admin
      - DEFAULT_ADMIN_PASSWORD=set_a_strong_password
      - TZ=Asia/Shanghai
    restart: unless-stopped

DEFAULT_ADMIN_PASSWORD is optional. If omitted, the first boot generates a random password and writes it to /data/password.txt.

To force an architecture, add this line below image:

yaml
    platform: linux/amd64 # use linux/amd64 for x86_64; use linux/arm64 for ARM64/aarch64

Mount Notes

Container PathPurposeRecommendation
/dataCore data (SQLite, covers, runtime files)Must be mounted

Backup & Migration

  • Backup: back up host-side ./data directory.
  • Migration: copy ./data to new host and mount to /data.