#Server Environment Reference
#DEBUG
Default: undefined
Required: no
Type: string
Description:
Enable debug logs. We use the debug Npm package with scope meli*
. To enable logs, use DEBUG=meli*
.
#MELI_PORT
Default: 3001
Required: yes
Type: number
Description:
The port on which Meli is listening.
#MELI_URL
Default: undefined
Required: yes
Type: string
Description:
Public URL where Meli is served.
#MELI_URL_INTERNAL
Default: MELI_URL
Required: no
Type: string
Description:
Setting this variable only makes sense when Caddy is deployed as a standalone container. It sets the URL where the Meli API can be accessed internally. In local development, you would set this to http://host.docker.internal:3001
. In a production docker-compose.yml
, you would set it to something like http://api
if your API container is named api
.
#MELI_UI_URL
Default: MELI_URL
Required: no
Type: string
Description:
Public URL where the UI is served. Setting this variable makes sense when you are deploying the UI elsewhere than on MELI_URL
.
#MELI_UI_URL_INTERNAL
Default: MELI_URL
Required: no
Type: string
Description:
Setting this variable only makes sense when Caddy is deployed as a standalone container. It sets the URL where the Meli UI can be accessed internally. In local development, you would set this to http://host.docker.internal:3000
. In a production docker-compose.yml
, you would set it to something like http://ui
if your UI container is named ui
.
#MELI_SITES_URL
Default: MELI_URL
Required: no
Type: string
Description:
This is where your sites are served. Setting this variables allows you to serve your sites with a different domain than that used to access Meli.
#MELI_STANDALONE
Default: false
Required: no
Type: boolean
Description:
When enabled, Meli will not configure the UI and API in Caddy. This variables only makes sense when you are deploying all containers separately.
#MELI_UI_DIR
Default: undefined
Required: no
Type: string
Description:
When set, the UI will be served from this path. Otherwise, it is reverse-proxied to MELI_UI_URL_INTERNAL
.
#MELI_JWT_SECRET
Default: undefined
Required: yes
Type: string
Description:
Secret used to sign and verify JWT tokens. Can be generated with openssl rand -hex 32
.
#MELI_JWT_TOKEN_EXPIRATION
Default: 2592000000 (30 days)
Required: yes
Type: number
Description:
Expiration time (in ms) for JWT tokens.
#MELI_GITLAB_URL
Default: https://gitlab.com
Required: yes
Type: string
Description:
Your Gitlab URL.
#MELI_GITLAB_CLIENT_ID
Default: undefined
Required: yes
Type: string
Description:
Your Gitlab app Client ID.
#MELI_GITLAB_CLIENT_SECRET
Default: undefined
Required: yes
Type: string
Description:
Your Gitlab app Client Secret.
#MELI_GITEA_URL
Default: https://gitea.com
Required: yes
Type: string
Description:
Your Gitea URL.
#MELI_GITLAB_GROUPS
Default: undefined
Required: no
Type: array
Description:
Comma-separated list of Gitlab groups. Allows you to restrict login to only members of the given groups.
#MELI_GITEA_CLIENT_ID
Default: undefined
Required: yes
Type: string
Description:
Your Gitea app Client ID.
#MELI_GITEA_CLIENT_SECRET
Default: undefined
Required: yes
Type: string
Description:
Your Gitea app Client Secret.
#MELI_GITEA_ORGS
Default: undefined
Required: no
Type: array
Description:
Comma-separated list of Gitea organizations. Allows you to restrict login to only members of the given organizations.
#MELI_GITHUB_URL
Default: https://github.com
Required: yes
Type: string
Description:
Your Github URL.
#MELI_GITHUB_CLIENT_ID
Default: undefined
Required: yes
Type: string
Description:
Your Github app Client ID.
#MELI_GITHUB_CLIENT_SECRET
Default: undefined
Required: yes
Type: string
Description:
Your Github app Client Secret.
#MELI_GITHUB_ORGS
Default: undefined
Required: no
Type: array
Description:
Comma-separated list of Github organizations. Allows you to restrict login to only members of the given organizations.
#MELI_GOOGLE_CLIENT_ID
Default: undefined
Required: no
Type: string
Description:
Your Google app Client ID.
#MELI_GOOGLE_CLIENT_SECRET
Default: undefined
Required: no
Type: string
Description:
Your Google app Client Secret.
#MELI_MONGO_URI
Default: undefined
Required: yes
Type: string
Description:
URI of Mongo instance where Meli should store its data.
#MELI_MIGRATE_ROLLBACK
Default: false
Required: yes
Type: boolean
Description:
Forces the server to rollback the last migration, then exit. Use this when you're trying to downgrade.
#MELI_COOKIE_SAMESITE
Default: null
Required: yes
Type: string
Description:
Allows you to set the SameSite property for cookies defined by the server. Useful when your Meli server has a different host or URL than your UI.
#MELI_COOKIE_SECURE
Default: false
Required: yes
Type: boolean
Description:
Allows you to set the Secure property for cookies defined by the server. Some browsers, like Chrome, require it to be true
to use cookies for cross site requests (which implies you need a secure backend).
#MELI_RATE_LIMIT_WINDOW
Default: 60000
Required: yes
Type: number
Description:
Window size for rate limiting, in ms.
#MELI_RATE_LIMIT_MAX_PER_WINDOW
Default: 100
Required: yes
Type: number
Description:
Max number of requests allows in the rate limiting window.
#MELI_PROMETHEUS_HOST
Default: localhost
Required: no
Type: string
Description:
Host where the Prometheus server should listen.
#MELI_PROMETHEUS_PORT
Default: 3002
Required: yes
Type: number
Description:
Port where the Prometheus server should listen.
#MELI_PROMETHEUS_REFRESH_RATE
Default: 10000
Required: yes
Type: number
Description:
How often to refresh Prometheus metrics.
#MELI_PROMETHEUS_METRICS_PREFIX
Default: meliserver
Required: yes
Type: string
Description:
Prefix used for Prometheus metrics.
#MELI_REDIS_URL
Default: undefined
Required: no
Type: string
Description:
Redis URL for proxying websockets connections. This allows you to run multiple instance of the Meli API in parallel.
#MELI_HOOK_TIMEOUT
Default: 5000
Required: yes
Type: number
Description:
How much time hook requets should wait before failing.
#MELI_MAIL_HOST
Default: undefined
Required: no
Type: string
Description:
Mail host.
#MELI_MAIL_PORT
Default: undefined
Required: no
Type: number
Description:
Mail port.
#MELI_MAIL_USERNAME
Default: undefined
Required: no
Type: string
Description:
Mail username.
#MELI_MAIL_PASSWORD
Default: undefined
Required: no
Type: string
Description:
Mail password.
#MELI_MAIL_FROM
Default: undefined
Required: no
Type: string
Description:
Mail form. Some mail providers (like OVH) force this email to equal the mail username.
#MELI_MAIL_SUBJECT_PREFIX
Default: Meli |
Required: no
Type: string
Description:
Mail subject prefix.
#MELI_MAIL_TEMPLATE_DIR
Default: ./emails/templates
Required: no
Type: string
Description:
Directory where mail templates can be found.
#MELI_SENTRY_ENABLED
Default: true
Required: yes
Type: boolean
Description:
Whether to enabled Sentry.
#MELI_RESTRICTED_IPS
Default: none
Required: no
Type: array
Description:
Hook URLs are resolved and checked against these restriected IPs.
Partially implemented, not yet working.
#MELI_RESTRICTED_DOMAINS
Default: none
Required: no
Type: array
Description:
Partially implemented, not yet working.
#MELI_CADDY_DIR
Default: /sites
Required: no
Type: string
Description:
Directory where Caddy looks for sites.
#MELI_SITES_DIR
Default: /sites
Required: no
Type: string
Description:
Directory where Meli stores sites.
#MELI_CADDY_ADMIN_API_URL
Default: http://localhost:2019
Required: yes
Type: string
Description:
Admin API of Caddy. If Caddy runs in a standalone container, make sure to expose the admin API as it listens to localhost
by default.
#MELI_TMP_DIRECTORY
Default: /var/folders/ff/v59bv_992tz5yq0sg7gptp300000gn/T
Required: no
Type: string
Description:
Where uploaded files are stored before being processed.
#MELI_STATIC_DIR
Default: ./public
Required: no
Type: string
Description:
Where the Meli API serves static content. This is used to server generic pages such as a 404.html page.
#MELI_INVITE_EXPIRATION_TIME
Default: 86400000
Required: no
Type: number
Description:
Amount of time (in ms) before an invitation expires.
#MELI_ACME_SERVER
Default: undefined
Required: no
Type: string
Description:
The ACME server to use for obtaining SSL certificates. When this variable is not set, we use LetsEncrypt production environment. We recommend setting this variable to the LetsEncrypt staging environmenthttps://letsencrypt.org/docs/staging-environment/ when testing Meli. See here.
#MELI_ACME_CA_PATH
Default: undefined
Required: no
Type: string
Description:
Allows you to tell Meli to generate self-signed certificates. This is the path to the CA certificate to use.
#MELI_AXIOS_TIMEOUT
Default: 10000
Required: no
Type: number
Description:
Timeout for HTTP calls made with Axios.
#MELI_USER
Default: undefined
Required: no
Type: string
Description:
Username for in-memory authentication.
#MELI_PASSWORD
Default: undefined
Required: no
Type: string
Description:
Password for in-memory authentication.
#MELI_MAX_ORGS
Default: 1
Required: no
Type: number
Description:
Maximum number of organizations that can be created on this Meli instance. Setting this value to 0
will disable the limit.
#MELI_MULTER_LIMITS
Default: {}
Required: no
Type: JSON object
Description:
A stringified JSON object with Multer limits. For example:
MELI_MULTER_LIMITS={"fileSize":150000000}
#MELI_HTTPS_AUTO
Default: true
Required: no
Type: boolean
Description:
Controls whether Meli should handle SSL on its own. Disable this when deploying Meli behind a reverse proxy.