-
Notifications
You must be signed in to change notification settings - Fork 0
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
Created interactive DDEV setup #14
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
prod
ordev
ibexa/website-skeleton
ibexa/test-fixtures
(only for Ibexa employees)How to use
Until it's merged and released, you can only use it via
ibexa/website-skeleton
which only supports4.6.x-dev
version.There is an issue with asking for Composer credentials currently and you have to link your
auth.json
to ddev containers:Our current installation method uses
composer create-project
but since we don't want to use Composer on host machine, installation has to be a little bit different:It'll install into
ibexa-dxp
directory, 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_INSTALL
variable 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=true
variable to change the behavior.There are multiple installation phases hooked to
post-start
:ibexa-configurator
This is the wizard which lets you choose which services and versions to install. After confirming your setup it writes
.ddev/.ibexa-instance-settings
file with all settings as variables which makes it easy tosource
by next scripts in the pipeline.The thing that makes the wizard nice and interactive is
gum
(https://github.com/charmbracelet/gum). It runs inweb
container therefore it doesn't add any requirements to the host system.ibexa-setup
This script reconfigures ddev project based on selected configuration. It'll install required ddev addons, set
.env.local
variables to configure Ibexa DXP instance.ibexa-installer
This is the last step in the pipeline and after ddev project is set up with required configuration and addons,
ibexa-installer
will 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
,awk
available 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}-skeleton
and correctly detects installation type and versionupdates.ibexa.co
is inaccessible and stop the installation gracefullyibexa-setup.sh
for time optimizationibexa/test-fixtures
cannot be installed from stable releaseibexa/ddev
package and create git submodule inibexa/website-skeleton
Use 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]/phpstatus
and/healthcheck
). My first approach was copying vhost file fromibexa/post-install
and applying modifications withsed
but 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