Quick start
PeSIT Wizard is a single binary (pesitwizard). There is nothing to license and no registry to log in to — grab it from GitHub and run it.
Run the node
# from a release binary
PESIT_API_KEY=secret pesitwizard # runs the node (default subcommand: serve)One process exposes two REST surfaces backed by the same store, plus the web console:
- Admin API on
--api-port(default 8080,X-API-Key): partners, virtual files, listeners, inbound transfer records, and the web console at/. - Transfer API on
--transfer-port(default 9081): remote servers,/api/v1/transfers/send|receive|message, outbound history.
Open http://localhost:8080/, paste the API key in the field at the top right, and the dashboard populates.
With Docker
docker run -p 8080:8080 -p 9081:9081 -p 5001:5001 \
-e PESIT_API_KEY=secret \
ghcr.io/pesitwizard/pesitwizard:latestOn Kubernetes
The node is a single container with Kubernetes-ready health probes (/actuator/health, /actuator/health/liveness, /actuator/health/readiness) and a Prometheus endpoint at /metrics. Deploy it as a normal Deployment + Service, persisting --db and the checkpoint directories on a volume.
Configure your first transfer
Everything the console does is a REST call. A minimal inbound setup:
KEY=secret
A=http://localhost:8080
# a partner allowed to connect
curl -s -H "X-API-Key: $KEY" -H 'Content-Type: application/json' \
"$A/api/v1/config/partners" -X POST \
-d '{"id":"BANK_A","enabled":true,"accessType":"BOTH"}'
# a virtual file partners can write to
curl -s -H "X-API-Key: $KEY" -H 'Content-Type: application/json' \
"$A/api/v1/config/files" -X POST \
-d '{"id":"INVOICES","enabled":true,"direction":"RECEIVE","recordLength":4096,"recordFormat":128}'
# a listener on port 5001, started automatically
curl -s -H "X-API-Key: $KEY" -H 'Content-Type: application/json' \
"$A/api/v1/servers" -X POST \
-d '{"serverId":"PESIT-IN","port":5001,"receiveDirectory":"/data/received","sendDirectory":"/data/send","autoStart":true}'Or provide a YAML bootstrap file with PESIT_CONFIG=/path/config.yaml:
partners:
- id: BANK_A
enabled: true
accessType: BOTH
files:
- id: INVOICES
enabled: true
direction: RECEIVE
servers:
- serverId: PESIT-IN
port: 5001
receiveDirectory: /data/received
sendDirectory: /data/send
autoStart: trueSending SIGHUP re-reads that file and re-applies it without a restart.
One-shot transfers from the CLI
The same binary can run a single transfer against a remote server:
pesitwizard send --host cx --port 5000 --server-id CETOM1 --partner PWSRV01 file.dat --remote PWRECV
pesitwizard receive --host cx --port 5000 --server-id CETOM1 --partner PWSRV01 PWSEND --file out.datNext: the Guide.