-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.docker.example
More file actions
85 lines (74 loc) · 3.96 KB
/
Copy path.env.docker.example
File metadata and controls
85 lines (74 loc) · 3.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# JMDN Docker Compose environment template.
#
# Named `.env.docker.example` (not the bare `.env.example`) because this
# template is specific to the docker-compose.yml deployment path in
# DOCKER.md — other deployment platforms this repo may support in the
# future (k8s, ECS, etc.) would need their own env shape and their own
# example file, not this one.
#
# Copy this to `.env` next to docker-compose.yml and fill in the values:
# cp .env.docker.example .env
# `.env` is in .gitignore — it will never be committed.
#
# See DOCKER.md Step 2 and §4 (sizing) for full explanations of every
# variable below.
# ─── Required for new installs ────────────────────────────────────────────
# Compose project name — prefixes volume/network names (jmdn_immudb-data ...).
# NEW INSTALLS ONLY. If you're migrating an existing node, do NOT set this;
# see DOCKER.md §13 "One-time migration (v1.2.0 installs only)" first,
# or you'll repoint compose at empty volumes.
COMPOSE_PROJECT_NAME=jmdn
# JMDN release to run. Set to a release tag (recommended for production);
# upgrade by changing this line — never by editing docker-compose.yml.
JMDN_VERSION=v2.0.0
# ImmuDB password — used by the immudb container.
# Must match database.password in jmdn.yaml.
IMMUDB_PASSWORD=<generated with: openssl rand -base64 32>
# Redis password — used by the redis container.
# Must match database.redis.password in jmdn.yaml.
REDIS_PASSWORD=<generated with: openssl rand -base64 32>
# Explorer API key — forwarded into the jmdn container for the health check curl.
# Must match security.explorer_api_key in jmdn.yaml.
JMDN_SECURITY_EXPLORER_API_KEY=<generated>
# ─── Consensus rule — allow sending to brand-new addresses ─────────────────
# Lets a transfer name a receiver that does not exist yet. Without this, the
# receiver must already exist in EVERY voter's account cache, so JMDT cannot be
# sent to a first-time address at all: the committee rejects the block with
# "receiver account <addr> not found in cache". The account is instead created
# when the block is applied, which is how Ethereum behaves.
#
# THIS IS A VALIDATION RULE. A node with it on accepts blocks a node with it off
# rejects, so a mixed fleet splits the vote and blocks fail either way. Upgrade
# the sequencer AND every buddy/voter together; a long rolling upgrade leaves
# the fleet mixed for its duration.
#
# ON BY DEFAULT — no setting required. Leaving it unset is the intended
# configuration.
#
# Kill switch only, to restore the old "receiver must already exist" rule.
# No new binary is needed, but the value is read once at process start — each
# node must be RESTARTED for it to take effect. Set it on EVERY node if you use
# it, never a subset: a fleet running mixed values disagrees on block validity.
# JMDN_ALLOW_NEW_RECEIVER_ACCOUNTS=0
# ─── Optional — resource caps, scale to host (DOCKER.md §4) ───────────────
# Uncomment and adjust on hosts bigger/smaller than the 8GB/4-core default.
# 0 = unlimited (memory caps only recommended to leave unlimited on a
# dedicated host that nothing else runs on).
# JMDN_MEM_LIMIT=4g
# JMDN_CPU_LIMIT=2.0
# IMMUDB_MEM_LIMIT=2g
# IMMUDB_CPU_LIMIT=1.0
# REDIS_MEM_LIMIT=512m
# REDIS_CPU_LIMIT=0.5
# REDIS_MAXMEMORY=384mb
# BOOTSTRAP_MEM_LIMIT=2g
# BOOTSTRAP_CPU_LIMIT=1.0
# ─── Optional — bootstrap snapshot source ──────────────────────────────────
# Only read by the jmdn-bootstrap profile (docker compose run --rm jmdn-bootstrap).
# Defaults (in docker-compose.yml) target the 2026-07-26 snapshot, tip 13449:
# set catch_up_from_block = 13450 in jmdn.yaml to match.
# The prefix must be world-readable (bootstrap fetches over public HTTP).
# GCS_BUCKET=jmdn-bootstrap
# GCS_PREFIX=bootstrap-26072026
# PARTS_PREFIX=data-patched.part
# CHECKSUM_FILE=checksums.md5