We have liftoff.
Houston is a developer dashboard and backend for converting GitHub repos into
Debian packages. Developers create a repo containing a .apphub file which is
then shown on their dashboard. From there Houston will clone, test, build, and
publish your application to AppHub.
Learn more about the technical details.
- HTML/CSS/JS
- Node.js backend
- GitHub OAuth API via Passport
- MongoDB with Mongoose
- Stripe Connect
- Liftoff (Cody's build scripts, repo currently private)
Houston is the glue between GitHub and our repository system. Ideally when you first create a project on GitHub, you would go to Houston and initialize the repository. This will setup Houston to monitor the repository with GitHub hooks.
When a release is created on GitHub, you will get an option to publish that release in Houston's dashboard. Houston will then clone the repository, run tests on the code, build the code with Liftoff, and publish it to a testing repository. At this point someone from elementary will install the application and continue running tests. This ensures the best performance, user experience, and desktop integration for any application in AppHub.
If any test fails, Houston will submit an issue on GitHub with detailed information on the problems, and in some cases, solutions to fix it. After fixing these issues you will be able to resubmit your application for publishing.
At this point, the approved application will be moved into the stable repo, and available to all users of elementary OS. We will be using aptly behind nginx to host the repository. Ultimately this repository will be the focus of AppCenter and the elementary OS 3rd party app ecosystem.
We'd love your help hacking on Houston! Getting a local development environment set up is easy, and we've prepared a short guide to walk you through step-by-step. Just follow along below, and if you have any issues, don't hesitate to ask for help.
- You'll need to set up Houston's config file,
config.js. Copy the config file template:
cp config.example.js config.js
- Then, create a GitHub OAuth application for testing Houston: https://github.com/settings/applications/new.
Name the application "Houston Local", and set the homepage and callback URLs to your local machine, like this:
Homepage URL: http://localhost:3000
Authorization callback URL: http://localhost:3000/auth/github/callback
It should look something like this:
-
Click 'Register application', and then copy and paste the newly created application's Client ID into
config.jsundergithub.clientIDand copy the Client Secret undergithub.secret.Your
config.jsshould now include a section that looks something like this:
// https://github.com/settings/developers
export const github = {
client: '1e9ec151a7728abaa304',
secret: '9ccde02a1633b27232ee07662b7a688c43018b1f',
// Post data to GitHub?
post: false,
// Enable GitHub hooks?
hook: false
}- Install MongoDB
sudo apt-get install mongodb
-
Install node and npm
Depending on your distribution of choice, you might need to download and compile node from the website. Keep in mind that Houston requires node version
4.2.6or above. -
run
npm installto fetch needed dependencies. -
Start the server with
npm run masterand start the slave withnpm run slave.
Open up a browser and visit http://localhost:3000, and you should see the Houston website. Congratulations! Please take this time to read the contributing guidelines before submitting code or issues.

