# MazeXChain Deployment Notes

## 1. Deployment Principle

Public deployment should expose only the active web interface, public API, wallet downloads, chain downloads, and whitepaper pages. Local backups, prototype artifacts, private vault data, and unrelated directories must not be served.

## 2. Public Server Boundary

Allowed public assets:

```text
public/
public/downloads/
public/whitepaper.html
public/whitepaper.zh.html
public/downloads/mazexchain-whitepaper-*.pdf
src/server.js runtime API
data/ public chain records when explicitly packaged or served
```

Not allowed:

```text
private keys
mnemonic phrases
server-only generator internals
private vault files
uncommitted future Step material
local backup folders
unrelated projects
development notes not intended for publication
```

## 3. Minimum Public Checks

Before public update:

```powershell
node --check src/server.js
npm run smoke
npm run package:downloads
git status --short
```

## 4. Local Docker Node

The local node can be started through the reproducible Docker deployment:

```powershell
docker compose -f docker/docker-compose.yml up --build
```

The container exposes:

```text
HTTP API and web UI: 3000
P2P prototype port: 13000
```

Runtime data is mounted from `data/`; `config/` and `genesis/` are mounted read-only.

## 5. Domain and TLS

The public domain should point to a stable elastic IP or load balancer. TLS should be enabled before broad public testing.

## 6. Deferred Operations Work

Formal production deployment still needs `ops/` runbooks for monitoring, backup, upgrade, incident response, key rotation, and public node recovery.
