A community driven UI for Pulp.
You can follow the pulp-oci-images quickstart, TLDR:
mkdir -p ~/pulp-backend-oci/{settings/certs,pulp_storage,pgsql,containers}
cd ~/pulp-backend-oci/
echo "
CONTENT_ORIGIN='http://$(hostname):8080'
ANSIBLE_API_HOSTNAME='http://$(hostname):8080'
ANSIBLE_CONTENT_HOSTNAME='http://$(hostname):8080/pulp/content'
" >> settings/settings.py
cd ~/pulp-backend-oci/
podman run --publish 8080:80 \
--replace --name pulp \
--volume "$(pwd)/settings":/etc/pulp \
--volume "$(pwd)/pulp_storage":/var/lib/pulp \
--volume "$(pwd)/pgsql":/var/lib/pgsql \
--volume "$(pwd)/containers":/var/lib/containers \
docker.io/pulp/pulp
curl localhost:8080/pulp/api/v3/status/ | jq
or open http://localhost:8080/pulp/api/v3/status/
podman exec -it pulp pulpcore-manager reset-admin-password --password admin
docker exec -it compose-pulp_api-1 pulpcore-manager reset-admin-password --password admin
pip install pulp-cli[pygments]
pulp config create --username admin --base-url http://localhost:8080 --password admin
pulp --help
pulp user list
You can clone the frontend from https://github.com/pulp/pulp-ui .
npm install
npm run start
and open http://localhost:8002/ 🎉 :)
If your API listens elsewhere, you can use API_PROXY=http://elsewhere:12345 npm run start
instead. Do note that the server at elsewhere
has to be configured to allow CORS requests for localhost
(where UI actually listens); using something like changeOrigin
is out of scope for pulp-ui, and breaks pulp API URLs (because the domains are based on the Origin header). Do NOT use webpack proxy in production.
The UI builds produced by npm run build
can be further configured by serving a /pulp-ui-config.json
alongside the built UI.
(Note it has to be mapped at /
, not just wherever index.html
is served from.)
API_BASE_PATH
- defaults to/pulp/api/v3/
- change when using domains or a different pathUI_BASE_PATH
- defaults to/ui/
- change when only serving index in a subdirectory, or want different browser path prefixUI_EXTERNAL_LOGIN_URI
- defaults to nothing - set to something like/login/
when using an SSOEXTRA_VERSION
- an extra version string to display in about modal