<commit_before>How to...

**General questions**
- [Update existing jsreport server to the latest version](#update-server)    
- [Migrate templates from the test to the production server](#migrate-templates)    
- [Run jsreport on different port](#port-config)
- [Increase performance](#performance)    
- [Windows path too long 256 characters limitation](#windows-path-too-long)    
- [How to apply license key](#how-to-apply-license-key)    

**Phantom pdf recipe**
- [National characters are not displayed properly](#national-characters)    
- [Highcharts are not printed into pdf properly](#highcharts)    


### <a name="update-server"></a>Update existing jsreport server to the latest version

```bash
# install helpful tool to check the latest versions
npm install -g npm-check-updates
# check the latest versions of jsreport and additional extensions
ncu
# update package.json
ncu -u
# install the latest versions
npm install
```
<commit_msg>add deploy to production<commit_after>How to...

**General questions**
- [Update existing jsreport server to the latest version](#update-server)    
- [Deploy to production](#deploy-to-production)
- [Migrate templates from the test to the production server](#migrate-templates)    
- [Run jsreport on different port](#port-config)
- [Increase performance](#performance)    
- [Windows path too long 256 characters limitation](#windows-path-too-long)    
- [How to apply license key](#how-to-apply-license-key)    

**Phantom pdf recipe**
- [National characters are not displayed properly](#national-characters)    
- [Highcharts are not printed into pdf properly](#highcharts)    


### <a name="update-server"></a>Update existing jsreport server to the latest version

```bash
# install helpful tool to check the latest versions
npm install -g npm-check-updates
# check the latest versions of jsreport and additional extensions
ncu
# update package.json
ncu -u
# install the latest versions
npm install
```

### <a name="deploy-to-production"></a>Deploy to production

The simplest way to deploy local instance to the production is to compress the whole application folder, upload it to the server and decompress. You can even simply attach the `node` executable to the compressed package if you don't have `node.js` installed on the production server.  Such package should be able to run without other dependencies installed. This approach should work as long as you have the same OS architecture on the local and the production.

The other options are to run install through `npm` on the production server and then just copy the templates.

The most complex and powerful approach is to set up an image through `docker` for example.

{'fraction_non_alphanumeric': 0.08867362146050671, 'fraction_numerical': 0.0022354694485842027, 'mean_word_length': 4.479591836734694, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1005978', 'n_tokens_mistral': 721, 'n_tokens_neox': 665, 'n_words': 317}