YACReaderLibraryServer on Raspberry Pi
July 04, 16
This tutorial is outdated, you should pick the code from https://github.com/YACReader/yacreader using git and read the documentation that can be found in the YACReaderLibraryServer folder.
One of the greatest additions to YACReader in the 8.5.0 relase is YACReaderLibraryServer. YACReaderLibraryServer is a version of YACReaderLibrary with no graphic user interface that can be used for serving comics to the iOS client of YACReader.
I have developed YACReaderLibraryServer for making easy to have a 24/7 comics server at home. Most of the time having a PC/Mac running YACReaderLibrary just for serving comics is overkill, so the main idea behind YACReaderLibraryServer is to running it in embedded devices like the Rapsberry Pi. These kind of devices are unexpensive, they consume low power and are easy to setup.
By now there are no ARM packages for Raspbian or any other distro, so if you want to run YACReaderLibraryServer in a ARM based system you have to compile by yourself. Yeah, YACReader needs packagers :(
The following tutorial assumes a fresh install of Raspbian, so it will guide you through the compilation and installation process but also the installation of all the needed tools and dependencies.
Installing dependencies and tools.
~ $ sudo apt-get update
~ $ sudo apt-get upgrade
~ $ sudo apt-get install mercurial
~ $ sudo apt-get install qt5-default
~ $ sudo apt-get install libpoppler-qt5-dev
Getting the source code of YACReader.
~ $ mkdir dev
~ $ cd dev/
~/dev $ mkdir yacreader_hg
~/dev $ cd yacreader_hg/
~/dev/yacreader_hg $ hg clone https://bitbucket.org/luisangelsm/yacreader .
Getting unarr source code.
~ $ cd ~/dev/yacreader_hg/compressed_archive/unarr/
~/dev/yacreader_hg/compressed_archive/unarr $ wget github.com/selmf/unarr/archive/master.zip
~/dev/yacreader_hg/compressed_archive/unarr $ unzip master.zip
Compiling and installing YACReaderLibraryServer.
~ $ cd ~/dev/yacreader_hg/YACReaderLibraryServer/
~/dev/yacreader_hg/YACReaderLibraryServer $ qmake YACReaderLibraryServer.pro
~/dev/yacreader_hg/YACReaderLibraryServer $ make
~/dev/yacreader_hg/YACReaderLibraryServer $ sudo make install
Check if everything was OK.
~ $ cd
~ $ YACReaderLibraryServer
Usage: YACReaderLibraryServer [options] command
YACReaderLibraryServer is the headless (no gui) version of YACReaderLibrary
Options:
-h, --help Displays this help.
-v, --version Displays version information.
Arguments:
command The command to execute. [start, create-library,
update-library, add-library, remove-library, list-libraries]
Configuring the system for YACReaderLibraryServer.
The main objective is to have YACReaderLibraryServer running 24/7 and recover it after any possible crash. There are several alternatives for doing this, but one of the easiest ways is to use cron. Since only one instance of YACReaderLibraryServer can run at once (it won't boot if another instance is running), we can schedule a cron task for running YACReaderLibraryServer.
Edit the root crontab file.
~ $ sudo crontab -e
Add the following line to the crontab
* * * * * YACReaderLibraryServer start
Considerations using YACReaderLibraryServer in an embedded system.
First of all, my current setup is running in a Raspberry Pi 3, but any similar device will do the job.
Even the latest version of the little Pi, with its improved performance, is a slow device compared with a PC or Mac. So creating a library using one of these devices can take a long time, specially for larger libraries. The right approach here, is to use your main computer for creating the library, usually in an external disk that will be attached to the Raspberry Pi later. For creating the library just use YACReaderLibrary, libraries' meta-info is stored in the target folder where the library is created, this means that libraries are portable.
Back in the Raspberry Pi, all you have to do is to use the add-library for adding the existing library to the current configuration of YACReaderLibraryServer. For example:
~ $ YACReaderLibraryServer add-library MyComics /mnt/MyComics
Note that if you are installing a task for YACReaderLibraryServer in your root crontab then you should add the libraries as root:
~ $ sudo YACReaderLibraryServer add-library MyComics /mnt/MyComics
Once everything is set up and running all you need to do is type the IP of your Raspberry Pi and the default port 8080 in the iOS app. You can use the command ifconfig to discover the IP of your Pi.
And that's all. Once the forum will be reopened I will create a topic for dicusing any related problem. In the mean time, please, contact me if you have any issues or questions. As promised, I have created the topic for discussing this in the forum.
Online again
June 26, 16
The web is online again :)
The forum will be closed for the next few days. In the mean time if you need any help please contact me.
Thanks for your patience.
8.5.0 - Finally!
March 28, 16
After some waiting since I anounced the new features YACReader 8.5.0 is finally here :)
Linux packages are not ready yet, but they will be soon.
I am not sure about what is going to happen with a possible package for Raspbian, now that YACReaderLibraryServer is available running it in those small devices seems the way to go for having a cheap 24/7 comics server for the iOS client. I will try to write a tutorial about this. In any case, help with Linux's packages is really needed, so if you are willing to help, let me know.
As always, any feedback is really appreciated.
NOTE: This is for OSX users only. Since the last update of OSX I am having problems again with codesign, so I am releasing the OSX version without code signing. Sorry for that. I could use a hand with this too.
Features coming soon!
January 14, 16
Hi there!
It has been a while without any new releases of YACReader, but there are good news, a new version is coming soon :).
Let's take a look to some of the new features:
The grid view has been enhanced with a new slider for choosing the size of the covers, and it also includes a fully configurable background that can use the covers of your comics, now every single folder will have a unique look.

New settings for grid view
YACReader UI has been refreshed with a cleaner look.

New UI for YACReader
New fit and zoom modes, finally!.

Fit to page and zoom modes
And last but not least, a headless version of the YACReaderLibrary's server (no gui). I have been testing it in a Raspberry Pi 2 with and external hard disk attached and it looks really stable, so it will be included in the next release.

YACReaderLibraryServer as a stand alone aplication
Any thoughts? Please, share them here.
YACReader 8.0 + YACReader 2.0 for iOS
July 08, 15
Good news everyone! The new versions of YACReader are ready! It has been a long wait but there are a lot of new features to discover.
YACReader 8.0 changelog:
- Added Reading lists, including 'Favorites' and 'being read' lists
- Tags, for whatever you want
- New search engine, now you can filter folders and comics
- New grid view
- Add and delete folders
- Update single folders (no need for updating the whole library to rescan a single folder)
- Drag and drop for adding new comics and folders
- Customizable shortcuts
- Manga mode (thank you Felix)
- Spread page detection for double page mode (including manga mode)(thank you again Felix :) )
- New view for folders not containing comics (only subfolders)
- Save selected covers to disk
- Added WebP image format support
- The user has to provide its own Comic Vine API key to prevent usage limit errors from Comic Vine
- New unarr decompression backend for Linux and Unix systems
- Fixed memory and files descriptors leaks in 7zip wrapper
YACReader 2.0 for iOS changelog:
- Renewed UI, much more cleaner design
- Improved image quality in covers(library) and pages(reading)
- Added support for iPhone 6/6+
- Completely new import section. Did you already tap the percentage indicator while importing?
- Imports can be canceled, paused, resumed. They are automatically stored when the app goes to background and restored when it comes active again
- Three new cloud services are supported, four in total: Dropbox, Google Drive, Box and One Drive
- Support for browsing cloud services and selective import (configurable lading folder, no more YACReader folder)
- Added full folders importing through iTunes (bye, bye to: create folder, select all, cut, paste)
- YACReaderLibrary integration improved, the iOS version tries to connect automatically to the last server used. Added sync back reading progress to the server
- Brosing, Importing, Reading from YACReaderLibrary is now supported using your data plan. You have to configure your router properly (port forwarding) and use your external IP to connect to the server. (beta, it is not 100% reliable)
- PDF is supported natively, that means that you can use iTunes or cloud services for importing PDF files
- Added support for WebP image format
- Big covers view has been improved adding extra information (progress bar) and using all available space in portrait mode (showing more info: pages, issue number, volume and rating)
- I have simplified the help section, I am going publish an online users' manual (it is not ready yet, but it will)
I hope you will enjoy the new version. As always, any suggestions will be welcome.
* App Store propagation to all the world wide servers could take some hours.
** backward compatibility in desktops/iOS integration is broken, so YACReader 8.0 and YACReader 2.0 for iOS have to work together.
Special thanks to Elia Gregorio for all her support and for understanding what this project means to me. I love you.
Felix(selmf), thank you very much for all your invaluable help!
I would like to thank all the users that have been involved in the development of these new versions: reporting bugs, sending me suggestions and doing all the beta testing work.

New grid view in YACReader 8.0