Site da Python Cerrado 2025
- 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]:plonegovbr/2025.pythoncerrado.org.git cd 2025.pythoncerrado.org
 - 
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://pythoncerrado.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 the following distinct sections:
- backend: Houses the API and Plone installation, utilizing pip instead of buildout, and includes a policy package named pythoncerrado.site.
 - 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 checkTo 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 i18nGenerated using Cookieplone (0.9.7) and cookieplone-templates (684d5c7) on 2025-05-23 16:31:51.809463. A special thanks to all contributors and supporters!