Hi,
I upgraded to PHP 8.3 on my self hosted Version 5.8.47, thought I’d be proactive … after that my instance failed at startup error 505 is PHP 8.3 supported?
Hi,
I upgraded to PHP 8.3 on my self hosted Version 5.8.47, thought I’d be proactive … after that my instance failed at startup error 505 is PHP 8.3 supported?
Yes, PHP8.3 is supported, the minimum version required is now 8.2 for InvoiceNinja. I’m currently using 8.3 without any problems. However, that is a very old version of InvoiceNinja and I don’t believe it supports that new of PHP. That is the newest version of PHP and can break some older things. I believe you’ll need to upgrade to InvoiceNinja version 5.10.X in order to use PHP8.3.
Additionally, depending on what version of Debian or Ubuntu you are using, PHP8.3 is known for causing some breaking problems on older versions. They can be fixed and it’s not too difficult, but it can happen.
Additionally, did you completely remove your older version of PHP and update all of your config files to point to the newer version of PHP? Unless you’re quite experienced with PHP, it’s easy to encounter problems when multiple versions are installed.
Yes I removed 8.1 completely then did a fresh install best I could … I’m networking guy not server
Running Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-118-generic x86_64) as a VM on Proxmox
Native install Version 5.8.47(non docker) using apache2 as web front end with self signed cert …as it is not internet facing.
V5.x has been running fine for 2 years … just did the auto upgrade every mth to latest release as they came out when I tried to update to 5.9.x it failed said to upgrade PHP to 8.2 … decided to go 8.3 then everything broke … rolled back to latest good snapshot … that is 6 months ago … as it is running my wife’s naturopathy practice … did not want to break things … decided it is time now … same problem …
I read that 8.2 & 8.3 did some things with security
Deprecation Warnings Warnings for deprecated functions Expanded warnings for outdated practices Continued emphasis on phasing out older practices
New Features - Fibers (for async)
read-only
classesDisjunctive Normal Form (DNF)
types - Trait Method Properties
Enhanced Password Hashing
Could that be my problem ?
That’s definitely a good start. Upon upgrading to 8.3, some of the PHP modules changed packaging. Ones that had previously been packaged individually, were added to others. You may wish to make sure you have all of the correct modules installed. Run php -m
and make sure you have everything.
That should all be just fine. That’s what I had been running. I know that PHP8.3 works fine on Ubuntu 22.04 but it’s not recommended on anything older and now comes default on 24.04.
There’s part of the problem. As far as I know, version 5.9.x is not compatible with PHP8.3, only 8.2.
Yes, there have been a lot of security updates with the new version of PHP. It’s not too difficult to find online, but there are some arguments to do as you did and skip 8.2 because of that.
Regardless, if I might make a suggestion. Given that this is critical for spousal approval ratings and for employment purposes, think about this.
Given that you have it setup in proxmox, copy the VM, rename it and tweak your settings and various related InvoiceNinja config, so you can access the copy without affecting her current and active copy.
From there, you can figure out your upgrades. If you break something, there will be no negative consequences. Once you figure out the upgrade process, then you’ll know what to do to get her production setup updated. That’s a common sys admin tactic for upgrades and one of the strong reasons to use VMs instead of bare metal installs. If you’re a networking guy, ask some of the sys admins that you know. They’ll likely tell you more than you want to hear about it.
I would recommend upgrading via CLI and not via the web UI or the app. Upgrading via CLI should avoid the breakage you’re facing. Not to mention, it will be easier than downgrading PHP. On top of that, you should be able to jump straight to version 5.10.24 (current version as of writing this), as far as I know and avoid the multi-step process of going through 5.9.X, etc. through the web updater.
In case you are not aware, there are substantial changes in the web UI with version 5.10.X, they moved to React and away from Flutter - permanently. So, if your wife (or her employees) don’t like the new UI/UX, you’ll need to install the desktop app. That will remain in Flutter and look more similar to what you see in 5.8.X.
If your latest snapshot was 6 months ago, yikes! I hope she didn’t lose too much from that. You might want to setup automated snapshots to occur, at minimum, daily. But that’s another topic.
Highly unlikely.
thx … was being lazy …
I have an identical spec dev system running (… sleeping ) as a vm on one of my TRueNAS boxes… actually that is the original that I built when implementing IN Ver 5 …then migrated to ProxMox sad thing is it is still sitting at the original installed version … was going to wake it up …
but your statement made me rethink my strategy
I think I’ll follow your advice copy it rename upgrade to PHP8.3 then try to run latest Ver IN update v5.10.24 … and if your suspicion is correct that should work … there goes my weekend … will let you how it went …
thx for replying …
Nope daily … learnt that very painful lesson yonks ago!
Yes, ice been there and learned that myself.
Best of luck, it should go fine. There are several guides and someone even recently shared an update script, all here on the forum. Just in case you need help. And feel free to ask.
Thx for the heads up
Where do I get the desktop app? I refuse to download anything from windows app store and will it allow running using a self signed cert?
Where can I find out the feature set for the desktop app ?
It seems that they want you to download and installer … where can I find the msi?
The Windows desktop app is currently only available through the Microsoft store.
https://www.microsoft.com/en-us/p/invoice-ninja/9n3f2bbcfdr6
The app doesn’t currently support using a self-signed certificate but we’re considering adding this in the future.
The web and desktop apps have nearly identical features but slightly different interfaces, here are demos to compare them:
Hi Hillel,
Thank you for responding,
This cannot happen soon enough
The last time I tried the react UI there was no way to enter transactions admittedly this a while ago
Has this been fixed?
If not what is the last release where Flutter is supported ?
So far, my use case has allowed me to fully embrace the concept of self-hosting and I would like to keep it that way . It allows me to get away from any cloud-based dependencies, such as certificates issued by anonymous entities or the need to authenticate my own identity through third-party systems. This approach also protects my business from having to share statistical information that could be used to influence behavior by commercial entities or others.
Anyway I’ll get of my soapbox now and get back to updating to PHP 8.3 … depending upon the last release that supports flutter support 8.3
GV
@george3430 if there are changes you’d like to see made in the React web app please create a new issue here:
Invoice Ninja: Web admin portal built with React. Contribute to invoiceninja/ui development by creating an account on GitHub.
@Gaetan please create a separate post
@george3430 I have the desktop app installed and can confirm that both Transactions and Documents exist and are usable in the app.
So far, my use case has allowed me to fully embrace the concept of self-hosting and I would like to keep it that way
. It allows me to get away from any cloud-based dependencies, such as certificates issued by anonymous entities or the need to authenticate my own identity through third-party systems. This approach also protects my business from having to share statistical information that could be used to influence behavior by commercial entities or others
I’m not exactly sure what you’re referring to here. I self-host, on my own hardware in my office. Additionally, I don’t know what you mean by ‘cloud based dependencies’.
There are some compelling arguments that self-signed certificates pose a greater security risk than using a well established and reliable certificate authority. Doing so also eliminates the browser warnings.
Using a service like Let’s Encrypt is easy and reliable. They are one of the largest certificate providers in the world, it’s free, and they are not ‘anonymous’. The non-profit organization is well documented and will respected and had an excellent security record.
There are multiple ways that you can easily setup your self-hosted system with a valid TLS certificate, at the same time not exposing your system to the world.
or the need to authenticate my own identity through third-party systems
Lastly, I don’t know what you’re referring to here as well. The most secure way to protect yourself is by connecting via Wireguard, which you can technically do without the need for a TLS certificate and it is far more secure. Wireguard is incorporated into the Linux kernel and can be configured on all major and most minor operating systems. This includes everything from mobile devices, Windows, Mac, and Linux PCs, and servers. If setting up Wireguard is too complicated, Tailscale provides a very easy to use interface for setting up and configuring Wireguard. If you don’t want to use their free and highly respected service, you can now self-host their setup on your own.
You can also setup (i.e. self-host) Caddy as a simple reverse proxy to automatically fetch and renew your TLS certificates.
I have Caddy setup for my InvoiceNinja that connects to Wireguard via Tailscale resolving to my private IP address and automatically sets my TLS; all without opening a single port to the outside world. Anyone that tries to connect to or resolve my domain name and is not connected to my Wireguard/Tailscale, it resolves as not found. Using Wireguard alone, you can connect unlimited number of users to your account - if you wanted to. With Tailscale, their free account limits your Tailnet to 3 users.
If you’re interested in learning more, please just ask.
Supported by Invoice Ninja and Event Schedule