k4200’s notes and thoughts

Programmer side of k4200

Lifthub is now in alpha. Need some help for testing.

Hi guys,

It's been a week or so since the last update. I've fixed several bugs and added some functionality and I think now is the time to show it to more people. It's far from anything like production level, but I think it's got some interesting concepts. If you're interested, talk to me on Twitter @k4200 or email me at .

Usage

Initial setup
  • Click on the link in the invitation email.
  • Log into the system and change your password of your choice.
  • Go to "Edit User" and register your SSH public key.
Create a project
  • Go to "Create projects".
  • Enter a project name and choose a template type. If you don't know what to choose, go for "Basic".
  • This operation does the following:
    • create a runtime environment (a chroot jail).
    • craate a MySQL database whose name is the same as the project name.
    • create a git repository in Gitosis.
Development

On your local machine,

git clone git+ssh://gitosis@lifthub.net/<project-name>.git

Add/change code, commit, and git push.

phpMyAdmin is available for your database.
http://www.lifthub.net/phpMyAdmin/

The account information is included in the file shown below:
/src/main/resources/props/production.default.props

Deploy
  • Go to "Operations".
  • Click on "Update Workspace".
  • Click on "Update", which corresponds to "sbt update", if need be.
  • Click on "Build", which does "sbt package".
  • Click on "Deploy".
Run

Click on "Start" and you application will run at
http://.lifthub.net/

Architecture

"Project" consists of the following entities:

  • Workspace
  • Gitosis(Git repository)
  • Runtime environment(chroot jail)
  • Database
  • (Other optional components to be added in the future)

See the diagram below.

Issues

  • The biggest problem is that runtime environments are unstable. Scala and Lift work perfect on a standard Linux + Java environment, but we're using chroo for security reasons. We're thinking of switching to FreeBSD jail or Solaris Container.
  • Server resources are limited. Now, we're talking with the cloud service vendor that we use.

It would be appreciated if you could give us some feedback.

Thanks a lot!