git-update: Make maximum blob size configurable
[aur.git] / INSTALL
blobdab48cc10bf1b45be94b2288eee7b2d3f8622f67
1 Setup on Arch Linux
2 ===================
4 1) Clone the AUR project:
6    $ cd /srv/http/
7    $ git clone git://git.archlinux.org/aurweb.git
9 2) Setup a web server with PHP and MySQL. Configure the web server to redirect
10    all URLs to /index.php/foo/bar/. The following block can be used with nginx:
12     server {
13         listen       80;
14         server_name  aur.local aur;
16         root   /srv/http/aurweb/web/html;
17         index  index.php;
19         location ~ ^/[^/]+\.php($|/) {
20             fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
21             fastcgi_index  index.php;
22             fastcgi_split_path_info ^(/[^/]+\.php)(/.*)$;
23             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
24             fastcgi_param  PATH_INFO        $fastcgi_path_info;
25             include        fastcgi_params;
26         }
28         location ~ .* {
29             rewrite ^/(.*)$ /index.php/$1 last;
30         }
31     }
33 3) Copy conf/config.proto to conf/config and adjust the configuration (pay
34    attention to disable_http_login, enable_maintenance and aur_location).
36 4) Create a new MySQL database and a user and import the AUR SQL schema:
38     $ mysql -uaur -p AUR </srv/http/aurweb/schema/aur-schema.sql
40 5) Create a new user:
42     # useradd -U -d /srv/http/aurweb -c 'AUR user' aur
44 6) Initialize the Git repository:
46     # mkdir /srv/http/aurweb/aur.git/
47     # cd /srv/http/aurweb/aur.git/
48     # git init --bare
49     # git config --local transfer.hideRefs '^refs/'
50     # git config --local --add transfer.hideRefs '!refs/'
51     # git config --local --add transfer.hideRefs '!HEAD'
52     # ln -s ../../git-interface/git-update.py hooks/update
53     # chown -R aur .
55 7) Install needed Python modules:
57     # pacman -S python-mysql-connector python-pygit2 python-srcinfo
59 8) Install the git-auth wrapper script:
61     # cd /srv/http/aurweb/git-interface/
62     # make && make install
64 9) Configure sshd(8) for the AUR. Add the following lines at the end of your
65    sshd_config(5) and restart the sshd. Note that OpenSSH 6.9 or newer is
66    needed!
68     Match User aur
69         PasswordAuthentication no
70         AuthorizedKeysCommand /usr/local/bin/aur-git-auth "%t" "%k"
71         AuthorizedKeysCommandUser aur
73 10) If you want to enable smart HTTP support with nginx and fcgiwrap, you can
74     use the following directives:
76     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))$" {
77         fastcgi_pass   unix:/run/fcgiwrap.sock;
78         include        fastcgi_params;
79         fastcgi_param  SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
80         fastcgi_param  PATH_INFO /aur.git/$3;
81         fastcgi_param  GIT_HTTP_EXPORT_ALL "";
82         fastcgi_param  GIT_NAMESPACE $1;
83         fastcgi_param  GIT_PROJECT_ROOT /srv/http/aurweb/;
84     }
86    Sample systemd unit files for fcgiwrap can be found under conf/.