kawipiko/documentation/installation.rst

215 lines
4 KiB
ReStructuredText
Raw Normal View History

#############################################
kawipiko -- blazingly fast static HTTP server
#############################################
Installation
============
.. contents::
:depth: 2
:local:
:backlinks: none
Download prebuilt executables
-----------------------------
2021-12-22 20:56:39 +00:00
.. warning ::
No executables are currently available for download!
2021-12-22 20:56:39 +00:00
Please consult the `build from sources section <#build-from-sources>`__ for now.
Build from sources
------------------
2021-12-22 20:56:39 +00:00
Install the prerequisites
.........................
2021-12-22 20:56:39 +00:00
* Ubuntu / Debian: ::
apt-get install git-core
apt-get install golang
2021-12-22 20:56:39 +00:00
* OpenSUSE: ::
zypper install git-core
zypper install go
2021-12-22 20:56:39 +00:00
* other Linux / FreeBSD / OpenBSD / OSX:
* fetch and install Go from: https://golang.org/dl
* add ``/usr/local/go/bin`` to your ``PATH``;
* install Git;
2021-12-22 20:56:39 +00:00
Prepare the environment
.......................
2021-12-22 20:56:39 +00:00
::
mkdir -- \
/tmp/kawipiko \
/tmp/kawipiko/bin \
/tmp/kawipiko/src \
/tmp/kawipiko/go \
#
2021-12-22 20:56:39 +00:00
Fetch the sources
.................
2021-12-22 20:56:39 +00:00
Either clone the full Git repository: ::
git clone \
-b development \
git://github.com/volution/kawipiko.git \
/tmp/kawipiko/src \
#
2021-12-22 20:56:39 +00:00
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 \
#
2021-12-22 20:56:39 +00:00
Build the dynamic executables
.............................
2021-12-22 20:56:39 +00:00
Compile the (dynamic) executables: ::
cd /tmp/kawipiko/src/sources
#### build `kawipiko` dynamic all-in-one executable
env \
GOPATH=/tmp/kawipiko/go \
go build \
-gcflags 'all=-l=4' \
2021-12-22 20:56:39 +00:00
-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' \
2021-12-22 20:56:39 +00:00
-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' \
2021-12-22 20:56:39 +00:00
-ldflags 'all=-s' \
-trimpath \
-o /tmp/kawipiko/bin/kawipiko-archiver \
./cmd/archiver.go \
#
2021-12-22 20:56:39 +00:00
Build the static executables
............................
2021-12-22 20:56:39 +00:00
Compile the (static) executables: ::
cd /tmp/kawipiko/src/sources
#### build `kawipiko` static all-in-one 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 \
2021-12-22 20:56:39 +00:00
-o /tmp/kawipiko/bin/kawipiko-archiver \
./cmd/archiver.go \
#
2021-12-22 20:56:39 +00:00
Deploy the executables
......................
2021-12-22 20:56:39 +00:00
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 \
#