Type object
File match monade.yaml monade.yml .monade.yaml .monade.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/monade-cli-stack-configuration/latest.json
Source https://www.schemastore.org/monade-stack-config.json

Validate with Lintel

npx @lintel/lintel check
Type: object

The configuration file to get a local stack up and running with Monade CLI

Properties

name string required

The name of the stack. It will be used as a prefix for the stack's resources

services Record<string, object> required

The services to be run in the stack. Each service is represented by its name, which is the key

nginx string

Specifies whether to use the system-wide nginx service or spawn a local nginx process among other services. If not specified, 'system' is implied. Local nginx requires an nginx binary in the path. System wide nginx configuration is left to the user.

Default: "system"
Values: "system" "local"
One of: const: "system" const: "system", const: "local" const: "local"
on_stop string

A command to be run when the stack is stopped. The command will be run in a shell, so you can use shell features like pipes and redirects.

Examples: "docker-compose -f docker-compose.override.yml down", "echo 'Stack stopped' >> ~/stack.log"
bastion object

The bastion configuration for the stack. Use this to quick connect to the bastion host of the stack with monade bastion

3 nested properties
host string required

The bastion host to connect to. Can be an ip address or a domain

Examples: "bastion.app.monadeapps.xyz", "10.34.159.55"
format=hostname
user string required

The user to connect to the bastion host

Examples: "ubuntu"
key_path string required

The path to the private key to use to connect to the bastion host. Please note that the key should be store in a directory outside the stack directory, to avoid being included in the stack repository

Examples: "~/.config/monade/stack_name/bastion_key.pem"
additionalProperties

Definitions

ProcConfig object
command string required

The command to be run to start the service. If the command has spaces it must be double quoted

cwd string

The working directory for the command. This directory will be cd'd into before running the command

env string[]

A list of environment variables to be set for the command. Each item in the list should be a string in the form of KEY=VALUE. These variables take precedence over variables set in env_file and env_files. All values are treated as literal strings

Examples: "FOO=bar", "BAZ=qux"
uniqueItems=true
env_file string

If set all environment variables in the file will be set for the command. The file should be in the format of KEY=VALUE with each key-value pair on a new line. All values are treated as literal strings

env_files string[]

A list of files from which environment variables will be set for the command. Each file should be in the format of KEY=VALUE with each key-value pair on a new line. All values are treated as literal strings. If the same variable is set in multiple files, the last file in the list will take precedence. These files takes precedence over env_file but are overridden by env variables

Examples: ".env", ".env.local"
uniqueItems=true
domains string[]

A list of domains to be proxied to the service. Each item in the list must be a string. In our local stacks domains should use the test tld

Examples: "frontend.test", "api.test"
uniqueItems=true
port integer

This is the port the proxy will use to forward requests to the service. It must be unique for each service in the stack. Please note that the process should be configured to run on this port, and concurrent stacks could interfere one with another.The port must be set along with domains for the service to be proxied

min=0max=65535
proxy_https boolean

If set to true, the proxy will forward requests to the service using HTTPS. The service must be configured to accept HTTPS requests. Setting this has no effect on the proxy external connections, that are always https

Default: false
autostart boolean

If set to true, the service will be started when the stack is started. If set to false, the service will not be started automatically when the stack is started.

Default: false
stop_sequence string

The key sequence to be used by the stack runner to stop the service. For docker services use 'C-c'. If not set a SIGTERM will be sent. The sequence must be a combination of keys, emacs-style, for example for ctrl+c use 'C-c'. Do not specify SIGTERM or SIGKILL

Examples: "C-c", "C-d"
nginx_server_options Record<string, string>

A list of options to be set for the server block in the nginx configuration for this process. Here should be nginx general configurations. This is a map, the key is the name of the directive, the value is the argument

Examples: "client_max_body_size", "keepalive_timeout"
nginx_location_options Record<string, string>

A list of options to be set for the location block in the nginx configuration for this process. Here should be proxy-related configurations. This is a map, the key is the name of the directive, the value is the argument

Examples: "proxy_set_header"