Skip to content

reederz/gold

This branch is 97 commits behind linkeddata/gold:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

36f1406 · Feb 6, 2016
Jan 22, 2016
Apr 3, 2014
Feb 17, 2015
Nov 26, 2015
Dec 18, 2015
Feb 6, 2016
Dec 19, 2014
Jan 7, 2016
Dec 18, 2015
Oct 26, 2015
Nov 18, 2015
Dec 14, 2015
Aug 3, 2015
Feb 5, 2015
Oct 26, 2015
Aug 5, 2015
Aug 5, 2015
Jan 22, 2016
Sep 29, 2015
Feb 5, 2015
Feb 12, 2015
Jul 21, 2015
Jul 21, 2015
Apr 18, 2014
Dec 8, 2015
Oct 26, 2015
Dec 8, 2015
Oct 26, 2015
Feb 12, 2015
Jul 13, 2015
Dec 18, 2015
Nov 18, 2015
May 29, 2014
Jan 22, 2016
Jan 22, 2016
Jan 22, 2016
Nov 19, 2015
Jul 9, 2015
Sep 29, 2015
Sep 29, 2015
Feb 13, 2015
Feb 12, 2015
Jan 22, 2016
Dec 3, 2015
Jan 22, 2016
Feb 5, 2015
May 29, 2014
Feb 5, 2015
May 22, 2014
Dec 18, 2015
Dec 18, 2015
Oct 5, 2015
Oct 5, 2015

Repository files navigation

gold

Join the chat at https://gitter.im/linkeddata/gold

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

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

Build Status

Installing

From docker repository:

sudo docker pull linkeddata/gold

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

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

To check the status of the container, type:

sudo docker ps

IMPORTANT: 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, /home/user/data, into the container as the /data/ directory. Doing this will allow you to reuse the data directory without worrying about persistence inside the container.

From Github:

  1. Setup Go + dependencies:
  • Mac OS X: brew install go raptor libmagic
  • Ubuntu: sudo apt-get install golang-go libraptor2-dev libmagic-dev
  1. Set the GOPATH variable (required by Go):
mkdir ~/go
export GOPATH=~/go

(Optionally consider adding export GOPATH=~/go to your .bashrc or profile).

  1. 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.

  1. Use the go get command to install the server and all the dependencies:

    go get github.com/linkeddata/gold/server

  2. (Optional) Install extra dependencies used by the tests:

    go get github.com/stretchr/testify/assert

Running the Server

IMPORTANT: Among other things, gold 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, -root. By default, it will serve files from its current directory (so, for example, if you installed it from Github, its data root will be $GOPATH/src/github.com/linkeddata/gold/). Otherwise, make sure to pass it a dedicated data directory to serve, either using a command-line parameter or the config file. Something like: -root=/var/www/data/ or -root=~/data/.

  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 cd into the repo cloned by go get:
cd $GOPATH/src/github.com/linkeddata/gold

And launch the server by:

go run server/*.go -http=":8080" -https=":8443" -debug

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

go run $GOPATH/src/github.com/linkeddata/gold/server/*.go -http=":8080" -https=":8443" \
  -root=/home/user/data/ -debug

Configuration

You can use the provided gold.conf-example file to create your own configuration file, and specify it with the -conf parameter.

cd $GOPATH/src/github.com/linkeddata/gold/
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/github.com/linkeddata/gold/server/gold.conf

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: false.

  • -root - Specifies the data root directory which gold will be serving. Default: . (so, likely to be $GOPATH/src/github.com/linkeddata/gold/).

  • -http - HTTP port on which the server listens. For local development, the default HTTP port, 80, is likely to be reserved, so pass in an alternative. Default: ":80". Example: -http=":8080".

  • -https - HTTPS port on which the server listens. For local development, the default HTTPS port, 443, is likely to be reserved, so pass in an alternative. Default: ":443". Example: -https=":8443".

Testing

To run the unit tests (assuming you've installed assert via go get github.com/stretchr/testify/assert):

make test

License

MIT

About

Linked Data server for Go

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.1%
  • Other 0.9%