Another open source analogue of Github

    At this point in time, there are the following github alternatives:
    • Github fi itself (costs $ 5000, not open source)
    • Gitorious (open source, written in RoR, uses ActiveMQ, in short - the beast machine)
    • Recent gitlab (open source, written in ruby)

    I would like to add my application to this list. Maybe it’s still useful to someone. What's inside:

    • Written in Scala
    • Used Lift
    • Storage - MongoDB
    • "Own" implementation of git, ssh, http daemon. The first using Apache Mina Core, and the second Mina SSHD, the last with Rest from Lift
    • For work with git JGit is used

    I can boast that it is put easier than competitors (both on linux and on windows, subject to the presence of Mongo):
    $ git clone git://github.com/btd/luna.git
    $ cd luna
    $ sbt package
    $ mkdir  $JETTY_HOME/repo (дефолтовая папка для хранения пользовательских реп)
    $ mv ./target/scala-2.9.1.final/получившийся.war $JETTY_HOME/webapps/
    

    Honestly, I can not boast that everything works perfectly - there are bugs, I try to fix it as I find it.
    Now my application can do the following things:
    • User management. Users can add repositories to themselves, add collaborators to repositories.
    • Repository management. You can set individual keys for the repository, fork. Public / Private Repositories
    • Pull Requests
    • Commit history, view source tree on commit and view diff
    • Access via ssh (read and write), git (read), http (read and write)
    • Push notifications by email. Camel is used so that in practice other transports can be added.

    Profit for me:
    • Learned scala and lift (this is my first scala app)
    • Learned a bunch of new things about git
    • Studied the Apache Mina library, Apache Camel, JGit. Opened issue, added functionality (patches accepted).
    • Another competitor to the systems at the beginning of the article



    References and clarifications:

    Also popular now: