You will need to create an Heroku account if you don't have one already. You'll also need to install the Heroku Toolbelt, which includes the Heroku CLI that we'll be using shortly.
Follow the installation instructions for your platform in the Sailor docs, but essentially all you need is the sailor CLI.
I'm going to use the out-of-the-box Sailor example app. To do that I run:
sailor create 'Hey arnold'
cd hey_arnoldAs you can see, this creates a hey_arnold directory that contains our new project.
Next up we'll let the buildpack know about our dependency. Let's create the file hey_arnold.rockspec in the root of our project, containing the following:
dependencies = {
"sailor >= 0.4"
}We'll also need to tell Heroku what to do to run our app after deployment. To do that we create a file, again in the project root, named Procfile with a single instruction inside:
web: lua start-server.lua $PORT
Notice that $PORT variable? Heroku will tell us which port to use, so we need to update start-server.lua file to respect that.
Somewhere near the top of the file, define a variable port and set it to value passed into the script:
local port = tonumber(...) or 8080Finally, use that value when setting up Xavante:
xavante.HTTP{
server = {host = "*", port = port},
-- ...
}That's all you need to do in your app. Let's deploy...
We deploy our app to Heroku using Git, but first we'll need to do a little admin. We'll login using the Heroku CLI, then create a new app and repo:
heroku loginYou'll be asked for your credentials.
Now we create the new app and configure it to use the awesome Lua buildpack from @leafo. Replace mysailorapp with the name of your app, bearing in mind that the name you choose here will end up in the default URL for your app.
heroku create mysailorapp --buildpack https://github.com/leafo/heroku-buildpack-luaNext we need to set up the new Heroku app repo as a remote. To do that we need find out what the new remote Git URL is (remember to replace mysailorapp with the name of your app):
heroku apps:info -a mysailorappIt'll probably look something like https://git.heroku.com/mysailorapp.git. Note also the Web URL, you'll need that to take a look after deploy.
As our app is is fresh out of the box, we need to initialise it as a Git repo before setting the remote host. (Obviously, if you've already set up your project as a Git repo, don't do the first step).
git init
git remote add heroku https://git.heroku.com/mysailorapp.git
git add .
git commit -m 'Initial commit'
git push heroku masterThe last command will kick off the deploy and you'll see the logs flash by. When it's done, navigate to the Web URL from above (something like https://mysailorapp.herokuapp.com/) and enjoy.
From now on, you only need to commit and push to the heroku remote to deploy again and again.