-
Notifications
You must be signed in to change notification settings - Fork 0
Created interactive DDEV setup #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 4.6
Are you sure you want to change the base?
Conversation
|
I love it! Could we choose the DXP version as well? |
|
@adriendupuis You won't be able to choose version using interactive menu. The idea is that you |
|
@webhdx OK. I didn't understand that it wasn't autonomous but come as a .ddev folder within an DXP edition skeleton. |
|
Assuming we want to share it with Partners eventually (I think we should, it would be great for them): Storing the files directly in website-skeleton means that they cannot be easily updated (they are directly in the project, so we cannot easily modify them and distribute the updates). What do you think about moving this configuration to a separate package ( Just an idea, we might come back to this when we decide to share this. |
|
We can't use recipes because that would indicate you have to composer install the package on the host first. I was discussing it with @reithor and we are leaning more towards a git submodule. But it's a valid point that we should move it to a separate package. |
|
You're right 😞 I'd just like to make sure we have something that can be updated without jumping through too many hoops |
… attempting installation
Ibexa DXP 4.6 is compatible with DDEV but we don't have any ready to use configuration. There are more like some guidelines how to set everything up available in our doc. It isn't ideal because with every new project you have to start from scratch. To resolve this issue, I've created DDEV configuration which comes with a nice command line utility to configure every detail of your local setup.
Meet DDEV Interactive Installation Tool:
It was inspired by @reithor's https://github.com/reithor/ibexa-ddev-toolkit but takes a different approach and makes it much more user friendly.
Available services
Additional features
prodordevibexa/website-skeletonibexa/test-fixtures(only for Ibexa employees)How to use
Until it's merged and released, you can only use it via
ibexa/website-skeletonwhich only supports4.6.x-devversion.There is an issue with asking for Composer credentials currently and you have to link your
auth.jsonto ddev containers:Our current installation method uses
composer create-projectbut since we don't want to use Composer on host machine, installation has to be a little bit different:It'll install into
ibexa-dxpdirectory, feel free to use whatever you want. This name will be used as the project's name and in the URL pointing to that instance.If you want to see debug information you have to set
VERBOSE_INSTALLvariable on both host machine and inside project constainers:How it all works
Entire scripting is done in Bash and uses DDEV's build hooks to display the wizard when starting new project. My intention was to make it as user friendly as possible, which includes hiding all technical logs from the user. Some people are going to hate that so I made it possible to use
VERBOSE_INSTALL=truevariable to change the behavior.There are multiple installation phases hooked to
post-start:ibexa-configuratorThis is the wizard which lets you choose which services and versions to install. After confirming your setup it writes
.ddev/.ibexa-instance-settingsfile with all settings as variables which makes it easy tosourceby next scripts in the pipeline.The thing that makes the wizard nice and interactive is
gum(https://github.com/charmbracelet/gum). It runs inwebcontainer therefore it doesn't add any requirements to the host system.ibexa-setupThis script reconfigures ddev project based on selected configuration. It'll install required ddev addons, set
.env.localvariables to configure Ibexa DXP instance.ibexa-installerThis is the last step in the pipeline and after ddev project is set up with required configuration and addons,
ibexa-installerwill attempt to install composer requirements, add sample data, install Ibexa Cloud configs and do final provisioning.When everything is done, user is greeted details of their setup and instructions what to do next.
Requirements
sed,awkavailable in terminalMac OS will use Mutagen for synchronizing files. It can work very fast but requires fast SSD and some RAM. OrbStack has the best performance on Mac OS but it's not free.
TODO
ibexa/{oss, headless, experience, commerce}-skeletonand correctly detects installation type and versionupdates.ibexa.cois inaccessible and stop the installation gracefullyibexa-setup.shfor time optimizationibexa/test-fixturescannot be installed from stable releaseibexa/ddevpackage and create git submodule inibexa/website-skeletonUse our virtual host configuration (https://github.com/ibexa/docker), currently uses ddev's standard httpd config[1]Allow selecting Redis, Memcache, Solr, Elasticsearch and Varnish versions. It uses whatever is shipped with the latest addons[2]/phpstatusand/healthcheck). My first approach was copying vhost file fromibexa/post-installand applying modifications withsedbut this is very error prone. We could just keep already modified copy as a part of ddev config but for the time being it feels like stock configuration is just okay. Our vhost mostly adds some security measures for production environments, it's not really relevant for local use.Ideas