Closed nbrinckm closed 3 years ago
Hi @nbrinckm Currently not. I am not that familiar with the docker image for GeoNode, we'll take a look and get back to you
hello @nbrinckm
rest api supports creation of new users, but first you also probably would like to change user admin with default password "geoserver" as soon as you start the application the first time.
to change master password you can use PUT method and issue a request to /geoserver/rest/security/masterpw
with payloads specified here
curl -X PUT http://localhost:8080/geoserver/rest/rest/security/masterpw -H "accept: application/json" -H "content-type: application/json" -d "{ \"oldMasterPassword\": \"oldPassword\", \"newMasterPassword\": \"newPassword\"}"
to add totally new users and groups to GeoServer more info here
Besides the API Rest approach you could just mount as a bind mount $GEOSERVER_DATADIR/security wqith prepped accounting for account testing like acl and rbac behaviour maybe the second solution is more efficient for account creation itself capability as well putting in security geoserver as soon as it starts, Rest API approach might be good as well
what about changing the startup behaviour of the container as follows @lpasquali: In the startup script check via rest if the password is set to the default "admin:geoserver" If not move on with the startup else update the password according to environment variable ?
I will it is same behaviour we use for ansible @randomorder
sounds good. Please go ahead with the implementation
can you please test this @agpenton ?
can you please test this @agpenton ?
@randomorder the test of the password change in the docker image created with the custom_build.sh script works smoothly.
running the command:
docker run -it -p 8080:8080 -e "ADMIN_PASSWORD=q1w2e3r4" geosolutionsit/geoserver:geoserver-2.18.x
thanks
Sorry for the stupid question: But is there a way in your current docker images to set the username & the password with environment variables? Having this is a really nice feature for the using the geoserver in more complex docker setups & ci/cd pipelines. Many other images already support that (postgres, wildfly, minio, and many more).
Is there a way to do it maybe out-of-the-box with the current image? Say the
geosolutionsit/geoserver:2.18.1
? If not do you plan to add it?Or will it be necessary to have a custom entrypoint script that do this changes?
Say something like this:
(Basically I found parts of that on the geonode docker entrypoint.sh : https://github.com/GeoNode/geonode/blob/master/scripts/spcgeonode/geoserver/docker-entrypoint.sh - however the geonode image has other drawbacks).