dyrector.io
  • Welcome 👋
  • Basics
    • Who is it for?
    • How it works
    • Components
    • Use cases
    • API
  • Tutorials
    • Getting started
    • Add your Node
    • Add your Registry
      • Add V2 Registry
      • Add Docker Hub Registry
      • Add GitHub Registry
      • Add GitLab Registry
      • Add Google Registry
      • Add Unchecked Registry
    • Create your Project
      • Create a versionless project
      • Create a versioned project
        • Create a Rolling Version
        • Create an Incremental Version
        • Add a version to your Versioned Project
    • Deploy your Project
    • Create Chat Notifications
    • Inject Files to a Container
  • Features
    • Core functionality
    • Templates
      • Vaultwarden
      • Strapi
      • Cal.com
      • WordPress
      • Minecraft Server
      • Google Microservices Demo
      • Self-managed GitLab
      • MLflow
      • Gitea
      • LinkAce
    • Continuous Deployment
    • Configuration management
      • Container configuration
      • Configuration bundle
    • Monitoring
    • Audit log
    • Storage
  • Self-managed
    • Quick start
    • CLI
    • Proxies
    • Environment variables
    • Self-signed certificates
  • Learn more
    • Changelog
    • Quality Assurance (QA)
    • Roadmap
      • Features in progress
      • Integrations in progress
    • Pricing
    • FAQ
      • Portainer vs. dyrector.io
    • Community
Powered by GitBook
On this page
  • dyrectorio/.env.example
  • dyrectorio/web/crux/.env.example
  • dyrectorio/web/crux-ui/.env.example
  • dyrectorio/golang/cmd/crane.env.example
  • dyrectorio/golang/cmd/dagent.env.example
Edit on GitHub
Export as PDF
  1. Self-managed

Environment variables

Last updated 7 months ago

dyrectorio/.env.example

dyrectorio/web/crux/.env.example

dyrectorio/web/crux-ui/.env.example

dyrectorio/golang/cmd/crane.env.example

dyrectorio/golang/cmd/dagent.env.example

https://github.com/dyrector-io/dyrectorio/blob/main/web/crux/.env.example
NODE_ENV=development

# # Development configurations

# Kratos public API
KRATOS_URL=http://localhost:8000/kratos
# Kratos admin API
# This should never be exposed
KRATOS_ADMIN_URL=http://localhost:4434
DATABASE_URL="postgresql://username:password@localhost:5432/crux?schema=public"
CRUX_UI_URL=http://localhost:8000


CRUX_POSTGRES_PASSWORD="Random_Generated_String"

# # Port settings

# Agent gRPC API port
GRPC_AGENT_PORT=5000
# RestAPI port
HTTP_API_PORT=1848
# Prometheus metrics port
METRICS_API_PORT=1956

# Podman has different alias host.containers.local:5000
CRUX_AGENT_ADDRESS=localhost:5000

# Signing secret for the generated JWTs
JWT_SECRET=jwt-secret-token

# Secret key for encrypting stored credentials
# Can be generated using the CLI
# Example: docker run --rm ghcr.io/dyrector-io/dyrectorio/cli/dyo:latest generate crux encryption-key
ENCRYPTION_SECRET_KEY=

# The old encryption key used to decrypt existing secrets while rotating keys
# ENCRYPTION_DEPRECATED_KEY=

# The Docker image tag in the node install script
# Uncomment to use a different agent version
# Defaults to the version of dyrector.io
# CRUX_AGENT_IMAGE=latest

# Uncomment to prevent the install script from
# overwriting your locally built agent image
# AGENT_INSTALL_SCRIPT_DISABLE_PULL=true

# Possible values: trace, debug, info, warn, error, and fatal
# The settings above come in a hierarchic order
# Example: error contains fatal
LOG_LEVEL=debug

# # Email service config
# SMTP URL for the mailslurper
SMTP_URI=smtps://test:test@localhost:1025/?skip_ssl_verify=true&legacy_ssl=true
# E-mail address for dyrector.io invitation links, password resets and others
FROM_EMAIL=from@example.com
# E-mail sender name for dyrector.io invitation links, password resets and others
FROM_NAME=dyrector.io

# Google ReCAPTCHA config
DISABLE_RECAPTCHA=true
# Required only when ReCAPTCHA is enabled
RECAPTCHA_SECRET_KEY=<recaptcha_secret_key>

# Determines the maximum quantity of lines returned from a container
MAX_CONTAINER_LOG_TAKE=1000

# Determines how much time an agent callback has to execute
AGENT_CALLBACK_TIMEOUT=5000

# Maximum accepted message size sent by the agent in bytes
# defaults to 4 Megabytes
# MAX_GRPC_RECEIVE_MESSAGE_LENGTH=4194304

# GRPC Timeout values and their respective defaults
# GRPC_KEEPALIVE_TIMEOUT_MS=5000
# GRPC_KEEPALIVE_TIME_MS=30000
# HTTP2_MINPINGINTERVAL_MS=30000
# HTTP2_MINTIMEBETWEENPINGS_MS=10000

# For overriding the node DNS result order
# regardless of the NODE_ENV value
# It may be necessary for running the e2e tests,
# because node resolves localhost to IPv6 by default
# DNS_DEFAULT_RESULT_ORDER=ipv4first

# To turn off quality assurance telemetry
# defaults to false
# more info: https://docs.dyrector.io/learn-more/quality-assurance-qa
# QA_OPT_OUT=true

# For providing a group identifier codename for the collected usage data
# QA_GROUP_NAME=
https://github.com/dyrector-io/dyrectorio/blob/develop/golang/cmd/crane/.env.example
# Generic config options
# filled with defaults where it's applicable
DEFAULT_LIMITS_CPU=100m
DEFAULT_LIMITS_MEMORY=128Mi
DEFAULT_REQUESTS_CPU=50m
DEFAULT_REQUESTS_MEMORY=64Mi
DEFAULT_VOLUME_SIZE=1G
# GRPC_TOKEN=
IMPORT_CONTAINER_IMAGE=rclone/rclone:1.57.0
INGRESS_ROOT_DOMAIN=
READ_HEADER_TIMEOUT=15s
DEBUG=true
DEBUG_UPDATE_ALWAYS=false
DEBUG_UPDATE_USE_CONTAINERS=true
DEFAULT_REGISTRY=index.docker.io

# Crane specific options
# Put 'true' to use in-cluster auth
CRANE_IN_CLUSTER=false
# The duration amount that for a kubernetes API request to complete
DEFAULT_KUBE_TIMEOUT=2m
# Field manager name
FIELD_MANAGER_NAME=crane-dyrector-io
# Use 'Force: true' while deploying
FORCE_ON_CONFLICTS=true
# The key/label name for audit purposes
KEY_ISSUER=co.dyrector.io/issuer
# The "kubectl" configuration location
KUBECONFIG=
# Timeouts used in tests, no effect on deployment
TEST_TIMEOUT=15s
# For injecting SecretPrivateKey
SECRET_NAME=dyrectorio-secret
SECRET_NAMESPACE=dyrectorio
https://github.com/dyrector-io/dyrectorio/blob/develop/golang/cmd/dagent/.env.example
# Generic config options
# filled with defaults where it's applicable
DEFAULT_LIMITS_CPU=100m
DEFAULT_LIMITS_MEMORY=128Mi
DEFAULT_REQUESTS_CPU=50m
DEFAULT_REQUESTS_MEMORY=64Mi
DEFAULT_VOLUME_SIZE=1G
# GRPC_TOKEN=jwt
IMPORT_CONTAINER_IMAGE=rclone/rclone:1.57.0
INGRESS_ROOT_DOMAIN=
READ_HEADER_TIMEOUT=15s
DEBUG=true
DEBUG_UPDATE_ALWAYS=false
DEBUG_UPDATE_USE_CONTAINERS=true

# DAgent specific options
AGENT_CONTAINER_NAME=dagent
DAGENT_IMAGE=ghcr.io/dyrector-io/dyrectorio/dagent
DAGENT_NAME=dagent-go
DAGENT_TAG=latest
# This should match the mount path that is
# the root of configurations and containers
DATA_MOUNT_PATH=/srv/dagent
DEFAULT_TAG=latest
DEFAULT_TIMEOUT=5s
GRPC_KEEPALIVE=60s
# Path of 'docker.sock' or other local/remote
# address where we can communicate with docker
HOST_DOCKER_SOCK_PATH=/var/run/docker.sock
# Containers mount path default
INTERNAL_MOUNT_PATH=/srv/dagent
# Loglines to skip if not defined on the request
LOG_DEFAULT_SKIP=0
# Loglines to take
LOG_DEFAULT_TAKE=100
MIN_DOCKER_VERSION=20.10
# E-mail address to use for dynamic certificate requests
TRAEFIK_ACME_MAIL=
TRAEFIK_ENABLED=false
# Loglevel for Traefik
# Set to "DEBUG" to access Traefik dashboard
TRAEFIK_LOG_LEVEL=
# Whether to enable Traefik TLS or not
TRAEFIK_TLS=false
DEFAULT_REGISTRY=index.docker.io
# Token used by the webhook to trigger the update
WEBHOOK_TOKEN=
https://github.com/dyrector-io/dyrectorio/blob/main/.env.example
# This composition of compose files reflects the old one
COMPOSE_FILE=docker-compose.yaml:distribution/compose/docker-compose.traefik.yaml:distribution/compose/docker-compose.traefik-labels.yaml:distribution/compose/docker-compose.mail-test.yaml
# # Docker settings

# Traefik requires this file to be able to route the requests to the containers
DOCKER_SOCKET=/var/run/docker.sock

# # General

# Tag for images. It's stable by default
DYO_VERSION=stable
# Required for Traefik's certification resolution
# It should be your domain where dyrector.io will be available
DOMAIN=example.com
# Your server's timezone
TIMEZONE=UTC
# Required for Traefik's certification resolution
# If there's an issue with the certificate, or when it expires,
# letsencrypt will send a notification to this e-mail address
ACME_EMAIL=user@example.com
# NodeJS services can run in two modes: production and development
# These are the two values this key can have
NODE_ENV=production

# # Crux service settings

# You can specify how thorough logging will be
# Options: verbose, debug, info, warning, error
# The settings come in a hierarchic order, meaning that in the order above they contain each other
# Example: 'warning' contains 'error'
LOG_LEVEL=debug

# Secret key for encrypting stored credentials
# Can be generated using the CLI
# Example: docker run --rm ghcr.io/dyrector-io/dyrectorio/cli/dyo:latest generate crux encryption-key
ENCRYPTION_SECRET_KEY=Random_Generate_Key

# # Database passwords

# This value is the password to crux's database
CRUX_POSTGRES_PASSWORD=Random_Generated_String
# This value is the password to Kratos' database
KRATOS_POSTGRES_PASSWORD=Random_Generated_String
# This value is the password to root user
POSTGRES_ROOT_PASSWORD=Random_Generated_String

# # External URL of the site https://example.com(:port if not 443)

# This setting is to define where your
# self-managed dyrector.io will be available
EXTERNAL_PROTO=https

# # Cookie/JWT secrets

# Secret to sign JWTs.
CRUX_SECRET=Random_Generated_String
# Secret to sign Kratos cookies
# More details in Ory/Kratos documentation:
# https://www.ory.sh/docs/kratos/reference/configuration
KRATOS_SECRET=Random_Generated_String

# # Mailserver settings

# The connection string for the mail server
# The protocol can be SMTP or SMTPS
# Example: protocol://smtp_user:smtp_password@mailserver_ip_or_domain:port
SMTP_URI=smtps://username:password@mailserver.example.com:465
# E-mail address for dyrector.io invitation links,
# password resets and others
FROM_EMAIL=from@example.com
# E-mail sender name for dyrector.io invitation links,
# password resets and others
FROM_NAME=dyrector.io

# # ReCAPTCHA secrets

# In case you don't want to use ReCAPTCHA set DISABLE_RECAPTCHA to true
# Highly recommended to keep the default value, which is `false`
DISABLE_RECAPTCHA=false
# Create ReCAPTCHA V2 credentials in the ReCAPTCHA admin console
# It is recommended to use the inivisble type
RECAPTCHA_SECRET_KEY=Recaptcha_Secret_Key
RECAPTCHA_SITE_KEY=Recaptcha_Site_Key

# To turn off Quality Assurance (default: false)
# more info: https://docs.dyrector.io/learn-more/quality-assurance-qa
# QA_OPT_OUT=true

# For providing a group identifier codename for the collected usage data
# QA_GROUP_NAME=
https://github.com/dyrector-io/dyrectorio/blob/main/web/crux-ui/.env.example
CRUX_UI_URL=http://localhost:8000

KRATOS_URL=http://localhost:8000/kratos
KRATOS_ADMIN_URL=http://localhost:4434

# Sets the severity level of logging
# Possible values: trace, debug, info, warn, error, and fatal
# The settings come in a hierarchic order
# Example: error contains fatal
LOG_LEVEL=trace

# # Google ReCAPTCHA config
DISABLE_RECAPTCHA=true

# Required only when ReCAPTCHA is enabled
RECAPTCHA_SITE_KEY=<public_recaptcha_site_key>
RECAPTCHA_SECRET_KEY=<recaptcha_secret_key>

# # Playwright test config (for e2e tests)
E2E_BASE_URL=http://localhost:8000

# Docker HUB Proxy (optional)
# HUB_PROXY_URL=http://<proxy_url>
# HUB_PROXY_TOKEN=<proxy_token>

# For overriding the node dns result order regardless of the NODE_ENV value
# It may be necessary for running the e2e tests,
# because node resolves localhost to IPv6 by default
# DNS_DEFAULT_RESULT_ORDER=ipv4first