A Plone distribution for Intranets with Plone. Created by kitconcept.
- Docker (https://www.docker.com/)
- Git (https://git-scm.com/downloads)
- Clone repository with
git clone https://github.com/kitconcept/kitconcept.intranet.git - Change directory to "kitconcept.intranet" with
cd kitconcept.intranet - Start Docker containers with
docker-compose up - Open kitconcept.intranet in your browser by typing
http://kitconcept-intranet.localhost/into your browser URL field
Ensure you have the following installed:
- Python 3.12 🐍
- Node 22 🟩
- pnpm 🧶
- Docker 🐳
- UV (See [https://docs.astral.sh/uv/getting-started/installation/#standalone-installer])
- Clone the repository:
git clone git@github.com:kitconcept/kitconcept.intranet.git
cd kitconcept.intranet- Install both Backend and Frontend:
make install- Create a new Plone site on your first run:
make backend-create-siteor create the site manually by visiting http://localhost:8080/.
- Start the Backend at http://localhost:8080/:
make backend-start- In a new terminal, start the Frontend at http://localhost:3000/:
make frontend-startVoila! Your Plone site should be live and kicking! 🎉
Point your browser at http://localhost:8080/ and you will be greated with the site creation page:
After selecting kitconcept Intranet you will see a form:
For developing and testing the AI (RAG) search there is a second, optional content set — a German knowledge corpus with golden questions. It is not imported by default and requires a fresh site without the standard example content. See backend/example_content/ai-content/README.md for setup instructions (Solr image, LLM credentials, import and indexing).
First, make sure that you do not have the backend process running.
Delete existing site and all its content and re-create a new Plone site:
make backend-delete-and-create-site
Start the backend with:
make backend-start
and amend the content on the site.
Stop the backend by killing the make backend-start process (CTRL+C).
Export the content of the Plone site to your local repository (make sure the backend is stopped for this):
make backend-update-example-content
Show the diff in your local repository:
git diff
Commit your changes:
git add .
git checkout -b <MY_BRANCH>
git commit . -m"<MY_COMMIT_MESSAGE>"
git push
Go to github.com/kitconcept/kitconcept.intranet and click on the banner that shows your PR. Click on "Compare & pull request".
Choosing Keycloak for user authentication will present configuration options:
Choosing OIDC / OAuth2 for user authentication will present configuration options:
Choosing Google for user authentication will present configuration options:
Choosing GitHub for user authentication will present configuration options:
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.intranet.localhost 🌐
Execute the following:
make stack-start
make stack-create-siteAnd... you're all set! Your Plone site is up and running locally! 🚀
This monorepo consists of three distinct sections: backend, frontend, and devops.
- backend: Houses the API and Plone installation, utilizing pip instead of buildout, and includes a policy package named kitconcept.intranet.
- frontend: Contains the React (Volto) package.
- devops: Encompasses Docker Stack, Ansible playbooks, and Cache settings.
- 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 checkLinters can be run individually within the backend or frontend folders.
Generate translation files for Plone and Volto with ease:
make i18nCrafted with care by Generated using Cookieplone (0.7.0) and cookiecutter-plone (9937161) on 2024-05-28 19:04:49.900739. A special thanks to all contributors and supporters!





