Skip to content

Latest commit

 

History

History
262 lines (166 loc) · 5.64 KB

installation.rst

File metadata and controls

262 lines (166 loc) · 5.64 KB

kawipiko -- blazingly fast static HTTP server

Installation


Download prebuilt executables

See the releases page on GitHub.

As a shortcut, the following are the self-contained and statically linked all-in-one server and archiver executables (for x86_64 / amd64 and aarch64 / arm64 processors):

For example, assuming one wants the preview version, one can run the following commands:

curl \
        -s -S -f -L \
        -o /tmp/kawipiko-server \
        https://github.com/volution/kawipiko/releases/download/preview/kawipiko-server--linux--x86_64--v0.1.0--preview \
#

curl \
        -s -S -f -L \
        -o /tmp/kawipiko-archiver \
        https://github.com/volution/kawipiko/releases/download/preview/kawipiko-archiver--linux--x86_64--v0.1.0--preview \
#

curl \
        -s -S -f -L \
        -o /tmp/kawipiko \
        https://github.com/volution/kawipiko/releases/download/preview/kawipiko-wrapper--linux--x86_64--v0.1.0--preview \
#

chmod a=rx /tmp/kawipiko-server
chmod a=rx /tmp/kawipiko-archiver
chmod a=rx /tmp/kawipiko

One can replace preview with v0.x.y (see the releases page).

One can replace linux with freebsd, openbsd or darwin.


Build from sources

Install the prerequisites

  • Ubuntu / Debian:

    apt-get install git-core
    apt-get install golang
    
  • OpenSUSE:

    zypper install git-core
    zypper install go
    
  • other Linux / FreeBSD / OpenBSD / OSX:

Prepare the environment

mkdir -- \
        /tmp/kawipiko \
        /tmp/kawipiko/bin \
        /tmp/kawipiko/src \
        /tmp/kawipiko/go \
#

Fetch the sources

Either clone the full Git repository:

git clone \
        -b development \
        https://github.com/volution/kawipiko.git \
        /tmp/kawipiko/src \
#

Either fetch and extract the latest sources bundle:

curl \
        -s -S -f \
        -o /tmp/kawipiko/src.tar.gz \
        https://codeload.github.com/volution/kawipiko/tar.gz/development \
#

tar \
        -x -z -v \
        -f /tmp/kawipiko/src.tar.gz \
        -C /tmp/kawipiko/src \
        --strip-components 1 \
#

Build the dynamic executables

Compile the (dynamic) executables:

cd /tmp/kawipiko/src/sources

#### build `kawipiko` all-in-one dynamic executable
env \
        GOPATH=/tmp/kawipiko/go \
go build \
        -gcflags 'all=-l=4' \
        -ldflags 'all=-s' \
        -trimpath \
        -o /tmp/kawipiko/bin/kawipiko \
        ./cmd/wrapper.go \
#

#### build `kawipiko-server` dynamic executable
env \
        GOPATH=/tmp/kawipiko/go \
go build \
        -gcflags 'all=-l=4' \
        -ldflags 'all=-s' \
        -trimpath \
        -o /tmp/kawipiko/bin/kawipiko-server \
        ./cmd/server.go \
#

#### build `kawipiko-archiver` dynamic executable
env \
        GOPATH=/tmp/kawipiko/go \
go build \
        -gcflags 'all=-l=4' \
        -ldflags 'all=-s' \
        -trimpath \
        -o /tmp/kawipiko/bin/kawipiko-archiver \
        ./cmd/archiver.go \
#

Build the static executables

Compile the (static) executables:

cd /tmp/kawipiko/src/sources

#### build `kawipiko` all-in-one static executable
env \
        GOPATH=/tmp/kawipiko/go \
go build \
        -tags 'netgo' \
        -gcflags 'all=-l=4' \
        -ldflags 'all=-s' \
        -trimpath \
        -o /tmp/kawipiko/bin/kawipiko \
        ./cmd/wrapper.go \
#

#### build `kawipiko-server` static executable
env \
        GOPATH=/tmp/kawipiko/go \
go build \
        -tags 'netgo' \
        -gcflags 'all=-l=4' \
        -ldflags 'all=-s' \
        -trimpath \
        -o /tmp/kawipiko/bin/kawipiko-server \
        ./cmd/server.go \
#

#### build `kawipiko-archiver` static executable
env \
        GOPATH=/tmp/kawipiko/go \
go build \
        -tags 'netgo' \
        -gcflags 'all=-l=4' \
        -ldflags 'all=-s' \
        -trimpath \
        -o /tmp/kawipiko/bin/kawipiko-archiver \
        ./cmd/archiver.go \
#

Deploy the executables

Just copy the two executables anywhere on the system, or any compatible remote system:

cp \
        -t /usr/local/bin \
        /tmp/kawipiko/bin/kawipiko-server \
        /tmp/kawipiko/bin/kawipiko-archiver \
#