Compare commits

..

122 commits

Author SHA1 Message Date
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. 2cab915021
Remove done todo
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-07-29 17:34:27 +02:00
Sam A. d24cdab7e9
Use ref shortcode for links to ensure proper language redirects 2023-07-29 17:32:34 +02:00
Sam A. cd06781700
Fix language-aware redirect from header logo and other stuff 2023-07-29 16:58:30 +02: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
benjaoming 3519e9d841 Merge pull request 'Typo fix' (#98) from typo-fix into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#98
2023-07-28 17:25:03 +00:00
benjaoming 96f127aee0 Update content/membership.en.md
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-07-28 17:24:41 +00:00
Sam A. 1a46bf02d3
Test Drone
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-26 18:05:03 +02:00
Sam A. 84f78ee052
Fix baseURL when building for staging.data.coop
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-26 17:21:17 +02:00
Sam A. cecf3a26a7
Fix baseURL
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-26 17:12:29 +02:00
Sam A. fe0131dd9b
Merge branch 'main' into staging
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-26 17:09:48 +02:00
Sam A. 3c692301e1
Fix .drone.yml
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-26 16:58:26 +02:00
Sam A. d71d58f9c6
Build Docker image with correct tags
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2023-07-26 16:57:00 +02:00
Benjamin Bach 3177b1f6f8
Add new build rule for "staging" branch
Some checks reported errors
continuous-integration/drone/push Build encountered an error
2023-07-25 22:08:35 +02:00
Benjamin Bach f4daf56245
Use "stable" tag on "main" branch 2023-07-25 22:05:53 +02:00
Benjamin Bach 1321a1d0d3
build branch main automatically
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-25 21:49:45 +02:00
benjaoming f437ff8cb8 Merge pull request 'English finalization' (#96) from benjaoming/website:english-finalization into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#96
2023-07-24 19:00:53 +00:00
Benjamin Bach 4941f363e3
Fixes #1 and fixes #2
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-24 20:37:08 +02:00
Benjamin Bach 3884e8c8ae
Updates and typo fixes
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-24 01:43:35 +02:00
Benjamin Bach b5e39c3d19
English translations of a lot of stuff, hopefully everything!
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-24 01:26:16 +02:00
Benjamin Bach 94ee445a24
Merge branch 'new' of git.data.coop:data.coop/website into new 2023-06-04 23:21:24 +02:00
benjaoming 723e2864cb Merge pull request 'Update description for logging badge' (#85) from benjaoming/website:feature/new/badge/logging into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#85
2023-06-04 21:02:27 +00:00
benjaoming e2b912ab3f Merge pull request 'Update description for secure_connection' (#86) from benjaoming/website:feature/new/badge/secure_connection into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#86
2023-06-04 20:43:12 +00:00
Benjamin Bach f60bd27991
Adds a TODO comment based on what was removed
All checks were successful
continuous-integration/drone/pr Build is passing
2023-06-04 22:42:37 +02:00
Benjamin Bach 5a5ad3fbc7
Adjust text based on feedback. 2023-06-04 22:39:07 +02:00
Benjamin Bach f2eba1ed12
Merge branch 'new' of git.data.coop:data.coop/website into feature/new/badge/logging 2023-06-04 22:36:22 +02:00
Benjamin Bach 2c080ba5a7
Review feedback implemented 1:1
All checks were successful
continuous-integration/drone/pr Build is passing
2023-06-04 22:34:59 +02:00
Benjamin Bach 9b49d6e4df
Merge branch 'new' of git.data.coop:data.coop/website into feature/new/badge/secure_connection 2023-06-04 22:34:24 +02:00
benjaoming b73401f7ad Merge pull request 'Update description for stability badge' (#87) from benjaoming/website:feature/new/badge/stability into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#87
2023-06-04 20:34:03 +00:00
Benjamin Bach 5f63a83991
Merge branch 'new' of git.data.coop:data.coop/website into feature/new/badge/stability
All checks were successful
continuous-integration/drone/pr Build is passing
2023-06-04 22:30:43 +02:00
Benjamin Bach 152e10821c
Review feedback accepted 1:1
All checks were successful
continuous-integration/drone/pr Build is passing
2023-06-04 22:29:10 +02:00
Sam A. 7b82481100 Merge pull request 'Update description for encrypted_storage badge' (#84) from feature/new/badge/encrypted_storage into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#84
2023-05-20 16:05:17 +00:00
Sam A. d12f644147 Merge pull request 'Update description for backup badge' (#83) from feature/new/badge/backup into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#83
2023-05-20 16:04:47 +00:00
Sam A. d148d05e56 Merge pull request 'Update description for anonymity badge' (#82) from feature/new/badge/anonymity into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#82
2023-05-20 16:04:35 +00:00
Sam A. 9a80f6de26 Merge pull request 'Update description for zero_knowledge badge' (#88) from benjaoming/website:feature/new/badge/zero_knowledge into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#88
2023-05-20 15:34:36 +00:00
Benjamin Bach 29c9c000c9
Update description for zero_knowledge badge
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-15 23:22:03 +02:00
Benjamin Bach 1d198e21d1
Update description for stability badge
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-15 23:20:44 +02:00
Benjamin Bach 3def060a6e
Update description for secure_connection
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-15 23:18:54 +02:00
Benjamin Bach 03c7d882bf
Add description for logging
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-15 23:16:05 +02:00
Sam A. 574e042a1f
Update description for anonymity badge
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-04-15 17:33:08 +02:00
Sam A. c788fe68ca
Update description for backup badge
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-04-15 17:30:57 +02:00
Sam A. f767317661
Update description for encrypted_storage badge
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-04-15 17:29:35 +02:00
Sam A. 77d8177ef7 Merge pull request 'Update badge descriptions (Danish)' (#79) from feature/new/update_badge_descriptions into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#79
2023-04-10 15:10:36 +00:00
Sam A. 658dc73085
Update some badge desciptions
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2023-04-09 23:54:12 +02:00
Sam A. a2c51388a8
Capitalize badge names 2023-04-09 23:44:29 +02:00
Sam A. 90b784dd22
We do actually take backups of everything daily 2023-04-09 23:42:25 +02:00
Sam A. b58affea8e
Format badge descriptions to avoid long lines 2023-04-09 23:41:38 +02:00
benjaoming a3e3d6d2d8 Merge pull request 'Make grids reflow on narrow displays' (#75) from benjaoming/website:responsive-grids into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#75
2023-04-02 22:10:34 +00:00
Benjamin Bach 1b638ab7ad
Make grids reflow on narrow displays
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-03 00:06:38 +02:00
benjaoming 68f4f97271 Merge pull request 'Make the menu look more okay on small screens' (#74) from benjaoming/website:menu-small-displays into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#74
2023-04-02 21:50:56 +00:00
Benjamin Bach b3affc1643
Make the menu look more okay on small screens
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-02 23:47:08 +02:00
benjaoming a9de76d2e8 Merge pull request 'Update services w/o description, change some badge status, add PrivateBin' (#72) from benjaoming/website:define-services into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#72
2023-04-02 21:30:21 +00:00
benjaoming 2f40c9c518 Merge pull request 'Display all badges on all services, including the ones that are undefined' (#73) from benjaoming/website:badge-undefined into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#73
2023-04-02 21:28:53 +00:00
Benjamin Bach bf4b4e2770
Display all badges on all services, including the ones that are undefined
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-02 23:16:34 +02:00
Benjamin Bach bab30c960a
Update services w/o description, change some badge status, add PrivateBin
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-02 00:26:14 +02:00
benjaoming e411796241 Merge pull request 'Add content from current website, add smooth scrolling' (#71) from benjaoming/website:content-update into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#71
2023-04-01 21:37:38 +00:00
Benjamin Bach f5f40320b8
Add content from current website, add smooth scrolling
All checks were successful
continuous-integration/drone/pr Build is passing
2023-04-01 23:32:25 +02:00
benjaoming acafbe6aed Merge pull request 'Cleanup old stuff from bootstrap times' (#70) from benjaoming/website:new-cleanup into new
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: data.coop/website#70
2023-04-01 20:22:32 +00:00
49 changed files with 1016 additions and 1361 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,16 +2,32 @@ kind: pipeline
name: default name: default
steps: steps:
- name: build # stable site
image: debian:buster-slim - name: build_stable
image: floryn90/hugo:ext-alpine-ci
user: root
environment:
HUGO_SECURITY_HTTP_URLS: none
commands: 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/ - hugo --destination _site/
when:
branch:
- main
- name: docker # staging site
- name: build_staging
image: floryn90/hugo:ext-alpine-ci
user: root
environment:
HUGO_SECURITY_HTTP_URLS: none
commands:
- hugo --baseURL "https://staging.data.coop" --destination _site/
when:
branch:
- staging
# stable site
- name: docker_stable
image: plugins/docker image: plugins/docker
settings: settings:
repo: docker.data.coop/data-coop-website repo: docker.data.coop/data-coop-website
@ -22,20 +38,45 @@ steps:
from_secret: DOCKER_PASSWORD from_secret: DOCKER_PASSWORD
tags: tags:
- "${DRONE_BUILD_NUMBER}" - "${DRONE_BUILD_NUMBER}"
- "hugo" - "stable"
when: when:
branch: branch:
- new - main
event: event:
exclude: exclude:
- pull_request - pull_request
- name: notify # staging site
image: plugins/matrix - name: docker_staging
image: plugins/docker
settings: settings:
homeserver: https://data.coop repo: docker.data.coop/data-coop-website
roomid: plKSghHbepWeUEtbHE:data.coop registry: docker.data.coop
username: username:
from_secret: matrix_username from_secret: DOCKER_USERNAME
password: password:
from_secret: matrix_password from_secret: DOCKER_PASSWORD
tags:
- "${DRONE_BUILD_NUMBER}"
- "staging"
when:
branch:
- staging
event:
exclude:
- pull_request
# - 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: In `docker-compose.yml`, we have specified a `serve` target which you can run locally like this:
``` {.sourceCode .bash} ```bash
docker-compose up serve docker-compose up serve
``` ```
@ -25,7 +25,7 @@ file an issue!
Example recipe Example recipe
``` {.sourceCode .bash} ```bash
# Fetch .deb from Github # 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 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 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 <https://git.data.coop/data.coop/website/> will trigger a
build-and-deploy of the website. build-and-deploy of the website.

View file

@ -1,4 +1,4 @@
baseURL: https://new.data.coop baseURL: https://data.coop
copyright: CC-BY, see https://creativecommons.org/licenses/by/4.0/ copyright: CC-BY, see https://creativecommons.org/licenses/by/4.0/
@ -17,7 +17,15 @@ markup:
languages: languages:
da: da:
title: data.coop title: data.coop
params:
description: "Et datakollektiv, der passer på dine data."
weight: 1 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 LanguageName: Dansk
menu: menu:
nav: nav:
@ -35,7 +43,10 @@ languages:
weight: 4 weight: 4
en: en:
title: data.coop title: data.coop
params:
description: "A data collective that takes care of your data."
weight: 2 weight: 2
images: ["/static/img/some_card_preview_large_en.png"]
LanguageName: English LanguageName: English
menu: menu:
nav: nav:
@ -52,5 +63,3 @@ languages:
url: "en/rights/" url: "en/rights/"
weight: 4 weight: 4
params:
description: "Et datakollektiv, der passer på dine data."

View file

@ -38,3 +38,4 @@ Vores kerneprincipper er:
</dl> </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. 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

@ -1,13 +1,45 @@
--- ---
title: Velcome to data.coop title: Welcome to data.coop
--- ---
We are an association whose purpose is to look after the members' data. Our core principles are 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.
- Privacy Our core principles are:
- Encryption
- Decentralization <dl class="principles-list">
- Zero-knowledge <dt>
<img src="/static/img/icons/no-surveillance.svg" />
Privacy
</dt>
<dd>
We protect member data together.
We do not share them for profit.
Data is always encrypted in transit.
</dd>
<dt>
<img src="/static/img/icons/encrypted.svg" />
Encryption
</dt>
<dd>
We provide secure services that are thoroughly declared.
</dd>
<dt>
<img src="/static/img/icons/decentralised.svg" />
Decentralization
</dt>
<dd>
Our services exist together with other decentralized counterparts.
</dd>
<dt>
<img src="/static/img/icons/zero-knowledge.svg" />
Zero knowledge
</dt>
<dd>
Whenever possible, we ensure that a system administrator does not have technical ability to access member data.
</dd>
</dl>
From these core principles, we will continue to develop services for members.
The idea is that we trust each other more than any Big Tech operators, such as Google, Microsoft or Facebook.
Based on the core principles, over time we will provide online services to members. The main idea is,
that we basically rely more on each other than on the "big ones" such as Google, Microsoft or Facebook.

View file

@ -2,7 +2,7 @@
title: "Om os" title: "Om os"
--- ---
**data.coop** er en forening og et kooperativ. **[data.coop]({{< ref "/" >}})** er en forening og et kooperativ.
Vi — medlemmerne i kooperativet — ejer vores egne data. Vi — medlemmerne i kooperativet — ejer vores egne data.
@ -17,5 +17,5 @@ Du kan finde os på:
* Matrix: [#data.coop:data.coop](https://matrix.to/#/#data.coop:data.coop) * Matrix: [#data.coop:data.coop](https://matrix.to/#/#data.coop:data.coop)
* IRC (Libera.chat): #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> * På Fødiverset/Mastodon: <a rel="me" href="https://social.data.coop/@datacoop">@datacoop@data.coop</a>

View file

@ -2,7 +2,23 @@
title: "About" title: "About"
--- ---
## This Theme **[data.coop]({{< ref "/" >}})** is an association and a cooperative.
Thanks for visiting this theme demo. If you're interested, checkout my other stuff over at <https://zwbetz.com> 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:
* We own our own hardware.
* We only use Open Source Software.
The cooperative owns 2 rack servers, of which one is in use and one is spare.
You can find us here:
* Matrix: [#data.coop:data.coop](https://matrix.to/#/#data.coop:data.coop)
* IRC (Libera.chat): #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

@ -2,18 +2,35 @@
title: Bliv medlem title: Bliv medlem
--- ---
[data.coop](https://data.coop) er en demokratisk forening. Medlemmer bestemmer [data.coop]({{< ref "/" >}}) er en demokratisk forening. Medlemmer bestemmer
over foreningens generelle drift og hvordan data skal forvaltes. Dette sker som i en helt klassisk forening i henhold til vores vedtægter på den årlige over foreningens generelle drift og hvordan data skal forvaltes. Dette sker som i en helt klassisk forening i henhold til vores vedtægter på den årlige
generalforsamling. generalforsamling.
Du bliver medlem ved at overføre penge til vores konto og sende en email til 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).
vores kasserer, [benjaoming@data.coop](mailto:benjaoming@data.coop), med dit navn.
* Reg. 8401 (Merkur) ## Medlemspris
* Kontonr. 1016866
* Tekst på overførslen: Fornavn+efternavn
Årligt kontingent: **300 kr** (dog gerne mere)\ Vores kontingentår løber fra og med 1. juli til og med 30. juni.
Nedsat kontingent for studerende/arbejdsløse: **50 kr**
Kontingent-perioden gælder for det år, man melder sig ind i. 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.
* 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
* Ønsket email-adresse
Herefter kan vi sende dig en invitation og et betalingslink.

View file

@ -2,4 +2,43 @@
title: Become a member title: Become a member
--- ---
:P [data.coop]({{< ref "/" >}}) is a cooperative established as a democratic association.
The members decide on the association's operations and how data should be governed.
Governance resembles any classic association: We have legal statutes and formal general assemblies.
You need to read our [statutes]({{< relref "/rights.md" >}}) and our
[Acceptable Usage Policy (AUP)](https://git.data.coop/data.coop/dokumenter/src/branch/main/Acceptable%20Usage%20Policy.md)
before becoming a member.
If you have questions, you can find us on [Matrix or IRC]({{< ref "/about.md" >}}) or [send an email to the board](mailto:board@data.coop).
*English speakers:* We would love to have you as a member.
Many parts of this organization are already in English,
but our legal documents are not (yet).
Please write us if you have any questions.
## Price
Our membership period runs from one general assembly to the next => July 1st until June 30th.
A membership is comprised of a contingent to the association and a service fee. Payments follow the membership period.
* 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 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 hvert år inden udgangen af september måned. Dagsorden for ordinær
generalforsamling skal indeholde følgende punkter: 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. 2. Bestyrelsens beretning.
3. Fremlæggelse af regnskab, budget og kontingent. 3. Fremlæggelse og godkendelse af regnskab, budget og kontingent.
4. Indkomne forslag. 4. Indkomne forslag.
5. Godkendelse af vedtægtsændringer og Acceptable Use Policy 5. Valg (Jf. § 3)
6. Valg (Jf. § 3) 6. Eventuelt
7. Eventuelt
### § 4.1. Afholdelse af generalforsamlinger og bestyrelsesmøder ### § 4.1. Afholdelse af generalforsamlinger og bestyrelsesmøder
Generalforsamlinger og bestyrelsesmøder kan afholdes på internettet. 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 Bestyrelsen kan sammensætte samarbejdsgrupper af medlemmer, der kan fungerer
som idéudviklingsforum for foreningen. som idéudviklingsforum for foreningen.
### § 5.1 Tegningsret
Tegningsret for foreningen har forpersonen og kassereren, dog ved køb, salg eller 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 pantsætning af fast ejendom, indgåelse af driftsaftaler samt ved optagelse af
lån, af den samlede bestyrelse. lån, af den samlede bestyrelse.
Den samlede bestyrelse kan meddele prokura til individuelle medlemmer af bestyrelsen.
## § 6. Medlemskab ## § 6. Medlemskab
Som medlem kan enhver fysisk person optages, som har interesse i at støtte 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. 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. 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. De årlige kontingenter fastsættes af generalforsamlingen.
Foreningen kan herudover finansieres ved sponsor- og annoncestøtte samt bidrag Foreningen kan herudover finansieres ved sponsor- og annoncestøtte samt bidrag
fra offentlige/private virksomheder, fonde, øvrige foreninger/institutioner og fra offentlige/private virksomheder, fonde, øvrige foreninger/institutioner og
private personer, så længe det ikke stiller krav til foreningens dispositioner. 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 et flertal af bestyrelsen ønsker det.
Indkaldelse sker, hvis 1/3 af medlemmerne ø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. Dagsorden skal motiveres.
## § 10. Regnskab ## § 12. Regnskab
Regnskabsåret for Foreningen er kalenderåret. 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 Opløsning af foreningen kræver et flertal på ¾ af generalforsamlingens eller
den ekstraordinære generalforsamlings fremmødte medlemmer. den ekstraordinære generalforsamlings fremmødte medlemmer.

164
content/rights.en.md Normal file
View file

@ -0,0 +1,164 @@
---
title: Legal statutes of data.coop
---
> This translation is provided solely for the purpose of guidance. The [Danish version](/rights/) remains the official and legally binding version.
## § 1. Name and location
The name of the association is: data.coop
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

@ -5,10 +5,10 @@ title: Tjenester
Visse tjenester **data.coop** driver er kun for medlemmer, andre er åbne for alle. Visse tjenester **data.coop** driver er kun for medlemmer, andre er åbne for alle.
Alle tjenester er benævnt med [badges](/badges/), der deklarerer i hvor høj grad den Alle tjenester er benævnt med [badges]({{< ref "/services/#badges" >}}), der deklarerer i hvor høj grad den
enkelte tjeneste lever op til [kerneprincipperne defineret i formålsparagraffen enkelte tjeneste lever op til [kerneprincipperne defineret i formålsparagraffen
i vores vedtægter](/_pages/vedtaegter.html#-2-form%C3%A5l). i vores vedtægter]({{< ref "/rights.md#-2-formål" >}}).
Vi har skrevet en definition af [hvad de forskellige badges dækker over](/badges/). Vi har skrevet en definition af [hvad de forskellige badges dækker over]({{< ref "/services/#badges" >}}).
Klik på hver tjenestes navn for at se detaljer: Klik på hver tjenestes navn for at se detaljer:

View file

@ -1,6 +1,6 @@
--- ---
layout: page layout: page
title: Gitea title: Forgejo
service_badges: service_badges:
stability: positive stability: positive
secure_connection: positive secure_connection: positive
@ -11,5 +11,8 @@ service_badges:
logging: negative logging: negative
--- ---
Skriver du kode eller anden tekst som du gerne vil holde under versionsstyring, kan du gemme det her. Skriver du kode eller anden tekst som du gerne vil holde under versionsstyring,
kan du gemme det på denne fantastiske Git-platform.<!--more-->
Platformen er åben for alle data.coops medlemmer,
og du kan forespørge konti til ikke-medlemmer.

View file

@ -0,0 +1,18 @@
---
layout: page
title: Forgejo
service_badges:
stability: positive
secure_connection: positive
anonymity: partial
encrypted_storage: negative
zero_knowledge: negative
backup: positive
logging: negative
---
If you write code or other types of texts that need revisioning,
you can use this fantastic Git platform<!--more-->
The platform is open for all data.coop members,
and you can ask for accounts for non-members.

View file

@ -4,11 +4,17 @@ title: HedgeDoc
service_badges: service_badges:
stability: positive stability: positive
connection_security: positive connection_security: positive
connection_anonymous: negative connection_anonymous: partial
storage_encrypted: negative storage_encrypted: negative
zero_knowledge: partial zero_knowledge: partial
storage_backup: positive storage_backup: positive
logging: negative logging: negative
--- ---
Skriv Tag tilfældige noter eller skriv dokumenter i Markdown: HedgeDoc kan bruges til mange ting.<!--more-->
De fleste bruger HedgeDoc til hurtigt at tage noter eller starte dokumenter.
Man kan skrive samtidig.
Og resultatet er flot.
Der findes også flere udvidelser, bl.a. Mermaid-diagrammer. Læs mere på [HedgeDoc's hjemmeside](https://hedgedoc.org/).

View file

@ -0,0 +1,22 @@
---
layout: page
title: HedgeDoc
service_badges:
stability: positive
connection_security: positive
connection_anonymous: partial
storage_encrypted: negative
zero_knowledge: partial
storage_backup: positive
logging: negative
---
Take random notes or write full documents in Markdown: HedgeDoc can be used for many things.<!--more-->
Most people use HedgeDoc for quickly making notes are bootstrapping documents.
You can collaborate in real-time with others.
And the results are pretty!
There are also several extensions, for instance for Mermaid diagrams.
Read more on the [HedgeDoc website](https://hedgedoc.org/).

View file

@ -0,0 +1,14 @@
---
layout: page
title: Mastodon
service_badges:
stability: positive
connection_security: positive
connection_anonymous: negative
storage_encrypted: negative
zero_knowledge: partial
storage_backup: positive
logging: negative
---
Share cat photos and memes and see what other interesting people are doing.

View file

@ -5,10 +5,17 @@ service_badges:
stability: positive stability: positive
connection_security: positive connection_security: positive
connection_anonymous: negative connection_anonymous: negative
storage_encrypted: negative storage_encrypted: positive
zero_knowledge: partial zero_knowledge: partial
storage_backup: positive storage_backup: positive
logging: negative logging: negative
--- ---
Chat Matrix er en chat-server, som kan rigtig mange ting. Den kan bruges som alternativ til f.eks. Slack, Discord, IRC og meget andet.
Vi har også vores egen hostede version af reference-klienten Element på [element.data.coop](https://element.data.coop/).<!--more-->
Du kan bruge Matrix til at kommunikere med andre på hele Matrix-netværket,
dvs. ikke bare andre data.coop-medlemmer.
Matrix er en kæmpestor platform, som muliggør en lang række interaktionsformer.
Bl.a. har flere konferencer oprettet rum til live videostream og chat.

View file

@ -0,0 +1,22 @@
---
layout: page
title: Matrix
service_badges:
stability: positive
connection_security: positive
connection_anonymous: negative
storage_encrypted: positive
zero_knowledge: partial
storage_backup: positive
logging: negative
---
Matrix is a chat server that's capable of a lot of things.
It can be used as an alternative for Slack, Discord, IRC and lots more.
We have our own hosted version of its reference client Element available at [element.data.coop](https://element.data.coop/).<!--more-->
You can use Matrix for communicating with the entire Matrix network,
not just data.coop members.
Matrix is a gigantic platform which enables a wide range of communication types.
It supports channels, live videos and chat.

View file

@ -0,0 +1,15 @@
---
layout: page
title: Nextcloud
service_badges:
stability: positive
connection_security: positive
connection_anonymous: partial
storage_encrypted: negative
zero_knowledge: negative
storage_backup: positive
logging: negative
---
Store your files, calendar, contacts and many other things in the local cloud.
Access from all your devices.

View file

@ -0,0 +1,14 @@
---
layout: page
title: Passit
service_badges:
stability: positive
connection_security: positive
connection_anonymous: positive
storage_encrypted: positive
zero_knowledge: partial
storage_backup: positive
logging: positive
---
Helps you remember your strong, unique passwords for websites and applications.

View file

@ -0,0 +1,17 @@
---
layout: page
title: PrivateBin
service_badges:
stability: positive
connection_security: positive
connection_anonymous: partial
storage_encrypted: positive
zero_knowledge: positive
storage_backup: positive
logging: negative
---
Del en simpel hemmelighed gennem et unikt og hemmeligt link.
Du kan tilsætte password og sørge for, at hemmeligheden slettes automatisk.<!--more-->
Denne service er åben for alle og kræver ikke login.

View file

@ -0,0 +1,17 @@
---
layout: page
title: PrivateBin
service_badges:
stability: positive
connection_security: positive
connection_anonymous: partial
storage_encrypted: positive
zero_knowledge: positive
storage_backup: positive
logging: negative
---
Share a secret through a unique and secret link.
You can add a password and make the secret expire and delete itself.<!--more-->
This service is open and does not require a login.

View file

@ -11,4 +11,5 @@ service_badges:
logging: negative logging: negative
--- ---
Aftaler Rallly gør det nemt at finde en dato med dine venner/familie/gruppe.
Det minder om Doodle, men det er bedre!

View file

@ -0,0 +1,15 @@
---
layout: page
title: Rallly
service_badges:
stability: positive
connection_security: positive
connection_anonymous: partial
storage_encrypted: negative
zero_knowledge: negative
storage_backup: positive
logging: negative
---
Rally makes it easy to find a date for an event with your friends, family or any other group of people.
It's a lot like Doodle, but better!

View file

@ -1,6 +0,0 @@
---
layout: page
title: Opdateringer
---
## Opdateringer og nyheder

View file

@ -1,6 +0,0 @@
---
layout: page
title: Updates
---
## Updates and news

File diff suppressed because it is too large Load diff

View file

@ -9,44 +9,66 @@ active_badges:
- anonymity - anonymity
badges: badges:
stability: stability:
name: stabilitet name: Stabilitet
description: Det første badge er som sådan ikke relateret til hvorvidt tjenesten lever op til vores formålsparagraf. Det angiver i stedet hvorvidt tjenesten er stabil nok til at vi vil anbefale almindelige mennesker at bruge den. Vi tilbyder løbende nye tjenester, og der vil være en periode i starten af en tjenestes levetid hvor vi anser den som værende “ustabil”, indtil den har vist sit værd med en mindre skare af brugere der er med på at tjenesten kan være ustabil. Alle er dog stadig velkomne til at benytte sig af tjenesten, så længe de er indforstået med dette forbehold for stabiliteten. description: |
*Tjenesten er altid tilgængelig.*
Dette badge beskriver hvor stabil tjenesten er, dvs. om der er stor eller lille risiko for nedetid og/eller tab af data. I starten af enhver tjenestes levetid vil den være mindre stabil, da den ikke er testet i brug endnu.
icon: stable.svg icon: stable.svg
secure_connection: secure_connection:
name: sikker forbindelse name: Sikker forbindelse
description: Sikker forbindelse angiver at trafikken over internettet mellem dig og tjenesten er krypteret. Du kender det som regel som en hængelås foran adresselinjen i din browser. Det betyder at ingen andre end dig og tjenesten kan se hvad der bliver sendt frem og tilbage mellem dig og tjenesten. description: |
*Data kan kun ses af dig og tjenesten.*
Trafikken mellem dig og tjenesten er krypteret. F.eks. viser browsere en hængelås foran adresselinjen, når forbindelsen er krypteret. Det betyder at kun dig og tjenesten kan se indholdet af data.
icon: secure-connection.svg icon: secure-connection.svg
encrypted_storage: encrypted_storage:
name: krypteret opbevaring af data name: Krypteret opbevaring af data
description: Tjenestens data gemmes krypteret, og er dermed ikke umiddelbart læsbare for andre end tjenesten selv og data.coops systemadministratorer. I tilfælde af at data lækkes (fx ved virtuelt eller fysisk indbrud), kræver det en særlig “hovednøgle” at læse data, som datatyven forhåbentligt ikke er i besiddelse af. description: |
Tjenestens data opbevares i krypteret form, eksempelvis på en krypteret
harddisk. Dette er med til at beskytte dataen i tilfælde af fysisk
indbrud, da det kun er systemadministratorerne der har hovednøglen til at
låse op for adgang til dataen.
icon: encrypted-data-storage.svg icon: encrypted-data-storage.svg
zero_knowledge: zero_knowledge:
name: zero knowledge name: Zero-knowledge
description: Data gemmes krypteret, og tjenesten er konstrueret på en måde, så selv ikke data.coops systemadministratorer har mulighed for at tilgå og læse brugernes data. Der findes simpelthen ingen “hovednøgle” som giver fuld datadgang, og det er dermed kun brugerne selv der kan læse deres data. I tilfælde af at data lækkes, er ingen større katastrofe sket, da der heller ikke er risiko for at datatyven også har stjålet hovednøglen, da der ingen hovednøgle er. description: |
*Du har den eneste nøgle.*
I dette tilfælde har data.coops systemadministratorer ikke mulighed for at tilgå data. Der er ingen “hovednøgle”. Det giver mere sikkerhed, men betyder også at data er tabt, hvis man mister sin nøgle.
icon: zero-knowledge.svg icon: zero-knowledge.svg
backup: backup:
name: Backup name: Backup
description: | description: |
Der tages løbende backup af tjenestens data, for at minimere skadens omfang i tilfælde af tekniske nedbrud. Tjenestens data sikkerhedskopieres løbende, for at minimere skadens
omfang i tilfælde af tekniske nedbrud eller cyberangreb.
**Bemærk:** Vi tager pt. slet ikke backup af noget, men det står selvfølgelig højt på vores prioritetsliste. Sikkerhedskopierne opbevares et andet fysisk sted end serveren som
tjenesten kører på.
icon: backup.svg icon: backup.svg
# TODO: We should describe how we label logging that isn't fully documented as configured.
logging: logging:
name: Logning name: Logning
description: | description: |
Dette badge er lidt omvendt: Det positive badge tildeles tjenester der ikke foretager logning. Teknisk logning handler primært om *metadata*, som også kan kaldes *data om data*. Hvem bruger hvad hvornår? På den ene side er det relevant for systemadministratorerne at se, hvorfor serveren eks. er på overarbejde, men ligesom alle data kan det misbruges. Eks. til at bevise at en bruger har været online på det pågældende tidspunkt.
Logning fungerer på forskellig vis og foretages i større eller mindre grad. Som regel giver logning data.coops systemadministratorer overordnet indsigt i hvordan tjenester bruges, men ikke i det konkrete data tjenesten behandler for brugerne. Fx vil logning afsløre overfor data.coops systemadministratorer, at nogen overfører en fil, men ikke hvad selve filen indeholder eller hvem der overfører filen. Bemærk at "positiv" status for logning betyder, at tjenesten laver forventet minimal logning af meta-data, hvilke vi tilstræber at dokumentere for hver enkelt tjeneste. En "negativ" status betyder at der logges mere end nødvendigt.
icon: logging.svg icon: logging.svg
anonymity: anonymity:
name: Anonym adgang name: Anonym adgang
description: Tjenester med anonym adgang kan benyttes helt uden at man skal være registreret ved tjenesten. De fleste tjenester kræver en form for registrering af brugerne, da de data tjenesten indeholder knyttes til de enkelte brugere. Nogle tjenester tilbyder anonym læseadgang. Fx kan det kræve registrering at uploade en fil til tjenesten, men andre kan downloade filen at være registreret. description: |
Tjenester med anonym adgang kan benyttes uden at være registreret. Dette
betyder at man kan benytte tjenesten helt anonymt og uden at opgive
personoplysninger. Dog kan nogle tjenester have begrænset adgang hvis man
ikke er registreret. F.eks. kan det være, at man ved en tjeneste kun kan
uploade en fil hvis man har en bruger, men alle kan downloade filen
anonymt uden et login.
icon: anonymous-access.svg icon: anonymous-access.svg

View file

@ -1,17 +1,26 @@
status: status:
positive: positive:
order: 1
name: positiv name: positiv
description: Tjenesten lever op til kravene til det badget dækker over. description: Tjenesten lever op til kravene til det badget dækker over.
css_class: "positive" css_class: "positive"
partial: partial:
name: Delvis order: 2
name: delvis
description: Tjenesten lever delvist op til det badget dækker over. Dog i en sådan grad at vi mener det er værd at fremhæve. description: Tjenesten lever delvist op til det badget dækker over. Dog i en sådan grad at vi mener det er værd at fremhæve.
css_class: "partial" css_class: "partial"
negative: negative:
order: 3
name: negativ name: negativ
description: Tjenesten lever ikke op til det badget dækker over. description: Tjenesten lever ikke op til det badget dækker over.
css_class: "negative" css_class: "negative"
none:
order: 4
name: uoplyst
description: Dette badge er udefineret for denne tjeneste. Dette skyldes sansynligvis, at vi mangler en klar redegørelse.
css_class: "none"

View file

@ -0,0 +1,75 @@
# This determines which badges are active and the order to display them in
active_badges:
- stability
- secure_connection
- encrypted_storage
- zero_knowledge
- backup
- logging
- anonymity
badges:
stability:
name: Stability
description: |
*Service is always available.*
This badge describes how stable the service is. For instance if there is a big or small risk that the service may suffer from outages or loss of data. Immediately after launching a service, it might be considered less stable than after it has matured through long-time tests and usage.
icon: stable.svg
secure_connection:
name: Secure connection
description: |
*Data can only be seen by you and the service.*
The traffic between you and the service is encrypted. For instance, the browser will display a padlock in the address bar when the connection is encrypted. This means that it's only you and the service that can see transferred data.
icon: secure-connection.svg
encrypted_storage:
name: Encrypted storage
description: |
The service stores data in an ecrypted way, for instance on an encrypted storage media.
This ensures that the data is protected in case of a physical breach of security,
since it's only the system administrator who has the encryption key that can decrypt storage media.
icon: encrypted-data-storage.svg
zero_knowledge:
name: Zero knowledge
description: |
*You have the only key.*
In this case, data.coop's system administrator cannot access data.
There is no "main key". This provides more security, but it also means that data will be lost if you lose the key.
icon: zero-knowledge.svg
backup:
name: Backup
description: |
The service's data is backed up frequently in order to minimize damages from technical outages or cyber attacks.
Backups are stored in another physical location than the server.
icon: backup.svg
# TODO: We should describe how we label logging that isn't fully documented as configured.
logging:
name: Logging
description: |
Technical logging is primarily about *meta data*, which can be understood as *data about data*.
Who does what and when? On one side, it's relevant for system administrators to see why a server is overloaded, but as with all data this can be abused.
For instance, it can be used to prove that what a user was doing at a specific time.
Note that "positive" status for logging means that the service is performing an expected amount of *minimal* logging of meta data.
We strive to document this data for every service. A "negative" status means that unnecessary amounts of logging take place.
icon: logging.svg
anonymity:
name: Anonymous access
description: |
Services with anonymous access can be used without registration and authentication.
This means that the service can be used anonymously without sharing personal information.
Some services may have limited access for unregistered users.
This may be relevant for instance for a service where a registered user can upload a file
and an unregistered user can download the file.
icon: anonymous-access.svg

View file

@ -0,0 +1,26 @@
status:
positive:
order: 1
name: positive
description: Service satisfies the requirements of the badge.
css_class: "positive"
partial:
order: 2
name: partial
description: Service partially satisfies the requirements of the badge. But to an extend that we find worth noting.
css_class: "partial"
negative:
order: 3
name: negative
description: Service does not live up to badge requirements.
css_class: "negative"
none:
order: 4
name: undefined
description: The requirements of the badge are currently undefined. This is likely due to a lack of analysis and full understanding.
css_class: "none"

View file

@ -1,15 +1,10 @@
version: "3" version: "3"
services: services:
serve: server:
build: image: floryn90/hugo:ext-alpine
context: . command: server
dockerfile: Dockerfile_hugo
command: |
/bin/bash -c "
cd /code
hugo serve
"
network_mode: "host"
volumes: 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

@ -55,6 +55,10 @@
--burger_size : 45px; --burger_size : 45px;
} }
html {
scroll-behavior: smooth;
}
body { body {
display : flex; display : flex;
flex-direction : row; flex-direction : row;
@ -107,7 +111,7 @@ main ol, main ul {
} }
main ol li, main ul li { main ol li, main ul li {
margin : 0.5rem 0; margin : 0;
} }
aside { aside {
@ -156,6 +160,10 @@ aside nav ol li a {
font-size : 2rem; font-size : 2rem;
margin : 1.2rem 0; margin : 1.2rem 0;
text-decoration : none; text-decoration : none;
@media (max-height: 700px) {
font-size : 1.5rem;
margin : 0.5rem 0;
}
} }
aside nav ol li a:hover { aside nav ol li a:hover {
@ -177,11 +185,18 @@ aside #menu-toggle {
aside nav footer { aside nav footer {
margin : var(--base-grid) 0 0 0; margin : var(--base-grid) 0 0 0;
@media (max-height: 700px) {
margin : (var(--base-grid) / 1.5) 0 0 0;
}
} }
aside nav footer ol li a { aside nav footer ol li a {
font-size : 1.65rem; font-size : 1.65rem;
margin : 1.2rem 0; margin : 1.2rem 0;
@media (max-height: 700px) {
font-size : 1.2rem;
margin : 0.1rem 0;
}
} }
aside header a img { aside header a img {
@ -219,7 +234,12 @@ aside > footer img:hover {
margin: 0; margin: 0;
display: grid; display: grid;
grid-template-columns: max-content 1fr; grid-template-columns: max-content 1fr;
align-items: start;
@media(max-width: 700px) {
grid-template-columns: 100%;
}
align-items: center;
gap: 20px; gap: 20px;
dt { dt {
vertical-align: top; vertical-align: top;
@ -240,6 +260,7 @@ dl.dl-services,
{ {
display : grid; display : grid;
column-gap : 2rem; column-gap : 2rem;
row-gap: 2rem;
dt { dt {
grid-column-start : 1; grid-column-start : 1;
grid-column-end : 2; grid-column-end : 2;
@ -277,6 +298,23 @@ dl.dl-services,
.badge-status { .badge-status {
margin-bottom: 40px; margin-bottom: 40px;
} }
@media(max-width: 700px) {
grid-template-columns: min-content auto;
.badge-icon {
grid-column-start : 1;
grid-column-end : 2;
}
.badge-name {
grid-column-start : 2;
grid-column-end : 3;
}
.badge-description {
grid-column-start : 1;
grid-column-end : 3;
}
}
} }
@ -301,6 +339,22 @@ dl.dl-services,
margin-top: 20px; margin-top: 20px;
} }
} }
@media(max-width: 700px) {
grid-template-columns: min-content auto;
.badge-icon {
grid-column-start : 1;
grid-column-end : 2;
}
.badge-name {
grid-column-start : 2;
grid-column-end : 3;
}
.badge-description {
grid-column-start : 1;
grid-column-end : 3;
}
}
} }
.badge-status { .badge-status {
@ -323,6 +377,11 @@ dl.dl-services,
border: 5px solid #cc4; border: 5px solid #cc4;
} }
.badge-status-none {
@extend .badge-status;
border: 5px solid #888;
}
@media(max-width:1000px) { @media(max-width:1000px) {
:root { :root {
--base-grid : 40px; --base-grid : 40px;

View file

@ -1,10 +1,10 @@
<!doctype html> <!doctype html>
<html lang="{{ site.Language }}"> <html lang="{{ .Site.Language.Lang }}">
{{ partial "head.html" . }} {{ partial "head.html" . }}
<body> <body>
<aside> <aside>
<header> <header>
<a href="/"><img src="{{ printf "/static/img/logo_%s.svg" .Site.Language.Lang | absURL }}" alt="data coop logo" width="240" height="140"></a> <a href="{{ .Site.Home.Permalink }}"><img src="/static/img/logo_{{ .Site.Language.Lang }}.svg" alt="data.coop logo" width="240" height="140"></a>
<div class="nav-toggle" id="nav-toggle-header"> <div class="nav-toggle" id="nav-toggle-header">
<span id="nav-toggle-a"></span> <span id="nav-toggle-a"></span>

View file

@ -1,12 +1,11 @@
<h2>{{ i18n "badges_headline" }}</h2> <h2 id="badges">{{ i18n "badges_headline" }}</h2>
<section class="badge-definitions"> <section class="badge-definitions">
{{/* TODO: This needs to be sensitive to current language */}}
{{- $translated_badges := index $.Site.Data.badges .Lang }} {{- $translated_badges := index $.Site.Data.badges .Lang }}
{{ range $badge_key, $badge := $translated_badges.badges.badges }} {{ range $badge_key, $badge := $translated_badges.badges.badges }}
<div class="badge-icon"> <div class="badge-icon">
{{$svg := printf "static/static/img/badges/%s" .icon}} {{ $svg := printf "static/static/img/badges/%s" .icon }}
{{ $svg | readFile | safeHTML }} {{ $svg | readFile | safeHTML }}
</div> </div>
<div class="badge-name">{{ title .name }}</div> <div class="badge-name">{{ title .name }}</div>
@ -24,26 +23,3 @@
{{ end }} {{ end }}
</section> </section>
<h2>{{ i18n "status_headline" }}</h2>
<section class="status-definitions">
{{ range $.Site.Data.badges.da.status.status }}
<div class="badge-icon badge-status badge-status-{{ .css_class }}"></div>
<div class="badge-name">{{ title .name }}</div>
<div class="badge-description">
{{- $markdown := .description | markdownify -}}
{{ if not ( findRE "<[h|p][^>]*>" $markdown ) }}
<p>{{ $markdown }}</p>
{{ else }}
{{ $markdown }}
{{ end }}
</div>
{{ end }}
</section>

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 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> <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

@ -9,17 +9,19 @@
<meta name="description" content="{{ . }}"> <meta name="description" content="{{ . }}">
{{ end }} {{ end }}
<link rel="apple-touch-icon" sizes="180x180" href="{{ "/static/img" | absURL }}/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="180x180" href="/static/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="{{ "/static/img" | absURL }}/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="32x32" href="/static/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="{{ "/static/img" | absURL }}/favicon-16x16.png"> <link rel="icon" type="image/png" sizes="16x16" href="/static/img/favicon-16x16.png">
<link rel="manifest" href="{{ "" | absURL }}/site.webmanifest"> <link rel="manifest" href="{{ "" | absURL }}/site.webmanifest">
<link rel="mask-icon" href="{{ "/static/img" | absURL }}/safari-pinned-tab.svg" color="#4b3aba"> <link rel="mask-icon" href="/static/img/safari-pinned-tab.svg" color="#4b3aba">
<meta name="msapplication-TileColor" content="#4b3aba"> <meta name="msapplication-TileColor" content="#4b3aba">
<meta name="theme-color" 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" }} {{ $style := resources.Get "static/css/style.scss" | resources.ToCSS | resources.Minify | resources.Fingerprint "sha512" }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}"> <link rel="stylesheet" href="{{ $style.RelPermalink }}" integrity="{{ $style.Data.Integrity }}">
<title>{{ .Title }} | {{ .Site.Title }}</title> <title>{{ .Title }} | {{ .Site.Title }}</title>
</head> </head>

View file

@ -0,0 +1,23 @@
<h2>{{ i18n "status_headline" }}</h2>
<section class="status-definitions">
{{- $translated_status := index $.Site.Data.badges .Lang }}
{{ range sort $translated_status.status.status "order" "asc" }}
<div class="badge-icon badge-status badge-status-{{ .css_class }}"></div>
<div class="badge-name">{{ title .name }}</div>
<div class="badge-description">
{{- $markdown := .description | markdownify -}}
{{ if not ( findRE "<[h|p][^>]*>" $markdown ) }}
<p>{{ $markdown }}</p>
{{ else }}
{{ $markdown }}
{{ end }}
</div>
{{ end }}
</section>

View file

@ -9,7 +9,8 @@
{{ range $pages.ByTitle }} {{ range $pages.ByTitle }}
<dt><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2></dt> <dt><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2></dt>
<dd> <dd>
{{ .Summary }} {{ $summary := index (split .Content "</p>") 0 }}
{{ $summary | plainify }}
</dd> </dd>
{{ end }} {{ end }}
@ -17,6 +18,8 @@
{{ partial "badges.html" . }} {{ partial "badges.html" . }}
{{ partial "status.html" . }}
{{- end -}} {{- end -}}

View file

@ -11,15 +11,17 @@
{{ range $translated_badges.badges.active_badges }} {{ range $translated_badges.badges.active_badges }}
{{- $badge := index $translated_badges.badges.badges . }} {{- $badge := index $translated_badges.badges.badges . }}
{{- $status := index $page_params.service_badges . -}} {{- $status_name := default "none" (index $page_params.service_badges .) -}}
<div class="badge-icon badge-status-{{ $status }}"> {{- $status := index $translated_badges.status.status $status_name -}}
<div class="badge-icon badge-status-{{ $status_name }}">
{{ $svg := printf "static/static/img/badges/%s" $badge.icon }} {{ $svg := printf "static/static/img/badges/%s" $badge.icon }}
{{ $svg | readFile | safeHTML }} {{ $svg | readFile | safeHTML }}
</div> </div>
<div class="badge-name"> <div class="badge-name">
{{ title $badge.name }}<br> {{ title $badge.name }}<br>
= {{ i18n ($status | printf "service_badges_status_%s") }} = {{ $status.name }}
</div> </div>
@ -37,4 +39,6 @@
{{ end }} {{ end }}
</div> </div>
{{ partial "status.html" . }}
{{- end -}} {{- end -}}

View file

@ -3,7 +3,7 @@ license: "MIT"
licenselink: "https://github.com/zwbetz-gh/minimal-bootstrap-hugo-theme/blob/master/LICENSE" licenselink: "https://github.com/zwbetz-gh/minimal-bootstrap-hugo-theme/blob/master/LICENSE"
description: "Yay data.coop theme - started with this one https://github.com/zwbetz-gh/minimal-bootstrap-hugo-theme/" description: "Yay data.coop theme - started with this one https://github.com/zwbetz-gh/minimal-bootstrap-hugo-theme/"
homepage: "https://data.coop" homepage: "https://data.coop"
tags: ["nice",] tags: ["nice"]
features: ["responsive", "small page size", "fuck google", "no tracking"] features: ["responsive", "small page size", "fuck google", "no tracking"]
min_version: "0.60.1" min_version: "0.60.1"