0

How to Start Ubooquity on Ubuntu 16.04

RobL 6 years ago updated by Kcubor 6 years ago 1

I have just installed Ubooquity on Ubuntu 16.04. I can launch it from the CLI and it seems to be working just fine.
I cannot however get Ubooquity to run as a service. The posts and how-tos on this are all (or at least ones I've found) all use upstart.
Unfortunately 16.04 now uses systemd and upstart.
Does anyone have a systemd start up for Ubooquity?

0
Answered

Are there any plans for coming updates or releases?

bollings 6 years ago updated by Are Finstad 6 years ago 6

Hi Tom! Thanks for this fantastic piece of software! I love it and use it daily. I post this just because I am curious if you are still actively working on new features and improvements. I understand its your personal project and you also need to make a living and that things take the time they take.

But maybe you are getting close to finishing something that will be published?

Just curious about the progress and wont take any news as a promise. Thanks again!

0

Ubooquity won't start

wimtk 6 years ago updated by domc 6 years ago 3

I'm unable to make ubooquity work on my synology. I tried all the setup tutorials.


I don't know what I'm doing wrong

0

Ubooquity no longer displaying subfolders

Daniel Schuldt 6 years ago updated by Anton Baur 6 years ago 3

I have been using Ubooquity for two years now and it has always been a great companion and awesome piece of software.


Yesterday I updated to Version 2.1.1 on my QNAP TS-453b-Mini and now run into the problem that while scanning the folders I point Ubooquity to and finding comics, magazines, etc. nothing can be found in the library view which is just empty despite the scan saying it added several thousand files.


While playing around I was able to narrow down the problem to subfolders.


My Comics are organized in a folder that has different subfolders for the series (e.g. Jackboot & Ironheel #01-04 (Complete)) that then hold the individual files. In the past this structure was never a problem and I could navigate through the folder structure without a hitch. Now it seems to be the case that the comics appear only in the library view if I point Ubooquity to the exact subfolder that holds the single files.


Am I missing any settings? I really do not want to point Ubooquity to hundreds of individual folders plus I loved that the library view basically copied my folder system which made things look nice and clean.


Thanks to everyone in advance for your help!

0
Under review

is there a size limit on database?

Adi Spivak 6 years ago updated 6 years ago 9

is there a limit to the database size?

during initial scan, some folder/books are added to the database, and at some point an error is shown and from that point nothing is added and all the rest show the same error (and while the indexer shows 16000+ books, 15000 are missing) :

20180730 14:26:12 [Scanner thread] ERROR com.ubooquity.data.database.c - Error while creating/updating comic in database
org.h2.jdbc.JdbcSQLException:
General error: "java.lang.IllegalStateException: Reading from
nio:/volume1/homes/Ubooquity/.Ubooquity2/ubooquity-5.mv.db failed; file
length -1 read length 1536 at 24132435 [1.4.193/1]"; SQL statement:
merge
into comic(parentid, rootid, isdirectory, title, norm_title, filedate,
filepath, filename, norm_filename,
lastupdatedate,filesize,description,language,norm_language,seriesname,norm_seriesname,seriesindex,altseriesname,norm_altseriesname,altseriesindex,volume,publisher,publicationdate,writers,norm_writers,pencillers,norm_pencillers,genre,norm_genre,pagecount)
key(filepath)values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,
?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [50000-193]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.message.DbException.get(DbException.java:168) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.message.DbException.convert(DbException.java:295) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.command.Command.executeUpdate(Command.java:266) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]

at
org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:201)
~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at com.ubooquity.data.database.c.a(SourceFile:649) [Ubooquity.jar:2.1.1]
at com.ubooquity.data.database.c.a(SourceFile:68) [Ubooquity.jar:2.1.1]
at com.ubooquity.data.feeder.a.b(SourceFile:539) [Ubooquity.jar:2.1.1]
at com.ubooquity.data.feeder.a.b(SourceFile:459) [Ubooquity.jar:2.1.1]
at com.ubooquity.data.feeder.a.b(SourceFile:112) [Ubooquity.jar:2.1.1]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_161]
Caused
by: java.lang.IllegalStateException: Reading from
nio:/volume1/homes/Ubooquity/.Ubooquity2/ubooquity-5.mv.db failed; file
length -1 read length 1536 at 24132435 [1.4.193/1]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:765) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.DataUtils.readFully(DataUtils.java:435) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.FileStore.readFully(FileStore.java:98) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.Page.read(Page.java:190) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.MVStore.readPage(MVStore.java:1954) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.MVMap.readPage(MVMap.java:736) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.Page.getChildPage(Page.java:217) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.Cursor.min(Cursor.java:129) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.Cursor.hasNext(Cursor.java:36) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]

at
org.h2.mvstore.db.TransactionStore$TransactionMap$1.fetchNext(TransactionStore.java:1388)
~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.db.TransactionStore$TransactionMap$1.(TransactionStore.java:1384) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]

at
org.h2.mvstore.db.TransactionStore$TransactionMap.keyIterator(TransactionStore.java:1379)
~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at
org.h2.mvstore.db.TransactionStore$TransactionMap.keyIterator(TransactionStore.java:1367)
~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.db.MVSecondaryIndex.find(MVSecondaryIndex.java:309) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.db.MVSecondaryIndex.find(MVSecondaryIndex.java:254) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.index.BaseIndex.find(BaseIndex.java:128) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.index.IndexCursor.find(IndexCursor.java:169) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.table.TableFilter.next(TableFilter.java:467) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.command.dml.Update.update(Update.java:102) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.command.dml.Merge.merge(Merge.java:154) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.command.dml.Merge.update(Merge.java:106) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.command.CommandContainer.update(CommandContainer.java:98) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.command.Command.executeUpdate(Command.java:258) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
... 7 common frames omitted
Caused by: java.nio.channels.ClosedChannelException: null
at sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:110) ~[na:1.8.0_161]
at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:721) ~[na:1.8.0_161]
at org.h2.store.fs.FileNio.read(FilePathNio.java:74) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]
at org.h2.mvstore.DataUtils.readFully(DataUtils.java:421) ~[h2-1.4.193.jar.4067930195476961885.tmp:1.4.193]


0
Completed

Found a good Junrar fork

Seth Chhim 6 years ago updated 6 years ago 22

https://github.com/junrar/junrar


Please consider using this fork or merging. Some of my users are unable to stream because Ubooquity can't process the CBR file with it's current junrar version. If they download the CBR to the client which uses the version posted above, it works fine. Not all files fail to load, it is just some random ones I have not found the specific issue.


Possibly related https://ubooquity.userecho.com/communities/1/topics/298-unreadable-cbr

0
Completed

cbz =/= zip

Mai 6 years ago updated by Tom 6 years ago 1

I know adding .zip and .rar support has already been declined but I feel like this is the one thing preventing this software from being perfect for my use case.

Although in principle all comics should be renamed as .cbz to make them distinct from standard archives, the reality is that 99% of the digital comics you download whether they be from legitimate or illegitimate sources are packaged as .zip.

This makes automation not really an option for Ubooquity which is a shame because the user experience is so fantastic as is.

I think a lot of people just want to have a folder ONLY for their comics and are happy with all .cbz and .zip alike to be treated as comics.


If allowing .zip as a format is never going to be permitted, could some kind of script or option be implemented to scan the directory and rename every .zip to .cbz?

0

Admin Screen inaccessible on Ubuntu 18.04

anonymous 7 years ago updated by Brain Node 6 years ago 2

Hi, I'm running Ubooquity Server 2.1.1 on Ubuntu 18.04.


I ran into a couple of issues early on, one was that Ubooquity saves everything where it's executed from, rather than where the jar is located. What I mean by that is that if you have ubooquity.jar in /home/<username>/software/ubooquity then open a terminal and run java -jar /home/<username>/software/ubooquity it'll store all the ubooquity files in the default directory that the terminal was running from.


Normally that wouldn't be an issue, but any attempts to run Ubooquity without sudo privileges caused the application to open, but the web server wouldn't start and clicking any buttons except close caused it to crash without giving a reason as to why (even if run from terminal).


My solution to these two problems was to add "@reboot cd /home/<username>/Software/Ubooquity && /usr/bin/java -jar '/home/<username>/Software/Ubooquity/Ubooquity.jar'" to startup with crontab -e


Not an elegant solution, but a solution nonetheless.




While running Ubooquity as sudo, it successfully prints error messages and doesn't crash when clicking buttons.


Here's what appears when I click the Library button:


20180708 18:17:04 [JavaFX Application Thread] ERROR com.ubooquity.f.g - Could not open URL in browser (http://localhost:2202/)
java.lang.UnsupportedOperationException: The BROWSE action is not supported on the current platform!
    at java.awt.Desktop.checkActionSupport(Desktop.java:225) ~[na:1.8.0_171]
    at java.awt.Desktop.browse(Desktop.java:381) ~[na:1.8.0_171]
    at com.ubooquity.f.g.a(SourceFile:71) ~[Ubooquity.jar:2.1.1]
    at com.ubooquity.guifx.c.openLibrary(SourceFile:107) [Ubooquity.jar:2.1.1]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) [na:1.8.0_171]
    at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) [na:1.8.0_171]
    at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771) [jfxrt.jar:na]
    at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) [jfxrt.jar:na]
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) [jfxrt.jar:na]
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) [jfxrt.jar:na]
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) [jfxrt.jar:na]
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) [jfxrt.jar:na]
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) [jfxrt.jar:na]
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [jfxrt.jar:na]
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [jfxrt.jar:na]
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [jfxrt.jar:na]
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [jfxrt.jar:na]
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [jfxrt.jar:na]
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) [jfxrt.jar:na]
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) [jfxrt.jar:na]
    at javafx.event.Event.fireEvent(Event.java:198) [jfxrt.jar:na]
    at javafx.scene.Node.fireEvent(Node.java:8413) [jfxrt.jar:na]
    at javafx.scene.control.Button.fire(Button.java:185) [jfxrt.jar:na]
    at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) [jfxrt.jar:na]
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) [jfxrt.jar:na]
    at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) [jfxrt.jar:na]
    at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) [jfxrt.jar:na]
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) [jfxrt.jar:na]
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) [jfxrt.jar:na]
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) [jfxrt.jar:na]
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) [jfxrt.jar:na]
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) [jfxrt.jar:na]
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [jfxrt.jar:na]
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [jfxrt.jar:na]
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [jfxrt.jar:na]
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) [jfxrt.jar:na]
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) [jfxrt.jar:na]
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) [jfxrt.jar:na]
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) [jfxrt.jar:na]
    at javafx.event.Event.fireEvent(Event.java:198) [jfxrt.jar:na]
    at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) [jfxrt.jar:na]
    at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) [jfxrt.jar:na]
    at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) [jfxrt.jar:na]
    at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) [jfxrt.jar:na]
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394) [jfxrt.jar:na]
    at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) [jfxrt.jar:na]
    at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_171]
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432) [jfxrt.jar:na]
    at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) ~[jfxrt.jar:na]
    at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431) [jfxrt.jar:na]
    at com.sun.glass.ui.View.handleMouseEvent(View.java:555) ~[jfxrt.jar:na]
    at com.sun.glass.ui.View.notifyMouse(View.java:937) ~[jfxrt.jar:na]
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method) ~[jfxrt.jar:na]
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$48(GtkApplication.java:139) ~[jfxrt.jar:na]
    at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_171]

Unrelated, but I just noticed I can't paste that directly into the code box or nothing pastes, so I had to add it in between the code tag by editing the raw HTML. I'm running Waterfox, not sure if it's a browser specific issue or not or it's due to how much text I was pasting. I also can't click past it and press enter without editing the html directly if the code box is the last thing typed.



Anyway, as you can see, the method for opening the library isn't Ubuntu (or linux?) compatible. Instead of continuing on, you need to run as sudo or this causes it to crash.



Of course, opening localhost:2202 directly works without any issues if you're running Ubooquity as sudo, not as a regular user though but that might be due to me not assigning it a port to use as a regular user or something like that, although automating that process for linux users would be awesome ;)




The main issue though, is that the admin page doesn't open. I've tried opening it with localhost:2203, <myip>:2203 and everything else I can think of, but I get the following:


HTTP ERROR 500
Problem accessing /. Reason:
    Could not find matching provider (wrong URL)
Powered by Jetty:// 9.4.0v20161208 

As you can probably tell, all of the other issues, while annoying can be worked around, but I can't work around the admin page not displaying.




Thank you for such a fantastic program, I've used it on Windows for many months and while the interface would sometimes freeze and the tray icon would turn partially transparent, the program itself always ran flawlessly and would serve up my ebooks without any problems, and even now continues to do so. I had to copy and edit my Windows configuration to get it working in Ubuntu since I can't access the admin page, and it's currently working, but access to the admin page is obviously vital.

0

Suggestion: Custom zoom

Ovidiu Constantin 7 years ago 0

I find that sometimes, depending on how the text is on the original comic/book, fit to width makes it too large, and fit to height too small. I usually just set it to width and play with the browser window size on desktop, but I don't have a good solution for tablet. It would be nice if one could have a "Custom" zoom option and (+) and (-) buttons, so one will set the zoom more precisely. Thank you!

0

Difficulties with the Synology instructions

amcfarla 7 years ago updated by Grantos Maximus 5 years ago 37

Trying to configure this on my Synology NAS and having issues.  Following the steps from this site https://vaemendis.github.io/ubooquity-doc/pages/tutorials/install-on-synology.html I am getting to the point of this step:


The Ubooquity service is now installed. It will start on boot and you can start or stop it at anytime using start ubooquity or stop ubooquity. You can also see the status of the ubooquity processs unsing <em>status ubooquity</em>


I am not able to start up the service but I am using the Java8 that comes from Synology, so on the following steps, I am not having any success with these:


NOTE if Java8 is used

If you used Synology Java8 package instead of Java Manager then the service script will have the wrong path to the java binary. Edit the /etc/init/ubooquity.conf and change path to java binary from:

<em>exec /var/packages/JavaManager/target/Java/bin/java -jar -Xmx1024m /var/packages/Ubooquity/Ubooquity.jar -port 2202 -webadmin -workdir "/volume1/Comics/Ubooquity"</em>

to

<em>exec /var/packages/Java8/target/j2sdk-image/bin/java -jar -Xmx1024m /var/packages/Ubooquity/Ubooquity.jar -port 2202 -webadmin -workdir "/volume1/Comics/Ubooquity"</em>


I am not sure how to edit this file, I will admit linux is not my forte at all so I am just kind of winging this at the moment, I used the command (per a friend's help) 


sudo vi ubooquity.conf


which looking at this document I don't have any of this information:


exec /var/packages/JavaManager/target/Java/bin/java -jar -Xmx1024m /var/packages/Ubooquity/Ubooquity.jar -port 2202 -webadmin -workdir "/volume1/Comics/Ubooquity"


to correct the document.


Everything below script on this conf file is the following:


setuid Ubooquity

script
 # installation settings
 JAVA_DIR=/var/packages/Java8/target/j2sdk-image/bin
 WORK_DIR=/volume1/homes/Ubooquity/.Ubooquity2
 PCKG_DIR=/var/packages/Ubooquity
 PCKG_BIN=Ubooquity.jar


 # app settings
 PORT=2202
 ADMINPORT=2203
 MEM=512m


 # This ensures that ubooquity reads special characters properly
 ENCO=UTF-8
 LANG=fr_FR.$ENCO
 export LANG


 # Main command for ubooquity
 exec "$JAVA_DIR/java" -Dfile.encoding=$ENCO -Xmx$MEM -jar $PCKG_DIR/$PCKG_BIN --libraryport $PORT --workdir "$WORK_DIR"  --adminport $ADMINPORT --remoteadmin --headless
end script


So at this point I am not sure what I need to change to get this to work.  Using WinSCP I have all the directories listed in the installation settings, except the WORK_DIR  I don't have that directory, but I did create a /volume1/Comics directory for my items.  if someone is able to assist me since I am lost on what I need to do to fix this issue.  Thank you.