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-site
or 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-start
Voila! 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:
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-site
And... 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 check
Linters can be run individually within the backend
or frontend
folders.
Generate translation files for Plone and Volto with ease:
make i18n
Crafted 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!