I always forget to add an MIT-license.txt file to my projects, so I wanted to link to a single resource that would always be up to date and would always have my details online.
Why keep this to myself, there's two ways to create your own MIT license page:
- Make a request to the API (details below)
- Fork this project and send a pull request
Now I can always include http://rem.mit-license.org in all my projects which links rem
(the cname) against my copyright holder name Remy Sharp
- all stored in the users
directory.
You can fork this project, send me a pull request and wait for me to pull (which I'll do as quickly as possible) or if the user is still available you can do it yourself from the command line:
curl -d'{ "copyright": "Remy Sharp" }' https://rem.mit-license.org
If the rem
user isn't taken already, then this will create the new user file on the fly and the url will be immediately available.
You can send a full JSON file to the API, not just the copyright, so this works too:
curl -d'{ "copyright": "Remy Sharp", "url": "http://remysharp.com", "email": "me@mysite.com", "format": "txt" }' https://rem.mit-license.org
If there's any problems in the automated creation, send me a pull request and it'll go live soon after.
Equally if you need to update the user file to include more details that you didn't initially include (extra fields in the next section) you will need to send a pull request on that user.json
file via GitHub.
The users
directory contains a list of files, each representing a host on mit-license.org. The minimum requirement for the JSON is that is contains a copyright
field - everything else is optional. Remember to ensure the user.json
file is valid JSON.
Available fields:
- copyright (required)
- url
- format
- gravatar
- version
- theme
Create a new file and give it the name of the CNAME you want (in my case it's rem.json
). This file contains a JSON object containing at least a copyright
property:
{
"copyright": "Remy Sharp, http://remysharp.com"
}
Means I can now link to: http://rem.mit-license.org and it will show my license name (note that the date will always show the current year).
In addition to the copyright
property, if you want to make a link from the copyright text, you can include a url
property:
{
"copyright": "Remy Sharp, http://remysharp.com",
"url": "http://remysharp.com"
}
You can also include a link to your email which is displayed after the copyright notice using the email
property (note the mailto:
is automatically added):
{
"copyright": "Remy Sharp, http://remysharp.com",
"url": "http://remysharp.com",
"email": "me@mysite.com"
}
And if you want your license to appear as plain text, just add the format
property (currently only txt
and html
are supported):
{
"copyright": "Remy Sharp, http://remysharp.com",
"url": "http://remysharp.com",
"format": "txt"
}
And if you want to show your gravatar, just add the gravatar
boolean property:
{
"copyright": "Remy Sharp, http://remysharp.com",
"url": "http://remysharp.com",
"email": "me@mysite.com",
"gravatar": true
}
Note that the gravatar requires the email property. You also need to check the compatibility of the chosen theme. Currently, only the default theme supports Gravatar.
License version targeting allows you to link your MIT license to a specific revision in this project - therefore fixing it permanently to a specific license text.
Though I don't expect the license text to change ever, this is just some extra assurance for you.
Targeting requires the sha from the license commit. This can be specified on the URL (in your permalink) or in the JSON file.
For example: http://rem.mit-license.org/a526bf7ad1 (make sure to view-source) shows an older version of the LICENSE.html file (compared to the latest version - the older version didn't have the new themes).
This can also be targeted in my JSON file:
{
"copyright": "Remy Sharp, http://remysharp.com",
"url": "http://remysharp.com",
"version": "a526rbf7"
}
Note that if no version is supplied, the latest copy of the LICENSE.html will be displayed with your information included.
If you've got an eye for design (or like me: not): you can contribute a theme by adding a CSS file to the themes
directory. The default theme is simple and clean, but you can add your own as you like.
To use a theme, add the theme
property to your user.json
file, for example:
{
"copyright": "Remy Sharp, http://remysharp.com",
"url": "http://remysharp.com",
"theme": "flesch"
}
Current available themes:
- default - preview (by @remy, @raphaelbastide & @evertton)
- flesch - preview (by @flesch)
- eula-modern - preview (by @sauerlo)
- afterdark - preview (by @rmartindotco)
- orange - preview (by @kirbylover4000)
- plaintext - preview (by @barberboy)
- double-windsor - preview (by @desandro)
- cherry - preview (by @mustafa-x)
- white cherry - preview (by @mustafa-x)
- blackwood - preview (by @mustafa-x)
- hipster-gray - preview (by @noformnocontent)
- xtansia - preview (by @tomass1996)
- magic-mint - preview (by @ekhager)
- default-dark - preview (by @remy, @raphaelbastide & @evertton)
- black-beauty - preview (by @evertton)
- silver-style - preview (by @dev-dipesh)
- friendly - preview (by @evertton)
- opensans - preview (by @pburtchaell)
- solarized - preview (by @anmoljagetia)
- willpower - preview (by @willpowerart)
- rokkitt - preview (by @luizpicolo)
- mitserrat - preview (by @WouterJanson)
- material - preview (by @ahaasler). Available colours: blue gray (default), red, pink, purple, deep purple, indigo, blue, light blue, cyan, teal, green, light green, lime, yellow, amber, orange, deep orange, brown and grey. To use a specific colour, add it as a dash-separated suffix on the theme name, such as
material-deep-orange
. - hmt-blue - preview (by @J2TeaM)
- dusk - preview (by @georapbox)
- 8bits - preview (by @jorge-matricali). Available colours: monochrome, monochrome-white, monochrome-blue-white. To use a specific colour, add it as a dash-separated suffix on the theme name, such as
8bits-monochrome
.
The following types of requests can be made to this project:
- http://rem.mit-license.org/ HTML, or the default format specified in
the json file (currently none specified on
rem
) - http://rem.mit-license.org/license.html HTML
- http://rem.mit-license.org/license.txt Text
- http://rem.mit-license.org/a526bf7ad1 a526bf7ad1 version, HTML, or the
default format specified in the json file (again, none specified for
rem
so defaults to HTML) - http://rem.mit-license.org/a526bf7ad1/license.html a526bf7ad1 version, HTML
- http://rem.mit-license.org/a526bf7ad1/license.txt a526bf7ad1 version, text
The url also supports including a start year:
- http://rem.mit-license.org/2009/ will show a license year range of 2009-2016 (2016 being the current year)
- http://rem.mit-license.org/2009-2010 allows me to force the year range
- http://rem.mit-license.org/a526bf7ad1/2009-2010/license.txt a526bf7ad1 version, with year range of 2009-2010 in plain text
Finally, the url also supports pinning the year
- http://rem.mit-license.org/@2009 this is useful for when your software copyright should expire (as discussed here)
Aside from code contributions that make the project better, there are a few other specific ways that you can contribute to this project.
Development contributions from:
SSL and wildcard DNS is supported by CloudFlare - thank you 🙏💙
I host the domain with namecheap.com and yearly renewal is $9.69 per year. If you want to contribute a year, send me a message and I'll add the years on.
Of course I'll do my best to continue running the domain and hosting, but this is your chance to contribute to the community project.
Domain contributions:
- remy - 2011-2012
- barberboy - 2012-2013
- paulirish - 2013-2014
- batuhanicoz - 2014-2015
- buritica - 2015-2016
- adamstrawson - 2016-2018 (2 years)
- keithamus - 2018-2026 (8 years)
- pmuellr - 2026-2027
- danielknell - 2027-2029 (2 years)
- barberboy - 2029-2030
- mostly-magic - 2030-2032
Please note that the whois says 2021 as you can only have 10 active registered years with ICANN - but the domain is set to auto-renew, so it's all good :)
For the first 5 years mit-license.org was hosted on my own dedicated server, but I've now moved to Heroku and am paying a monthly fee. If you would like to donate please donate here include a message and I will add your name to the credit. Hosting is currently costs $7 per month, if you want to donate in months or years, it's gratefully received ❤
Hosting contributions:
- remy - 2011-2016 Apr...
- therebelrobot 1 month
- mkody 2 months
- dan9186 1 year
- Kristin Anthony 1 year
- zhengyi-yang 5 months
- catodd 2 months
- lrz0 1 month
- jorge-matricali 3 months
- youchenlee 12 months
- ramsey 12 months
- rmm5t 1 month
- wrainaud 3 months
- romkey 12 months
- kylewelsby 6 months
- wiesner 1 month
- you?
I'm a developer, I seem only capable of grey! If you're a designer and want to contribute a decent lick of paint on the project that would be super. Just create a new theme and send me a pull request.
And of course: