Setup Testing Environment
=========================

Note that this setup is only to test the web interface. If you need to have a
full aurweb instance with cgit, ssh interface, etc, follow the directions in
INSTALL.

docker-compose
--------------

1) Clone the aurweb project:

    $ git clone https://gitlab.archlinux.org/archlinux/aurweb.git

2) Install the necessary packages:

    # pacman -S docker-compose

2) Build the aurweb:latest image:

    $ cd /path/to/aurweb/
    $ docker-compose build

3) Run local Docker development instance:

    $ cd /path/to/aurweb/
    $ docker-compose up -d nginx

4) Browse to local aurweb development server.

   Python: https://localhost:8444/
   PHP: https://localhost:8443/

5) [Optionally] populate the database with dummy data:

    $ docker-compose up mariadb
    $ docker-compose exec mariadb  /bin/sh
    # pacman -S --noconfirm words fortune-mod
    # poetry run schema/gendummydata.py dummy_data.sql
    # mysql -uaur -paur aurweb < dummy_data.sql

Inspect `dummy_data.sql` for test credentials. Passwords match usernames.

Bare Metal
----------

1) Clone the aurweb project:

    $ git clone git://git.archlinux.org/aurweb.git

2) Install the necessary packages:

    # pacman -S python-poetry

4) Install the package/dependencies via `poetry`:

    $ cd /path/to/aurweb/
    $ poetry install

3) Copy conf/config.dev to conf/config and replace YOUR_AUR_ROOT by the absolute
   path to the root of your aurweb clone. sed can do both tasks for you:

    $ sed -e "s;YOUR_AUR_ROOT;$PWD;g" conf/config.dev > conf/config

   Note that when the upstream config.dev is updated, you should compare it to
   your conf/config, or regenerate your configuration with the command above.

4) Prepare a database:

    $ cd /path/to/aurweb/

    $ AUR_CONFIG=conf/config poetry run python -m aurweb.initdb

    $ poetry run schema/gendummydata.py dummy_data.sql
    $ mysql -uaur -paur aurweb < dummy_data.sql

5) Run the test server:

   ## set AUR_CONFIG to our locally created config
   $ export AUR_CONFIG=conf/config

   ## with aurweb.spawn
   $ poetry run python -m aurweb.spawn

   ## with systemd service
   $ sudo install -m644 examples/aurweb.service /etc/systemd/system/
   $ systemctl enable --now aurweb.service
