https://github.com/kitconcept/kitconcept-core
Core setup for kitconcept GmbH distributions built on top of Plone
https://github.com/kitconcept/kitconcept-core
Last synced: 1 day ago
JSON representation
Core setup for kitconcept GmbH distributions built on top of Plone
- Host: GitHub
- URL: https://github.com/kitconcept/kitconcept-core
- Owner: kitconcept
- Created: 2025-04-28T17:46:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-06-08T09:28:47.000Z (9 days ago)
- Last Synced: 2026-06-08T11:19:07.094Z (9 days ago)
- Language: Python
- Homepage: https://kitconcept-core.readthedocs.io/
- Size: 4.15 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# kitconcept.core 🚀
[](https://github.com/plone/cookieplone-templates/)
[](https://github.com/kitconcept/kitconcept-core/actions/workflows/main.yml)
Core setup for kitconcept GmbH distributions built on top of Plone
## Quick Start 🏁
### Prerequisites ✅
- An [operating system](https://6.docs.plone.org/install/create-project-cookieplone.html#prerequisites-for-installation) that runs all the requirements mentioned.
- [uv](https://6.docs.plone.org/install/create-project-cookieplone.html#uv)
- [nvm](https://6.docs.plone.org/install/create-project-cookieplone.html#nvm)
- [Node.js and pnpm](https://6.docs.plone.org/install/create-project.html#node-js) 22
- [Make](https://6.docs.plone.org/install/create-project-cookieplone.html#make)
- [Git](https://6.docs.plone.org/install/create-project-cookieplone.html#git)
- [Docker](https://docs.docker.com/get-started/get-docker/) (optional)
### Installation 🔧
1. Clone this repository, then change your working directory.
```shell
git clone git@github.com:kitconcept/kitconcept-core.git
cd kitconcept-core
```
2. Install this code base.
```shell
make install
```
### Fire Up the Servers 🔥
1. Create a new Plone site on your first run.
```shell
make backend-create-site
```
2. Start the backend at http://localhost:8080/.
```shell
make backend-start
```
3. In a new shell session, start the frontend at http://localhost:3000/.
```shell
make frontend-start
```
Voila! Your Plone site should be live and kicking! 🎉
### Local Stack Deployment 📦
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](http://kitconcept-core.localhost) 🌐
Execute the following:
```shell
make stack-start
make stack-create-site
```
And... you're all set! Your Plone site is up and running locally! 🚀
## Project Structure 🏗️
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.
### Why This Structure? 🤔
- 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.
## Code Quality Assurance 🧐
To automatically format your code and ensure it adheres to quality standards, execute:
```shell
make check
```
### Format the codebase
To format the codebase, it is possible to run `format`:
```shell
make format
```
| Section | Tool | Description | Configuration |
| --- | --- | --- | --- |
| backend | Ruff | Python code formatting, imports sorting | [`backend/pyproject.toml`](./backend/pyproject.toml) |
| backend | `zpretty` | XML and ZCML formatting | -- |
| frontend | ESLint | Fixes most common frontend issues | [`frontend/.eslintrc.js`](.frontend/.eslintrc.js) |
| frontend | prettier | Format JS and Typescript code | [`frontend/.prettierrc`](.frontend/.prettierrc) |
| frontend | Stylelint | Format Styles (css, less, sass) | [`frontend/.stylelintrc`](.frontend/.stylelintrc) |
Formatters can also be run within the `backend` or `frontend` folders.
### Linting the codebase
or `lint`:
```shell
make lint
```
| Section | Tool | Description | Configuration |
| --- | --- | --- | --- |
| backend | Ruff | Checks code formatting, imports sorting | [`backend/pyproject.toml`](./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/.eslintrc.js) |
| frontend | prettier | Check JS / Typescript formatting | [`frontend/.prettierrc`](.frontend/.prettierrc) |
| frontend | Stylelint | Check Styles (css, less, sass) formatting | [`frontend/.stylelintrc`](.frontend/.stylelintrc) |
Linters can be run individually within the `backend` or `frontend` folders.
## Internationalization 🌐
Generate translation files for Plone and Volto with ease:
```shell
make i18n
```
## Credits and Acknowledgements 🙏
Generated using [Cookieplone (0.9.7)](https://github.com/plone/cookieplone) and [cookieplone-templates (0beeb9f)](https://github.com/plone/cookieplone-templates/commit/0beeb9f07d04cdd732c487422c94ed975b73507d) on 2025-04-28 11:48:40.459239. A special thanks to all contributors and supporters!