Need help with gold?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

142 Stars 31 Forks 663 Commits 33 Opened issues


Linked Data server for Go

Services available


Need anything else?

Contributors list


Join the chat at

is a reference Linked Data Platform server for the Solid platform.

Written in Go, based on initial work done by William Waites.

Build Status


From docker repository:

sudo docker pull linkeddata/gold
sudo docker run -p ip:port:443 linkeddata/gold


with your host computer's IP address and port number.

To check the status of the container, type:

sudo docker ps

: if you want to mount a host directory into the container, you can use the -v parameter:
sudo docker run -p ip:port:443 -v /home/user/data:/data linkeddata/gold

This will mount the host directory,

, into the container as the
directory. Doing this will allow you to reuse the data directory without worrying about persistence inside the container.

From Github:

  1. Setup Go:
* **Mac OS X**: `brew install go`
* **Ubuntu**: `sudo apt-get install golang-go`
* **Fedora**: `sudo dnf install golang`
  1. Set the

    variable (required by Go):
      mkdir ~/go
      export GOPATH=~/go

    (Optionally consider adding

    export GOPATH=~/go
    to your
    or profile).
  2. Check that you have the required Go version (Go 1.4 or later):

      go version

    If you don't, please install a more recent version.

  3. Use the

    go get
    command to install the server and all the dependencies:
    go get
  4. Install dependencies:

    • Mac OS X:
      brew install raptor libmagic
    • Ubuntu:
      sudo apt-get install libraptor2-dev libmagic-dev
    • Fedora:
      sudo dnf install raptor2-devel file-devel
  5. (Optional) Install extra dependencies used by the tests:

    go get

Running the Server

IMPORTANT: Among other things,

is a web server. Please consider running it as a regular user instead of root. Since gold treats all files equally, and even though uploaded files are not made executable, it will not prevent clients from uploading malicious shell scripts.

Pay attention to the data root parameter,

. By default, it will serve files from its current directory (so, for example, if you installed it from Github, its data root will be
). Otherwise, make sure to pass it a dedicated data directory to serve, either using a command-line parameter or the config file. Something like:
  1. If you installed it from package via
    go get
    , you can run it by:
  $GOPATH/bin/server -http=":8080" -https=":8443" -debug
  1. When developing locally, you can
    into the repo cloned by
    go get
  cd $GOPATH/src/

And launch the server by:

  go run server/*.go -http=":8080" -https=":8443" -debug -boltPath=/tmp/bolt.db

Alternatively, you can compile and run it from the source dir in one command:

  go run $GOPATH/src/*.go -http=":8080" -https=":8443" \
    -root=/home/user/data/ -debug -boltPath=/tmp/bolt.db


You can use the provided

file to create your own configuration file, and specify it with the
cd $GOPATH/src/
cp gold.conf-example server/gold.conf

edit the configuration file

nano server/gold.conf

pass the config file when launching the gold server

$GOPATH/bin/server -conf=$GOPATH/src/

To see a list of available options:

~/go/bin/server -help

Some important options and defaults:

  • -conf
    - Optional path to a config file.
  • -debug
    - Outputs config parameters and extra logging. Default:
  • -root
    - Specifies the data root directory which
    will be serving. Default:
    (so, likely to be
  • -http
    - HTTP port on which the server listens. For local development, the default HTTP port,
    , is likely to be reserved, so pass in an alternative. Default:
    . Example:
  • -https
    - HTTPS port on which the server listens. For local development, the default HTTPS port,
    , is likely to be reserved, so pass in an alternative. Default:
    . Example:


To run the unit tests (assuming you've installed

go get
make test




We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.