Gardience Documentation gardience.com →
Docs / Reference

Ports and files

Ports

Published on the server

These are the only ports open to the network. Allow them in your firewall.

Port (default)ProtocolUsed byChange with
443HTTPSThe console, the REST API and the MCP server--https-port
80HTTPRedirects to HTTPS only--http-port
4505TCPSalt publish port: agents receive jobs. All-in-one only.--salt-ports
4506TCPSalt return port: agents send results. All-in-one only.--salt-ports

The Salt ports listen on the address set by --salt-bind (all addresses by default).

Outgoing connections

The Gardience server connects out to these services when you set them up:

DestinationWhen
Your salt-apiAttach mode (--attach).
Your identity providerSingle sign-on is on (OpenID Connect discovery, keys and tokens; SAML metadata URL).
Your SIEMAudit forwarding is on.
Your Slack or Teams webhookNotifications are on.
The other server's consoleA primary and standby pair (--peer-url), for the signed status.
The standby, over SSHgardience standby-sync on the primary.

Internal only

These listen on the internal container network and are not published:

PortService
8000salt-api (all-in-one)
9400The Gardience service
9500The playbook runner

URLs the console serves

PathWhat it is
/Console sign-in and the Salt pages.
/gardience/dashboardPatch and compliance dashboard.
/gardience/healthLiveness check. No sign-in.
/gardience/readyReadiness check. No sign-in.
/gardience/ha-statusThis server's signed role and generation, for its partner. Served even while the console is stopped.
/gardience/api/v1/...REST API. Needs an API key.
/gardience/api/v1/docsInteractive API documentation.
/gardience/mcpMCP server. Needs an API key.
/gardience/cli/gdnDownload of the gdn command line.
/gardience/sso/...Single sign-on start, OIDC callback, SAML ACS and SAML metadata.

Install directory

/opt/gardience by default, or ~/gardience when installed without root (--dir to change).

PathContents
gardienceThe management command.
.envSettings and generated secrets. Readable by its owner only.
compose.ymlThe Docker Compose file. Generated; changes are lost at upgrade.
VERSIONInstalled version.
config/Configuration, keys and certificates. Readable by its owner only. See below.
srv/Salt content: states, modules and the reactor. Updated at upgrade.
srv/pillar/Pillar data: system locks and drift rules. Kept at upgrade.
ha/This server's signed status and fencing state, for a primary and standby pair.
releases/Unpacked upgrade bundles.
gardience-backup-*, pre-upgrade-*Backups written here when no other path is given, and automatic pre-upgrade backups.
gardience-support-*.tar.gzSupport bundles.
ATTACH.md, attach-kit/Attach mode only: setup steps and files for your Salt master.

config/

FileContents
users.yamlAccounts, roles and LDAP settings. Edit by hand only for LDAP; then run gardience render.
htpasswdPassword hashes of local accounts. Generated.
master.d/gardience.confSalt master settings, permissions and node groups. Generated by gardience render; do not edit.
roles.envWho administers and who approves. Read live by the service.
salt-auth.txtWhich sign-in types the sign-in page offers. Generated.
nginx.confWeb front end settings. Generated.
tls/gardience.crt, tls/gardience.keyThe console's TLS certificate and key.
license.jsonThe license.
autosign/Agent enrollment tokens.
state/audit.keyKey for the audit log's hash chain. Kept outside the data volume on purpose.
state/audit.checkpoint, state/audit.anchorSigned record of the audit log's length and newest entry, and where keyed hashing began.
state/audit.alarmPresent only while an audit log problem is waiting to be acknowledged.
removed_users.jsonAccounts removed with gardience user del, so their API keys stay refused.
ha/ha.jsonThis server's role and generation in a primary and standby pair.
standby-sync.jsonResult of the last standby-sync, on a primary.

The Gardience web service reads config but may write only state/ and autosign/: everything else (users, Salt permissions, TLS, license) is written only by the config-keeper container, which has no network, and by the gardience command. Before 1.2.4 the audit files sat at the top of config; upgrades and restores move them.

Docker volumes

Volume names start with the project name (--name, gardience-server by default).

VolumeMounted atContents
NAME_gardiencedata/data in the Gardience serviceAll Gardience data: see below.
NAME_saltpki/etc/salt/pki in the Salt masterThe Salt master key and accepted agent keys. All-in-one only.
NAME_saltcache/var/cache/salt in the Salt masterSalt's job cache. All-in-one only. Not backed up.

gardience backup includes the first two volumes. gardience uninstall removes all three.

The data volume

Main files, all owned by the service's user (uid 10001):

FileContents
audit.jsonl, audit-*.jsonlThe audit log: the live segment and sealed 50 MB segments.
compliance.json, inventory.json, drift.jsonLatest scan results, asset inventory and drift.
runbooks.json, workflows.json, schedules.json, runs.json, runs-archive.jsonlAutomation and run history.
groups.json, locks.json, windows.json, queue.json, rules.jsonNode groups, locks, change windows, held work and event rules.
settings.jsonConsole settings, including the SIEM destination and webhook.
vault.key, vault.json, transport.jsonThe vault key and the encrypted secrets.
api_keys.jsonAPI key hashes and their settings.
sso.json, sso_users.jsonSingle sign-on settings (client secret encrypted) and recent single sign-on users.
sessions.json, perms.json, last_signin.jsonOpen sessions, each person's grants and last sign-in time.
siem_cursor.jsonSIEM forwarding position per destination.
enrollments.jsonAgent enrollment tokens issued.
ansible-uploads/Playbooks uploaded through the API or gdn.
Gardience by Bouziden Management LLC.