# goss-org/goss

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/goss-org-goss).**

5,904 stars · 490 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/goss-org/goss
- Homepage: https://goss.rocks
- awesome-repositories: https://awesome-repositories.com/repository/goss-org-goss.md

## Description

Goss is a declarative system validation framework that verifies server state by comparing live system attributes against YAML specifications. It checks the state of packages, ports, services, files, users, processes, DNS records, kernel parameters, mounts, network interfaces, and HTTP endpoints, reporting pass or fail for each condition.

The tool distinguishes itself through several automation capabilities. It can scan a running system to automatically generate YAML baseline files that capture current resource configurations, eliminating the need to write tests from scratch. A retry-with-timeout validation loop repeatedly executes the full test suite until all checks pass or a configurable timeout expires, enabling asynchronous provisioning validation and readiness polling. Test suites can be parameterized using Jinja templates and variable files, allowing the same validation logic to be reused across different environments without duplicating test definitions.

Goss supports cross-platform execution and outputs validation results in multiple formats including JSON, JUnit, Nagios, and Prometheus for integration with different monitoring and reporting toolchains. It can serve validation results as a live HTTP health endpoint that external monitoring systems and load balancers can poll in real time. The tool also provides a JSON Schema for test files to enable inline documentation, autocompletion, and static analysis in IDEs.

Installation is handled through a single shell command that downloads the binary and optional Docker helper script from GitHub releases.

## Tags

### Testing & Quality Assurance

- [Declarative Server Validators](https://awesome-repositories.com/f/testing-quality-assurance/server-side-validation-suites/declarative-server-validators.md) — Verifying infrastructure state by comparing live system attributes against YAML specifications for configuration testing and compliance checks.
- [Automated Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/automated-test-execution.md) — Executes a set of predefined YAML-based tests against server resources to verify their current state. ([source](https://goss.rocks/schema.yaml))
- [Retry Until Success](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/test-lifecycle-execution-control/test-retry-strategies/retry-until-success.md) — Repeatedly executes the full test suite until all checks pass or a configurable timeout expires for asynchronous provisioning validation.
- [Resource Existence Validation](https://awesome-repositories.com/f/testing-quality-assurance/resource-existence-validation.md) — Verifies that a system resource such as a package, file, port, service, user, or process exists and meets specified conditions. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [Declarative Server Configuration Validators](https://awesome-repositories.com/f/testing-quality-assurance/server-side-validation-suites/declarative-server-configuration-validators.md) — Runs a generated YAML test suite against the live system and reports which checks pass or fail, with support for retries until a desired state is reached. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [Automated Infrastructure Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/automated-infrastructure-testing.md) — Run server validation tests that retry until passing, integrate into pipelines, or expose as health endpoints.
- [File System Property Assertions](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/assertions-and-validation/assertion-validation-utilities/assertion-libraries/execution-assertions/assertion-failure-handlers/value-property-assertions/file-system-property-assertions.md) — Checks that a file or directory exists, has the correct permissions, owner, and content. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [Infrastructure Test Generators](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/automated-test-generators/infrastructure-test-generators.md) — Scan the current live system and produce a YAML test file that captures the state of selected resources, so users do not write tests from scratch. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [CLI Test Runners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-execution-runners/cli-test-runners.md) — Executes a suite of declarative YAML tests against the current system state and reports pass or fail results. ([source](https://goss.rocks/cli/))
- [Declarative Infrastructure Test Suites](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-infrastructure-configuration/test-configuration-suites/declarative-infrastructure-test-suites.md) — Write infrastructure tests as a YAML file that declares expected values for system properties like packages, services, and ports. ([source](https://goss.rocks/gossfile/))
- [Declarative Test Suites](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/execution-and-infrastructure/test-infrastructure-configuration/test-configuration-suites/declarative-test-suites.md) — Define a collection of system validation checks in a declarative YAML file for repeatable execution. ([source](https://goss.rocks/gossfile/))
- [Infrastructure State Validators](https://awesome-repositories.com/f/testing-quality-assurance/state-expectation-validation/infrastructure-state-validators.md) — Runs declarative YAML test suites against live servers to verify packages, ports, services, and files match expected state.
- [System State Assertions](https://awesome-repositories.com/f/testing-quality-assurance/system-state-assertions.md) — Validates packages, files, ports, services, users, processes, DNS, and kernel parameters against expected states. ([source](https://goss.rocks/))
- [Template Variable Validation](https://awesome-repositories.com/f/testing-quality-assurance/template-variable-validation.md) — Apply template variables from a separate YAML file to the test suite, enabling environment-specific configurations. ([source](https://goss.rocks/))
- [Test Suite Execution](https://awesome-repositories.com/f/testing-quality-assurance/test-suite-execution.md) — Executes a set of predefined system checks against live server attributes and reports pass or fail status. ([source](https://goss.rocks/cli/))
- [Parameterized Test Suites](https://awesome-repositories.com/f/testing-quality-assurance/unit-testing-frameworks/test-suite-organization/parameterized-test-suites.md) — Uses Jinja templates and variable files to parameterize test suites for reuse across environments.
- [Environment-Specific Test Suites](https://awesome-repositories.com/f/testing-quality-assurance/unit-testing-frameworks/test-suite-organization/parameterized-test-suites/environment-specific-test-suites.md) — Provides Jinja template and variable file support to reuse test suites across different server environments.
- [API Endpoint Testing](https://awesome-repositories.com/f/testing-quality-assurance/api-endpoint-testing.md) — Sends HTTP requests to endpoints and validates response codes, headers, and body content against expected values. ([source](https://goss.rocks/))
- [Pattern Matching Boolean Tests](https://awesome-repositories.com/f/testing-quality-assurance/assertion-macros/boolean-return-assertions/pattern-matching-boolean-tests.md) — Uses advanced matchers and patterns within test definitions to express flexible, non-literal conditions for resource state checks. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [Test Result Reporters](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-reporters/test-result-reporters.md) — Outputs validation results in JSON, JUnit, Nagios, Prometheus, and other formats for monitoring toolchain integration.
- [File Property Assertions](https://awesome-repositories.com/f/testing-quality-assurance/properties-file-auditing/file-property-assertions.md) — Checks file existence, permissions, ownership, size, and content against expected values. ([source](https://goss.rocks/schema.yaml))
- [Cross-Platform Test Execution](https://awesome-repositories.com/f/testing-quality-assurance/testing-infrastructure-management/cross-platform-test-execution.md) — Execute the same declarative infrastructure tests across different operating systems and environments without modification. ([source](https://goss.rocks/platforms))
- [Environment-Parameterized Suites](https://awesome-repositories.com/f/testing-quality-assurance/unit-testing-frameworks/test-suite-organization/parameterized-test-suites/environment-parameterized-suites.md) — Uses Jinja templates and variable files to parameterize test suites for reuse across different environments.
- [Test File Imports](https://awesome-repositories.com/f/testing-quality-assurance/unit-testing-frameworks/test-suite-organization/parameterized-test-suites/test-file-imports.md) — Include another test file so tests can be split across multiple files and composed together. ([source](https://goss.rocks/))

### Web Development

- [Server State Validators](https://awesome-repositories.com/f/web-development/single-page-applications/single-file-distributions/json-driven-configurations/yaml-driven-configurations/server-state-validators.md) — Defines system state expectations as YAML files compared against live server attributes to determine pass or fail.
- [System Property Validators](https://awesome-repositories.com/f/web-development/declarative-attribute-validation/system-property-validators.md) — Checks real-time values of system properties such as packages, services, ports, and files against expected states defined in YAML. ([source](https://goss.rocks/cli/))
- [Process Presence Assertions](https://awesome-repositories.com/f/web-development/rest-apis/api-response-validation/long-running-task-endpoints/running-process-inputs/process-presence-assertions.md) — Confirms that a named process is present and running on the system. ([source](https://goss.rocks/))

### Artificial Intelligence & ML

- [YAML-Defined Agents](https://awesome-repositories.com/f/artificial-intelligence-ml/custom-model-definitions/custom-agent-flow-definitions/yaml-defined-agents.md) — Write infrastructure validation rules as structured YAML files, making tests human-readable and version-controllable. ([source](https://goss.rocks/schema.yaml%60))

### Part of an Awesome List

- [Declarative Test Runners](https://awesome-repositories.com/f/awesome-lists/devtools/testing-and-validation/declarative-test-runners.md) — Runs defined YAML tests against a target server and outputs pass or fail results for each check. ([source](https://goss.rocks/schema.yaml))
- [System Package Version Audits](https://awesome-repositories.com/f/awesome-lists/security/dependency-version-auditing/system-package-version-audits.md) — Verifies that installed system packages match a declared version or are absent from the system. ([source](https://goss.rocks/schema.yaml))
- [Testing Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/testing-frameworks.md) — Fast, YAML-based validation tool for container configurations.

### Development Tools & Productivity

- [State-Based Wait Loops](https://awesome-repositories.com/f/development-tools-productivity/background-task-schedulers/wait-state-looping/state-based-wait-loops.md) — Polls the system until all defined tests pass or a timeout is reached. ([source](https://goss.rocks/))
- [Configuration State Validation](https://awesome-repositories.com/f/development-tools-productivity/code-import-utilities/configuration-validation/configuration-state-validation.md) — Compares current system properties such as packages, services, and ports against a YAML specification to verify configuration. ([source](https://goss.rocks/cli/))
- [Resource State Validation](https://awesome-repositories.com/f/development-tools-productivity/code-import-utilities/configuration-validation/configuration-state-validation/resource-state-validation.md) — Checks properties of files, packages, services, ports, and other OS resources against expected values defined in a YAML file. ([source](https://goss.rocks/cli/))
- [State Validators](https://awesome-repositories.com/f/development-tools-productivity/development-environment-setup/configuration-based-setup/declarative-server-configurations/state-validators.md) — Runs declarative YAML tests against system resources like packages, services, and ports to verify server configuration. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [Attribute Coverage Verifiers](https://awesome-repositories.com/f/development-tools-productivity/cli-verification-tools/attribute-coverage-verifiers.md) — Verifies that files, packages, services, and other OS resources have the expected properties and values. ([source](https://goss.rocks/schema.yaml%60))
- [CSV Output Formats](https://awesome-repositories.com/f/development-tools-productivity/json-output-formats/csv-output-formats.md) — Formats validation results as JSON, JUnit, Prometheus, Nagios, or other structured outputs. ([source](https://goss.rocks/))

### DevOps & Infrastructure

- [YAML Variable Files](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/automation-frameworks/config-templating/configuration-template-management/automation-variable-definitions/template-variable-replacement/yaml-variable-files.md) — Apply variable substitution from a separate YAML file to the test suite, enabling environment-specific configurations. ([source](https://goss.rocks/))
- [System Readiness Pollers](https://awesome-repositories.com/f/devops-infrastructure/container-startup-coordination/readiness-wait-strategies/system-readiness-pollers.md) — Polls the system until all defined tests pass, allowing orchestration scripts to block until a server is fully configured. ([source](https://goss.rocks/))
- [Infrastructure Validation Tools](https://awesome-repositories.com/f/devops-infrastructure/infrastructure-validation-tools.md) — Verifies server state by comparing current system attributes against a declarative YAML specification.
- [System Resource Checkers](https://awesome-repositories.com/f/devops-infrastructure/resource-validation-plugins/system-resource-checkers.md) — Implements separate checkers for each system resource type like packages, ports, and services for extensible validation.
- [Installed Package Queries](https://awesome-repositories.com/f/devops-infrastructure/package-installations/installed-package-queries.md) — Checks that specified packages are present, absent, or at a particular version on the system. ([source](https://goss.rocks/schema.yaml))
- [Process Status Assertions](https://awesome-repositories.com/f/devops-infrastructure/workflow-run-management/run-status-inspections/metadata-change-status-checks/emulator-boot-status-checks/process-status-assertions.md) — Asserts that a named process is running with the expected user, group, and resource limits. ([source](https://goss.rocks/schema.yaml))

### Operating Systems & Systems Programming

- [Multi-Resource State Validators](https://awesome-repositories.com/f/operating-systems-systems-programming/out-of-process-resource-brokers/multi-resource-state-validators.md) — Checks the state of packages, files, ports, services, users, groups, commands, DNS, mounts, network interfaces, HTTP endpoints, and kernel parameters. ([source](https://goss.rocks/))
- [Kernel Parameter Assertions](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-parameter-tuning/kernel-parameter-assertions.md) — Reads a kernel parameter from /proc/sys and asserts its value matches the expected setting. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))

### Software Engineering & Architecture

- [Infrastructure State Baselines](https://awesome-repositories.com/f/software-engineering-architecture/baseline-management/infrastructure-state-baselines.md) — Scans a running system to automatically produce YAML test files capturing current resource configurations as validation baselines.
- [State Validators](https://awesome-repositories.com/f/software-engineering-architecture/declarative-configuration-systems/state-validators.md) — Runs a set of YAML-defined checks against the running system and reports whether each condition passes or fails. ([source](https://goss.rocks/gossfile/))
- [Runtime Variable Injections](https://awesome-repositories.com/f/software-engineering-architecture/application-lifecycle-management/configuration-management/environment-variable-management/environment-variable-injection/runtime-variable-injections.md) — Injects variable values into test definitions at runtime, enabling the same test suite to be reused across different environments. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [Infrastructure Test Baselines](https://awesome-repositories.com/f/software-engineering-architecture/baseline-management/infrastructure-test-baselines.md) — Scans a running server to automatically produce a YAML test suite capturing current resource states as a validation baseline. ([source](https://goss.rocks/gossfile/))

### System Administration & Monitoring

- [YAML-Based Health Check Executors](https://awesome-repositories.com/f/system-administration-monitoring/health-checks/custom-health-check-executors/yaml-based-health-check-executors.md) — Executes a set of predefined YAML tests from the command line and reports pass or fail results for each check. ([source](https://goss.rocks/cli/))
- [System Resource Monitors](https://awesome-repositories.com/f/system-administration-monitoring/real-time-monitoring-systems/system-resource-monitors.md) — Tracks live system-level resource consumption for processes, files, and sockets. ([source](https://goss.rocks/))
- [System Metric Threshold Checks](https://awesome-repositories.com/f/system-administration-monitoring/container-resource-inspections/system-metric-threshold-checks.md) — Reads CPU, memory, disk, and network metrics and compares them against defined thresholds. ([source](https://goss.rocks/schema.yaml))
- [Protocol-Compatible Health Endpoints](https://awesome-repositories.com/f/system-administration-monitoring/health-checks/protocol-compatible-health-endpoints.md) — Exposes validation results as a live HTTP endpoint so monitoring systems and load balancers can poll server health status.
- [Health Monitoring Endpoints](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/operational-health-alerting/health-monitoring-endpoints.md) — Exposes validation results as a live HTTP endpoint for integration with monitoring and health-check systems.
- [HTTP Health Probes](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/operational-health-alerting/health-monitoring-endpoints/http-health-probes.md) — Exposes validation results as a live HTTP endpoint for real-time health checks and monitoring system integration.
- [HTTP Endpoint Probes](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/operational-health-alerting/health-monitoring-endpoints/http-health-probes/http-endpoint-probes.md) — Sends HTTP requests and validates response status, headers, and body content against expected values. ([source](https://goss.rocks/schema.yaml))

### Data & Databases

- [Infrastructure State Captures](https://awesome-repositories.com/f/data-databases/application-state-management/global-application-state/state-capturing/infrastructure-state-captures.md) — Scans the current server configuration and produces a YAML test suite capturing resource states. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))

### Graphics & Multimedia

- [Validation Result Renderers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/systems/multi-format-output-renderers/structured-result-renderers/validation-result-renderers.md) — Outputs validation results in JSON, JUnit, Nagios, and Prometheus formats for monitoring toolchain integration.

### Networking & Communication

- [Connectivity Verifiers](https://awesome-repositories.com/f/networking-communication/connectivity-verifiers.md) — Confirms that network services and endpoints respond as expected using declarative test definitions. ([source](https://goss.rocks/schema.yaml%60))
- [DNS Record Verification](https://awesome-repositories.com/f/networking-communication/domain-name-systems/dns-record-verification.md) — Validates the existence and configuration of specific DNS records to confirm server capabilities. ([source](https://goss.rocks/))
- [Reachability Validators](https://awesome-repositories.com/f/networking-communication/network-addressing/network-address-validators/reachability-validators.md) — Checks that a remote TCP address or HTTP URL is reachable and responds as expected. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))
- [Port Reachability Testing](https://awesome-repositories.com/f/networking-communication/port-reachability-testing.md) — Verifies that a host and port are reachable and optionally checks TLS certificate details. ([source](https://goss.rocks/schema.yaml))
- [Listening Port Inspections](https://awesome-repositories.com/f/networking-communication/tcp-port-scanners/listening-port-inspections.md) — Confirms that specified TCP or UDP ports are listening on the expected interfaces. ([source](https://goss.rocks/schema.yaml))

### Programming Languages & Runtimes

- [Variable Templates](https://awesome-repositories.com/f/programming-languages-runtimes/variable-templates.md) — Inject external variable values into YAML test templates, allowing the same test suite to be reused across different environments. ([source](https://cdn.jsdelivr.net/gh/goss-org/goss@main/README.md))

### Security & Cryptography

- [File Property Verifiers](https://awesome-repositories.com/f/security-cryptography/file-integrity-verifiers/file-property-verifiers.md) — Checks that files and directories exist with the correct owner, group, mode, size, and content hash. ([source](https://goss.rocks/schema.yaml))
- [System State Baseline Generators](https://awesome-repositories.com/f/security-cryptography/secret-scanning/secret-baseline-generation/system-state-baseline-generators.md) — Scans a running server and produces a YAML file describing its current state for use as a validation baseline. ([source](https://goss.rocks/cli/))
