{"id":31713343,"url":"https://github.com/freifunk/directory.api.freifunk.net","last_synced_at":"2025-10-09T01:07:32.676Z","repository":{"id":1125503,"uuid":"13741751","full_name":"freifunk/directory.api.freifunk.net","owner":"freifunk","description":"directory of all freifunk communities","archived":false,"fork":false,"pushed_at":"2025-08-24T08:19:15.000Z","size":1556,"stargazers_count":37,"open_issues_count":12,"forks_count":229,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-08-24T14:52:46.629Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://freifunk.net/wie-mache-ich-mit/community-finden/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freifunk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-10-21T12:30:59.000Z","updated_at":"2025-08-24T08:19:20.000Z","dependencies_parsed_at":"2023-07-05T18:01:27.433Z","dependency_job_id":"59bb58db-a2ed-453a-bfda-4df71ac2f975","html_url":"https://github.com/freifunk/directory.api.freifunk.net","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/freifunk/directory.api.freifunk.net","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk%2Fdirectory.api.freifunk.net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk%2Fdirectory.api.freifunk.net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk%2Fdirectory.api.freifunk.net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk%2Fdirectory.api.freifunk.net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freifunk","download_url":"https://codeload.github.com/freifunk/directory.api.freifunk.net/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freifunk%2Fdirectory.api.freifunk.net/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000727,"owners_count":26082894,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-09T01:01:27.280Z","updated_at":"2025-10-09T01:07:32.666Z","avatar_url":"https://github.com/freifunk.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Check api directory](https://github.com/freifunk/directory.api.freifunk.net/actions/workflows/check_directory.yml/badge.svg)](https://github.com/freifunk/directory.api.freifunk.net/actions/workflows/check_directory.yml)\n\nEntstehung\n==========\n\nZum Wireless Community Weekend 2013 in Berlin fand ein ersten Treffen\nzum Relaunch unserer Website freifunk.net statt. Dabei kam auch die\nFrage auf, wie man die einzelnen Freifunkcommunities am besten\npräsentieren kann, ohne alle Daten zentral zu erfassen und zudem den\nCommunities eine einfache Möglichkeit zu bieten, eigene Daten selbst\naktuell zu halten.\n\nIn Anlehnung an die Hackerspaces API (https://hackerspaces.nl/spaceapi/)\nwurde die Idee einer Freifunk API geboren: Jede Community stellt ihre\nDaten in einem definierten Format an einer ihr zugänglichen Stelle\n(Webspace, Wiki, Webserver) bereit und trägt sich in das Verzeichnis\nein. Das Verzeichnis besteht lediglich aus einer Zuordnung von\nCommunitynamen und URL zu den den bereitgestellten Daten. Die erste\nAnwendung soll eine Karte mit darin angezeigten Freifunkcommunities\nsein, um Besuchern und Interessierten einen Überblick zu geben und\nlokale Ansprechpartner zu vermitteln.\n\nDie Freifunk API soll die Metadaten der Communities dezentral sammeln und anderen Nutzern zur Verfügung stellen. Die API ist nicht zu verwechseln mit einer Datenbank für Freifunkknoten oder als Verzeichnis von Firmwareeinstellungen einzelner Communities.\n\nWeitere Informationen zur API sind in einem Blogartikel unter https://blog.freifunk.net/2013/die-neue-freifunk-api-aufruf-zum-mitmachen zusammengefasst.\n\nQualitätssicherung\n==================\n\n* Die API-Datei sollten mit dem [API-Generator](https://freifunk.net/api-generator/) erstellt bzw. validiert worden sein.\n* Eine Community muss immer ortsbezogen sein. Ist eine Community überregional oder in mehreren Orten aktiv müssen für die verschiedenen Städte und Ortschaften mehrere Einträge erstellt werden. Um deutlich zu machen, das diese Ortgruppen zusammen gehören sollte im Feld `metacommunity` ein gemeinsamer Namen eingetragen werden. Alternativ kann der Communityname auch in allen Orten identisch sein.\n* Jede Community muss mindestens Kontaktdaten und eine Möglichkeit zur Teilnahme bereitstellen. Je mehr Daten desto besser.\n* Eine Freifunk-Community besteht aus einer Gruppe von min. 2-3 Personen, die auch bereits einige Freifunk-Knoten vor Ort betreibten.\n* Die Dateien müssen UTF8 codiert sein und so auch vom [Webserver ausgeliefert](https://serverfault.com/questions/581760/how-do-i-set-proper-headers-for-json-in-apache) werden.\n* Die API-Datei sollte möglichst aktuell gehalten werden. Stark veraltete oder ungültige Dateien werden nach Rückfrage wieder entfernt. \n* Damit die API-Dateien verarbeitet werden können müssen diese in der [`directory.json`](directory.json) eingetragen werden.\n\nHistory\n=======\n\nAt the Wireless Community Weekend 2013 in Berlin there was a first meeting to relaunch freifunk.net. To represent local communities without collecting and storing data centrally, a way had to be found. Another requirement was to enable local communities to keep their data up to date easily.\n\nBased on the Hackerspaces API (https://hackerspaces.nl/spaceapi/) the idea of the freifunk API was born: Each community provides its data in a well defined format, hosted on their places (web space, wiki, web servers) and contributes a link to the directory. This directory only consists of the name and an url per community. First services supported by our freifunk API are the global community map and a community feed aggregator.\n\nThe freifunk API is designed to collect metadata of communities in a decentral way and make it available to other users. It's not designated to be a freifunk node database or a directory of individual community firmware settings.\n\nLicence\n=======\n\nPlease feel free to use this data in any (usefull) way you want.\nAll code and content in this git repository is provided under [Creative Commons Zero 1.0 Universal](LICENSE) license to you.\n\nContribution\n=======\nFeel free to contribute to this project by creating a pull request. \nPlease sign-off your git commits before pushing it to your repository.\n\nYou confirm that you are allowed to contribute all code and content of your commit to this repository by simply adding \na sign-off to your commit message. \n\nPlease ensure that the sign-off is done with the same e-mail address as your committer e-mail address.\n\nEasyest way to do this is to use the git sign-off feature:\n\n**Sign-off your commit (directly)**\n\n```git commit --signoff -m \"Commit message here\"```\n\n**Sign-off your last commit (if you forgot to sign-off)**\n\n```git commit --amend --no-edit --signoff ```\n\n**Force pushing last commit (if already pushed before sign-off)**\n\n```git push --force-with-lease origin your-branch-name-here ```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreifunk%2Fdirectory.api.freifunk.net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreifunk%2Fdirectory.api.freifunk.net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreifunk%2Fdirectory.api.freifunk.net/lists"}