All Projects → linkeddata → Gold

linkeddata / Gold

Linked Data server for Go

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Gold

Clean Ts Api
API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles
Stars: ✭ 619 (+342.14%)
Mutual labels:  solid
Zenject Hero
Zenject 7 - Game example (WIP)
Stars: ✭ 44 (-68.57%)
Mutual labels:  solid
Community Server
Community Solid Server: an open and modular implementation of the Solid specifications
Stars: ✭ 117 (-16.43%)
Mutual labels:  solid
Acwa book ru
Книга "Архитектура сложных веб-приложений. С примерами на Laravel"
Stars: ✭ 886 (+532.86%)
Mutual labels:  solid
Go Starter Kit
Go Rest API starter kit / Golang API boilerplate base on Chi framework
Stars: ✭ 35 (-75%)
Mutual labels:  solid
Event Sourcing Castanha
An Event Sourcing service template with DDD, TDD and SOLID. It has High Cohesion and Loose Coupling, it's a good start for your next Microservice application.
Stars: ✭ 68 (-51.43%)
Mutual labels:  solid
Dokieli
💡 dokieli is a clientside editor for decentralised article publishing, annotations and social interactions
Stars: ✭ 582 (+315.71%)
Mutual labels:  solid
Php Programming Best Practices
Referencia para los desarrolladores de Tiendanube y para la comunidad de PHP.
Stars: ✭ 138 (-1.43%)
Mutual labels:  solid
Jsx Lite
Write components once, run everywhere. Compiles to Vue, React, Solid, Angular, Svelte, and Liquid.
Stars: ✭ 1,015 (+625%)
Mutual labels:  solid
No Framework Tutorial
A small tutorial to show how to create a PHP application without a framework.
Stars: ✭ 1,357 (+869.29%)
Mutual labels:  solid
Number Wizard Ui Original
Introducing basic User Interface in the Complete Unity C# Developer 2D course (http://gdev.tv/cudgithub)
Stars: ✭ 18 (-87.14%)
Mutual labels:  solid
Generator Solid Angular
Generator for Solid Angular applications
Stars: ✭ 32 (-77.14%)
Mutual labels:  solid
Solid Email Microservice
Learn the SOLID design principles by building a robust email microservice
Stars: ✭ 84 (-40%)
Mutual labels:  solid
Solid
A declarative, efficient, and flexible JavaScript library for building user interfaces.
Stars: ✭ 13,115 (+9267.86%)
Mutual labels:  solid
Ood Principles In Swift
💎 The Principles of OOD (SOLID) based on Uncle Bob articles.
Stars: ✭ 1,710 (+1121.43%)
Mutual labels:  solid
Phpcs Calisthenics Rules
Object Calisthenics rules for PHP_CodeSniffer
Stars: ✭ 605 (+332.14%)
Mutual labels:  solid
Profile Editor
WebID profile editor
Stars: ✭ 45 (-67.86%)
Mutual labels:  solid
Android Modular Architecture
📚 Sample Android Components Architecture on a modular word focused on the scalability, testability and maintainability written in Kotlin, following best practices using Jetpack.
Stars: ✭ 2,048 (+1362.86%)
Mutual labels:  solid
Information
Old location of information now available on site
Stars: ✭ 133 (-5%)
Mutual labels:  solid
Cimba
Client-Integrated Micro-Blogging Architecture application
Stars: ✭ 97 (-30.71%)
Mutual labels:  solid

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:

    • Mac OS X: brew install go
    • Ubuntu: sudo apt-get install golang-go
    • Fedora: sudo dnf install golang
  2. Set the GOPATH variable (required by Go):

    mkdir ~/go
    export GOPATH=~/go
    

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

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

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

    go get github.com/linkeddata/gold/server
    
  5. 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
  6. (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 -boltPath=/tmp/bolt.db

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 -boltPath=/tmp/bolt.db

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

Notes

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].