ckan / ckan-docker

Scripts and images to run CKAN using Docker Compose
104 stars 195 forks source link

create sysadmin account from user-provided values #144

Open wardi opened 6 months ago

wardi commented 6 months ago

Have users enter sysadmin name/password/email values in the .env file

EricSoroos commented 6 months ago

What about PR #76?

wardi commented 6 months ago

@kowh-ai I've removed the feature instead and updated the README with instructions for creating a sysadmin account.

kowh-ai commented 5 months ago

@wardi - I’m having problems getting this PR to work on a fresh ckan-docker 2.10.4 environment

When docker compose builds the CKAN service container it runs the (CMD) start_ckan.sh script (which calls prerun.py which does not create the ckan_admin user as all 3 environment variables (CKAN_SYSADMIN_NAME, CKAN_SYSADMIN_PASSWORD and CKAN_SYSADMIN_EMAIL) are not set. When execution returns to start_ckan.sh the /docker-entrypoint.d/01_setup_datapusher.sh is called next which tries to set the ckan.datapusher.api_token using the ckan_admin user (who does not exist, so fails). This causes the CKAN container to fail as the ckan.datapusher.api_tokenis not set

I’m scratching my head as to how you got this PR to work?

I guess we will need to come up with a way of setting a value for ckan.datapusher.api_token in the CKAN config file without having to resort to using a hard-coded admin username

wardi commented 4 months ago

@kowh-ai I'm generally not using datapusher, and when I do I've been copying a token into the .env manually.

datapusher could use a token generated against the site user instead of admin user, right? That might let us automatically generate the token without requiring a known sysadmin account name.

kowh-ai commented 4 months ago

@wardi - ah yes OK. This whole "needing a token before services are ready" has been one of the main issues affecting users in the last year or so. We need some sort of "seed" value that can be used as a token just to get the services to start but will need to change to a proper token (somehow) at some later stage...