devowl-wp

devowl.io Workplace

Getting started

Installation is done for you as soon as you open the terminal within VSCode.

Prepare environment

All environment variables and secrets are loaded via Infisical. To get access to your Infisical account, please follow this steps:

If you need help setting up your environment please contact a Devop!

  1. Contact a Devop (e.g. Matthias Günter) to get an invitation to Infisical
  2. Accept the invitation so you have access to the devowl.io Gmbh organization within Infisical
  3. Create a file .env in the root of our cloned Git repository (do not save the file until we explicitly request this!)
  4. Copy the content of .env-default into the .env file
  5. Ask the Devop for the INFISICAL_UNIVERSAL_AUTH_CLIENT_ID and INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET values and add them to the .env file
  6. Modify ENVIRONMENT_BASE_HOSTNAME to your remote machine (e.g. ci-runner-x.owlsrv.de)
  7. Save the .env file

How to access the services?

Open the Traefik monitor at port 8080 to see the domains of all services (e.g. http://ci-runner-8.owlsrv.de:8080/).

Commands

Some often-used commands are provided via the native VSCode tasks view. Just open the Command Pallete, delete the > character and type in task (with space!). All other commands are available in the package.json#scripts section.

Domain prefixes of services

Each domain prefix must be prefixed to the FQDN of the host running the containers (e.g. host ci-runner-x.owlsrv.de and domain prefix commerce becomes commerce.ci-runner-x.owlsrv.de).

Description Environment Docker service Domain prefix
WordPress Plugins Development wordpress wordpress.
Real Product Manager (Backend) Development real_product_manager license.
Real Commerce (Backend) Development real_commerce commerce.
Real Cookie Banner (Backend) Development real_cookie_banner_backend rcb.
phpMyAdmin Development phpmyadmin pma.
phpRedisAdmin Development phpredisadmin pra.
Static files of the complete workspace Development miniserve files.

Available package workspaces

Package type Allow side effects* Description
dev-packages No Packages, which are needed only for development purposes within this monorepo
api-packages No API interfaces and types, which can be consumed by backends and frontends
backend-packages No Logic, which can be consumed by backends
wordpress-packages No WordPress-specific packages with PHP and TS coding which can be consumed by wordpress-plugins
frontend-packages No Logic, which can be consumed by different types of frontends in different ecosystems
isomorphic-packages No Logic, which can be consumed anywhere and independent of the ecosystem (e.g. package provides logic for PHP and JavaScript) with feature-parity
frontends Yes Dockerized frontends (e.g. create-react-app)
backends Yes Dockerized backend services
wordpress-plugins Yes WordPress-specific plugins with PHP and TS coding

* Side effects: A side-effect free file does not execute code at import time, instead it only exports types, interfaces and reusable components. A side effect e.g. is starting a webserver in the main file.