> For the complete documentation index, see [llms.txt](https://floordiv.gitbook.io/indigo/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://floordiv.gitbook.io/indigo/installation.md).

# Installation

{% hint style="warning" %}
Framework is still below 1.0.0 version. Be careful updating the package, as breaking changes are common. Also the documentation might not represent the actual state.
{% endhint %}

Just run the following command:

```bash
go get -u github.com/indigo-web/indigo@latest
```

{% hint style="warning" %}
For installation, go1.23.8 or higher is required
{% endhint %}

{% hint style="info" %}
The documentation's current state implies the version v0.17.3
{% endhint %}

## Hello, world!

Create a new package:

```bash
mkdir helloworld
cd helloworld
go mod init helloworld
go get -u github.com/indigo-web/indigo@latest
```

Create `main.go` with the following code:

```go
package main

import (
  "log"
  
  "github.com/indigo-web/indigo"
  "github.com/indigo-web/indigo/http"
  "github.com/indigo-web/indigo/router/inbuilt"
)

func Hello(request *http.Request) *http.Response {
  return http.String(request, "Hello, world!")
}

func main() {
  r := inbuilt.New()
  r.Get("/", Hello)

  err := indigo.New(":8080").Serve(r)
  if err != nil {
    log.Fatal(err)
  }
}
```

Run the code:

```bash
go run main.go
```

If everything works just fine, you'll see the text `Hello, world!` on the <http://localhost:8080> page.
