I am looking for an application that provides some of the basic features of familiar Git web interfaces, such as GitHub, GitLab, and Bitbucket, though I have no requirement for the more advanced features of these systems, such as pull requests and issue tracking.
My limitation is that I use a shared hosting service, which is predominately a LAMP stack (Linux, Apache, MySql/MariaDB, PHP) administrated through a Plesk instance. The service also supports a few other features, such as single-user SSH access, Python and Ruby interpreters, and so on. Although I even have access to GCC, the environment is essentially a minimal Linux stack. As a large number of Web applications can run in this environment, it is in widespread use for low-maintenance, economical hosting solutions.
Writing to system directories and adding shared libraries, however, are impossible. Managing system users is also impossible, as the entire service includes only one user to the shared system.
The restrictive authentication methods of standard Git server components has been a major obstacle for finding a compatible software package.
The requirements thus are summarized:
- Implementation in PHP or as a CGI script runnable with standard Posix components (e.g. Perl, Python, Ruby etc.), such that requests can be dispatched by a standard Apache deployment.
- Graphical web front-end for initializing and browsing repositories, managing users, etc.
- HTTP interface for Git clients, integrated with internal user and credential management, instead of relying on system or web-server credentialing, as in the case for standard Git SSH and HTTP server components.
- Independent of any standalone server process other than the system instance of Apache, which would dispatch individual requests to the application by invoking a new process in a CGI context.
Most applications either have a much simpler feature set (e.g. git-web, GitList), or are designed for installation as a system application (e.g. GitLab, Gogs). Note, please, that even if an application can hypothetically install in user directories, I prefer to consider only applications that solidly support this particular case.
Have I overlooked any options that might be promising solutions to my needs?