Edit content

Building a Server

RoadRunner use service bus model, this allows you to tweak and extend application functionality for each separate project.

Install Golang

To build an application server you need Golang 1.13+ to be installed.

Create main.go

Copy main.go file in the root of your project.

package main

import (
    rr "github.com/spiral/roadrunner/cmd/rr/cmd"

    // services (plugins)

    // additional commands and debug handlers
    _ "github.com/spiral/roadrunner/cmd/rr/http"
    _ "github.com/spiral/roadrunner/cmd/rr/limit"

func main() {
    rr.Container.Register(env.ID, &env.Service{})
    rr.Container.Register(rpc.ID, &rpc.Service{})
    rr.Container.Register(http.ID, &http.Service{})
    rr.Container.Register(headers.ID, &headers.Service{})
    rr.Container.Register(static.ID, &static.Service{})
    rr.Container.Register(limit.ID, &limit.Service{})

    // you can register additional commands using cmd.CLI

You can now start your server without building go run main.go serve -v -d.

Use rr.Container.Register to add more services:

rr.Container.Register(custom.ID, &custom.Service{})

See how to create http middleware in order to intercept HTTP flow.