Merge pull request 'staging -> production' (#6) from staging into production

Reviewed-on: #6
This commit is contained in:
vinzenz 2025-06-07 22:44:34 +02:00
commit 2e67aa9d98
13 changed files with 126 additions and 46 deletions

4
.gitignore vendored
View file

@ -104,4 +104,6 @@ shell.nix
.venv
# murmeldin
overview.md
overview.md
/result

View file

@ -19,15 +19,13 @@ This is the website of the CCCB.
cd cccb-website
```
### Run site locally
4. Run hugo webserver
Run hugo webserver:
```shell
hugo serve
```
```shell
hugo serve
```
Point your browser to: <http://localhost:1313/>
5. Point your browser to: <http://localhost:1313/>
To ready your site for upload, run `./build.sh`, which also generates `all.ics`
and adds the calendar table to `index.html`.
@ -46,6 +44,13 @@ as long as `hugo serve` is running.
- 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` should work
- Python including required packages will be available, so the `build.sh` should work without a venv
- 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).

View file

@ -3,9 +3,7 @@
- DSGVO-compliant Datenschutzerklärung reinbasteln
- Entscheiden, welche Seiten sonst noch konvertiert werden sollen und welche in die ewigen Datengründe gehen können
# Done
## Done
- Template aussuchen
- Rausfinden, wie man eine Seite konvertiert

View file

@ -1,5 +1,5 @@
theme = "blowfish"
baseURL = "https://oururl.de/"
baseURL = "/"
defaultContentLanguage = "de"
relativeURLs = true
canonifyURLs = true

View file

@ -1 +0,0 @@
Leider existiert diese Seite nicht.

View file

@ -23,7 +23,7 @@ description: "Startseite CCCB mit Kurzkalender"
-->
### Nächste Veranstaltungen:
### Nächste Veranstaltungen
CALENDAR

View file

@ -5,13 +5,14 @@ menu:
main:
parent: "Verein"
tag: ["Verein"]
aliases: ["/page/anfahrt/"]
---
# Allgemeine Hinweise
## Allgemeine Hinweise
Die Clubräume liegen im Hinterhof der **Marienstr. 11, 10117 Berlin** ([Google](http://maps.google.com/maps?hl=de&q=Marienstr.%2011%2C%2010117%20Berlin), [OpenStreetMap](http://www.openstreetmap.org/node/2007229025#map=17/52.52159/13.38547)). Die Koordinaten sind **52,52194° Nord; 13,38261° Ost**.
# Nahbereichskarte
## Nahbereichskarte
{{< figure
src="/img/Weg_zum_CCCB.png"
@ -19,28 +20,27 @@ Die Clubräume liegen im Hinterhof der **Marienstr. 11, 10117 Berlin** ([Google]
alt="Fußweg vom S Friedrichstraße zum CCCB"
>}}
# Ich reise an...
## Ich reise an mit
## mit dem Rad
### einem Fahrrad
Eine beschränkte Anzahl von Fahrradständern befindet sich im Innenhof. Auf dem Weg zum Club befinden sich zahlreiche Fahrradstraßen, die bevorzugt werden sollten. Nutzt beispielsweise [BBBike.de](http://bbbike.de/cgi-bin/bbbike.cgi).
## mit öffentlichem Nahverkehr
### öffentlichem Nahverkehr
Der Club befindet sich in unmittelbarer Nähe zum S+U Bahnhof **Friedrichstraße**, an dem auch Regionalbahnen halten. Vom S-Bahn-Bahnsteig (S3/S5/S7, oberirdisch, Ausgang Schiffbauerdamm) gibt es einen direkten Weg über die Spree unterhalb der Bahnbrücke. Über die Albrechtstraße erreicht ihr die Marienstraße.
## mit dem Fernverkehr
### Fernverkehr
Aussteigen in **Berlin Hauptbahnhof**. Von dort mit jeder S-Bahn oder Regionalbahn Richtung Osten auf der Stadtbahn eine Haltestelle bis zum **Bahnhof Friedrichstraße** fahren. Den Bahnhof Richtung Spree verlassen, dann die Fußgängerbrücke über den Fluß nehmen und der Albrechtstraße bis zur Stichstraße Marienstraße folgen.
## mit dem Flugzeug
### Flugzeug
* vom **Flughafen Berlin Brandenburg** (BER/EDDB): mit dem Airport Express (RE 7 und RB 14) oder S9 bis zum **Bahnhof Friedrichstraße**. Alternativ mit dem FEX bis **Berlin Hauptbahnhof**. Von dort siehe jeweils Abschnitt **Fernverkehr**. **Achtung:** Terminal 5 (früher: SXF) ist nicht mit dem Rest des BER verbunden. Als einzige direkte Bahnanbindung steht hier die S9 zur Verfügung.
* vom **Flugplatz Straußberg** (EDAY): S7 direkt bis zum **Bahnhof Friedrichstraße**. Von dort siehe Abschnitt **öffentlicher Nahverkehr**.
## mit dem Auto
### Auto
Am besten dem Navigationsgerät folgen. Zufahrt aus Richtung Hauptbahnhof oder Brandenburger Tor ist über die Luisenstraße möglich. Wer von der Friedrichstraße kommt, fährt entweder über den Schiffbauerdamm und die Albrechtstraße (Behinderung durch Außgengastronomie und Kopfsteinpflaster) oder fährt über die Reinhardstraße und die Luisenstraße (die Albrechtstraße ist nur in die Gegenrichtung befahrbar).
**Warnung:** Vor Ort gibt es je nach Tageszeit wenige Parkmöglichkeiten. Die Marienstraße und alle umliegenden Straßen unterliegen der Parkraumbewirtschaftung seitens des Bezirks. Parkplätze in unmittelbarer Nähe sind selten.

15
devShells.nix Normal file
View file

@ -0,0 +1,15 @@
{
pkgs,
selfPkgs,
...
}:
{
default = pkgs.mkShellNoCC {
inputsFrom = [ selfPkgs.local-content ];
packages = with pkgs; [
go
shellcheck
];
};
}

View file

@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1741332913,
"narHash": "sha256-ri1e8ZliWS3Jnp9yqpKApHaOo7KBN33W8ECAKA4teAQ=",
"lastModified": 1748995628,
"narHash": "sha256-bFufQGSAEYQgjtc4wMrobS5HWN0hDP+ZX+zthYcml9U=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "20755fa05115c84be00b04690630cb38f0a203ad",
"rev": "8eb3b6a2366a7095939cd22f0dc0e9991313294b",
"type": "github"
},
"original": {

View file

@ -6,36 +6,74 @@
};
outputs =
{ self, nixpkgs }:
{
self,
nixpkgs,
}:
let
supported-systems = [
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
forAllSystems =
f:
nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed (
nixpkgs.lib.genAttrs supported-systems (
system:
f rec {
pkgs = nixpkgs.legacyPackages.${system};
inherit system;
pkgs = nixpkgs.legacyPackages.${system};
selfPkgs = self.packages.${system};
lib = pkgs.lib // self.lib;
}
);
in
{
devShells = forAllSystems (
{ pkgs, ... }:
{
default = pkgs.mkShell rec {
packages = with pkgs; [
hugo
go
(pkgs.python3.withPackages (python-pkgs: [
python-pkgs.icalendar
python-pkgs.pytz
]))
shellcheck
];
};
}
);
packages = forAllSystems (import ./packages.nix);
devShells = forAllSystems (import ./devShells.nix);
formatter = forAllSystems ({ pkgs, ... }: pkgs.nixfmt-rfc-style);
lib.mkWwwContent =
{ domain, system }:
let
pkgs = nixpkgs.legacyPackages.${system};
in
pkgs.stdenvNoCC.mkDerivation {
pname = "www-content";
version = domain;
src = ./.;
# Build dependencies
nativeBuildInputs = [
pkgs.hugo
pkgs.glibcLocales
(pkgs.python3.withPackages (python-pkgs: [
python-pkgs.icalendar
python-pkgs.pytz
]))
];
LOCALE_ARCHIVE = "${pkgs.glibcLocales}/lib/locale/locale-archive";
# Build phase - run Hugo to generate the site
buildPhase = ''
mkdir -p public
hugo --baseURL=https://${domain}/
python3 ./tools/merge_cals.py
upcoming="$(python3 tools/gen_upcoming.py static/all.ics 20 5 | tr '\n' ' ')"
cp static/all.ics public/all.ics
sed -i "s#CALENDAR#$upcoming#g" public/index.html
'';
# Install phase - copy the public directory to the output
installPhase = ''
mkdir -p $out
cp -r public/* $out/
'';
};
};
}

4
i18n/de.toml Normal file
View file

@ -0,0 +1,4 @@
[error]
404_title = "Seite nicht gefunden :confused:"
404_error = "Fehler 404"
404_description = "Es sieht so aus, als hättest du einen toten Link gefunden. Leider existiert diese Seite nicht."

19
packages.nix Normal file
View file

@ -0,0 +1,19 @@
{
pkgs,
lib,
...
}:
{
production-content = lib.mkWwwContent {
domain = "berlin.ccc.de";
inherit (pkgs) system;
};
staging-content = lib.mkWwwContent {
domain = "staging.berlin.ccc.de";
inherit (pkgs) system;
};
local-content = lib.mkWwwContent {
domain = "localhost";
inherit (pkgs) system;
};
}

@ -1 +1 @@
Subproject commit 0d03681d203f48a8e8a0a836618b091def375c09
Subproject commit 0b06a64139beba6287e7685f4c810ad4ff772fde