Make your own badges here!
npm install gh-badges
var badge = require('gh-badges');
badge({ text: [ "build", "passed" ], colorscheme: "green" },
function(svg, err) {
// svg is a String… of your badge.
});
npm install -g gh-badges
badge build passed :green .png > mybadge.png
# Stored a PNG version of your badge on disk.
To run the server you will need the following executables on your Path:
On an OS X machine, Homebrew is a good package manager that will allow you to install them.
On Ubuntu / Debian: sudo apt-get install phantomjs libcairo2-dev libjpeg-turbo8-dev
.
git clone https://github.com/badges/shields.git
cd shields
npm install # You may need sudo for this.
sudo node server
The server uses port 80 by default, which requires sudo
permissions.
There are two ways to provide an alternate port:
PORT=8080 node server
node server 8080
The root gets redirected to http://shields.io.
For testing purposes, you can go to http://localhost/try.html
.
You should modify that file. The "real" root, http://localhost/index.html
,
gets generated from the try.html
file.
The format is the following:
{
/* Textual information shown, in order. */
"text": [ "build", "passed" ],
"format": "svg", // Also supports "json".
"colorscheme": "green"
/* … Or… */
"colorA": "#555",
"colorB": "#4c1"
}
If you want to add a colorscheme, head to colorscheme.json
. Each scheme has a
name and a CSS/SVG color for the color used in the first box (for the first
piece of text, field colorA
) and for the one used in the second box (field
colorB
).
"green": {
"colorB": "#4c1"
}
Both colorA
and colorB
have default values. Usually, the first box uses the
same dark grey, so you can rely on that default value by not providing a
"colorA"
field (such as above).
You can also use the "colorA"
and "colorB"
fields directly in the badges if
you don't want to make a color scheme for it. In that case, remove the
"colorscheme"
field altogether.
Because of the usage of the npm module canvas you need to have cairo installed.
For more information check the wiki of the canvas project with system-specific installation details.
Once you have installed the Heroku Toolbelt:
heroku login
heroku create your-app-name
heroku config:set BUILDPACK_URL=https://github.com/mojodna/heroku-buildpack-multi.git#build-env
cp /path/to/Verdana.ttf .
make deploy
heroku open
You can build and run the server locally using Docker. First build an image:
$ build -t shields ./
Sending build context to Docker daemon 3.923 MB
Step 0 : FROM node:0.12.7-onbuild
…
Removing intermediate container c4678889953f
Successfully built 4471b442c220
Then run the container:
$ docker run --rm -p 8080:80 shields
> gh-badges@1.1.2 start /usr/src/app
> node server.js
http://[::1]:80/try.html
Assuming Docker is running locally, you should be able to get to the application at http://localhost:8080/try.html. If you run Docker in a virtual machine (such as boot2docker or Docker Machine) then you will need to replace localhost
with the actual IP address of that virtual machine.
- DNS round-robin between https://vps197850.ovh.net/try.html and https://vps244529.ovh.net/try.html.
- Self-signed TLS certificates, but
img.shields.io
is behind CloudFlare, which provides signed certificates. - Using node v0.12.7 because later versions, combined with node-canvas, give inaccurate badge measurements.
- Using forever (the node monitor) to automatically restart the server when it crashes.
See https://github.com/badges/ServerScript for helper admin scripts.
See h5bp/lazyweb-requests#150 for a story of the project's inception.
This is also available as a gem badgerbadgerbadger
, code here.
All work here is licensed CC0.