Personal book acquisition tool. Searches MyAnonamouse for ebooks and audiobooks, downloads via qBittorrent, and organizes completed files into a library.
- Search MAM for ebooks and audiobooks
- Automatic download via qBittorrent integration
- Organizes completed downloads into
ebooks/andaudiobooks/directories - Multi-user auth with session-based login
- Web UI with search, filtering, pagination, and bulk downloads
- Retry stuck/failed downloads
- A MyAnonamouse account
- A running qBittorrent instance with Web UI enabled
mkdir bookomatic && cd bookomatic
curl -O https://raw.githubusercontent.com/godver3/bookomatic/main/config.sample.yml
curl -O https://raw.githubusercontent.com/godver3/bookomatic/main/docker-compose.sample.ymlcp config.sample.yml config.ymlEdit config.yml and fill in:
- Your MAM session cookie — get this from MAM > Preferences > Security >
mam_id - Your qBittorrent URL, username, and password
- Volume paths for downloads and library storage
Open docker-compose.sample.yml and update the volume paths to match your setup:
volumes:
- ./config.yml:/config.yml:ro
- bookomatic-data:/data
- /your/download/path:/downloads # where qBittorrent downloads to
- /your/books/path:/library # where organized books end upThere is no default user. You must create one before you can log in:
docker compose -f docker-compose.sample.yml run --rm bookomatic adduser adminYou'll be prompted to enter a password.
docker compose -f docker-compose.sample.yml up -dOpen http://localhost:8484 and log in with the user you created.
All configuration is done via config.yml. See config.sample.yml for a complete template.
| Setting | Required | Description |
|---|---|---|
mam.mam_id |
Yes | MAM session cookie |
qbittorrent.url |
Yes | qBittorrent Web API URL |
qbittorrent.username |
No | qBittorrent username |
qbittorrent.password |
No | qBittorrent password |
storage.download_dir |
Yes | Path where bookomatic reads completed torrents |
storage.qbit_download_dir |
No | Path as qBittorrent sees it (for container path translation) |
storage.library_dir |
Yes | Path where organized books are stored |
storage.db_path |
No | SQLite database path (default: bookomatic.db) |
server.port |
No | HTTP port (default: 8484) |
# Add a user (will prompt for password)
docker exec -it bookomatic bookomatic adduser <username>
# List users
docker exec -it bookomatic bookomatic listusers
# Delete a user
docker exec -it bookomatic bookomatic deleteuser <username>Requires Go 1.25+.
go build -o bookomatic .
cp config.sample.yml config.yml
# edit config.yml
./bookomatic adduser admin
./bookomatic