Giter Club home page Giter Club logo

nikel's Introduction


Nikel API
Nikel API

A collection of data APIs for the University of Toronto.

Build Status Docker Hub Build Status API Status Go Report Card License

DocumentationAPI WrappersSelf HostingConfigurationContributingLicense

Documentation

Nikel API Documentation

API Wrappers

Official

Unofficial

Please feel free to submit a pull request to add your own API wrapper to this list!

Self Hosting

Please consult the configuration section on what environment variables to set.

Using Docker

Deployment via Docker Hub images (recommended)

You can pull Nikel API's prebuilt Docker images from Docker Hub.

  1. Pull the latest image from Docker Hub:
docker pull nikelapi/nikel
  1. Run image (you can tweak variables accordingly)
docker run --publish 8080:8080 --detach --name nikel-core nikelapi/nikel:latest

Deployment via local Docker compose

Make sure that your docker version supports the docker-compose version displayed in the docker-compose.yaml file.

  1. Run docker-compose
docker-compose up -d

Traditional Deployment

Please make sure you have the same go version displayed in the go.mod file. It should usually be the latest stable release. If you are unsure which go version you have, use go version to find out.

Nikel should work on any 32/64 bit system with go installed.

  1. git clone
git clone https://github.com/nikel-api/nikel.git
  1. cd into nikel
cd nikel
  1. Update submodules
git submodule update --init
  1. cd into nikel-core
cd nikel-core
  1. Build nikel-core
go build
  1. Run nikel-core
Windows
./nikel-core.exe

Linux and macOS
./nikel-core

Configuration

  • By default, nikel-core should be listening and serving on port 8080. To change the port, modify the PORT environment variable.
  • To suppress debug logs, add the environment variable GIN_MODE with the value release.
  • To add optional ratelimiting, add the environment variable RATELIMIT with a positive integer value representing the number of reqs/s.

Contributing

For contributing, there are a few things to look out for:

  • Always use go fmt to format code
  • Consult the article Godoc: documenting Go code on how to write docstrings if you aren't 100% sure

If you find any inconsistencies or parts of code that can be reworked, any pull requests are greatly appreciated.

License

MIT

nikel's People

Contributors

darenliang avatar dependabot[bot] avatar bill-ahmed avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.