Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/treetrek.git
# Requirements

TreeTrek was built and tested using the following software components:

* Debian Linux 13 (kernel 6.12.69)
* nginx 1.26.3
* PHP 8.4.16
* Git 2.53.0

# Installation

To install:

* Download code
* Configure settings
* Configure web server routing and security
* Define display order

Replace placeholder values with the configuration details.

1. Set placeholders:
   ``` bash
   export REPO=repo.domain.com
   export OWNER=username
   export WEBDIR=/var/www
   export WEBOWNER=www-data
   ```
1. Download code:
   ```bash
   mkdir -p /var/www/${REPO}
   cd ${WEBDIR}/${REPO}
   git clone https://repo.autonoma.ca/repo/treetrek
   sudo usermod -aG ${OWNER} ${WEBOWNER}
   ```
1. Edit `${WEBDIR}/${REPO}/Config.php`.
1. Set `SITE_TITLE`.
1. Set `REPOS_DIR`.
1. Save the file.
1. Edit `<REPOS_DIR>/order.txt`
1. List repositories in the order they must appear.
1. Hide repositories using a hyphen prefix.
1. Save the file.
1. Edit nginx configuration file.
1. Add routing and security rules:
   ```nginx
   location ^~ /images/ {
     allow all;
   }

   location ~* ^/images/.*\.svg$ {
     add_header Content-Type image/svg+xml;
   }

   location ~ ^/(git|pages|render)/ {
     deny  all;
     return 403;
   }

   location ^~ /repo/ {
     try_files $uri $uri/ /index.php?$query_string;
   }

   location / {
     try_files $uri $uri/ /index.php?$query_string;
   }

   location = /index.php {
     include      snippets/fastcgi-php.conf;
     fastcgi_pass unix:/run/php/php8.4-fpm.sock;
   }

   location ~ \.php$ {
     deny   all;
     return 403;
   }
   ```
1. Save the file.
1. Apply changes:
   ```bash
   sudo nginx -t && sudo systemctl reload nginx
   ```

The application is installed.