4 1) Clone the AUR project:
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:
14 server_name aur.local aur;
16 root /srv/http/aurweb/web/html;
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;
29 rewrite ^/(.*)$ /index.php/$1 last;
33 3) Copy conf/config.proto to /etc/aurweb/config and adjust the configuration
34 (pay 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) Install Python modules and dependencies:
42 # pacman -S python-mysql-connector python-pygit2 python-srcinfo
43 # python3 setup.py install
47 # useradd -U -d /srv/http/aurweb -c 'AUR user' aur
49 7) Initialize the Git repository:
51 # mkdir /srv/http/aurweb/aur.git/
52 # cd /srv/http/aurweb/aur.git/
54 # git config --local transfer.hideRefs '^refs/'
55 # git config --local --add transfer.hideRefs '!refs/'
56 # git config --local --add transfer.hideRefs '!HEAD'
57 # ln -s /usr/local/bin/aurweb-git-update hooks/update
60 8) Configure sshd(8) for the AUR. Add the following lines at the end of your
61 sshd_config(5) and restart the sshd. Note that OpenSSH 6.9 or newer is
65 PasswordAuthentication no
66 AuthorizedKeysCommand /usr/local/bin/aurweb-git-auth "%t" "%k"
67 AuthorizedKeysCommandUser aur
69 9) If you want to enable smart HTTP support with nginx and fcgiwrap, you can
70 use the following directives:
72 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))$" {
73 fastcgi_pass unix:/run/fcgiwrap.sock;
74 include fastcgi_params;
75 fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
76 fastcgi_param PATH_INFO /aur.git/$3;
77 fastcgi_param GIT_HTTP_EXPORT_ALL "";
78 fastcgi_param GIT_NAMESPACE $1;
79 fastcgi_param GIT_PROJECT_ROOT /srv/http/aurweb/;
82 Sample systemd unit files for fcgiwrap can be found under conf/.