4.2 KiB
Fragify
Eine einfache Web-Anwendung, um vorausgefüllte Links für Anfragen bei FragDenStaat.de zu generieren, die du an Freund:innen schicken kannst.
Was ist Fragify?
Fragify ist ein webbasiertes Tool, das es dir ermöglicht, schnell und einfach Anfragen bei deutschen Behörden über das Informationsfreiheitsportal FragDenStaat.de zu erstellen. Du kannst:
- Nach Behörden suchen und auswählen
- Betreff und Inhalt der Anfrage vorausfüllen
- Einen fertigen Link generieren, der alle Informationen enthält
- Den Link mit anderen teilen, die dann nur noch auf "Senden" klicken müssen
Installation
NixOS
Füge das Modul zu deiner flake.nix hinzu:
{
inputs = {
fragify.url = "git+https://git.project-insanity.org/onny/fragify.git";
[...]
};
outputs = {self, nixpkgs, ...}@inputs: {
nixosConfigurations.tuxzentrale = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs.inputs = inputs;
modules = [
inputs.fragify.nixosModule
({ pkgs, ... }:{
nixpkgs.overlays = [
inputs.fragify.overlay
];
})
./configuration.nix
];
};
};
}
Füge dies zu deiner configuration.nix hinzu:
services.fragify = {
enable = true;
};
Von der Quelle
cd fragify
nix develop
nix run
Öffne dann deinen Browser und navigiere zu: http://localhost:8000
Verwendung
- Behörde auswählen: Suche und wähle die gewünschte Behörde aus dem Dropdown-Menü
- Betreff eingeben: Gib einen aussagekräftigen Betreff für deine Anfrage ein
- Anfrage beschreiben: Beschreibe detailliert, welche Dokumente oder Informationen du anfragen möchtest
- Link generieren: Klicke auf "Anfrage Link generieren"
- Link teilen: Kopiere den generierten Link und teile ihn mit anderen
Technische Details
- Framework: Falcon (Python)
- Frontend: Bootstrap 5 mit modernem Design
- API: Integration mit der FragDenStaat.de API
- Styling: Responsive Design mit Gradient-Hintergrund
Frontend-Assets (lokal statt CDN)
Die Anwendung kann CSS/JS-Assets lokal bereitstellen. Dafür werden npm und gulp benutzt.
Bauen der Assets
# Abhängigkeiten installieren (nutzt npm ci, wenn package-lock.json existiert)
make build
# Alternativ ohne make
npm install
npm run build
Die gebauten Dateien landen in assets/ und werden vom Server unter /static/... ausgeliefert:
- CSS:
/static/css/bootstrap.min.css,/static/css/select2.min.css,/static/css/select2-bootstrap-5-theme.min.css - JS:
/static/js/bootstrap.bundle.min.js,/static/js/jquery.min.js,/static/js/select2.min.js
Hinweis
- Stelle sicher, dass
assets/existiert, sonst werden stattdessen CDN-Links erwartet. - In der Entwicklungs-Serverausgabe steht: "Serving static assets from: ..." – dort solltest du den Pfad zu
assets/sehen.
Deployment mit Nix/uWSGI
- Das Nix-Paket installiert Templates und (falls vorhanden)
assets/nach$out/share/fragify/.... - Das NixOS-Modul startet uWSGI und erzeugt einen UNIX-Socket unter
unix:${config.services.uwsgi.runDir}/fragify.sock. - Die App respektiert folgende Umgebungsvariablen:
FRAGIFY_TEMPLATES_DIR– Pfad zu den TemplatesFRAGIFY_STATIC_DIR– Pfad zu den statischen Assets (assets/)
Beispiel (im uWSGI-Instance Block):
services.uwsgi.instance.fragify = {
env = {
FRAGIFY_TEMPLATES_DIR = "${pkgs.fragify}/share/fragify/templates";
FRAGIFY_STATIC_DIR = "${pkgs.fragify}/share/fragify/assets";
};
};
Entwicklung
Lokale Entwicklung
# Entwicklungsumgebung starten
nix develop
# Anwendung starten
python fragify.py
Abhängigkeiten
- Python 3.8+
- Falcon (Web-Framework)
- Requests (HTTP-Client)
- Node.js + npm (für lokale Assets)
- gulp (wird via npm-Script genutzt)
Lizenz
Dieses Projekt steht unter der gleichen Lizenz wie FragDenStaat.de.
Beitragen
Beiträge sind willkommen! Bitte erstelle einen Pull Request oder öffne ein Issue.
Links
- FragDenStaat.de - Das Hauptportal
- FragDenStaat API - API-Dokumentation
- Informationsfreiheitsgesetz - Rechtliche Grundlagen