Install
On OSX
These instructions allow you to install Gin on a OSX developer machine.
Homebrew
The instructions here below describe the installation flow using HomeBrew. If you don't have it installed, you can easily install it by running:
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
PCRE, Lua & LuaJIT
Install Lua 5.1 (the version that runs in OpenResty) Perl Compatible Regular Expressions & LuaJIT
$ brew install lua51 luajit pcre
Note down the installed version, you'll need this information in the next step.
Luarocks
Install Lua's package manager.
Luarocks is installed by default when installing Lua 5.2 with Homebrew, but since we're using Lua 5.1 (for compatibility with OpenResty) we need to install it manually. To do so, download the latest Luarocks from the official repository (at the time of the writing, it's v2.2.2), untar the file and then install it:
$ ./configure
$ make build
$ make install
MySql
If you're planning to use MySql, you'll need to have an installed MySql copy together with its header files so that LuaDBI can be compiled.
Install MySql server and its header files
$ brew install mysqlEnsure that it is installed:
$ mysql --version mysql Ver 14.14 Distrib 5.6.21, for osx10.10 (x86_64) using EditLine wrapperYou may optionally want to start it automatically upon login, if so:
$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgentsTo launch it immediately without rebooting your box:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plistInstall LuaDBI
Now that you have MySql installed with the header files, proceed to install LuaDBI for MySql:
luarocks install luadbi-mysqlYou may need to specify where to find the MySQL header files, like so:
luarocks install luadbi-mysql MYSQL_INCDIR=/usr/local/opt/mysql/include/mysqlThis additional driver is not needed by OpenResty since it has its own embedded driver. LuaDBI is used by Gin to run the console and the migrations.
PostgreSql
If you're planning to use PostgreSql, you'll need to have an installed PostgreSql copy together with its header files so that LuaDBI can be compiled.
Install PostgreSql server and its header files
$ brew install postgresqlEnsure that it is installed:
$ psql --ver psql (PostgreSQL) 9.3.5You may optionally want to start it automatically upon login, if so:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgentsTo launch it immediately without rebooting your box:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plistTry to login with the default
postgresrole:$ psql -U postgres psql (9.3.5) Type "help" for help. postgres=#If previous instruction returns an error because your database isn't initialized yet, just issue the command:
initdb /usr/local/var/postgresIf trying to login with the default user returns the error
psql: FATAL: role "postgres" does not exist, then simply create the default role:$ createuser -s postgresInstall LuaDBI
Now that you have MySql installed with the header files, proceed to install LuaDBI for PostgreSql:
luarocks install luadbi-postgresqlThis additional driver is not needed by OpenResty since it has its own embedded driver. LuaDBI is used by Gin to run the console and the migrations.
OpenResty
Gin runs on OpenResty, a customized bundle of Nginx.
Install OpenResty
Go to OpenResty in the downloads section and grab the latest release. Then:
$ wget http://openresty.org/download/ngx_openresty-{VERSION}.tar.gz $ tar -zxvf ngx_openresty-{VERSION}.tar.gz $ cd ngx_openresty-{VERSION}/ $ ./configure \ --with-cc-opt="-I/usr/local/Cellar/pcre/{PCRE-VERSION}/include" \ --with-ld-opt="-L/usr/local/Cellar/pcre/{PCRE-VERSION}/lib" \ --with-luajit $ make $ make installNote: Ensure to properly substitute
{VERSION}and{PCRE-VERSION}with OpenResty and PCRE versions respectively.If you plan to use PostgreSQL, then you need to have PostgreSQL already installed and the configure step needs to provide the additional option
--with-http_postgres_module:$ ./configure \ --with-cc-opt="-I/usr/local/Cellar/pcre/{PCRE-VERSION}/include" \ --with-ld-opt="-L/usr/local/Cellar/pcre/{PCRE-VERSION}/lib" \ --with-http_postgres_module \ --with-luajitConfigure the PATH to OpenResty
Assuming you have installed OpenResty into
/usr/local/openresty(this is the default), make the nginx executable of your OpenResty installation available in the PATH environment, appending at the end of~/.bash_profile:export PATH=/usr/local/openresty/nginx/sbin:$PATHCheck to see if OpenResty got successfully installed (you might need to
source ~/.bash_profileor just restart the terminal for this to work):$ nginx -v nginx version: openresty/1.9.3.1
Gin
To install the latest Gin, issue the command:
$ luarocks install --server=http://gin.io/repo gin
Check if the Gin client got correctly installed:
$ gin
/++++/:
NNNNNmm
mNNMNmy
.dNMMNms`
.:+sydMMMMMdyo/-`
`sdmmmNNNMMMMMNmdhhddo
`dMMNNMMMMMMMMMNdhdMMy
`dMMMNMMMMdsymMNdhdNMy
`dMMMNNho-....:shhdNMy
`dMMdo-......`.``:sNMy
`dd/........-..````-hy
`:...--.`----..`````.-
``//+- G I N .+-/`
`:..-..``-...-.`.`.``-
`hs-```-./.:`-/`.```os
`hNms-.``.-.-.````+mmy
`hNNNNh+.-:---`-smNNmy
`hNNNMMMNy+.:sdNNNNNmy`
`dNNNNMMMMMNNNNNNNNNNy`
`hNNNNNMMMMMMMMNNmNNNy`
./osyhhddddddhhyss+:`
GIN v0.1.4, a JSON-API web framework.
Usage: gin COMMAND [ARGS]
The available gin commands are:
new [name] Create a new Gin application
start Starts the Gin server
stop Stops the Gin server
console Start a Gin console
generate migration Create a new migration
migrate Run all migrations that have not been run
migrate rollback Rollback one migration
If you can see this, consider your installation of Gin a success!
You can now proceed to Getting Started to create your first Gin app.