# CCCB Website This is the website of the CCCB. ![CCCB logo](assets/img/logo.png) ## Getting started 1. Get Hugo: 2. Clone this repo (`--recursive` is needed to check out submodules) ```shell git clone --recursive https://git.berlin.ccc.de/cccb-website-team/www.git cccb-website ``` 3. Switch directory ```shell cd cccb-website ``` 4. Run hugo webserver ```shell hugo serve ``` 5. Point your browser to: Every change you make on the project will be reflected in your browser as long as `hugo serve` is running. The *"Nächste Veranstaltungen"* table on the home page and the calendar under `/verein/calendar/` are rendered in the browser by `static/js/upcoming.js` and `assets/js/calendar.js`. Both fetch `/calendars/all.ics`, which is **not** generated by Hugo and is not part of this repo — it is published separately on the web server. Locally those two tables therefore stay empty; check them on the [staging site](https://staging.berlin.ccc.de/) instead. Hugo does generate an `.ics` feed per section (for example `/veranstaltungen/index.ics`) from the `dtstart`, `dtend` and `rrule` front matter of the pages in `content/veranstaltungen/`, using the `.ics` templates under `layouts/`. To build the site for upload, run: ```shell ./build.sh ``` This deletes `public/` and runs `hugo` with the parameters from `.hugo-params`. To build with *nix* instead: `nix build '.?submodules=1#production-content'` ## Making a change 1. Use your local dev setup (see Getting started) or via the Forgejo editor. 2. Make your change in `staging` branch. 3. Commit (and push) your change. 4. ~~GitHub Actions is running the release workflow.~~ - If successful, check [Staging Website](https://staging.berlin.ccc.de/) if change is correct. 5. Create a merge request to merge changes from `staging` to `production` branch. Ask somebody to check merge request or if small change, merge yourself. 6. ~~GitHub Actions is running the release workflow.~~ - If successfull, check [Website](https://berlin.ccc.de/) if change is correct. 7. Profit! ## Nix stuff - After entering the shell with `nix develop`, hugo is available and `hugo serve` and `./build.sh` should work - You can build the staging and production builds with `nix build .#staging-content` and `nix build .#production-content` - Do not update the nixpkgs branch - 25.05 contains a newer hugo version that is incompatible with the theme (last checked June 2025) --- Made with ❤️ and [Hugo](https://gohugo.io).