Skip to content

Core setup for kitconcept GmbH distributions built on top of Plone

Notifications You must be signed in to change notification settings

kitconcept/kitconcept-core

Repository files navigation

kitconcept.core 🚀

Built with Cookieplone CI

Core setup for kitconcept GmbH distributions built on top of Plone

Quick Start 🏁

Prerequisites ✅

Installation 🔧

  1. Clone this repository, then change your working directory.

    git clone [email protected]:kitconcept/kitconcept-core.git
    cd kitconcept-core
  2. Install this code base.

    make install

Fire Up the Servers 🔥

  1. Create a new Plone site on your first run.

    make backend-create-site
  2. Start the backend at http://localhost:8080/.

    make backend-start
  3. In a new shell session, start the frontend at http://localhost:3000/.

    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 🌐

Execute the following:

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:

make check

Format the codebase

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.

Linting the codebase

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.

Internationalization 🌐

Generate translation files for Plone and Volto with ease:

make i18n

Credits and Acknowledgements 🙏

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!

About

Core setup for kitconcept GmbH distributions built on top of Plone

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages