This repository contains the source code for the Datenanfragen.de website.
Datenanfragen.de is an open source project by Datenanfragen.de e. V., a registered non-profit from Germany. We have made it our mission to help you exercise your right to privacy.
Through our website, we offer a generator for GDPR requests as well as access to our company and supervisory authority database (see this repository for the source behind this data) and comprehensive articles on the GDPR and privacy in general.
Live versions of the website are currently available in German, English, French, Spanish, and Portuguese.
Datenanfragen.de is designed as a static website, running on Hugo and Preact.
To build the project locally for development, follow these steps:
- Install Yarn 1 (Classic) and the extended(!) version of Hugo (v0.88.1).
- Clone the repo and run
yarn
in the root directory of the repo to fetch all required dependencies. - Run the deploy script (
./deploy.sh
) to fetch and prepare the required resources from our data repository. - Open two terminal windows. In the first, run
yarn dev
to start the Webpack file watcher, which will automatically build the JS files. In the second one, runhugo server
to have Hugo continuously build the actual website and the SCSS. - Now the website should be served by Hugo on multiple ports, starting from
1313
, for the different language versions.
We recommend building and developing on Linux or macOS. If you are on Windows, use WSL.
Windows development tips
- Install ripgrep to speed up the merge conflict commit hook.
- Developing tests with Cypress requires a GUI, which might not work with WSL.
- We do not recommend this, but it's possible.
- You need to run the
deploy.sh
script once via some bash-like tool. Use WSL or Git Bash. - Use Node LTS and not the latest Node release (otherwise you might get Python errors).
- To get around file name limitations (#581), run
$env:HUGO_DISABLEALIASES="true"
in the terminal that will runhugo
. - Please make sure to only commit LF line endings. Configure your IDE or Git accordingly, or use some conversion tool.
- Some commit hooks might not work on Windows. You can use
git commit --no-verify
carefully to get around this.
macOS development tips
Because hugo server
registers a file watcher for every file in our repo and the number of files can get very large, you might get file watcher related errors. To fix, increase the file limit for processes on your computer (this change is temporary until you restart):
sudo sysctl -w kern.maxfiles=65536
The production builds are done automatically by CircleCI using the deploy.sh
script and deployed using dattel, our own static hosting solution (split into a server and client).
For testing, we use CircleCI in combination with Cypress (see more on our browser tests here). We previously used BrowserStack who kindly let us use their services.
First of all, thank you very much for taking the time to contribute! Contributions are incredibly valuable for a project like ours.
We warmly welcome issues and pull requests through GitHub. You can also chat with us through our Matrix space. Feel free to ask questions, pitch your ideas, or just talk with the community.
Please be aware that by contributing, you agree for your work to be released under the MIT license, as specified in the LICENSE
file.
If you are interested in contributing in other ways besides coding, we can also really use your help. Have a look at our contribute page for more details.
While you can just contribute translations through this repository, an easier way is through the localisation platform Weblate. We manage our translations through them. There, you can easily help us translate—be it a couple of strings or whole components.
If you're interested in chatting about our translation efforts, join our i18n room on Matrix.