d99ecc8144140b96eaf68585e5d9ab8a0a277df2
CRR Event Sharing Tool
Static website for sharing events from the Centro Recreativo da Rebolaria.
Deploy
The server needs Docker with Docker Compose. From the project directory, run:
docker compose up --build
The website is available on port 8200.
After changing an event or updating the website, rebuild the container:
docker compose up --build
Add an event
Events and their images are stored together in content/events/:
content/events/
├── festas-2026.md
├── festas-2026.jpeg
├── novo-evento.md
└── novo-evento.jpg
To add an event:
- Copy an existing Markdown file in
content/events/. - Give it a unique filename and slug.
- Add its poster image to the same directory.
- Set
posterto the image filename. - Set the new event to
active: true. - Set every other event to
active: false. - Rebuild the Docker container.
Exactly one event can be active. Inactive events remain available at /partilhar/<slug>.
Event format
Each event is a Markdown file containing:
title: event name.slug: unique URL name using lowercase letters, numbers, and hyphens.active: whether the event appears at/partilhar.date.startanddate.end: quoted dates inYYYY-MM-DDformat.location: venue name and optional locality.poster: image filename located next to the Markdown file.facebook.url: direct URL of the original public Facebook post.facebook.embed: whether to display the Facebook post on the page.share.text: suggested text for visitors to copy.- Markdown below the frontmatter: event description and programme.
Supported poster formats are PNG, JPG, JPEG, WebP, and AVIF.
---
title: "Nome do evento"
slug: "nome-do-evento-2027"
active: true
date:
start: "2027-09-05"
end: "2027-09-07"
location:
name: "Centro Recreativo da Rebolaria"
locality: "Rebolaria, Batalha"
poster: "nome-do-evento-2027.jpg"
facebook:
url: "https://www.facebook.com/..."
embed: true
share:
text: |
Texto sugerido para partilhar o evento.
Pode ter vários parágrafos.
---
## Sobre o evento
Descrição do evento.
## Programa
### Sábado, 5 de setembro
- 19h00 - Abertura
- 22h00 - Atuação musical
Languages
Vue
47.5%
TypeScript
29.5%
CSS
20.6%
Dockerfile
1.2%
HTML
1.2%