56 lines
2.1 KiB
Plaintext
56 lines
2.1 KiB
Plaintext
|
# Accessing git repositories over HTTP
|
||
|
|
||
|
Starting with indefero 1.2, git repositories are provided via http,
|
||
|
featuring read-only and read-write access with full integration with
|
||
|
indefero's access control mechanisms.
|
||
|
|
||
|
## Access git repositories
|
||
|
|
||
|
The repositories are available under http://YOURHOST/BASEPATH/r/PROJECT.
|
||
|
|
||
|
For authentication, use the "extra password" which you can find on your
|
||
|
profile page.
|
||
|
|
||
|
## Setup
|
||
|
|
||
|
The main thing to setup is git_repositories and git_remote_url in
|
||
|
src/IDF/conf/idf.php
|
||
|
|
||
|
git_remote_url should match http://YOURHOST/BASEPATH/r/%s, while
|
||
|
git_repositories points to the local directory supposed to contain the
|
||
|
repositories like /PATH/TO/REPOSITORIES/%s.git.
|
||
|
|
||
|
## Setup requirements when using PHP over FastCGI
|
||
|
|
||
|
There are a couple of things to setup when using PHP over FastCGI, as compared
|
||
|
to mod_php or similar integrated mechanisms:
|
||
|
|
||
|
- You will need to setup a RewriteRule for mod_rewrite (in case of Apache,
|
||
|
analogous mechanisms might need to be setup for other http daemons), which
|
||
|
passes through the Authorization HTTP Header of a request.
|
||
|
|
||
|
In case of mod_rewrite, the necessary line is:
|
||
|
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
|
||
|
|
||
|
- The FastCGI adaptor must allow large requests to be handled by PHP,
|
||
|
otherwise push might fail.
|
||
|
|
||
|
For mod_fcgid, this is the FcgidMaxRequestLen option, or MaxRequestLen in
|
||
|
older versions. Set this option to some large enough value - there is no
|
||
|
issue with RAM use, as another option defines the limit after which the
|
||
|
request is backed on disk, which can remain small.
|
||
|
|
||
|
## When migrating from syncgit
|
||
|
|
||
|
HTTP access can be used in parallel to syncgit.
|
||
|
|
||
|
If you want to disable syncgit, just undo the changes detailled
|
||
|
in doc/syncgit.mdtext:
|
||
|
- In src/IDF/conf/idf.php keep git_repositories
|
||
|
- In src/IDF/conf/idf.php adapt git_remote_url to http://host/basepath/r/%s
|
||
|
- In src/IDF/conf/idf.php remove idf_plugin_syncgit*
|
||
|
- Remove the cronjob that called gitcron.php
|
||
|
- Disable the git daemon (eg. /etc/event.d/local-git-daemon)
|
||
|
- You can remove the git user and group, if you also adapt the git repositories
|
||
|
to be owned by the www user.
|