118 lines
3.2 KiB
Python
118 lines
3.2 KiB
Python
defaults = {
|
|
'apt': {
|
|
'packages': {
|
|
# for paperless itself
|
|
'fonts-liberation': {},
|
|
'gnupg': {},
|
|
'imagemagick': {},
|
|
'libmagic-dev': {},
|
|
'default-libmysqlclient-dev': {},
|
|
'libpq-dev': {},
|
|
'mariadb-client': {},
|
|
'mime-support': {},
|
|
'optipng': {},
|
|
'poppler-utils': {},
|
|
'python3-wheel': {},
|
|
|
|
# for OCRmyPDF
|
|
'ghostscript': {},
|
|
'icc-profiles-free': {},
|
|
'liblept5': {},
|
|
'libxml2': {},
|
|
'pngquant': {},
|
|
'qpdf': {},
|
|
'tesseract-ocr': {},
|
|
'tesseract-ocr-deu': {},
|
|
'tesseract-ocr-eng': {},
|
|
'unpaper': {},
|
|
'zlib1g': {},
|
|
},
|
|
},
|
|
'backups': {
|
|
'paths': {
|
|
'/mnt/paperless',
|
|
},
|
|
},
|
|
'nodejs': {
|
|
'version': 22,
|
|
},
|
|
'postgresql': {
|
|
'roles': {
|
|
'paperless': {
|
|
'password': repo.vault.password_for(f'{node.name} postgresql paperless'),
|
|
},
|
|
},
|
|
'databases': {
|
|
'paperless': {
|
|
'owner': 'paperless',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
@metadata_reactor.provides(
|
|
'apt/packages',
|
|
)
|
|
def paperless_tesseract_languages(metadata):
|
|
packages = {}
|
|
|
|
for lang in metadata.get('paperless/ocr_languages', {'deu', 'eng'}):
|
|
packages[f'tesseract-ocr-{lang}'] = {}
|
|
|
|
return {
|
|
'apt': {
|
|
'packages': packages,
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'icinga2_api/paperless/services',
|
|
)
|
|
def icinga_check_for_new_release(metadata):
|
|
return {
|
|
'icinga2_api': {
|
|
'paperless': {
|
|
'services': {
|
|
'PAPERLESS UPDATE': {
|
|
'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_github_for_new_release paperless-ngx/paperless-ngx {}'.format(metadata.get('paperless/version')),
|
|
'vars.notification.mail': True,
|
|
'check_interval': '60m',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'nginx/vhosts/paperless',
|
|
)
|
|
def nginx(metadata):
|
|
if not node.has_bundle('nginx'):
|
|
raise DoNotRunAgain
|
|
|
|
return {
|
|
'nginx': {
|
|
'vhosts': {
|
|
'paperless': {
|
|
'domain': metadata.get('paperless/domain'),
|
|
'locations': {
|
|
'/': {
|
|
'target': 'http://127.0.0.1:22070',
|
|
'websockets': True,
|
|
'proxy_set_header': {
|
|
'X-Forwarded-Host': '$server_name',
|
|
},
|
|
},
|
|
'/static/': {
|
|
'alias': '/opt/paperless/src/paperless-ngx/static/',
|
|
},
|
|
},
|
|
'max_body_size': '100M',
|
|
'website_check_path': '/accounts/login/',
|
|
'website_check_string': 'Paperless-ngx',
|
|
},
|
|
},
|
|
},
|
|
}
|