[Support] Invoice Ninja v5


Recommended Posts

Overview: Support for Docker image: Invoice Ninja v5

 

Docker Hub: https://hub.docker.com/r/maihai/invoiceninja_v5

 

Github/Docs: https://github.com/kiwimato/invoiceninja-v5-unraid

Please open any issues here, since it might be easier to follow/post logs: https://github.com/kiwimato/invoiceninja-v5-unraid/issues

 

Note: Please read the docs especially the SSL part before installing because I noticed it simply doesn't play well without proper certificates.

 

As always, feel free to ask questions or raise PRs if you feel like contributing.

 

Thanks a lot guys, I hope this is useful!

Edited by Mihai
Link to comment
  • 2 weeks later...

Getting the following error when trying to set up. What am i doing wrong?

 

2022-06-08T18:24:20Z [INFO] [Entrypoint]: Initialising Invoice Ninja...
Configuration cache cleared!
Configuration cached successfully!
Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!
Routes cached successfully!
Files cached successfully!
Migration table created successfully.
Loading stored database schema: /var/www/app/database/schema/mysql-schema.dump

In Process.php line 272:
                                                                               
  The command "mysql  --user="${:LARAVEL_LOAD_USER}" --password="${:LARAVEL_L  
  OAD_PASSWORD}" --host="${:LARAVEL_LOAD_HOST}" --port="${:LARAVEL_LOAD_PORT}  
  " --database="${:LARAVEL_LOAD_DATABASE}" < "${:LARAVEL_LOAD_PATH}"" failed.  
                                                                               
  Exit Code: 1(General error)                                                  
                                                                               
  Working directory: /var/www/app                                              
                                                                               
  Output:                                                                      
  ================                                                             
                                                                               
                                                                               
  Error Output:                                                                
  ================                                                             
  ERROR 2005 (HY000): Unknown MySQL server host '192.168.86.201:3307' (-2)  

 

Link to comment

@FreakLikeMe you're providing the MySQL port as part of the HOST variable: 192.168.86.201:3307. It should only be 192.168.86.201 and specify the port in a different var.

 

I now see that the var doesn't exist in the Unraid Template, I will fix that. Until then, you can add it by clicking `Add another Path, Port, Variable, Label or Device`, select Variable and put  `DB_PORT` in Name & Key and put 3307 in value.

  • Upvote 1
Link to comment
  • 2 weeks later...

Just before anything, did you install proper SSL certificates? Or do you get a SSL warning when you access InvoiceNinja?

 

1. Can you provide container logs via DM?

2. What are the steps to reproduce it? They work fine on my side.

3. I didn't set up e-mail, but laravel.logs(you can find it in storage mountpoint) and container logs after you try to send an e-mail would he useful.

4. I don't use a logo either, but i can try this only on Wednesday since I'm on the road right now

Link to comment
13 hours ago, Mihai said:

@Danuel  first of all, did you properly install SSL certificates? PDF would not work without. Mailing I did not test, but I know logo is not working, I'm working on a fix.
For the others, please DM me container logs and laravel.log logs(from storage) mount point.

 do i need other certificate other then the ones that they are already in the storage/certs ?

Link to comment

I personally use swag container which gets LeysEncrypt certificates and overwrites the ones in storage/certs, but if you use the ones self-generated you will have to import them in your browser, so the browser sees the connection as secure and you don't get the SSL error when you open the website. It is mentioned already here, please let me know if it's not clear enough: https://github.com/kiwimato/invoiceninja-v5-unraid#ssl-certificates

Link to comment
  • 4 weeks later...

Hey @Mihai I'm looking to install this docker but have a couple question before I give it a try.  I'm currently using MariaDB and Swag for my nextcloud docker. For those, I needed to follow some steps and videos to get them going. Since there isn't much info to follow for invoice ninja, I'm not sure If I fully understand what I'll need to do to get it to work properly.

  • Is there any listed steps that I can follow so that I can make sure I'm setting it up in the right way?
  • Do I need to create a database before installing the docker?
  • Is it required to use swag with this docker or can I use only locally?

 Thanks

Link to comment

@TekDRu I just wrote some installation information here: https://github.com/kiwimato/invoiceninja-v5-unraid/blob/main/Readme.md#installation

Please let me know if this is enough or not clear enough.

 

* Do I need to create a database before installing the docker?

Yes, I mentioned it in the docs too

 

* Is it required to use swag with this docker or can I use only locally?

You don't explicitly need to forward things through swag, I don't personally. I just copy over the certificates from swag to invoice ninja, and I just access it directly, not through swag.

Link to comment

Thanks for the quick response @Mihai. It must be because of my little experience with working with dockers. It's not that clear for exact steps to follow but seems like I'll just have to give it try and see what happen and come back if I run into any issues.

 

For now, these are the things that are not clear to me:

  • What folder from SWAG am I copying the certificates from?
  • The App URL, does that have to be a real working URL (since I want to access locally and not remotely)?
  • In the section about SSL, "import the certificate in your browser as a CA", How exactly do I do this?

The portion under SSL is not that clear to me: 

  • Is the portion from your instructions under SSL required if I'm accessing locally only?
  • What directory will I find the fullchain.pem file?
  • "Personally, I use SWAG, and I just copy over the certifcates daily by using User Scripts UnRAID plugin:"  Do I need to copy the certs daily as well and if so, why? At first, I wasn't sure how this would be scheduled, but after looking at the user scripts plugin , I saw the "Add new script" and the schedule options. So I get that part.
  • If I run into the memory limit issue, where exactly do I add in the Memery limit variable? is there a field already for this in the container settings? 

These questions are coming up because I haven't installed the docker container yet to see the options, but I just wanted to get a cleared understanding before I give it a try. And also if there any other items I need to setup before I begin.

 

Thanks again, I appreciate it.

Link to comment

@TekDRu

Quote

What folder from SWAG am I copying the certificates from?

In my case, it's: `/mnt/user/docker/appdata/swag/etc/letsencrypt/live/domain.com`, yours might be similar.

Quote

The App URL, does that have to be a real working URL (since I want to access locally and not remotely)?

Yes, unfortunately I did not manage to make it work any other way. It could work on IP, but I did not try it out.

You could get a wildcard certificate for example *.domain.com and then create invoiceninja.domain.com subdomain which points to your internal IP. Personally I use PiHole as DNS and simply override my domain to internal whenever I'm connected to the VPN, but I realize this might be a complicated setup.

Quote

In the section about SSL, "import the certificate in your browser as a CA", How exactly do I do this?

https://www.techrepublic.com/article/how-to-add-a-trusted-certificate-authority-certificate-to-chrome-and-firefox/

Quote

Is the portion from your instructions under SSL required if I'm accessing locally only?

Yes, as I mentioned in the Readme, I did not manage to make it work without SSL enabled. You will have all sorts of issues. If you find out how, please teach me.

Quote

What directory will I find the fullchain.pem file?

See first question answer, also the scrip at the end of this section gives an example where I find it in SWAG: https://github.com/kiwimato/invoiceninja-v5-unraid#ssl

Quote

Do I need to copy the certs daily as well and if so, why? At first, I wasn't sure how this would be scheduled, but after looking at the user scripts plugin , I saw the "Add new script" and the schedule options. So I get that part.

Depends, I think LetsEncrypt has 6 months max age of certs, so you could copy them weekly or even monthly. But i know other tools like Cloudflare give certificates which have 30 years of validity, so I guess you can only copy those once.

Quote

If I run into the memory limit issue, where exactly do I add in the Memery limit variable? is there a field already for this in the container settings? 

Good point, I just added MEMORY_LIMIT variable to the unraid template, maybe if you didn't already install it you might be able to see it there. If you don't, you can add it manually:

Right click, Edit container -> scroll to bottom -> Add another Path, Port, Variable, Label or Device -> Config Type -> Variable -> set Name and Key to MEMORY_LIMIT and value to 512M.

 

Let me know how it goes, also maybe it makes sense to move this discussion private just to avoid spamming people around here.

Of course if there are general issues we should still post here for visibility.

 

Cheers!

Link to comment

Also trying to get this up and running, however not having much luck:

 

2022-07-26T13:07:14Z [INFO] [Entrypoint]: Initialising Invoice Ninja...

   INFO  Configuration cached successfully.  


   INFO  Caching the framework bootstrap files.  

  config ........................................................ 30.85ms DONE
  routes ....................................................... 126.88ms DONE


   INFO  Preparing database.  

  Creating migration table ..................................... 126.88ms DONE

   INFO  Loading stored database schemas.  

  database/schema/mysql-schema.dump ............................ 244.94ms FAIL

In Process.php line 267:
                                                                               
  The command "mysql  --user="${:LARAVEL_LOAD_USER}" --password="${:LARAVEL_L  
  OAD_PASSWORD}" --host="${:LARAVEL_LOAD_HOST}" --port="${:LARAVEL_LOAD_PORT}  
  " --database="${:LARAVEL_LOAD_DATABASE}" < "${:LARAVEL_LOAD_PATH}"" failed.  
                                                                               
  Exit Code: 1(General error)                                                  
                                                                               
  Working directory: /var/www/app                                              
                                                                               
  Output:                                                                      
  ================                                                             
                                                                               
                                                                               
  Error Output:                                                                
  ================                                                             
  ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded: Error  
   loading shared library /usr/lib/mariadb/plugin/caching_sha2_password.so: N  
  o such file or directory                                                     
                                                                          

 

 

Recreated the MySQL DB and InvooiceNinja container a few times, but still running into this.
One thing that I am running slightly different is Custom VLAN - So each of my containers run on its OWN IP Address...

Maybe the VLAN is the issue here?

 

 

laravel.log:
 

[2022-07-26 13:07:22] production.INFO: account table not found  

 

Link to comment

I don't think the VLANs are the problem. What MariaDB image are you using? To me it sounds like it's expecting a different auth mechanism.

 

Just googled and it seems to be a user setting issue: https://stackoverflow.com/questions/49194719/authentication-plugin-caching-sha2-password-cannot-be-loaded

 

How did you create the user? If it's the default nowadays I can try to add that to the invoiceninja image, but in a few days because I'm on the road at the moment

  • Thanks 1
Link to comment
15 minutes ago, Mihai said:

I don't think the VLANs are the problem. What MariaDB image are you using? To me it sounds like it's expecting a different auth mechanism.

 

Just googled and it seems to be a user setting issue: https://stackoverflow.com/questions/49194719/authentication-plugin-caching-sha2-password-cannot-be-loaded

 

How did you create the user? If it's the default nowadays I can try to add that to the invoiceninja image, but in a few days because I'm on the road at the moment

Created a new MariaDB and it seems to be working now thank you.


I was using a MySQL DB, Official release as that is what the template states:
 

Quote

This container requires a separate MySQL running container and the credentials passed via DB_* variables below.

 

So maybe something wrong with connecting to MySQL?

Link to comment
  • 3 weeks later...
  • 2 weeks later...

I finally got invoiceninja-v5 to work with domain name via swag.  Now PDFs are finally working. It's working with desktop app as well.  The only part that I'm not sure yet if it's working or not is the email, but I don't need to email so it's not a problem for me.  See nginx config I used below.  Also attached is the screenshot of container settings.

 

I'm not sure about the MAIL_MAILER variable, so that could be my email issue.  I did change the default "Storage" label to "App Storage" and changed the default "Logo" label to "Public Storage" and used a path to a share instead of the path inside of appdata because I realized that this is the path that files, backups and pdfs are being saved/stored.

 

Hope this helps anyone who may still be having issues with invoice ninja.

 

 

server {
	listen 443 ssl;
	listen [::]:443 ssl;
	
	server_name ininja.*;

	include /config/nginx/ssl.conf;

	location / {
	    include /config/nginx/proxy.conf;
	    include /config/nginx/resolver.conf;
	    set $upstream_app invoiceninja-v5;
	    set $upstream_port 443;
	    set $upstream_proto https;
	    proxy_pass $upstream_proto://$upstream_app:$upstream_port;
	    proxy_max_temp_file_size 2048m;
	}
}

 

invoice-ninja.png

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.