Giter VIP home page Giter VIP logo

gitty's Introduction

Gitty Overview

Gitty is an open-source reduced-functionality Github clone.

On the bright side, you have full access to the source code, so you can add that feature that you always wished GitHub would have! (Please send a pull request if you do!) You can also install it behind your firewall for free.

Dependencies

Gitty relies on git, openssh, and MySQL.

On Fedora:

sudo yum install -y git openssh-server mysql-devel mysql-server
sudo systemctl enable mysqld.service sshd.service
sudo systemctl start mysqld.service sshd.service

On Ubuntu:

sudo apt-get install -y git libmysqlclient-dev libssl-dev \
    mysql-client mysql-server openssh-server

If you're using Homebrew, use the following to install MySQL.

brew install mysql

Gitty uses markdpwn for source code highlighting, which has its own dependencies. If you can't get markdpwn's dependencies installed, set the markdpwn config var to disabled. (The section below describes config vars.)

Installation

Gitty uses the typical Rails 3.x setup sequence.

bundle install
bundle exec rake db:create db:migrate db:seed

Gitty needs a dedicated user for git+ssh. To create the user, run the following command, replacing web_user with the name of the user that the Rails server runs under.

script/git_user/setup git web_user

Conventionally, the dedicated user's name is "git". It can be changed by replacing the first argument in the command above, then changing the configuration variable git_user by going to

http://localhost:3000/_/config_vars

The admin username and password are config and vars, respectively. You should probably visit the configuration variables page anyway, to change the admin login and the address used to send e-mails.

http://localhost:3000/_/config_vars

On OSX, openssh requires extra configuration. Go to System Preferences>Sharingand check theRemote Loginoption for openssh. Look nearAllow access for:and see if theOnly these usersoptions is checked (recommended). If it is, add thegit` user to the list of allowed users.

Sadly, if using Only these users option, you'll have to temporarily switch to All users when running integration tests.

Development

Model and controller diagrams might help you wrap your head around the source code.

bundle exec rake diagram:all

The documentation for the ActiveRecord models assumes knowledge of the git object model

An easy way to seed your development server with git data is to push the gitty repository into it. Create a user, upload your public SSH key, then create a gitty repository. Run the following commands in the gitty source tree to set up a dev remote pointing to your local server, and push the repo to it.

git remote add dev git@localhost:your_user_name/gitty.git
git push dev master

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Send me a pull request. Bonus points for topic branches.

Credits

Gitty was developed by Victor Costan and a team of contributors.

The favicon is based on the Matrix Code icon from The Matrix icon pack by Dave Brasgalla.

Copyright

Copyright (c) 2010-2012 Victor Costan, released under the MIT license.

gitty's People

Contributors

christydennison avatar pwnall avatar ushadow avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.