This PR adds support for generating a self-signed CA and then using that CA to generate TLS certificates. A new tool `duplicati-configure` / `Duplicati.CommandLine.ConfigureTool.exe` is added to manage the certificates. The tool saves the configuration in the database and is meant to run with elevated privileges for the initial CA installation. The option `--configure-https` can be added to server/trayicon, and if the process has permissions, this will automatically install the CA certificate. If a CA is configured, the server will automatically issue, renew and use a TLS certificate. With this setup, the TLS is opt-in, but once the flow is well tested, we can switch it to opt-out.
Update style sheets
We use Less CSS as a CSS preprocessor and its minify plugin along with it. We also use Stylelint with a plugin for Less (stylelint-config-standard-less).
Before proceeding, please make sure that npm is installed on your computer and available on your PATH. For install instruction, check the official documentation.
Then, run npm install --prefix ../../ on the current directory to install the packages.
To use Stylelint and compile the Less files, run the commands below:
npx stylelint "**/less/*.less"
npx lessc webroot/ngax/less/dark.less webroot/ngax/styles/dark.css --clean-css -m=always
npx lessc webroot/ngax/less/default.less webroot/ngax/styles/default.css --clean-css -m=always
Add --fix option to have Stylelint fix the errors which the linter can fix by itself.
Alternatively, it is possible to run those commands with npm run-script. See package.json on the root directory for available scripts.
Note: there are warnings about math=always on running lessc, but to fix those all divisions in .less need to be wrapped in parentheses.