Core setup for kitconcept GmbH distributions built on top of Plone
- An operating system that runs all the requirements mentioned.
- uv
- nvm
- Node.js and pnpm 22
- Make
- Git
- Docker (optional)
-
Clone this repository, then change your working directory.
git clone [email protected]:kitconcept/kitconcept-core.git cd kitconcept-core
-
Install this code base.
make install
-
Create a new Plone site on your first run.
make backend-create-site
-
Start the backend at http://localhost:8080/.
make backend-start
-
In a new shell session, start the frontend at http://localhost:3000/.
make frontend-start
Voila! Your Plone site should be live and kicking! 🎉
Deploy a local Docker Compose
environment that includes:
- Docker images for Backend and Frontend 🖼️
- A stack with a Traefik router and a Postgres database 🗃️
- Accessible at http://kitconcept-core.localhost 🌐
Execute the following:
make stack-start
make stack-create-site
And... you're all set! Your Plone site is up and running locally! 🚀
This monorepo consists of the following distinct sections:
- backend: Houses the API and Plone installation, utilizing pip instead of buildout, and includes a policy package named kitconcept.core.
- frontend: Contains the React (Volto) package.
- devops: Encompasses Docker Stack, Ansible playbooks, and Cache settings.
- docs: Scaffold for writing documentation for your project.
- All necessary codebases to run the site are contained within the repo (excluding existing addons for Plone and React).
- Specific GitHub Workflows are triggered based on changes in each codebase (refer to .github/workflows).
- Simplifies the creation of Docker images for each codebase.
- Demonstrates Plone installation/setup without buildout.
To automatically format your code and ensure it adheres to quality standards, execute:
make check
To format the codebase, it is possible to run format
:
make format
Section | Tool | Description | Configuration |
---|---|---|---|
backend | Ruff | Python code formatting, imports sorting | backend/pyproject.toml |
backend | zpretty |
XML and ZCML formatting | -- |
frontend | ESLint | Fixes most common frontend issues | frontend/.eslintrc.js |
frontend | prettier | Format JS and Typescript code | frontend/.prettierrc |
frontend | Stylelint | Format Styles (css, less, sass) | frontend/.stylelintrc |
Formatters can also be run within the backend
or frontend
folders.
or lint
:
make lint
Section | Tool | Description | Configuration |
---|---|---|---|
backend | Ruff | Checks code formatting, imports sorting | backend/pyproject.toml |
backend | Pyroma | Checks Python package metadata | -- |
backend | check-python-versions | Checks Python version information | -- |
backend | zpretty |
Checks XML and ZCML formatting | -- |
frontend | ESLint | Checks JS / Typescript lint | frontend/.eslintrc.js |
frontend | prettier | Check JS / Typescript formatting | frontend/.prettierrc |
frontend | Stylelint | Check Styles (css, less, sass) formatting | frontend/.stylelintrc |
Linters can be run individually within the backend
or frontend
folders.
Generate translation files for Plone and Volto with ease:
make i18n
Generated using Cookieplone (0.9.7) and cookieplone-templates (0beeb9f) on 2025-04-28 11:48:40.459239. A special thanks to all contributors and supporters!