config.proto: Do not use the ssh+git scheme
[aur.git] / INSTALL
blobd5664d277582bb5b85770b057752c3d86f7a219d
1 Setup on Arch Linux
2 ===================
4 1) Clone the AUR project:
6    $ cd /srv/http/
7    $ git clone git://projects.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 transfer.hideRefs '!refs/'
51     # ln -s ../../git-interface/git-update.py hooks/update
52     # chown -R aur .
54 7) Install needed Python modules:
56     # pacman -S python-mysql-connector python-pygit2
58 8) Install the git-auth wrapper script:
60     # cd /srv/http/aurweb/git-interface/
61     # make && make install
63 9) Configure sshd(8) for the AUR. Add the following lines at the end of your
64    sshd_config(5) and restart the sshd. Note that OpenSSH 6.9 or newer is
65    needed!
67     Match User aur
68         PasswordAuthentication no
69         AuthorizedKeysCommand /usr/local/bin/aur-git-auth "%t" "%k"
70         AuthorizedKeysCommandUser aur
72 10) If you want to enable smart HTTP support with nginx and fcgiwrap, you can
73     use the following directives:
75     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))$" {
76         fastcgi_pass   unix:/run/fcgiwrap.sock;
77         include        fastcgi_params;
78         fastcgi_param  SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
79         fastcgi_param  PATH_INFO /aur.git/$3;
80         fastcgi_param  GIT_HTTP_EXPORT_ALL "";
81         fastcgi_param  GIT_NAMESPACE $1;
82         fastcgi_param  GIT_PROJECT_ROOT /srv/http/aurweb/;
83     }
85    Sample systemd unit files for fcgiwrap can be found under conf/.