Invoiceplane: Difference between revisions

From NixOS Wiki
imported>Onny
mNo edit summary
imported>Onny
Add information on setting up cron task
Line 49: Line 49:


Invoices can be send directly while editing them. It is also possible to create a common mail template which can be reused. Go to ''Settings → Mail templates''. To configure a default mail template, go to ''Settings → System settings → Invoices''.
Invoices can be send directly while editing them. It is also possible to create a common mail template which can be reused. Go to ''Settings → Mail templates''. To configure a default mail template, go to ''Settings → System settings → Invoices''.
=== Recurring invoices ===
{{Note|Parts of this instruction and module are not yet stable and will be available in the upcoming NixOS 22.11 release.}}
See [https://wiki.invoiceplane.com/en/1.5/modules/recurring-invoices upstream documentation] on how to configure recurring. invoices. This feature requires a cron task setup which queries the Invoiceplane backend every few minutes. This can be configured with the Invoiceplane module as follows
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
services.invoiceplane.sites."localhost" = {
  cron.enable = true;
  cron.key = "1234";
};
</nowiki>}}
Replace the cron key value with the one given in the Invoiceplane administration web interface.


[[Category:Web Applications]]
[[Category:Web Applications]]

Revision as of 19:30, 7 November 2022

Invoiceplane is a web application for managing invoices, clients and payments.

Installation

To setup Invoiceplane locally, this is the most minimal configuration to get started

/etc/nixos/configuration.nix
services.invoiceplane.sites."localhost".enable = true;

After that Invoiceplane will be available at http://localhost . Complete the setup by choosing your default language and setting up your user profile.

Configuration

Invoice templates

Invoiceplane will render and export invoices as PDF. You can create your own invoice templates or reuse existing ones. The following example fetches an invoice template and makes it available to your running Invoiceplane instance

/etc/nixos/configuration.nix
{ config, pkgs, lib, ... }:
let

  template-vtdirektmarketing = pkgs.stdenv.mkDerivation {
    name = "vtdirektmarketing";
    src = pkgs.fetchgit {
      url = "https://git.project-insanity.org/onny/invoiceplane-vtdirektmarketing.git";
      sha256 = "1hh0q7wzsh8v8x03i82p6qrgbxr4v5fb05xylyrpp975l8axyg2z";
    };
    sourceRoot = ".";
    installPhase = ''
      mkdir -p $out
      cp invoiceplane-vtdirektmarketing/vtdirektmarketing.php $out/
    '';
  };

in {

    services.invoiceplane.sites."localhost" = {
      enable = true;
      invoiceTemplates = [ template-vtdirektmarketing ];
    };

}

Invoice mail delivery

There are several methods to automatically deliver invoices via mail. First we have to configure which mail backend to use. One method which is confirmed to work on NixOS is to use sendmail. Using a configured program like Msmtp to relay mails from your server using your existing mail provider. Unfortunately it is not yet possible to configure the mail backend with extraSettings. In this case navigate in the web interface to: Settings → System settings → E-Mail and set mail delivery method to Sendmail.

Invoices can be send directly while editing them. It is also possible to create a common mail template which can be reused. Go to Settings → Mail templates. To configure a default mail template, go to Settings → System settings → Invoices.

Recurring invoices

Note: Parts of this instruction and module are not yet stable and will be available in the upcoming NixOS 22.11 release.

See upstream documentation on how to configure recurring. invoices. This feature requires a cron task setup which queries the Invoiceplane backend every few minutes. This can be configured with the Invoiceplane module as follows

/etc/nixos/configuration.nix
services.invoiceplane.sites."localhost" = {
  cron.enable = true;
  cron.key = "1234";
};

Replace the cron key value with the one given in the Invoiceplane administration web interface.