Quick Start

Get started with Woodpecker in minutes

Quick Start Flow 1. Installation 2. Configuration 3. Run & Test

Installation

Choose the installation method that best suits your needs

Using Go Install

go install github.com/zilliztech/woodpecker/cmd/woodpecker@latest

From Source

git clone https://github.com/zilliztech/woodpecker.git
cd woodpecker
make build

Using Docker

docker pull zilliztech/woodpecker:latest
docker run -d -p 8080:8080 zilliztech/woodpecker:latest

Basic Usage

Learn how to use Woodpecker in your application

Writing Logs

Here's a simple example of writing logs to Woodpecker:

package main

import (
    "context"
    "github.com/zilliztech/woodpecker/client"
)

func main() {
    // Create a new client
    c, err := client.New("localhost:8080")
    if err != nil {
        panic(err)
    }
    defer c.Close()

    // Create a new log
    log, err := c.CreateLog(context.Background(), "my-log")
    if err != nil {
        panic(err)
    }

    // Write some data
    data := []byte("Hello, Woodpecker!")
    _, err = log.AppendAsync(context.Background(), data)
    if err != nil {
        panic(err)
    }

    // Sync to ensure data is persisted
    err = log.Sync(context.Background())
    if err != nil {
        panic(err)
    }
}

Reading Logs

Here's how to read logs from Woodpecker:

package main

import (
    "context"
    "fmt"
    "github.com/zilliztech/woodpecker/client"
)

func main() {
    // Create a new client
    c, err := client.New("localhost:8080")
    if err != nil {
        panic(err)
    }
    defer c.Close()

    // Open an existing log
    log, err := c.OpenLog(context.Background(), "my-log")
    if err != nil {
        panic(err)
    }

    // Create a reader
    reader, err := log.NewReader(context.Background(), 0, -1)
    if err != nil {
        panic(err)
    }
    defer reader.Close()

    // Read data
    for {
        data, err := reader.ReadNext(context.Background())
        if err != nil {
            if err == io.EOF {
                break
            }
            panic(err)
        }
        fmt.Printf("Read: %s\n", string(data))
    }
}

Configuration

Configure Woodpecker to suit your needs

Basic Configuration

Create a configuration file (e.g., `config.yaml`):

server:
  address: "0.0.0.0:8080"
  max_connections: 1000

storage:
  type: "minio"
  minio:
    endpoint: "localhost:9000"
    access_key: "minioadmin"
    secret_key: "minioadmin"
    bucket: "woodpecker"
    use_ssl: false

cache:
  max_memory: "1GB"
  max_entries: 10000
  max_bytes: "100MB"
  max_interval: 1000  # milliseconds

Configuration Parameters

Parameter Description Default
server.address Server listening address 0.0.0.0:8080
server.max_connections Maximum number of client connections 1000
storage.type Storage backend type (minio, local) minio
cache.max_memory Maximum memory usage for cache 1GB
cache.max_entries Maximum number of cache entries 10000

Next Steps

Learn more about Woodpecker's advanced features

Advanced Topics