Failing to enable projections

Got a server spun up to try to learn more about EventStore but seem unable to get the projections tab enabled. Added EVENTSTORE_RUN_PROJECTIONS=All and EVENTSTORE_START_STANDARD_PROJECTIONS=true to /etc/profile and restarted, and if I echo them it seems to have worked, but the tabs are still greyed out.

Installed today (Aug 22 2018) from the packagecloud repo and have confirmed that the installed version is 4.1.1-hotfix1-1 (he webui says 4.1.1.0 at the bottom) on ubuntu 18.04.

Any idea what I’m doing wrong and/or what’s broken?

I’ve never seen those tabs grey out and don’t know what it means.

Are your system projections actually running?

curl http://localhost:2113/projection/%24streams -H “accept:application/json”

curl http://localhost:2113/projection/%24by_category -H “accept:application/json”

``

Are there any errors in your browser console, which might suggest it’s a UI issue rather than a server issue?

If you are just tinkering for now then I recommend running it in Docker:

https://eventstore.org/docs/getting-started/index.html?tabs=tabid-3%2Ctabid-4

All of the same command line / env arguments apply, but it will rule out an other discrepancies that might be peculiar to your set up.

Just for fun what do you get if from the command line you run with --run-projections=all?

“systemctl start eventstore --run-projections=all” returns "systemctl: unrecognized option ‘–run-projections=all’ "

Yes, I’ve run the docker instance in the past, but if I’m ever going to put this thing in production I have to understand how to get it working properly.

In this case the --run-projections argument is being applied to systemctl!

You can’t pass args in to your service when starting it this way.

Your approach of passing EventStore args using environment variables is more suitable - but you are putting them in the wrong place…

/etc/profile will apply to interactive shells for all users, including the shell from which you are trying to confirm your event args - hence you see the values you expect. But I don’t believe this applies to the environment that ES runs via systemctl.

I’m no Linux expert so please refer to this similar SO issue:

https://serverfault.com/questions/413397/how-to-set-environment-variable-in-systemd-service

I am sometimes critical of the EventStore docs, but they do seem to provide an answer to your configuration issue…

https://eventstore.org/docs/getting-started/index.html?tabs=tabid-2%2Ctabid-4

I knew that I couldn’t pass arguments to systemctl in that manner, but Greg asked what would happen if I did, so I gave it a shot anyway. In any case that line about /etc/eventstore/eventstore.conf should really be repeated on the projections page of the docs where the information about the environment variables is. I haven’t tried it yet, but that seems like it’s probably the solution.

So in case anyone is wondering, the docs are kind of right and kind of not. /etc/eventstore/eventstore.conf is the file you want, but you don’t have the export the UPPERCASE_VARIABLES I referred to earlier there or anywhere. Just change runProjections from false to true in the conf file.

Thanks everyone, I’ll clarify the docs based on this discussion.

Chris