shootify's picture

Hello guys, when are you going to upload or have available ninja invoice V5... looking forward. thanks

Jeremy Davis's picture

Hi there. Firstly, a warm welcome to TurnKey! :)

Next up, yes we do plan to. Ideally it will be sooner rather than later, but there is currently blocker.

For v4.x, we provided a local install of PhantomJS to do the PDF generation. However, PhantomJS is abandonware and isn't being maintained. As such, the InvoiceNinja devs don't provide support for locally installed PhantomJS in v5.x. That's probably wise. So the options for processing PDFs are the online PhantomJS service (which is free, but requires that your Invoice Ninja server is public facing; and you need to trust the service to process your PDFs) or a local Chrome install. (Whilst the docs say "Chrome", it's open source cousin; Chromium should work fine, and that's what we'd use - so from here on in when I say "Chrome", please read "Chromium").

For us, the requirement of a 3rd party service is unacceptable. If you are happy to use the 3rd party service, then that's fine. But we don't want to make that decision for you... So that leaves using Chrome. The problem there is that whilst the actual functionality is headless (i.e. you can use Chrome via the commandline to generate the PDFs) there isn't a minimalist headless Chrome install. Installing Chrome on TurnKey makes the image ~500MB bigger! So that's unacceptable too!

I have some ideas of how we might move forward, but I we're currently in the process of rebuilding/refreshing the library. So I don't currently have the time or energy to test them out and play around...

shootify's picture

thank you very much for letting me know. hopefully you can get it working since they already released it. 

Jeremy Davis's picture

Thanks for posting Peter. That's useful info.

Is there anything special required to install/include that? Or is it a default component if you do a manual install? I had a quick look at the install docs and couldn't find anything specific?! Although I did find a note recommending use of the built in snappdf package - so I guess it's included?!

Regardless, I do hope to create a new Invoice Ninja5 appliance in the not too distant future. However, Debian 11/Bullseye is very close to release, so it won't happen until after that...

Jeremy Davis's picture

Thanks for sharing Peter! :)

Jeremy Davis's picture

We're currently still busy working on v17.0. Once we have Core and TKLDev released as stable v17.0, then LAMP should be fairly close behind. Once that's done, then work can start on Invoice Ninja v5.

And unfortunately, it seems that you can't just upgrade. You need to migrate. I was going to suggest that you try installing v5 alongside and do the migration. However, it looks like Invoice Ninja v5 requires PHP 7.4. You'll need (the as yet unreleased) TurnKey v17.x to get that by default (although you could install PHP from third party).

Having said that, I note that they published "Minor fixes" for v4; v4.5.48 - 5 days ago. So whilst it may not be getting new features, it does appear that they are still providing some degree of maintenance.

Regardless, hopefully we can push it out in the coming months...

Jeremy Davis's picture

I'm not sure, but my guess is that you need to manually download the update and copy it over the existing files. Don't do that without a backup though; just in case... Actually, yep looks like I'm right.

Bugger about the app though. Until you have v5 you may need to just use the web UI. I'm sure that sucks, but unfortunately I can't go any faster than I already am...

Some quick pointers:

By default the user is "root", but the webserver user needs ownership of the /var/www/invoiceninja files. Do that like this:

chown -R www-data:www-data /var/www/invoiceninja

The docs not using composer and artisan, again, these need to be run as the www-data user. You can do that with the included 'runuser' command (or 'su') or you can install 'sudo' and use that instead.

runser (or su - the format is exactly the same):

runuser - www-data -s /bin/bash

Or sudo:

apt update && apt install sudo -y
sudo -u www-data COMMAND
sudo -u www-data ANOTHER_COMMAND
George3430's picture

Hi Guys,

Just wondering if there is an ETA for a TurnKeyLinux  InvoiceNinja v5 ... Really looking forward to it.

Also a word of appreciation I've for all the great work that you have done over the years.




Jeremy Davis's picture

Thanks for your kind words George.

Unfortunately, I don't have a firm ETA (and if I gave you one it'd likely be wrong). I am still bogged down with the v17.0 Core and TKLDev release ATM. I'm hoping that it will be released really soon, but I can't give a firm timeframe (within the next week or 2 fingers crossed).

Once we have that done, then hopefully Invoice Ninja won't be too far behind, but history suggests possibly as soon as a few weeks after. Having said that, we have done lots of the other LAMP appliances already (just have to wait to do final testing once we have Core, TKLDev and LAMP apps done) but Invoice Ninja isn't one of those. So we'll have to see...


Jeremy Davis's picture

The timing for Ninja Invoice v5 wasn't great. When we were ready to do the integration, v5 wasn't quite (it was "stable" but didn't support an included PDF generator). I wasn't happy publishing our appliance whilst it relied on a third party service for generating PDFs. From what I gather, that has since been resolved, but unfortunately we don't currently have the spare cycles to prioritise a Ninja5 update ATM. :(

We will get to it, but it will have to wait until we get to it. We've finally completed Core v17.0 (I'm yet to actually announce it, but it's on the mirror - only about 3 months behind schedule). So when we get to the Ninja Invoice appliance, it will be Ninja5!

If anyone is interested in assisting us to push out a v17.0 Ninja Invoice v5 appliance, please let us know! :)

Jeremy Davis's picture

I'm not particularly familiar with Ansible, so I'm not sure how useful it might be. But if you have it handy (or posted somewhere already) please do share. I t certainly won't do any harm!

As for setup screens. Assuming that you are referring to a setup screen displayed within the browser, the way around those is to use curl to interact with the service. We use that approach quite a bit. Lots of webapps (PHP based ones in particular) seem to require an interactive process via the browser as the final step. They can sometime take a bit of fiddling to get right, especially when they are running javascript. But at the end of the day, it's all TCP packets...

Add new comment