Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


LuaRocks website and module host

Subscribe to updates I use luarocks-site

Statistics on luarocks-site

Number of watchers on Github 91
Number of open issues 30
Average time to close an issue about 2 months
Main language MoonScript
Average time to merge a PR 9 days
Open pull requests 3+
Closed pull requests 7+
Last commit over 2 years ago
Repo Created almost 8 years ago
Repo Last Updated over 2 years ago
Size 970 KB
Homepage http://luarocks.org
Organization / Authorluarocks
Latest Releasev2016.9.30
Page Updated
Do you use luarocks-site? Leave a review!
View open issues (30)
View luarocks-site activity
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating luarocks-site for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)



Build Status

The official module repository of the LuaRocks package manager for Lua.

The entire site runs on OpenResty, an Nginx based platform with Lua support. The site itself is coded in MoonScript and uses Lapis as a web framework.

Files are stored on Google Cloud Storage. PostgreSQL is used as a database.

Tup is the build system.

How To Run Locally

Install the following dependencies:

Check out this repository.

Install the dependencies listed in https://github.com/luarocks/luarocks-site/blob/master/BoxFile with LuaRocks.

Run these commands to build.

tup init

Create the schema:

make init_schema

Start the server:

lapis server

Now http://localhost:8080 should load.

If you edit any MoonScript or SCSS files you should call tup to rebuild the changes. You can run tup monitor -a to watch the filesystem to rebuild.

Running tests

This site uses Busted for its tests:

make test_db

The make test_db command will copy the schema of the moonrocks local database into the test database, wiping out what whatever was there. You'll only need to run this command once and the beginning any any time the schema has changed.

Setting up Google Cloud Storage

In production all files are stored on Google Cloud Storage. With no configuration (default), files are stored on the file system using the storage bucket mock provided by the cloud_storage rock.

To configure cloud_storage to talk to a live bucket make a file secret/storage_bucket.moon, it must return a bucket instance. It might look something like:

-- secret/storage_bucket.moon
import OAuth from require "cloud_storage.oauth"
import CloudStorage from require "cloud_storage.google"

o = OAuth "NUMBER@developer.gserviceaccount.com", "PRIVATEKEY.pem"
CloudStorage(o, "PROJECT_ID")\bucket "BUCKET_NAME"

Setting up email

If you want to test sending emails you'll have to provide Mailgun credentials. A test account is free. Create a file secret/email.moon and make it look something like this: (it must return a table of options)

{ -- secret/email.moon
  key: "api:key-MY_KEY"
  domain: "mydomain.mailgun.org"
  sender: "MoonRocks <postmaster@mydomain.mailgun.org>"
luarocks-site open issues Ask a question     (View All Issues)
  • almost 4 years Inconsisten "usage" documentation for "--trees" and/or "--to"
  • almost 4 years i want publish Recent Manifest RSS
  • about 4 years error 500 on luarocks.org/upload
  • over 4 years GET https://luarocks.org/manifest-5.3.zip does not return last-modified header
  • over 4 years Providing some additional stats on rocks would be very helpful.
  • over 4 years General search improvement
  • almost 5 years Growing community and namespace collisions
  • almost 5 years don't show "dependency for" modules that aren't in root (or same) manifest
  • about 5 years https://luarocks.org/manifest always returns http code 200 (instead of 304)
  • about 5 years Improve "daily modules downloads stats" on welcome page
  • about 5 years Sort list of modules on user page
  • about 5 years Dependencies aren't listed correctly
  • about 5 years copy contents of all rockspecs into database
  • about 5 years Registering via GitHub
  • over 5 years Custom manifests do not have machine-readable /manifest files
  • over 5 years Manifest moderation
  • over 5 years keywords to search by ?
  • over 5 years Descriptions of modules are not updated
  • over 5 years JSON API
  • over 5 years Docker distribution
  • over 5 years Support formatting in descriptions
  • about 6 years Warnings about name collision of modules
  • about 6 years Proposal. Add badges to repos.
luarocks-site open pull requests (View All Pulls)
  • Lua Toolbox merge
  • [WIP] Send an weekly email digest to users
  • [WIP] Create Update Feed
luarocks-site list of languages used
luarocks-site latest release notes
v2016.9.30 Lua Toolbox merge

We've just updated LuaRocks.org to merge all the data from Lua Toolbox. Lua Toolbox is a Lua module listing that lets people apply labels to modules to classify them, and endorse them to support them. We've brought over the data from Lua Toolbox to make it part of LuaRocks.org.

Thank you to everyone involved in the pull request.


Modules on LuaRocks.org can now have labels. Conceptually they're just like tags you might see on other websites. We've imported all the labels from Lua Toolbox as a starting set. Module owners can edit labels by going to the edit page for their module. We've provided a set of suggested labels, but you're free to use any label you want. If you're a module owner we recommend checkout out the tags applied to your modules, if any, to ensure they're relevant.

You can browse all the labels available on the homepage, and any labels applied to a module are visible on that module page.

Endorsements to follows

Endorsements on Lua Toolbox are a way to tell someone that you approve of a module. LuaRocks.org exposes the ability to follow a module. We've decided to map endorsements to follows. Because not everyone may want to follow everything they've endorsed , it's been implemented as an opt-in tool.

From your account settings page you can find a new Lua Toolbox tab where you can convert your endorsements to follows. We use the email you've provided to LuaRocks.org to look up your endorsements from the Lua Toolbox database. If your email addresses don't match up, send us an email and we'll transfer them manually.

You can either convert all of them at once, or manually click through and follow the ones you're interested in.

Future of follows

At the moment, following a module doesn't do much. For our next release we plan to add the ability to be notified of new version updates to modules you follow via a feed on the site or an email.


Other projects in MoonScript
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark