explaingit

goss-org/goss

Analysis updated 2026-07-03

5,890GoAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

Goss is a fast, single-binary command-line tool for checking that a server is configured correctly. You describe the expected state in a YAML file and Goss verifies it all at once, finishing small test suites in under a second.

Mindmap

mindmap
  root((repo))
    What it does
      YAML-based checks
      Auto-generate tests
      Health endpoint
    Tech stack
      Go single binary
      YAML config
    Use cases
      Server validation
      Docker readiness
      CI config checks
    Setup
      Single curl install
      No dependencies
    Features
      Variables support
      Sub-second speed
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Write a YAML file that describes how a server should be set up, then run Goss to verify all ports, services, and users are correct at once.

USE CASE 2

Auto-generate a test file from a running service so you have a baseline configuration check without writing YAML by hand.

USE CASE 3

Serve a health-check HTTP endpoint from a Docker container so the platform knows when the container has finished starting.

USE CASE 4

Use variables and templates in a single Goss YAML file so the same tests run correctly on different operating systems.

What is it built with?

GoYAML

How does it compare?

goss-org/gossshazow/ssh-chatalda-lang/alda
Stars5,8905,8895,897
LanguageGoGoGo
Setup difficultyeasyeasyeasy
Complexity2/52/52/5
Audienceops devopsdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Single binary download with no dependencies, works immediately after a one-line curl install.

In plain English

Goss is a command-line tool for checking that a server is configured the way you expect. Rather than logging into a machine and manually verifying that a service is running, a port is open, or a user account exists, you write a YAML file that describes what the correct state should look like, and Goss checks it all at once. If something is wrong, you get a list of failures. The tool is designed to be fast. Small test suites finish in under a second, and the binary itself is under 10 MB with no dependencies to install alongside it. You can download a single file and run it. One of its most useful features is auto-generation. Instead of writing the YAML by hand from scratch, you point Goss at a running process or service and it inspects the system to generate a test file that matches the current state. For example, running the autoadd command against sshd produces a YAML file that captures the port it listens on, whether the service is enabled and running, the user account it uses, and more. You then use that file as your baseline and can modify it if you want to add more specific checks. Goss can also run as a health endpoint. In server environments where an external system needs to poll whether a machine is ready, Goss can serve a small HTTP endpoint that returns pass or fail based on whether all the tests in its YAML file succeed. This makes it useful for container startup checks in Docker or similar environments, where the platform needs a way to know when a container has finished starting before sending it traffic. Tests can use variables and templates, which lets you write a single test file that behaves differently depending on the environment or operating system. The test file format has a published schema so editors can provide autocomplete and validation while you write checks. Installation is a single curl command or a manual binary download from the releases page. There are also wrapper scripts for testing Docker containers and Kubernetes environments.

Copy-paste prompts

Prompt 1
Write a Goss YAML file that checks port 22 is open, the sshd service is running, and the sshd user account exists on a Linux server.
Prompt 2
Show me the Goss autoadd command for nginx and explain what YAML it generates to capture the service state.
Prompt 3
How do I run Goss as an HTTP health endpoint on port 8080 in a Docker container so a load balancer can poll it for readiness?
Prompt 4
I want one Goss YAML file that works on both Ubuntu and CentOS. Show me how to use Goss variables or templates to handle OS differences.
Prompt 5
How do I install Goss on a Linux server using the single curl command, and what is the minimum command to run all checks in a file?

Frequently asked questions

What is goss?

Goss is a fast, single-binary command-line tool for checking that a server is configured correctly. You describe the expected state in a YAML file and Goss verifies it all at once, finishing small test suites in under a second.

What language is goss written in?

Mainly Go. The stack also includes Go, YAML.

How hard is goss to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is goss for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub goss-org on gitmyhub

Verify against the repo before relying on details.