mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
A new feature in Git allows for omitting "have" lines corresponding to refs outside the current Git namespace. Explain how to enable this feature in the INSTALL instructions and in the Git interface documentation. Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
81 lines
2.7 KiB
Text
81 lines
2.7 KiB
Text
Setup on Arch Linux
|
|
===================
|
|
|
|
1) Clone the AUR project:
|
|
|
|
$ cd /srv/http/
|
|
$ git clone git://projects.archlinux.org/aurweb.git
|
|
|
|
2) Setup a web server with PHP and MySQL. Configure the web server to redirect
|
|
all URLs to /index.php/foo/bar/. The following block can be used with nginx:
|
|
|
|
server {
|
|
listen 80;
|
|
server_name aur.local aur;
|
|
|
|
root /srv/http/aurweb/web/html;
|
|
index index.php;
|
|
|
|
location ~ ^/[^/]+\.php($|/) {
|
|
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
|
|
fastcgi_index index.php;
|
|
fastcgi_split_path_info ^(/[^/]+\.php)(/.*)$;
|
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
fastcgi_param PATH_INFO $fastcgi_path_info;
|
|
include fastcgi_params;
|
|
}
|
|
|
|
location ~ .* {
|
|
rewrite ^/(.*)$ /index.php/$1 last;
|
|
}
|
|
}
|
|
|
|
3) Copy conf/config.proto to conf/config and adjust the configuration (pay
|
|
attention to disable_http_login, enable_maintenance and aur_location).
|
|
|
|
4) Create a new MySQL database and a user and import the AUR SQL schema:
|
|
|
|
$ mysql -uaur -p AUR </srv/http/aurweb/schema/aur-schema.sql
|
|
|
|
5) Create a new user:
|
|
|
|
# useradd -U -d /srv/http/aurweb -c 'AUR user' aur
|
|
|
|
6) Initialize the Git repository:
|
|
|
|
# mkdir /srv/http/aurweb/aur.git/
|
|
# cd /srv/http/aurweb/aur.git/
|
|
# git init --bare
|
|
# git config --local transfer.hideRefs '^refs/'
|
|
# git config --local transfer.hideRefs '!refs/'
|
|
# ln -s ../../git-interface/git-update.py hooks/update
|
|
# chown -R aur .
|
|
|
|
7) Install the git-auth wrapper script:
|
|
|
|
# cd /srv/http/aurweb/git-interface/
|
|
# make && make install
|
|
|
|
8) Configure sshd(8) for the AUR. Add the following lines at the end of your
|
|
sshd_config(5) and restart the sshd. Note that OpenSSH 6.9 or newer is
|
|
needed!
|
|
|
|
Match User aur
|
|
PasswordAuthentication no
|
|
AuthorizedKeysCommand /usr/local/bin/aur-git-auth "%t" "%k"
|
|
AuthorizedKeysCommandUser aur
|
|
|
|
9) If you want to enable smart HTTP support with nginx and fcgiwrap, you can
|
|
use the following directives:
|
|
|
|
location ~ "^/([a-z0-9][a-z0-9.+_-]*?)(\.git)?/(git-(receive|upload)-pack|HEAD|info/refs|objects/(info/(http-)?alternates|packs)|[0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(pack|idx))$" {
|
|
fastcgi_pass unix:/run/fcgiwrap.sock;
|
|
include fastcgi_params;
|
|
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
|
|
fastcgi_param PATH_INFO /aur.git/$3;
|
|
fastcgi_param GIT_HTTP_EXPORT_ALL "";
|
|
fastcgi_param GIT_NAMESPACE $1;
|
|
fastcgi_param GIT_PROJECT_ROOT /srv/http/aurweb/;
|
|
}
|
|
|
|
Sample systemd unit files for fcgiwrap can be found under conf/.
|