Merge branch 'master' of git.fsfe.org:FSFE/fsfe-website

This commit is contained in:
2025-12-09 11:42:29 +01:00
17 changed files with 162 additions and 31 deletions

View File

@@ -21,7 +21,11 @@ steps:
- export FSFE_WEBSITE_HOST_SOURCE_CODE=$(docker container inspect "$HOSTNAME" --format '{{ range .Mounts }}{{ if eq .Destination "/drone/src" }}{{ .Source }}{{ end }}{{ end }}')
- docker ps && echo "tampered with"
- echo "DRONE_COMMIT_BRANCH ${DRONE_COMMIT_BRANCH}"
- docker compose -p fsfe-website-pre-commit run --remove-orphans --build pre-commit "origin/${DRONE_COMMIT_BRANCH}"
- echo "DRONE_COMMIT_REF ${DRONE_COMMIT_REF}"
- PROJECT="$(echo "fsfe-website-pre-commit-${DRONE_COMMIT_REF}" | tr "/" "-")"
- docker compose -p "$PROJECT" down
- docker compose -p "$PROJECT" run --remove-orphans --build pre-commit "origin/${DRONE_COMMIT_BRANCH}"
- docker compose -p "$PROJECT" down
# Test building the deploy docker image
- name: test-build-docker-image
@@ -82,6 +86,7 @@ steps:
# Ideally the cron would set the flag itself, but drone does not support that.
- if [ "$DRONE_BUILD_EVENT" = "cron" ]; then EXTRA_FLAGS="--full"; fi
- docker compose -p "$PROJECT" run --remove-orphans --build build --target "$TARGET" $EXTRA_FLAGS
- docker compose -p "$PROJECT" down
when:
branch:
- master
@@ -116,6 +121,7 @@ steps:
# Ideally the cron would set the flag itself, but drone does not support that.
- if [ "$DRONE_BUILD_EVENT" = "cron" ]; then EXTRA_FLAGS="--full"; fi
- docker compose -p "$PROJECT" run --remove-orphans --build build --target "$TARGET" $EXTRA_FLAGS
- docker compose -p "$PROJECT" down
when:
branch:
- test
@@ -142,6 +148,6 @@ volumes:
path: /run/user/1001/docker.sock
---
kind: signature
hmac: 3db8e2103b4160f172248b54c7e21aabd22956f2b3fbf6492e38f9bd5d338e8f
hmac: aa5d8fd7cd515e165b861345495517924992c4e1ff86e16c9b1ed293fed7a565
...

3
.gitignore vendored
View File

@@ -10,7 +10,8 @@ output
__pycache__
#Nltk
.nltk_data
#phpcsfixer cache
.php-cs-fixer.cache
# Secrets
# docker compose
.env

View File

@@ -31,5 +31,3 @@ COPY build.entrypoint.sh ./
WORKDIR /website-source
ENTRYPOINT ["bash", "/website-source-during-build/build.entrypoint.sh"]

5
composer.json Normal file
View File

@@ -0,0 +1,5 @@
{
"require": {
"php": "^8.4"
}
}

View File

@@ -55,6 +55,7 @@
<donor since="2021">Julian Rüth GmbH</donor>
<donor>Liferay International</donor>
<donor since="2009">LIHAS - LinuxHaus Stuttgart</donor><!-- Adrian Reyer -->
<donor since="2021">Matteo Settenvini</donor>
<donor>Matomo.org</donor>
<donor>SUSE</donor>
<donor since="2016">sysmocom - systems for mobile communications</donor>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-12-15T19:00:00Z" end="2025-12-15T21:00:00Z">
<title>Rhein/Main Regular Meeting in Frankfurt am Main, Germany</title>
<group>
<name>Rhein/Main</name>
<url></url>
</group>
<body>
<p>Wir Treffen uns am <strong>Montag den 15. Dezember 2025 ab 19:00 Uhr</strong> beim <a href="https://ccc-ffm.de/hackerspace">CCC-FFM</a>, Hohenstaufenstraße 8, 60327 Frankfurt am Main (<a href="https://www.openstreetmap.org/node/3342079613">Openstreetmap</a>). Der Eingang befindet sich im Hof über eine Überdachte Treppe.</p>
</body>
<link>https://docs.fsfe.org/e/en/LocalGroups/Active/RheinMain</link>
<tags>
<tag key="de">
Germany </tag>
<tag key="localgroup"/>
<tag key="front-page"/>
</tags>
</event>
</eventset>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<eventset>
<version>1</version>
<event start="2025-12-15T19:00:00Z" end="2025-12-15T21:00:00Z">
<title>Rhein/Main Regular Meeting in Frankfurt am Main, Germany</title>
<group>
<name>Rhein/Main</name>
<url></url>
</group>
<body>
<p>We meet on <strong>Monday, December 15, 2025, from 7:00 p.m.</strong> at the <a href="https://ccc-ffm.de/hackerspace">CCC-FFM</a>, Hohenstaufenstraße 8, 60327 Frankfurt am Main (<a href="https://www.openstreetmap.org/node/3342079613">Openstreetmap</a>). The entrance is located in the courtyard above a covered staircase.</p>
</body>
<link>https://docs.fsfe.org/e/en/LocalGroups/Active/RheinMain</link>
<tags>
<tag key="de">
Germany </tag>
<tag key="localgroup"/>
<tag key="front-page"/>
</tags>
</event>
</eventset>

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<html newsdate="2025-12-04">
<version>1</version>
<head>
<title>Opening the cage: the FSFE flies away from X (Twitter)</title>
</head>
<body>
<h1>Opening the cage: the FSFE flies away from X (Twitter)</h1>
<p>The Free Software Foundation Europe deleted its account on X. The
platform never aligned with our values and no longer serves as a space
for communication. What initially intended to be a place for dialogue and
information exchange has turned into a centralised arena of hostility,
misinformation, and profit-driven control, far removed from the ideals
of freedom we stand for.</p>
<figure>
<img src="https://pics.fsfe.org/uploads/medium/fd/a7/5c9070674249d3725da40535df2f.png"
alt="A split image shows the Twitter bird icon dissolving into digital fragments on the left and a colorful decentralized network on the right, with bright light at the center."/>
</figure>
<p>Since Elon Musk acquired the social network formerly known as
Twitter and rebranded it as X, the Free Software Foundation Europe
(FSFE) has been closely monitoring the developments of this proprietary
platform, a space we were never comfortable joining, yet one that was
once important for reaching members of society who were not active in
our preferred spaces for interaction. Over time, it has become
increasingly hostile, with misinformation, harassment, and hate speech
more visible than ever.</p>
<p>The FSFE initially joined Twitter as it offered a space to promote
the Free Software values and to interact with policymakers,
journalists, and above all, reaching to people who were not yet
familiar with Free Software and its benefits. The social network was
another tool the FSFE used to share information about our initiatives,
to explain to users their right to control our technology, and to
promote software freedom across society, while also encouraging the use
of alternative, decentralised social media networks.</p>
<p>However, the current platform direction and climate combined with an algorithm
that prioritises hatred, polarisation, and sensationalism, alongside
growing privacy and data protection concerns, has led us to the
decision to part ways with this platform.</p>
<p><strong>Consequently, the FSFE decided to permanently delete its account on
X</strong>. We keep being active on some other proprietary platforms in order
to reach a wider part of society, journalists, and decision makers.</p>
<p>At the same time, we strongly encourage everyone who shares our
commitment to digital freedom and decentralisation to join us in the
Fediverse. Unlike proprietary platforms driven by profit and
centralised control, the Fediverse empowers users to choose how and
where they connect, ensuring transparency, autonomy, and resilience.
Follow the FSFE on <a
href="https://mastodon.social/deck/@fsfe">Mastodon</a> and <a
href="https://media.fsfe.org/">Peertube</a>!</p>
</body>
<tags>
<tag key="news">News</tag>
<tag key="front-page"/>
<tag key="community">Community</tag>
<tag key="fediverse">Fediverse</tag>
<tag key="highlights">Highlights</tag>
</tags>
<discussion href="https://mastodon.social/deck/@fsfe/115661347143283604"/>
<image url="https://pics.fsfe.org/uploads/medium/fd/a7/5c9070674249d3725da40535df2f.png"
alt="A split image shows the Twitter bird icon dissolving into digital fragments on the left and a colorful decentralized network on the right, with bright light at the center. "/>
</html>

View File

@@ -18,7 +18,7 @@
<li><a href="#tshirt">T-Shirts</a></li>
<li><a href="#slimfit">Slimfit T-Shirts</a></li>
<!-- li><a href="#hooded">Kapuzenshirts</a></li -->
<li><a href="#socks">Socken</a></li>
<!-- li><a href="#socks">Socken</a></li -->
<!-- li><a href="#baby-clothes">Babykleidung</a></li -->
<li><a href="#other">Andere Artikel</a></li>
</ul>
@@ -52,9 +52,9 @@
<dynamic-content type="hoodie"/ -->
<h2 id="socks">Socken</h2>
<!-- h2 id="socks">Socken</h2>
<dynamic-content type="socks"/>
<dynamic-content type="socks"/ -->
<!-- h2 id="baby-clothes">Babykleidung</h2>

View File

@@ -18,7 +18,7 @@
<li><a href="#tshirt">T-shirts</a></li>
<li><a href="#slimfit">Slimfit T-Shirts</a></li>
<!-- li><a href="#hooded">Hoodies</a></li -->
<li><a href="#socks">Socks</a></li>
<!-- li><a href="#socks">Socks</a></li -->
<!-- li><a href="#baby-clothes">Baby Clothes</a></li -->
<li><a href="#other">Other Items</a></li>
</ul>
@@ -51,9 +51,9 @@
<dynamic-content type="hoodie"/ -->
<h2 id="socks">Socks</h2>
<!-- h2 id="socks">Socks</h2>
<dynamic-content type="socks"/>
<dynamic-content type="socks"/ -->
<!-- h2 id="baby-clothes">Baby Clothes</h2>

View File

@@ -18,8 +18,8 @@
<li><a href="#tshirt">Camisetas</a></li>
<li><a href="#slimfit">Camiseta slim fit</a></li>
<!-- li><a href="#hooded">Camisetas con capucha</a></li -->
<li><a href="#socks">Calcetines</a></li>
<!-- li><a href="#baby-clothes">Ropa de bebé</a></li -->
<!-- li><a href="#socks">Calcetines</a></li -->
<!-- li><a href="#baby-clothes">Ropa de bebé</a></li -->
<li><a href="#other">Otros artículos</a></li>
</ul>
</div>
@@ -51,9 +51,9 @@
<dynamic-content type="hoodie"/ -->
<h2 id="socks">Calcetines</h2>
<!-- h2 id="socks">Calcetines</h2>
<dynamic-content type="socks"/>
<dynamic-content type="socks"/ -->
<!-- h2 id="baby-clothes">Ropa de bebé</h2>

View File

@@ -18,7 +18,7 @@
<li><a href="#tshirt">T-shirts</a></li>
<li><a href="#slimfit">T-shirt cintré</a></li>
<!-- li><a href="#hooded">Sweat-shirts à capuche</a></li -->
<li><a href="#socks">Chaussettes</a></li>
<!-- li><a href="#socks">Chaussettes</a></li -->
<!-- li><a href="#baby-clothes">Vêtements pour bébé</a></li -->
<li><a href="#other">Autres articles</a></li>
</ul>
@@ -51,9 +51,9 @@
<dynamic-content type="hoodie"/ -->
<h2 id="socks">Chaussettes</h2>
<!-- h2 id="socks">Chaussettes</h2>
<dynamic-content type="socks"/>
<dynamic-content type="socks"/ -->
<!-- h2 id="baby-clothes">Vêtements pour bébé</h2>

View File

@@ -18,7 +18,7 @@
<li><a href="#tshirt">Magliette</a></li>
<li><a href="#slimfit">Magliette slimfit</a></li>
<!-- li><a href="#hooded">Felpe con cappuccio</a></li -->
<li><a href="#socks">Calzini</a></li>
<!-- li><a href="#socks">Calzini</a></li -->
<!-- li><a href="#baby-clothes">Vestiti per bambini</a></li -->
<li><a href="#other">Altri prodotti</a></li>
</ul>
@@ -51,9 +51,9 @@
<dynamic-content type="hoodie"/ -->
<h2 id="socks">Calzini</h2>
<!-- h2 id="socks">Calzini</h2>
<dynamic-content type="socks"/>
<dynamic-content type="socks"/ -->
<!-- h2 id="baby-clothes">Vestiti per bambini</h2>

View File

@@ -18,7 +18,7 @@
<li><a href="#tshirt">T-Shirts</a></li>
<li><a href="#slimfit">Nauwsluitende T-shirts</a></li>
<!-- li><a href="#hooded">Shirts met kap (hoodies)</a></li -->
<li><a href="#socks">Sokken</a></li>
<!-- li><a href="#socks">Sokken</a></li -->
<!-- li><a href="#baby-clothes">Babykleding</a></li -->
<li><a href="#other">Andere artikelen</a></li>
</ul>
@@ -53,9 +53,9 @@
<dynamic-content type="hoodie"/ -->
<h2 id="socks">Sokken</h2>
<!-- h2 id="socks">Sokken</h2>
<dynamic-content type="socks"/>
<dynamic-content type="socks"/ -->
<!-- h2 id="baby-clothes">Babykleding</h2>

View File

@@ -16,7 +16,7 @@ pre-commit:
glob: "*.php"
exclude:
- "fsfe.org/cgi-bin/PHPMailer/*.php"
run: for file in {staged_files}; do php-cs-fixer fix "$file"; done
run: for file in {staged_files}; do php-cs-fixer --no-interaction fix "$file"; done
stage_fixed: true
fail_on_changes: "ci"
shfmt:

View File

@@ -5,12 +5,9 @@ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
# Install deps
RUN apt-get update && apt-get install --yes --no-install-recommends \
composer \
coreutils \
curl \
file \
findutils \
git \
grep \
libxml2 \
libxml2-utils \
libxslt1.1 \
@@ -20,7 +17,6 @@ npm \
perl-base \
php-zip \
rsync \
sed \
shfmt \
xsltproc
@@ -50,5 +46,3 @@ COPY pre-commit.entrypoint.sh ./
WORKDIR /website-source
ENTRYPOINT ["bash", "/website-source-during-build/pre-commit.entrypoint.sh"]

View File

@@ -11,6 +11,10 @@
<h2>Service Status</h2>
<div class="incidentstatus">
<div class="incident">
<dl>
<dt class="service">Network problems in one datacenter (<span class="since">2025-12-07 08:20h</span>)</dt>
<dd class="description">At one datacenter of our server locations we experience network problems after they did some maintenance work on Sunday Dec. 7th. Services located in the DC include email, Nextcloud, git. The DC support is looking into the problem.</dd>
</dl>
<dl>
<dt class="service">planet.fsfe.org (<span class="since">2025-09-01</span>)</dt>
<dd class="description">The blog aggregator is currently not available. Reasons are being investigated.</dd>