Quickstart Daemon Mode

Start jinjamator In Daemon Mode

To run jinjamator in daemon mode just run it with the -d option. This will start jinjamator with default settings listening on 127.0.0.1 port 5000.

jinjamator -d

Command Line Options

There are many options that can be passed via command line, environment variables or configuration files. All currently supported options can be viewed by running.

someone@somemachine:~$ jinjamator --help

usage: jinjamator [-h] [-c CONFIGURATION_FILE] [-o OUTPUT_PLUGIN] [-m MAPPING] [-t _TASKDIR] [--best-effort] [-v] [-V]
                [-g _GLOBAL_DEFAULTS] [-d] [--listen-address _DAEMON_LISTEN_ADDRESS]
                [--listen-port _DAEMON_LISTEN_PORT] [--no-worker] [--just-worker]
                [--celery-broker-url _CELERY_BROKER] [--celery-result-backend _CELERY_RESULT_BACKEND]
                [--celery-result-expires _CELERY_RESULT_EXPIRES] [--max-celery-worker _MAX_CELERY_WORKER]
                [--celery-beat-database _CELERY_BEAT_DATABASE] [--celery-beat-timezone _CELERY_BEAT_TIMEZONE]
                [--task-base-dir _GLOBAL_TASKS_BASE_DIRS]
                [--output-plugin-base-dir _GLOBAL_OUTPUT_PLUGINS_BASE_DIRS]
                [--content-plugin-base-dir _GLOBAL_CONTENT_PLUGINS_BASE_DIRS]
                [--environment-base-dir _GLOBAL_ENVIRONMENTS_BASE_DIRS]
                [--aaa-configuration-base-dir _AAA_CONFIGURATION_BASE_DIRS]
                [--aaa-database-uri _GLOBAL_AAA_DATABASE_URI] [--secret-key _SECRET-KEY]
                [--aaa-token-lifetime _AAA_TOKEN_LIFETIME] [--aaa-token-auto-renew_time _AAA_TOKEN_AUTO_RENEW_TIME]
                [--web-ui-class _WEB_UI_CLASS] [--uploads-folder _UPLOADS_FOLDER] [--enable-task-debugger]
                [--debugger-port-range _DEBUGGER_PORT_RANGE] [--keep-debug-logs _KEEP_DEBUG_LOGS]
                [--run-db-maintenance-at _RUN_DB_MAINTENANCE_AT] [--console-pretty-print]

Copyright 2024 Wilhelm Putz

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

USAGE

options:
-h, --help            show this help message and exit
-c CONFIGURATION_FILE, --configuration-file CONFIGURATION_FILE
                        config file path
-o OUTPUT_PLUGIN, --output-plugin OUTPUT_PLUGIN
                        selects the plugin which is used for futher data processing after tasklet template has been
                        rendered [default: None] (CLI only)
-m MAPPING, --mapping MAPPING
                        map data (strings,integer or json) to a variable, e.g. -m 'var_name:asdf' or -m
                        'var_name:{"key":"value"}' (CLI only)
-t _TASKDIR, --task-dir _TASKDIR
                        path to task directory or tasklet file which should be run (CLI only)
--best-effort         allow tasklets to fail (CLI only)
-v, --verbose         set verbosity level [default: ERROR]
-V, --version         show program's version number and exit
-g _GLOBAL_DEFAULTS, --global-defaults _GLOBAL_DEFAULTS
                        path to a global defaults.yaml [default: None]
-d, --daemonize       run in daemon mode
--listen-address _DAEMON_LISTEN_ADDRESS
                        on which ip should the daemon listen [default: 127.0.0.1] [env var:
                        JINJAMATOR_DAEMON_LISTEN_ADDRESS]
--listen-port _DAEMON_LISTEN_PORT
                        on which TCP port should the daemon listen [default: 5000] [env var:
                        JINJAMATOR_DAEMON_LISTEN_PORT]
--no-worker           do not spawn local celery worker [env var: JINJAMATOR_DAEMON_NO_WORKER]
--just-worker         spawn worker only [env var: JINJAMATOR_DAEMON_JUST_WORKER]
--celery-broker-url _CELERY_BROKER
                        celery broker URL (required for daemon mode) [default: filesystem://] [env var:
                        JINJAMATOR_DAEMON_CELERY_BROKER_URL]
--celery-result-backend _CELERY_RESULT_BACKEND
                        celery result backend URL (required for daemon mode) [default:
                        sqlite:////home/putzw/.jinjamator/jinjamator-results.db] [env var:
                        JINJAMATOR_DAEMON_CELERY_RESULT_BACKEND_URL]
--celery-result-expires _CELERY_RESULT_EXPIRES
                        lifetime of results in the database [default: keep results forever] [env var:
                        JINJAMATOR_DAEMON_CELERY_RESULT_EXPIRES]
--max-celery-worker _MAX_CELERY_WORKER
                        maximum workers to fork [default: 2] [env var: JINJAMATOR_MAX_CELERY_WORKER]
--celery-beat-database _CELERY_BEAT_DATABASE
                        celery result beat Database (required for daemon mode) [default:
                        /home/putzw/.jinjamator/jinjamator-beat.db] [env var: JINJAMATOR_DAEMON_CELERY_BEAT_DB_PATH]
--celery-beat-timezone _CELERY_BEAT_TIMEZONE
                        Timezone celery beat should use [default: UTC] [env var: JINJAMATOR_CELERY_BEAT_TZ]
--task-base-dir _GLOBAL_TASKS_BASE_DIRS
                        where should jinjamator look for tasks in daemon mode [default:
                        ['/home/putzw/.jinjamator/tasks',
                        '/home/putzw/.local/pipx/venvs/jinjamator/lib/python3.11/site-packages/jinjamator/tasks']]
                        [env var: JINJAMATOR_DAEMON_TASK_BASE_DIRECTORIES]
--output-plugin-base-dir _GLOBAL_OUTPUT_PLUGINS_BASE_DIRS
                        where should jinjamator look for output plugins [default:
                        ['/home/putzw/.local/pipx/venvs/jinjamator/lib/python3.11/site-
                        packages/jinjamator/plugins/output']] [env var:
                        JINJAMATOR_DAEMON_OUTPUT_PLUGINS_BASE_DIRECTORIES]
--content-plugin-base-dir _GLOBAL_CONTENT_PLUGINS_BASE_DIRS
                        where should jinjamator look for content plugins [default:
                        ['/home/putzw/.local/pipx/venvs/jinjamator/lib/python3.11/site-
                        packages/jinjamator/plugins/content']] [env var:
                        JINJAMATOR_DAEMON_CONTENT_PLUGINS_BASE_DIRECTORIES]
--environment-base-dir _GLOBAL_ENVIRONMENTS_BASE_DIRS
                        where should jinjamator look for environments [default:
                        ['/home/putzw/.jinjamator/environments']] [env var:
                        JINJAMATOR_DAEMON_ENVIRONMENTS_BASE_DIRECTORIES]
--aaa-configuration-base-dir _AAA_CONFIGURATION_BASE_DIRS
                        where should jinjamator look for aaa configuration files [default:
                        ['/home/putzw/.jinjamator/aaa']] [env var: JINJAMATOR_DAEMON_AAA_BASE_DIRECTORIES]
--aaa-database-uri _GLOBAL_AAA_DATABASE_URI
                        celery result backend URL (required for daemon mode) [default:
                        sqlite:////home/putzw/.jinjamator/aaa/jinjamator-aaa.db] [env var:
                        JINJAMATOR_DAEMON_AAA_DATABASE_URL]
--secret-key _SECRET-KEY
                        FLASK application secret key, which is used for token generation (required for daemon mode)
                        [default: autogenerated] [env var: JINJAMATOR_DAEMON_SECRET_KEY]
--aaa-token-lifetime _AAA_TOKEN_LIFETIME
                        API JWT token lifetime [default: 600] [env var: JINJAMATOR_AAA_TOKEN_LIFETIME]
--aaa-token-auto-renew_time _AAA_TOKEN_AUTO_RENEW_TIME
                        Renew API JWT token automatically if token lifetime is below this. Set to 0 to disable auto
                        renew [default: 300] [env var: JINJAMATOR_AAA_TOKEN_AUTO_RENEW_TIME]
--web-ui-class _WEB_UI_CLASS
                        classpath to web UI [default: jinjamator.daemon.webui] [env var: JINJAMATOR_WEB_UI_CLASS]
--uploads-folder _UPLOADS_FOLDER
                        Target Folder for via api uploaded files [default: /tmp/uploads] [env var:
                        JINJAMATOR_UPLOADS_FOLDER]
--enable-task-debugger
                        Enables webpdb for tasks. CLI Tasks will break on __run__. Daemon tasks can be run with the
                        debug flag [env var: JINJAMATOR_ENABLE_DEBUGGER]
--debugger-port-range _DEBUGGER_PORT_RANGE
                        If the task debugger is enabled the a port within this port range will be used [env var:
                        JINJAMATOR_DEBUGGER_PORTS]
--keep-debug-logs _KEEP_DEBUG_LOGS
                        Days to keep the debug logs of each task run. Use <=0 to disable [default: 30] [env var:
                        JINJAMATOR_KEEP_DEBUG_LOGS]
--run-db-maintenance-at _RUN_DB_MAINTENANCE_AT
                        Specify when to run DB maintenance in crontab syntax (<minute> <hour> <day_of_week>
                        <day_of_month> <month_of_year>) [default: 30 3 * * *] which means daily at 03:30. [env var:
                        JINJAMATOR_RUN_DB_MAINTENANCE_AT]
--console-pretty-print
                        use pprint instead of print

Args that start with '--' can also be set in a config file (~/.jinjamator/conf.d/*.yaml or specified via -c). Config
file syntax allows: key=value, flag=true, stuff=[a,b,c] (for details, see syntax at https://goo.gl/R74nmi). In
general, command-line values override environment variables which override config file values which override defaults.

The Jinjamator Home Directory

Jinjamator’s default home directory is located at ~/.jinjamator. This directory contains all data related to the daemon mode, including:

  • Local tasks

  • Logs

  • Environments

  • Log Database

  • AAA Database

For backup purposes, it is sufficient to backup the entire ~/.jinjamator directory.