From 2a6d6b8eefd57ac49f7ebae32a3db8753d84a08f Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Mon, 20 Sep 2021 08:18:46 +0000 Subject: [PATCH] Update Testing Guide --- Testing-Guide.md | 64 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 56 insertions(+), 8 deletions(-) diff --git a/Testing-Guide.md b/Testing-Guide.md index 2643226..fad8540 100644 --- a/Testing-Guide.md +++ b/Testing-Guide.md @@ -73,16 +73,29 @@ At this point, we have two choices: ## Development Servers -When a user runs `docker-compose up -d nginx`, a few things happen: +When a user runs `docker-compose up -d nginx`, a few things happen +(some services are omitted): -1. The `ca` service starts -2. The `mariadb` service starts -3. The `git` service starts -4. The `fastapi` service starts -5. The `php-fpm` service starts -6. The `nginx` service starts +1. The [ca](#certificate-authority) service starts +2. The [mariadb](#mariadb) service starts +3. The [git](#git) service starts +4. The [redis](#redis) service starts +5. The `memcached` service starts +6. The [fastapi](#fastapi) service starts +7. The [php-fpm](#php-fpm) service starts +8. The [nginx](#nginx) service starts - This last service depends on various other services. +###### Notes + +The `fastapi` and `php-fpm` services live update when you change +source files in your tree. + +The first step of starting services takes several minutes on Docker +currently; however, if you load up and rely on hot reload, you can +do work and restart specific services if need be without concern +(at least, until you add a dependency). + #### Certificate Authority The `ca` service will produce a `cache/ca.root.pem` file, which is used to @@ -92,7 +105,8 @@ sign the `cache/localhost.cert.pem` certificate. Users can import our #### mariadb The `mariadb` service will bind to `localhost:13306` on the host machine. This -allows users to inspect the database used by the `fastapi` and `php-fpm` services: +allows users to inspect the database used by the `fastapi` and `php-fpm` +services: $ mysql -h127.0.0.1 -P13306 -uaur -paur aurweb \ -e "SELECT * FROM Packages" @@ -102,6 +116,40 @@ as the mysql client does something other than reach the mariadb server with `localhost` (assumed some type of confusion with localhost, didn't look much further). +#### git + +The `git` service runs sshd using the aurweb-git-auth backend and +aurweb-git-update hook. It is accessible at `ssh://aur@localhost:2222` on +the host system. Users can use this local sshd just like a production +AUR instance for git management. + +Note that in order for you to do anything with the sshd, you'll need +to either login to a dummy user or register an account and setup +your public SSH key like you would on aur.archlinux.org. + +#### redis + +The `redis` service is used as the Redis backend for the `fastapi` service. +You can converse with the service on `localhost:16379`: + + $ redis-cli -p 16379 + ... + +#### fastapi + +The `fastapi` service runs the aurweb FastAPI implementation through +an ASGI server. Users can configure this with the `FASTAPI_BACKEND` +environment variable: `uvicorn` or `hypercorn`. It enables hot +reloading of the server for changes in all directories in your tree, +which automatically reflects on the [nginx](#nginx) service. + +This service is exposed on `localhost:18000`. + +#### php-fpm + +This service is exposed on `localhost:19000` and majorly depends on +[./web](https://gitlab.archlinux.org/archlinux/aurweb/-/tree/pu/web). + ###### Generating Dummy Data **NOTE**: This step requires Python dependencies to be accessible from