I agree that it's not always possible to set up everything automatically but with a shared encrypted filesystem, good instructions, and tools like Foreman you can go a long way.
In case something can't be set up automatically we usually have a clear README and the initializer prints a note about where to find instructions about getting it running.
Maintaining the install script isn't much more painful then setting up it by hand, especially if you make sure the script is ‘reentrant’.
The more services/external dependencies you cram into single commands... the more maintenance (of that cramming) is required.