GitSSH2 is an open source Git web interface client built on Symfony's PHP framework. It can connect to remote servers over ssh and run git commands such as commit, branch, push, pull, etc.
Have multiple git repositories grouped under a single project.
List all files on a remote server project. Not just the files under version control.
Use the systems issue tracker, or integrate with Github or Gitlab issue tracker
Create users with different access controls. Have different users commit to the same git repo but still have different author names
Don't scare new users with all options showing on one screen
See history for any branch and search commits by message, author or content
When it comes to installing, you have the following options.
If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:
$ curl -s http://getcomposer.org/installer | php
Create a new folder somewhere under your web server root directory ( eg /var/www/gitssh2/) and run the following command:
php -d memory_limit=-1 composer.phar create-project -s dev sshversioncontrol/git-web-client
If composer is install globally then just run the command:
$ composer create-project -s dev sshversioncontrol/git-web-client
Composer will install the project and all its dependencies under the current directory.
You can also download a zip of the GIT Web Interface Client and unpack it somewhere under your web server root directory. You will still need to run composer to download other dependencies.
$ curl -s http://getcomposer.org/installer | php
$ php -d memory_limit=-1 composer.phar install
$ composer install
You will be prompted to enter in the database configuration. Please check the app/config/parameters.yml to make sure that the database settings are correct
Execute the check.php script from the command line, to check your system config:
$ php app/check.php
The script returns a status code of 0 if all mandatory requirements are met, 1 otherwise.
If the database is not already created run:
$ php app/console doctrine:database:create
To install the schema and inital data run the following command:
$ php app/console version:install
To create a new administrator run the following command:
$ php app/console version:admin:create
Below are examples of 3 different web servers configurations that you can use:
The minimum configuration to get the application running under Apache is:
<VirtualHost *:80>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/project/web
<Directory /var/www/project/web>
AllowOverride All
Order Allow,Deny
Allow from All
</Directory>
# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeScript assets
# <Directory /var/www/project>
# Options FollowSymlinks
# </Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>
The minimum configuration to get the application running under Nginx is:
server {
server_name domain.tld www.domain.tld;
root /var/www/project/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
# DEV
# This rule should only be placed on your development environment
# In production, don't include this and don't deploy app_dev.php or config.php
location ~ ^/(app_dev|config)\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# When you are using symlinks to link the document root to the
# current version of your application, you should pass the real
# application path instead of the path to the symlink to PHP
# FPM.
# Otherwise, PHP's OPcache may not properly detect changes to
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
# PROD
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# When you are using symlinks to link the document root to the
# current version of your application, you should pass the real
# application path instead of the path to the symlink to PHP
# FPM.
# Otherwise, PHP's OPcache may not properly detect changes to
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this
internal;
}
error_log /var/log/nginx/project_error.log;
access_log /var/log/nginx/project_access.log;
}
If you just want to test out the application you can use the default php webserver. You will not need to configure anything, but this will run slower:
$ php app/console server:run