# Local PostgreSQL AWX setup This directory keeps the local configuration used to expose the PostgreSQL delivery playbook through AWX. Files ending in `.env` are ignored; their `.env.example` counterparts document the supported parameters. The local object mapping is: | AWX object | Local value | | --- | --- | | Project | `XINFRA PostgreSQL Project` | | Project source | local `ansible/`, committed into AWX task pod local Git | | Inventory | `XINFRA PostgreSQL Inventory` | | Inventory host | `postgresql-218-11-5-224` -> public `218.11.5.224`, SSH via `192.168.1.5` | | Machine credential | `XINFRA PostgreSQL SSH`, user `root` | | Private key | `/Users/lx/xengineer-cs2.pem` | | Secret credential | `XINFRA PostgreSQL Runtime Secrets` | | Job Template | `XINFRA PostgreSQL Delivery` | | Playbook | `postgresql-deploy.yml` | | Rollback Template | `XINFRA PostgreSQL Rollback` | | Rollback Playbook | `postgresql-rollback.yml` | | Instance Group | `xinfra-e2e-execution` | Run the idempotent setup whenever the AWX task pod restarts or the local playbook changes. This AWX installation has project persistence disabled and cannot use a Manual Project, so the Project is Git-backed with launch updates disabled. The script refreshes a local Git source inside the AWX task pod and runs a project update so AWX rebuilds its playbook index. The setup output includes `DELIVERY_POSTGRESQL_ROLLBACK_TEMPLATE_ID`; copy that value into `config/local/server-postgresql.env` before starting the scheduler. PostgreSQL CloudDM registration is optional and requires the dedicated URL, API token, username, and password documented in the server env example. The CloudDM password must match the PostgreSQL administrator password configured in the AWX runtime credential. ```bash ./scripts/setup-postgresql-awx.sh ``` Start the backend with AWX delivery scheduling enabled: ```bash ./scripts/run-server-postgresql-local.sh ``` Then start the frontend and open `/service/catalog/pgsql`. Select `XINFRA PostgreSQL Delivery` as the target. The inventory currently contains one host, so only `standalone` can be deployed until more distinct inventory hosts are added. The frontend dev server listens on `http://127.0.0.1:5173`. Port `3000` is reserved for the local `authserver` MySQL container and must not be used by Vite. Set `XINFRA_BACKEND_PROXY_TARGET` only when the backend is listening on a non-default address. The AWX HTTP API is `http://127.0.0.1:59123`. Local port `59121` is Minikube SSH and must not be used as `AWX_BASE_URL`.