|ca||Self-signed CA generation|
|memcached||Live memcached service|
|redis||16379||Live Redis service|
|mariadb||13306||Live MariaDB service|
|git||2222||AUR Git repository|
|smartgit||HTTP Git frontend|
|cgit-php||CGit backend (PHP)|
|cgit-fastapi||CGit backend (FastAPI)|
|php-fpm||19000||Live php-fpm service|
|fastapi||18000||Live $FASTAPI_BACKEND service|
|nginx||8443||Live nginx frontend to php-fpm|
|nginx||8444||Live nginx frontend to fastapi|
|sharness||Run sharness test suites|
|pytest-mysql||Run pytest suites with mariadb|
|pytest-sqlite||Run pytest suites with sqlite|
|test||Run all tests and linters|
To get started, you need to build the
aurweb:latest Docker image by issuing the following command:
$ docker build -t aurweb:latest .
You can then
docker-compose (up|run) any one of the services.
During development, users may wish to run instances of FastAPI and PHP side by side. For this, users can depend on the
nginx service, which hosts PHP at https://localhost:8443 and FastAPI at https://localhost:8444.
ca service will generate a
ca.root.pem file in
$aurweb_path/cache, which can be imported into your browser as a Certificate Authority. This root is the issuer to the
nginx service's certificates mentioned above.
Otherwise, users may also wish to run tests. Users can easily run tests by taking advantage of the
For an all in one testing strategy, the
test service should be preferred, as it also runs linter checks which the aurweb project requires: flake8 and isort. This test is identical to GitLab CI's tests.
For production, the
fastapi (exposed on localhost:18000) and
php-fpm (exposed on localhost:19000) services can be used to supply back-ends to a host instance of nginx. The
git service (exposed on localhost:2222) should be used for a Docker-contained AUR sshd.
These services will both share the
mariadb service, which they depend on and will be started when starting higher services.
smartgit is not yet supported for deployment through Docker, unless using our internal services with it.
This wiki document is not as specific and complete as it could be and it will be improved over time.