# Flask This bundle can deploy one or more Flask applications per node. ```python 'flask': { 'myapp': { 'app_module': "myapp", 'apt_dependencies': [ "libffi-dev", "libssl-dev", ], 'env': { 'APP_SECRETS': "/opt/client_secrets.json", }, 'json_config': { 'this json': 'is_visible', 'inside': 'your template.cfg', }, 'git_url': "ssh://git@bitbucket.apps.seibert-media.net:7999/smedia/myapp.git", 'git_branch': "master", 'deployment_triggers': ["action:do-a-thing"], }, }, ``` The git repo containing the application has to obey some conventions: * requirements-frozen.txt (preferred) or requirements.txt * minimal setup.py to allow for installation with pip The `app` instance has to exists in the module defined by `app_module`. It is also very advisable to enable logging in your app (otherwise HTTP 500s won't be logged): ```python import logging if not app.debug: stream_handler = logging.StreamHandler() stream_handler.setLevel(logging.INFO) app.logger.addHandler(stream_handler) ``` If you specify `json_config`, then `/opt/${app}/config.json` will be created. The environment variable `$APP_CONFIG` will point to the exact name. You can use it in your app to load your config: ```python app.config.from_json(environ['APP_CONFIG']) ``` If `json_config` is *not* specified, you *can* put a static file in `data/flask/files/cfg/$app_name`.