Compare commits

..

68 commits

Author SHA1 Message Date
benjaoming bd695b5a8f Merge pull request 'Fix a detail that makes people think they get a new email address' (#133) from benjaoming/website:fix-mini-detail into main
Reviewed-on: data.coop/website#133
Reviewed-by: reynir <data.coop@reynir.dk>
2024-11-29 21:18:39 +00:00
bbb cd63d00b49
Fix a detail that makes people think they get a new email address 2024-11-29 12:52:32 +01:00
Sam A. 8f6ff15ff5
Fix docker-compose.yml [skip CI] 2024-10-20 17:13:01 +02:00
Sam A. 9c0de66d7e
Use maintained Hugo image for CI + add devcontainer config 2024-10-20 17:06:02 +02:00
benjaoming d03d9fef68 Merge pull request 'staging => main' (#131) from staging into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#131
2024-09-05 17:39:45 +00:00
benjaoming 56612b28fb Merge pull request 'Opdaterede oplysninger om medlemskab' (#130) from benjaoming/website:nyt-kontingent-etc into staging
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Reviewed-on: data.coop/website#130
2024-09-05 17:36:55 +00:00
benjaoming 2fa1832041 Merge branch 'staging' into nyt-kontingent-etc
All checks were successful
continuous-integration/drone/pr Build is passing
2024-09-05 17:35:37 +00:00
Benjamin Bach 6427e4b770
Add "reduced membership" note to Danish version
All checks were successful
continuous-integration/drone/pr Build is passing
2024-08-22 21:57:23 +02:00
Benjamin Bach 5ab14dea00
Add some English translation and update the process
All checks were successful
continuous-integration/drone/pr Build is passing
2024-08-15 16:43:41 +02:00
Benjamin Bach 23adc3214a
Opdaterede oplysninger om medlemskab
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-13 12:27:23 +02:00
Sam A. 560b05522a
Merge branch 'main' into staging
All checks were successful
continuous-integration/drone/push Build is passing
2024-06-06 19:59:02 +02:00
Sam A. 44668abc6d Remove files for GA calls
All checks were successful
continuous-integration/drone/push Build is passing
2024-06-06 17:55:14 +00:00
Sam A. 324a77af35 Update rights page (Danish) 2024-06-06 17:55:14 +00:00
Daniel N 19bc81287f Update content/rights.en.md 2024-06-06 17:55:14 +00:00
Daniel N 3644523cf0 Update rights page (en) 2024-06-06 17:55:14 +00:00
Sam A. 948fb1bf66 Merge branch 'main' into staging
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2024-06-06 17:54:42 +00:00
benjaoming a255bc06d6 Merge pull request 'Update rights page (Danish) after ordinary GA' (#127) from update-rights into staging
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#127
Reviewed-by: benjaoming <benjaoming@data.coop>
2024-06-03 08:56:21 +00:00
benjaoming 7020e342af Merge pull request 'Update rights page (en)' (#128) from daniel/dc-website:rights-en into staging
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#128
Reviewed-by: benjaoming <benjaoming@data.coop>
2024-06-03 08:55:39 +00:00
Daniel N 52a42938db Update content/rights.en.md
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-02 18:40:21 +00:00
Daniel N 1a61003ef7 Update rights page (en)
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-02 18:12:51 +00:00
Sam A. 1ae0988d2c
Remove files for GA calls
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-06-02 18:26:15 +02:00
Sam A. 5e284532a2
Update rights page (Danish)
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-06-02 17:37:15 +02:00
valberg 9c57c309e2 Pull staging into main (#126)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#126
2024-06-01 19:14:00 +00:00
valberg df10ca4ec5 Merge pull request 'Remove call for general assembly' (#125) from remove-call-for-general-assembly into staging
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Reviewed-on: data.coop/website#125
2024-06-01 19:13:00 +00:00
valberg e096bcec9c Update content/_index.en.md
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-06-01 19:09:06 +00:00
valberg a0e5a4d2f1 Remove call for general assembly
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-06-01 19:08:20 +00:00
benjaoming 84c1194df6 Merge pull request 'staging => main' (#124) from staging into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#124
2024-05-18 19:59:40 +00:00
benjaoming dbddff9b6f Merge branch 'main' into staging
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2024-05-18 19:57:10 +00:00
benjaoming 573c71db16 Merge pull request 'Call for ordinary assembly 2024' (#123) from benjaoming/website:indkaldelse-gf2024 into staging
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Reviewed-on: data.coop/website#123
2024-05-18 19:47:29 +00:00
Benjamin Bach d25e971def
Call for ordinary assembly 2024
All checks were successful
continuous-integration/drone/pr Build is passing
2024-05-18 21:13:51 +02:00
valberg e1657ec054 Merge pull request 'staging' (#122) from staging into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#122
Reviewed-by: valberg <valberg@orn.li>
2024-05-01 17:52:16 +00:00
benjaoming b239cf3ed8 Merge pull request 'Wrong link :(' (#121) from indkaldelse into staging
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#121
2024-05-01 17:50:25 +00:00
Benjamin Bach fa55a258cc
Wrong link :(
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-05-01 19:50:01 +02:00
valberg 35d2419cac Update .drone.yml
All checks were successful
continuous-integration/drone/push Build is passing
2024-05-01 17:32:31 +00:00
benjaoming ea17521fda Merge pull request 'staging into main' (#119) from staging into main
Reviewed-on: data.coop/website#119
2024-05-01 17:17:32 +00:00
valberg d9637f084c Merge branch 'main' into staging
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2024-05-01 17:14:08 +00:00
valberg c413779a4c Merge pull request 'Indkaldelse ekstraordinær GF 15. maj' (#118) from indkaldelse into staging
Reviewed-on: data.coop/website#118
Reviewed-by: valberg <valberg@orn.li>
2024-05-01 17:12:34 +00:00
Benjamin Bach 84a7870c40
General assembly call 2024-05-01 19:08:50 +02:00
benjaoming be42e72234 Merge pull request 'staging => main' (#116) from staging into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#116
2024-03-25 22:42:43 +00:00
benjaoming 1b047ab7e1 Merge pull request 'Update account numbers' (#115) from benjaoming/website:new-account into staging
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#115
2024-03-25 22:41:35 +00:00
Benjamin Bach 9f3594f867
Update account numbers
All checks were successful
continuous-integration/drone/pr Build is passing
2024-03-25 23:31:10 +01:00
Sam A. 14fd8ef231 Merge pull request 'Old "main" into "staging"' (#113) from main into staging
Reviewed-on: data.coop/website#113
Reviewed-by: Sam A. <samsapti@noreply@git.data.coop>
2024-02-29 19:36:05 +00:00
benjaoming 91e1f0ac19 Merge pull request 'First draft, english translation' (#112) from daniel/data.coop-website:Statutes-translation into main
Reviewed-on: data.coop/website#112
Reviewed-by: benjaoming <benjamin@overtag.dk>
2024-02-28 16:08:07 +00:00
benjaoming d6df8b1ef4 Fixing some grammar stuff 2024-02-28 16:03:06 +00:00
Daniel N e2569e1e2e First draft, english translation
All checks were successful
continuous-integration/drone/pr Build is passing
2024-01-14 13:08:36 +00:00
Sam A. 888ddf8465
Revert baseURL
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-22 20:19:49 +01:00
Sam A. 69d2c5b671
Fix baseURL for staging
All checks were successful
continuous-integration/drone/push Build is passing
2023-12-17 21:39:16 +01:00
benjaoming dcc5a231b4 Merge pull request 'main into staging' (#110) from main into staging
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#110
2023-12-17 20:28:49 +00:00
benjaoming 6fed406c31 Merge pull request 'Comment out Matrix plugin, it randomly hangs forever' (#109) from benjaoming/website:rm-matrix-notification into main
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
Reviewed-on: data.coop/website#109
2023-12-16 23:14:11 +00:00
Benjamin Bach 268a576b3b
Comment out Matrix plugin, it randomly hangs forever
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-17 00:12:33 +01:00
benjaoming 509b750f0f Merge pull request 'Oops languages were swapped :)' (#108) from benjaoming/website:fix-language into main
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: data.coop/website#108
2023-12-16 22:58:48 +00:00
Benjamin Bach 2d6463444d
Description in English
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-16 23:54:40 +01:00
Benjamin Bach faeb00cffb
Oops languages were swapped :)
All checks were successful
continuous-integration/drone/pr Build is passing
2023-12-16 23:52:38 +01:00
benjaoming 23d103122c Merge pull request 'Link preview image #105 - but will it build?' (#106) from some-card into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#106
2023-12-16 22:32:21 +00:00
Benjamin Bach e320c7be2b
Merge branch 'main' of git.data.coop:data.coop/website into some-card
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/pr Build is passing
2023-12-16 23:19:57 +01:00
Benjamin Bach 396a4f8520
Some comment on how that works
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-12-16 23:19:23 +01:00
benjaoming f11ece120b Merge pull request 'WIP Try out third-party plugin for Matrix noticiations' (#103) from replace-drone-matrix-plugin into main
Some checks reported errors
continuous-integration/drone/push Build was killed
Reviewed-on: data.coop/website#103
2023-12-16 22:19:17 +00:00
Benjamin Bach a5b576e790
Add OpenGraph and hellsite preview 2023-12-16 22:27:59 +01:00
benjaoming 9c15dfa218 Update with settings for the plugin
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-10-21 10:50:13 +00:00
benjaoming e82dcb95ed Try out third-party plugin for Matrix noticiations
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing
2023-10-21 10:42:43 +00:00
benjaoming be0d2ae924 Merge pull request 'Draft around the prospects of members that are not near Copenhagen' (#99) from benjaoming/website:english-precision into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#99
2023-08-24 13:44:19 +00:00
Sam A. c4235917c2
Fix file names containing Gitea
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-31 21:46:59 +02:00
Sam A. 8b1ee20ba6
Use klakegg/hugo for building site
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-30 00:26:25 +02:00
Sam A. 59ebb1338c
master -> main in README.md [ci skip] 2023-07-30 00:01:09 +02:00
benjaoming 7ba1a77f5c Merge pull request 'Make links language-aware' (#101) from fix-redirects into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#101
2023-07-29 16:24:10 +00:00
benjaoming 5c18f863d1 Merge pull request 'Swap all "Gitea" with "Forgejo" and add Forgejo logo' (#100) from gitea-to-forgejo into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#100
2023-07-29 15:43:26 +00:00
Sam A. 730d80ce07
Gitea -> Forgejo
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-07-29 15:54:36 +02:00
Benjamin Bach 943a6ed79e
Draft around the prospects of members that are not near Copenhagen
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-28 19:59:04 +02:00
23 changed files with 462 additions and 134 deletions

56
.devcontainer/Dockerfile Normal file
View file

@ -0,0 +1,56 @@
# syntax=docker/dockerfile:1
FROM mcr.microsoft.com/devcontainers/base:ubuntu-22.04
ARG USER=vscode
ARG DEBIAN_FRONTEND=noninteractive
RUN usermod -s /usr/bin/zsh ${USER}
# VARIANT can be either 'hugo' for the standard version or 'hugo_extended' for the extended version.
ARG VARIANT=hugo_extended
# VERSION can be either 'latest' or a specific version number
ARG VERSION=latest
# Download Hugo
RUN case ${VERSION} in \
latest) \
export VERSION=$(curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}') ;;\
esac && \
echo ${VERSION} && \
case $(uname -m) in \
aarch64) \
export ARCH=ARM64 ;; \
*) \
export ARCH=64bit ;; \
esac && \
echo ${ARCH} && \
wget -O ${VERSION}.tar.gz https://github.com/gohugoio/hugo/releases/download/v${VERSION}/${VARIANT}_${VERSION}_Linux-${ARCH}.tar.gz && \
tar xf ${VERSION}.tar.gz && \
mv hugo /usr/bin/hugo
# Hugo dev server port
EXPOSE 1313
USER ${USER}
ARG HOME=/home/${USER}
WORKDIR ${HOME}
ARG PNPM_HOME=${HOME}/.local/share/pnpm
ENV PATH="${PNPM_HOME}:$PATH"
RUN <<EOT
wget -qO- https://get.pnpm.io/install.sh | ENV="${HOME}/.zshrc" SHELL=/bin/zsh sh -
pnpm env use -g lts
EOT
ARG OHMYZSH_HOME=${HOME}/.oh-my-zsh
# ARG OHMYZSH_THEME=${OHMYZSH_HOME}/custom/themes
# RUN <<EOT
# git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${OHMYZSH_THEME}/powerlevel10k
# sed -i 's|ZSH_THEME="devcontainers"|ZSH_THEME="powerlevel10k/powerlevel10k"|g' .zshrc
# echo 'POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true' >> .zshrc
# EOT
RUN <<EOT
hugo completion zsh > ${OHMYZSH_HOME}/plugins/git/_hugo
EOT

View file

@ -0,0 +1,51 @@
{
"name": "Hugo & pnpm",
"build": {
"dockerfile": "Dockerfile"
},
// 👇 Features to add to the Dev Container. More info: https://containers.dev/implementors/features.
// "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": {} },
// 👇 Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"html.format.templating": true
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
// https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-front-matter
"eliostruyf.vscode-front-matter",
// https://marketplace.visualstudio.com/items?itemName=rusnasonov.vscode-hugo
"rusnasonov.vscode-hugo",
// https://marketplace.visualstudio.com/items?itemName=budparr.language-hugo-vscode
"budparr.language-hugo-vscode",
// https://marketplace.visualstudio.com/items?itemName=eliostruyf.vscode-hugo-themer
"eliostruyf.vscode-hugo-themer",
// https://marketplace.visualstudio.com/items?itemName=kaellarkin.hugo-shortcode-syntax
"kaellarkin.hugo-shortcode-syntax",
// "csstools.postcss",
// "esbenp.prettier-vscode",
// "tamasfe.even-better-toml",
// "naumovs.color-highlight",
// "GitHub.vscode-pull-request-github",
// "eamodio.gitlens",
"davidanson.vscode-markdownlint",
"streetsidesoftware.code-spell-checker"
]
}
},
"remoteUser": "vscode",
"postCreateCommand": "pnpm install-completion zsh"
}

View file

@ -2,25 +2,25 @@ kind: pipeline
name: default
steps:
# stable site
- name: build_stable
image: debian:buster-slim
image: floryn90/hugo:ext-alpine-ci
user: root
environment:
HUGO_SECURITY_HTTP_URLS: none
commands:
- apt-get update; apt-get upgrade -y
- apt-get install -y wget git
- wget https://github.com/gohugoio/hugo/releases/download/v0.111.2/hugo_extended_0.111.2_linux-amd64.deb -O hugo.deb
- dpkg -i hugo.deb
- hugo --destination _site/
when:
branch:
- main
# staging site
- name: build_staging
image: debian:buster-slim
image: floryn90/hugo:ext-alpine-ci
user: root
environment:
HUGO_SECURITY_HTTP_URLS: none
commands:
- apt-get update; apt-get upgrade -y
- apt-get install -y wget git
- wget https://github.com/gohugoio/hugo/releases/download/v0.111.2/hugo_extended_0.111.2_linux-amd64.deb -O hugo.deb
- dpkg -i hugo.deb
- hugo --baseURL "https://staging.data.coop" --destination _site/
when:
branch:
@ -66,12 +66,17 @@ steps:
exclude:
- pull_request
- name: notify
image: plugins/matrix
settings:
homeserver: https://data.coop
roomid: plKSghHbepWeUEtbHE:data.coop
username:
from_secret: matrix_username
password:
from_secret: matrix_password
# - name: notify
# image: spotlightkid/drone-matrixchat-notify:latest
# settings:
# homeserver: https://data.coop
# roomid: '!plKSghHbepWeUEtbHE:data.coop'
# userid:
# from_secret: matrix_username
# password:
# from_secret: matrix_password
# markdown: 'yes'
# template: |
# `${DRONE_REPO}` build #${DRONE_BUILD_NUMBER} status: **${DRONE_BUILD_STATUS}**
#
# ${DRONE_PULL_REQUEST_TITLE}](${DRONE_COMMIT_LINK})

View file

@ -1,7 +0,0 @@
FROM debian:buster-slim
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y wget git && \
wget https://github.com/gohugoio/hugo/releases/download/v0.111.1/hugo_extended_0.111.1_linux-amd64.deb -O hugo.deb && \
dpkg -i hugo.deb

View file

@ -10,7 +10,7 @@ Running with Docker
In `docker-compose.yml`, we have specified a `serve` target which you can run locally like this:
``` {.sourceCode .bash}
```bash
docker-compose up serve
```
@ -25,7 +25,7 @@ file an issue!
Example recipe
``` {.sourceCode .bash}
```bash
# Fetch .deb from Github
wget https://github.com/gohugoio/hugo/releases/download/v0.80.0/hugo_extended_X.Y.Z_Linux-64bit.deb -O hugo_extended.deb
@ -45,7 +45,7 @@ hugo server
Deploying the site
------------------
Simply pushing to `master` in our main repo at
Simply pushing to `main` in our main repo at
<https://git.data.coop/data.coop/website/> will trigger a
build-and-deploy of the website.

View file

@ -17,7 +17,15 @@ markup:
languages:
da:
title: data.coop
weight: 1
params:
description: "Et datakollektiv, der passer på dine data."
weight: 1
# First Hugo looks in your post front matter for an images value (images: [""])
# Then Hugo searchs for image page resources with feature, cover or thumbnail in their name. These are images files under a directory that matches the post (e.g. content\posts\first-post)
# If not images are found, Hugo looks for images (images: [""]) in your site config
# If no image if found, then an image-less Twitter summary card is used instead of summary_large_image
# https://digitaldrummerj.me/hugo-preview-when-sharing-twitter/
images: ["/static/img/some_card_preview_large_da.png"]
LanguageName: Dansk
menu:
nav:
@ -35,7 +43,10 @@ languages:
weight: 4
en:
title: data.coop
params:
description: "A data collective that takes care of your data."
weight: 2
images: ["/static/img/some_card_preview_large_en.png"]
LanguageName: English
menu:
nav:
@ -52,5 +63,3 @@ languages:
url: "en/rights/"
weight: 4
params:
description: "Et datakollektiv, der passer på dine data."

View file

@ -38,3 +38,4 @@ Vores kerneprincipper er:
</dl>
Ud fra de kerneprincipper vil vi med tiden udbyde onlinetjenester til medlemmerne. Hovedtanken er, at vi som udgangspunkt stoler mere på hinanden end på "de store" som f.eks. Google, Microsoft eller Facebook.

View file

@ -3,6 +3,7 @@ title: Welcome to data.coop
---
data.coop is a cooperative, which owns and operates a digital infrastructure for its members. Our fundamental vision is to protect our members' data.
The community consists of members around the Copenhagen-area and is open to inquiries from abroad to start sister infrastructures based on the same principles.
Our core principles are:

View file

@ -17,5 +17,5 @@ Du kan finde os på:
* Matrix: [#data.coop:data.coop](https://matrix.to/#/#data.coop:data.coop)
* IRC (Libera.chat): #data.coop
* Vores [Gitea server](https://git.data.coop/data.coop/)
* Vores [Forgejo server](https://git.data.coop/data.coop/)
* På Fødiverset/Mastodon: <a rel="me" href="https://social.data.coop/@datacoop">@datacoop@data.coop</a>

View file

@ -4,6 +4,9 @@ title: "About"
**[data.coop]({{< ref "/" >}})** is an association and a cooperative.
The community consists of members around the Copenhagen-area and is open to inquiries from abroad to start sister infrastructures based on the same principles.
If you are interested in becoming a member of data.coop but you are not able to participate in physical meetings in Copenhagen, we encourage that you get in touch with us about a vision you have for your community, rather than signing up as a member.
We — the members of the cooperative — own our own data.
In practice, this means that:
@ -17,5 +20,5 @@ You can find us here:
* Matrix: [#data.coop:data.coop](https://matrix.to/#/#data.coop:data.coop)
* IRC (Libera.chat): #data.coop
* Our [Gitea server](https://git.data.coop/data.coop/)
* Our [Forgejo server](https://git.data.coop/data.coop/)
* In the Fediverse/Mastodon: <a rel="me" href="https://social.data.coop/@datacoop">@datacoop@data.coop</a>

View file

@ -8,14 +8,29 @@ generalforsamling.
Du bør læse vores [vedtægter]({{< ref "/rights.md" >}}) og især vores [Acceptable Usage Policy (AUP)](https://git.data.coop/data.coop/dokumenter/src/branch/main/Acceptable%20Usage%20Policy.md) inden du melder dig ind. Har du spørgsmål, kan du finde os på [Matrix og IRC]({{< ref "/about.md" >}}) eller [sende en e-mail til bestyrelsen](mailto:board@data.coop).
Du bliver medlem ved at overføre penge til vores konto og sende en email til
vores kasserer, [benjaoming@data.coop](mailto:benjaoming@data.coop), med dit navn.
## Medlemspris
* Reg. 8401 (Merkur)
* Kontonr. 1016866
* Tekst på overførslen: Fornavn+efternavn
Vores kontingentår løber fra og med 1. juli til og med 30. juni.
Årligt kontingent: **300 kr** (dog gerne mere)\
Nedsat kontingent for studerende/arbejdsløse: **50 kr**
Medlemskab består af et kontingent til foreningen, samt en medlemsydelse for brug af tjenesterne. Betalinger følger det kontingentåret. Dvs. medlemskab er fortløbende fra betaling af kontingent frem til overstået ordinær generalforsamling. Medlemsydelsen er ligeledes 1 år forudbetalt og følger også kontingentåret, dog i indmeldelsesåret er kun indregnet tilbageværende måneder til og med juni.
Kontingent-perioden gælder for det foreningsår, man melder sig ind i. Dvs. medlemskab er fortløbende fra betaling af kontingent frem til overstået ordinær generalforsamling.
* Almindeligt medlem: **600 kr / år**
* Heraf 150 kr kontingent
* ...og 450 kr medlemsydelse (inkl. moms)
* Nedsat kontingent: **100 kr / år**
* Heraf 50 kr kontingent
* ...og 50 kr medlemsydelse (inkl. moms)
Nedsat kontingent tilbydes til studerende og arbejdsløse.
## Sådan melder du dig ind
En betalingsløsning er under udvikling.
Du melder dig ind ved at skrive til kasserer@data.coop med følgende information:
* At du har læst og er enig i vores [vedtægter]({{< ref "/rights.md" >}}) og [Acceptable Usage Policy (AUP)](https://git.data.coop/data.coop/dokumenter/src/branch/main/Acceptable%20Usage%20Policy.md).
* Ønsket primært brugernavn
* Din email-adresse (som blive tilknyttet services)
Herefter kan vi sende dig en invitation og et betalingslink.

View file

@ -16,17 +16,29 @@ Many parts of this organization are already in English,
but our legal documents are not (yet).
Please write us if you have any questions.
You become a member by paying the annual membership fee to our account *and* sending an email
to our treasurer [benjaoming@data.coop](mailto:benjaoming@data.coop), containing your name.
## Price
Currently, the only option is to wire a bank payment to our Danish bank account:
Our membership period runs from one general assembly to the next => July 1st until June 30th.
* Reg. 8401 (Merkur)
* Kontonr. 1016866
* Text: First name + last name
A membership is comprised of a contingent to the association and a service fee. Payments follow the membership period.
Annual membership: **DKK 300** (or more)\
Reduced annual membership (students/unemployed): **DKK 50**
* Ordinary membershio: **600 kr / år**
* ...of which 150 kr is contingent
* ...and 450 kr are service fee (incl. VAT)
* Reduced membership: **100 kr / år**
* ...of which 50 kr is contingent
* ...and 50 kr is service fee (incl. VAT)
The membership period counts from *association year* that you sign up in.
That means that a membership is valid from when it's paid and until and including the next general assembly.
The reduced membership is offered to students and unemployed members.
## How to become a member
We are developing a sign-up form.
Currently, you sign up by writing kasserer@data.coop with the following info:
* That you have read and agree to our [statutes]({{< ref "/rights.md" >}}) and [Acceptable Usage Policy (AUP)](https://git.data.coop/data.coop/dokumenter/src/branch/main/Acceptable%20Usage%20Policy.md).
* A desired primary username
* The email address to connect to your account
After this, we can send you an invite and payment link.

View file

@ -43,13 +43,15 @@ foreningens hjemmeside og mailinglister. Ordinær generalforsamling afholdes
hvert år inden udgangen af september måned. Dagsorden for ordinær
generalforsamling skal indeholde følgende punkter:
1. Valg af dirigent og referent.
1. Formalia
1. Valg af dirigent.
2. Generalforsamlingens lovlighed (er indkaldelsen sket rettidigt).
3. Valg af referent.
2. Bestyrelsens beretning.
3. Fremlæggelse af regnskab, budget og kontingent.
3. Fremlæggelse og godkendelse af regnskab, budget og kontingent.
4. Indkomne forslag.
5. Godkendelse af vedtægtsændringer og Acceptable Use Policy
6. Valg (Jf. § 3)
7. Eventuelt
5. Valg (Jf. § 3)
6. Eventuelt
### § 4.1. Afholdelse af generalforsamlinger og bestyrelsesmøder
Generalforsamlinger og bestyrelsesmøder kan afholdes på internettet.
@ -77,10 +79,14 @@ Bestyrelsen fastsætter selv sin forretningsorden.
Bestyrelsen kan sammensætte samarbejdsgrupper af medlemmer, der kan fungerer
som idéudviklingsforum for foreningen.
### § 5.1 Tegningsret
Tegningsret for foreningen har forpersonen og kassereren, dog ved køb, salg eller
pantsætning af fast ejendom, indgåelse af driftsaftaler samt ved optagelse af
lån, af den samlede bestyrelse.
Den samlede bestyrelse kan meddele prokura til individuelle medlemmer af bestyrelsen.
## § 6. Medlemskab
Som medlem kan enhver fysisk person optages, som har interesse i at støtte
foreningens formål. Medlemskab er bindende for et år ad gangen.
@ -108,14 +114,56 @@ på en ekstraordinær generalforsamling.
Mistillid til administratorer skal meldes til bestyrelsen. Bestyrelsen kan midlertidigt fratage en administrator vedkommendes administrationsrettigheder, indtil mistillidserklæringen mod vedkommende er behandlet.
## § 8. Kontingent/finansiering
## § 8. Moderationspolitik
Foreningen vedtager en moderationspolitik for foreningens sociale tjenester på generalforsamlingen. Moderationspolitikken håndhæves af et moderatorhold.
### § 8.1 Udpegning af moderatorer
Bestyrelsen udpeger moderatorer.
Udpegning af moderatorer skal annonceres til foreningens medlemmer.
Kun medlemmer af foreningen kan bestride hvervet som moderator. Moderatorer skal så vidt muligt findes udenfor bestyrelsen, dog skal mindst én moderator samtidig være bestyrelsesmedlem.
### § 8.2 Mistillid til moderatorer
Hvis der er mistillid til en eller flere moderatorer skal dette behandles
på en ekstraordinær generalforsamling.
Mistillid til moderatorer skal meldes til bestyrelsen. Bestyrelsen kan midlertidigt fratage en moderator vedkommendes moderatorrettigheder, indtil mistillidserklæringen mod vedkommende er behandlet.
## § 9. Kontingent/finansiering
De årlige kontingenter fastsættes af generalforsamlingen.
Foreningen kan herudover finansieres ved sponsor- og annoncestøtte samt bidrag
fra offentlige/private virksomheder, fonde, øvrige foreninger/institutioner og
private personer, så længe det ikke stiller krav til foreningens dispositioner.
## § 9. Ekstraordinær generalforsamling
## § 10. Medlemsydelse
Foreningen stiller tjenester til rådighed for sine medlemmer mod betaling af medlemsydelse.
Medlemsydelsen defineres og prissættes af bestyrelsen.
### § 10.1 Leverings- og betalingsbetingelser
Bestyrelsen fastsætter leverings- og betalingsbetingelser, såsom betalingsperioder, frister og refusion.
Bestyrelsen forudsætter sig ret til at pålægge gebyrer eller lukke for tjenester ved udebleven betaling.
### § 10.2 Ændring af medlemsydelser og betalingsbetingelser
Ændring af ydelser og betalingsbetingelser skal annonceres til foreningens medlemmer mindst 30 dage inden ændringen træder i kraft.
Tilføjelser af flere tjenester eller ændringer på konfigurationen af tjenester anses IKKE som ændringer, der kræver varslinger.
### § 10.3 Indsigelse mod ændringer
Hvis et eller flere medlemmer er uenige i ændringer af medlemsydelsen eller betalingsbetingelser, kan de indsende en skriftlig indsigelse til bestyrelsen.
Indsigelsen skal være bestyrelsen i hænde senest 14 dage før ændringen træder i kraft.
Hvis bestyrelsen modtager indsigelser fra mindst 1/3 af foreningens medlemmer, skal bestyrelsen indkalde til en ekstraordinær generalforsamling, hvor ændringen skal fremsættes som forslag og godkendes af generalforsamlingen.
## § 11. Ekstraordinær generalforsamling
Indkaldelse sker, hvis et flertal af bestyrelsen ønsker det.
Indkaldelse sker, hvis 1/3 af medlemmerne ønsker det.
@ -124,10 +172,10 @@ Indkaldelse sker under samme betingelser, som anført i §4.
Dagsorden skal motiveres.
## § 10. Regnskab
## § 12. Regnskab
Regnskabsåret for Foreningen er kalenderåret.
## § 11. Opløsning
## § 13. Opløsning
Opløsning af foreningen kræver et flertal på ¾ af generalforsamlingens eller
den ekstraordinære generalforsamlings fremmødte medlemmer.

View file

@ -2,10 +2,163 @@
title: Legal statutes of data.coop
---
data.coop does not have a translation of its Danish statutes.
> This translation is provided solely for the purpose of guidance. The [Danish version](/rights/) remains the official and legally binding version.
The reason is that we cannot guarantee that the democratic process that established the Danish statutes would understand an English translation in the same way.
## § 1. Name and location
The name of the association is: data.coop
While we work out this challenge,
we encourage that you use some auto-generated translation of the [Danish statutes]({{< ref path="/rights.md" lang="da" >}})
and ask us questions about anything that would seem unclear.
The association is based in the city of Copenhagen but (its activities are) primarily online.
## § 2. Aim
The main aims of the association is to provide digital infrastructure to its members, while keeping the core principles of the association — privacy, encryption, decentralization and zero knowledge — in focus.
### § 2.1 Secondary aims
* The association works to promote its core principles.
* The association helps people act responsibly online.
* The association collaborates with other data cooperatives and/or helps other start up similar initiatives.
* The association may provide its services to other non-profits, grassroots movements and similar, working independently of the association with goals that match the aims and core principles of the association.
## § 3. Governance
Overriding power of the association lies with the General Assembly, consisting of members with a valid proof of membership.
The General Assembly elects:
- A board of 5 members
- 2 alternate board members
- 1 financial auditor
- Optionally, 1 alternate financial auditor
Board members are elected for a period of 2 years, so that at least 2 members are up for election every year. The auditor and alternates are up for election every year.
## § 4. The General Assembly (GA)
The board calls for meetings of the GA no less than 14 days prior through the website of the association and mailing lists. The GA meets every year before the end of September. The agenda of the annual meeting of the GA must include the following items:
1. Formalities
1. Election of a meeting chair and notetaker
2. Legality of the meeting (was the meeting called in time)
3. Election of a notetaker
2. Report from the board
3. Presentation and approval of accounts, budget and membership fee
4. Incoming motions
5. Elections (as per §3)
6. Any other business
### § 4.1. Holding of meetings of the GA and the board
Meetings of the GA and the board may take place online.
### § 4.2. Incoming motions and statute amendments
Motions and statute amendments must be received by the board no less than a week before the meeting of the GA and presented to members no less than 4 days before the the meeting of the GA.
### § 4.3. Statute amendments
Passing of statute amendments requires a three-quarters majority of members present at the meeting of the GA.
### § 4.4. Motions
Passing of motions requires a simple majority of members present at the meeting of the GA.
## § 5. The board of the association
The executive power of the association lies with the board (as per §3). The board itself elects its officers including a chair, a vice chair and a treasurer. The board delegates handling of daily business of the association to an executive committee consisting of the chair, vice chair and treasurer.
The board is in charge of drafting the accounts and the budget.
The board itself determines its own rules of procedure.
The board may create ad-hoc working groups consisting of members, functioning as fora for developing ideas for the association.
### §5.1 Legal authority
The chair and treasurer have legal authority, but when it comes to purchasing, selling, or mortgaging real estate, making service agreements, or taking loans, the board as a whole must agree to bind the association.
The board as a whole may assign power of attorney to individual members of the board.
## § 6. Membership
Any physical person who supports the aims of the association may become a member. Membership is binding for one year at a time.
The board has the authority to remove members from the association if they act in violation of the Acceptable Use Policy (AUP).
Membership is continuous from the payment of dues until the conclusion of the annual meeting of the GA.
## § 7. Administrators
The services offered by the associated are maintained by a team of administrators. Only members of the association can assume the role of administrator.
Only administrators hold administrative access to the servers and services of the association.
### § 7.1 Appointment of administrators
The board appoints administrators.
The appointment of administrators must be announced to the members of the association.
### § 7.2 Mistrust of administrators
Mistrust towards one or more administrators must be addressed at an extraordinary meeting of the GA.
Mistrust towards administrators must be reported to the board. The board has the authority to temporarily suspend an administrator's administrative rights until the declaration of mistrust against them is addressed
## § 8. Moderation policy
The association maintains a moderation policy for its social services, approved by the GA. The moderation policy is enforced by a team of moderators.
### § 8.1 Appointment of moderators
The board appoints moderators.
The appointment of moderators must be announced to the members of the association.
Only members of the association can hold the position of moderator. Ideally, moderators should not be board members, however, at least one moderator must also be a board member.
### § 8.2 Mistrust of moderators
Mistrust towards one or more moderators must be addressed at an extraordinary meeting of the GA.
Mistrust towards moderators must be reported to the board. The board has the authority to temporarily suspend a moderator's moderator rights until the declaration of mistrust against them is addressed
## § 9. Membership fees/funding
Annual membership fees are decided by the GA.
Additionally, the association can receive funding through sponsorships, advertising support, as well as contributions from public/private companies, foundations, other associations/institutions, and private individuals, as long as it does not impose conditions on the association's decisions.
## § 10. Service fees
The association provides services to its members who pay a service fee.
The service fee is defined and determined by the board.
### § 10.1 Terms of delivery and payment
The board determines the terms of delivery and payment, such as terms, payment times and refunds.
The board reserves the right to charge late fees or suspend services in case of lacking payments.
### § 10.2 Change of service fees and payment terms
Changes to service fees or payment terms must be announced to the members of the association no later than 30 days before taking effect.
The addition of services or changes to service configurations are NOT considered changes requiring notice.
### § 10.3 Disputing changes
If one or more members disagree with changes in service fees or payment terms, they may file a dispute in writing to the board.
The dispute must be received by the board no later than 14 days before the change would take effect.
If the board receives disputes from at least 1/3 of the members of the association, the board must call for an extraordinary GA, at which the change must be presented as a motion to be approved by the GA.
## § 11. Extraordinary General Assembly (GA)
Extraordinary GAs may be called if desired by a majority of the board.
Extraordinary GAs may be called if desired by one-third of the members.
Extraordinary GAs are called following the same terms as in §4.
The agenda must be substantiated.
## § 12. Accounts
The association's financial year is the calendar year.
## § 13. Dissolution
Dissolution of the association requires a majority vote of three-quarters of members present at the GA or extraordinary GA.
The dissolution must then be approved at a subsequent extraordinary GA.
In the event of the dissolution of the association, the association's assets shall be transferred to European Digital Rights (EDRi) and Free Software Foundation Europe (FSFE)
The association data.coop was founded on June 24, 2014.

View file

@ -1,6 +1,6 @@
---
layout: page
title: Gitea
title: Forgejo
service_badges:
stability: positive
secure_connection: positive

View file

@ -1,6 +1,6 @@
---
layout: page
title: Gitea
title: Forgejo
service_badges:
stability: positive
secure_connection: positive

View file

@ -1,12 +1,10 @@
version: "3"
services:
serve:
build:
context: .
dockerfile: Dockerfile_hugo
command: |
/bin/bash -c "cd /code && hugo serve"
network_mode: host
server:
image: floryn90/hugo:ext-alpine
command: server
volumes:
- .:/code
- ".:/src"
ports:
- "1313:1313"

View file

@ -0,0 +1,37 @@
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg">
<metadata
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
>
<rdf:RDF>
<cc:Work rdf:about="https://codeberg.org/forgejo/governance/src/branch/main/branding#logo">
<dc:title>Forgejo logo</dc:title>
<cc:creator rdf:resource="https://caesarschinas.com/"><cc:attributionName>Caesar Schinas</cc:attributionName></cc:creator>
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
</rdf:RDF>
</metadata>
<style type="text/css">
:root, svg {
color-scheme: dark light;
}
circle {
fill: none;
stroke: #4b3aba;
stroke-width: 15;
}
path {
fill: none;
stroke: #4b3aba;
stroke-width: 25;
}
</style>
<g transform="translate(6,6)">
<path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" />
<path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" />
<circle cx="142" cy="20" r="18" />
<circle cx="142" cy="88" r="18" />
<circle cx="58" cy="180" r="18" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
id="main_outline"
x="0px"
y="0px"
viewBox="0 0 640 640"
xml:space="preserve"
sodipodi:docname="gitea_logo.svg"
style="enable-background:new 0 0 640 640;"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs16" /><sodipodi:namedview
id="namedview14"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="1.2984375"
inkscape:cx="320.38508"
inkscape:cy="320.77016"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="main_outline" />
<g
id="g11"
transform="matrix(1,0,0,1.0012257,0,-0.17537094)">
<path
id="teabag"
style="fill:#ffffff"
d="M 395.9,484.2 269,423.2 c -12.5,-6 -17.9,-21.2 -11.8,-33.8 l 61,-126.9 c 6,-12.5 21.2,-17.9 33.8,-11.8 17.2,8.3 27.1,13 27.1,13 l -0.1,-109.2 16.7,-0.1 0.1,117.1 c 0,0 57.4,24.2 83.1,40.1 3.7,2.3 10.2,6.8 12.9,14.4 2.1,6.1 2,13.1 -1,19.3 l -61,126.9 c -6.2,12.7 -21.4,18.1 -33.9,12 z" />
<g
id="g9">
<g
id="g7">
<path
style="fill:#4b3aba"
d="m 622.7,149.8 c -4.1,-4.1 -9.6,-4 -9.6,-4 0,0 -117.2,6.6 -177.9,8 -13.3,0.3 -26.5,0.6 -39.6,0.7 0,39.1 0,78.2 0,117.2 -5.5,-2.6 -11.1,-5.3 -16.6,-7.9 0,-36.4 -0.1,-109.2 -0.1,-109.2 -29,0.4 -89.2,-2.2 -89.2,-2.2 0,0 -141.4,-7.1 -156.8,-8.5 -9.8,-0.6 -22.5,-2.1 -39,1.5 -8.7,1.8 -33.5,7.4 -53.8,26.9 -45,40.1 -33.5,103.9 -32.1,113.5 1.7,11.7 6.9,44.2 31.7,72.5 45.8,56.1 144.4,54.8 144.4,54.8 0,0 12.1,28.9 30.6,55.5 25,33.1 50.7,58.9 75.7,62 63,0 188.9,-0.1 188.9,-0.1 0,0 12,0.1 28.3,-10.3 14,-8.5 26.5,-23.4 26.5,-23.4 0,0 12.9,-13.8 30.9,-45.3 5.5,-9.7 10.1,-19.1 14.1,-28 0,0 55.2,-117.1 55.2,-231.1 -1.1,-34.5 -9.6,-40.6 -11.6,-42.6 z M 125.6,353.9 c -25.9,-8.5 -36.9,-18.7 -36.9,-18.7 0,0 -19.1,-13.4 -28.7,-39.8 -16.5,-44.2 -1.4,-71.2 -1.4,-71.2 0,0 8.4,-22.5 38.5,-30 13.8,-3.7 31,-3.1 31,-3.1 0,0 7.1,59.4 15.7,94.2 7.2,29.2 24.8,77.7 24.8,77.7 0,0 -26.1,-3.1 -43,-9.1 z m 300.3,107.6 c 0,0 -6.1,14.5 -19.6,15.4 -5.8,0.4 -10.3,-1.2 -10.3,-1.2 0,0 -0.3,-0.1 -5.3,-2.1 l -112.9,-55 c 0,0 -10.9,-5.7 -12.8,-15.6 -2.2,-8.1 2.7,-18.1 2.7,-18.1 L 322,273 c 0,0 4.8,-9.7 12.2,-13 0.6,-0.3 2.3,-1 4.5,-1.5 8.1,-2.1 18,2.8 18,2.8 L 467.4,315 c 0,0 12.6,5.7 15.3,16.2 1.9,7.4 -0.5,14 -1.8,17.2 -6.3,15.4 -55,113.1 -55,113.1 z"
id="path3" />
<path
style="fill:#4b3aba"
d="m 326.8,380.1 c -8.2,0.1 -15.4,5.8 -17.3,13.8 -1.9,8 2,16.3 9.1,20 7.7,4 17.5,1.8 22.7,-5.4 5.1,-7.1 4.3,-16.9 -1.8,-23.1 l 24,-49.1 c 1.5,0.1 3.7,0.2 6.2,-0.5 4.1,-0.9 7.1,-3.6 7.1,-3.6 4.2,1.8 8.6,3.8 13.2,6.1 4.8,2.4 9.3,4.9 13.4,7.3 0.9,0.5 1.8,1.1 2.8,1.9 1.6,1.3 3.4,3.1 4.7,5.5 1.9,5.5 -1.9,14.9 -1.9,14.9 -2.3,7.6 -18.4,40.6 -18.4,40.6 -8.1,-0.2 -15.3,5 -17.7,12.5 -2.6,8.1 1.1,17.3 8.9,21.3 7.8,4 17.4,1.7 22.5,-5.3 5,-6.8 4.6,-16.3 -1.1,-22.6 1.9,-3.7 3.7,-7.4 5.6,-11.3 5,-10.4 13.5,-30.4 13.5,-30.4 0.9,-1.7 5.7,-10.3 2.7,-21.3 -2.5,-11.4 -12.6,-16.7 -12.6,-16.7 -12.2,-7.9 -29.2,-15.2 -29.2,-15.2 0,0 0,-4.1 -1.1,-7.1 -1.1,-3.1 -2.8,-5.1 -3.9,-6.3 4.7,-9.7 9.4,-19.3 14.1,-29 -4.1,-2 -8.1,-4 -12.2,-6.1 -4.8,9.8 -9.7,19.7 -14.5,29.5 -6.7,-0.1 -12.9,3.5 -16.1,9.4 -3.4,6.3 -2.7,14.1 1.9,19.8 -8.2,16.8 -16.4,33.6 -24.6,50.4 z"
id="path5" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -1,3 +1,3 @@
<a rel="me" href="https://social.data.coop/@datacoop"><img src="/static/img/mastodon_logo.svg" alt="Mastodon logo" title="data.coop on Mastodon" width="40" height="40" /></a>
<a href="https://git.data.coop/data.coop"><img src="/static/img/gitea_logo.svg" alt="Gitea logo" title="data.coop on Gitea" width="" height="40" /></a>
<a href="https://git.data.coop/data.coop"><img src="/static/img/forgejo_logo.svg" alt="Forgejo logo" title="data.coop on Forgejo" width="" height="40" /></a>
<a href="https://matrix.to/#/#data.coop:data.coop"><img src="/static/img/matrix_logo.svg" alt="Matrix logo" title="data.coop on Matrix" width="" height="40" /></a>

View file

@ -17,6 +17,9 @@
<meta name="msapplication-TileColor" content="#4b3aba">
<meta name="theme-color" content="#4b3aba">
{{ template "_internal/twitter_cards.html" . }}
{{ template "_internal/opengraph.html" . }}
{{ $style := resources.Get "static/css/style.scss" | resources.ToCSS | resources.Minify | resources.Fingerprint "sha512" }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}">