{"id":13410068,"url":"https://github.com/offen/offen","last_synced_at":"2025-05-15T02:06:36.936Z","repository":{"id":37883291,"uuid":"180605180","full_name":"offen/offen","owner":"offen","description":"Offen Fair Web Analytics","archived":false,"fork":false,"pushed_at":"2025-04-09T13:34:02.000Z","size":13278,"stargazers_count":923,"open_issues_count":19,"forks_count":50,"subscribers_count":6,"default_branch":"development","last_synced_at":"2025-04-14T02:59:09.733Z","etag":null,"topics":["datensparsamkeit","fair","privacy","self-hosted","web-analytics"],"latest_commit_sha":null,"homepage":"https://www.offen.dev","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/offen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":"auditorium/.babelrc","citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"patreon":"offen","github":"offen"}},"created_at":"2019-04-10T14:58:25.000Z","updated_at":"2025-04-13T14:11:54.000Z","dependencies_parsed_at":"2023-10-03T13:37:41.627Z","dependency_job_id":"cb4d0e82-e522-45bf-95d5-b3dd1341632c","html_url":"https://github.com/offen/offen","commit_stats":{"total_commits":2107,"total_committers":18,"mean_commits":"117.05555555555556","dds":0.2320835310868533,"last_synced_commit":"8704d7adb4151be6406be7cd786e7c697a0e16c6"},"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offen%2Foffen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offen%2Foffen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offen%2Foffen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offen%2Foffen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/offen","download_url":"https://codeload.github.com/offen/offen/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259370,"owners_count":22040819,"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","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":["datensparsamkeit","fair","privacy","self-hosted","web-analytics"],"created_at":"2024-07-30T20:01:04.793Z","updated_at":"2025-05-15T02:06:36.902Z","avatar_url":"https://github.com/offen.png","language":"JavaScript","funding_links":["https://patreon.com/offen","https://github.com/sponsors/offen"],"categories":["JavaScript","others"],"sub_categories":[],"readme":"\u003c!--\nCopyright 2020-2024 - Offen Fair Web Analytics Authors \u003chioffen@posteo.de\u003e\nSPDX-License-Identifier: Apache-2.0\n--\u003e\n\n\u003ca href=\"https://www.offen.dev/\"\u003e\n  \u003cimg src=\"https://offen.github.io/press-kit/avatars/avatar-OFWA-header.svg\" alt=\"Offen Fair Web Analytics logo\" title=\"Offen Fair Web Analytics\" width=\"60px\"/\u003e\n\u003c/a\u003e\n\n# Offen Fair Web Analytics\n\n[![CircleCI](https://circleci.com/gh/offen/offen/tree/development.svg?style=svg)](https://circleci.com/gh/offen/offen/tree/development)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Docs](https://img.shields.io/badge/Documentation-docs.offen.dev-blue.svg)](https://docs.offen.dev)\n[![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech)\n[![REUSE status](https://api.reuse.software/badge/github.com/offen/offen)](https://api.reuse.software/info/github.com/offen/offen)\n\n__Let your users access their data.  \nGain valuable insights at the same time.  \nOpen, lightweight, self hosted and free.__\n\n## Contents\n\n__Software__\n- [Core features](#core-features)\n- [How it works](#how-it-works)\n- [Essential metrics](#essential-metrics)\n- [Objectives](#objectives)\n- [Localize](#localize)\n- [Customize](#customize)\n- [Test drive](#test-drive)\n- [License](#license)\n\n__Community__\n- [Feedback and contributions welcome](#feedback-and-contributions-welcome)\n- [Kind support](#kind-support)\n- [Who's using Offen Fair Web Analytics?](#whos-using-offen)\n- [Links](#links)\n\n## Core features\n\n__Secure \u0026 free__  \nOur code is open source.\nAll usage data is encrypted end-to-end.\nOffen Fair Web Analytics will always be available for free.\n\n__Self hosted__  \nComply with GDPR guidelines.\nNo ads, no third parties involved.\nOffen Fair Web Analytics uses first-party cookies only.\n\n__Fair \u0026 by choice__  \nOpt-in only.\nUsers must actively give their consent to data collection.\nThey have full access to their data.\n\n## How it works\n\n__Your job__\n- Self host Offen Fair Web Analytics while protecting your users' data.  \n- Integrate the code snippet into pages you want to track.  \n- Make your users aware of the access to their data.  \n- Improve your services with fair and transparent insights.  \n\n__Benefits for your users__\n- Opt in to data collection or decide to not participate at all.  \n- Review own data with detailed explanations of metrics and terms.  \n- Only delete usage data or opt out completely at any time.  \n\n__What you see__  \nData of all pages where your installation is active.\nFor example:\n\n![Example A](https://offen.github.io/press-kit/offen-material/gfx-GitHub-Example-A.svg)\n\n__What your users see__  \nData of all pages a user has visited where your installation is active. For example:\n\n![Example B](https://offen.github.io/press-kit/offen-material/gfx-GitHub-Example-B.svg)\n\n__More features__\n- Easily analyze multiple websites within one installation.\n- All website accounts can be shared within teams.\n- User data is only stored for 6 months and then deleted.  \n- A detailed documentation on how to run Offen Fair Web Analytics is available.  \n\n## Essential metrics\n\nAll important statistics that help you to improve your service.  \nFilter collected data by URL, Location, Referrer, UTM parameters, as well as Landing Pages and Exit Pages.\n![Essential metrics](https://offen.github.io/press-kit/offen-material/gfx-GitHub-Metrics.svg)\n\n## Objectives\n\n__Privacy friendly__  \nCollection of usage data is opt in, users that do not actively opt in will never leave a trace.\nAfter opt in, Offen Fair Web Analytics collects the minimal amount of data needed to generate meaningful statistics for operators.\nNo IPs, User-Agent strings or similar are being collected or even looked at.\n\n__Secure__  \nData in Offen Fair Web Analytics is encrypted End-To-End.\nClients encrypt usage data before it leaves the browser and there is no way for the server storing this data to decrypt it.\nAttackers have no means to compromise an instance, accidental data leaks cannot expose user data.\n\n__Self hosted and lightweight__  \nYou can run Offen Fair Web Analytics on-premises, or in any other deployment scenario that fits your need.\nAll you need to do is download a single binary file or pull a Docker image, and run it on your server.\nOffen Fair Web Analytics will automatically install and renew SSL certificates for you if you want it to.\nIf you do not want to deploy a dedicated database, you can use SQLite to store data directly on the server.\n\n__Transparent and fair__  \nOffen Fair Web Analytics treats the user as a party of equal importance in the collection of usage data.\nUsers have access to the same set of tools for analyzing their own data and they can delete their data at any time.\n\n## Localize\n\n__Offen Fair Web Analytics is currently available in English, French, German, Portuguese, Spanish and Vietnamese.__\nOur consent banner and the Auditorium for operators as well as users can be displayed in the respective locale.  \n\nIf you want to support fair web analytics by contributing Italian, Dutch, Polish or other language versions, don't hesitate to [request an invite.][]\n\n[request an invite.]: mailto:hioffen@posteo.de\n\n## Customize\n\nOur consent banner is customizable in __color, shape and basic font specifications__ to match your design. [Learn more.][]\n\n[Learn more.]: https://docs.offen.dev/running-offen/customizing-consent-banner/\n\n## Test drive\n\nGive Offen Fair Web Analytics a test drive right now. Open your terminal and type:\n\n```sh\ncurl https://demo.offen.dev | bash\n```\n\nThis creates an ephemeral one-off installation that is populated with random data and is running on `http://localhost:9876`.\nThere, you can log in using the account `demo@offen.dev` and password `demo`.\n\n## License\n\nWork in this repository is licensed under multiple licences.\n\n- All original source code is licensed under [Apache-2.0][license-apache].\n- All documentation is licensed under [Apache-2.0][license-apache].\n- The Offen Fair Web Analytics icon and logo are licensed as [CC-BY-NC-ND-4.0][license-cc].\n\nSee the [NOTICE][notice] file for license information on works that get bundled by Offen Fair Web Analytics.\n\n[license-apache]: https://github.com/offen/offen/blob/development/LICENSES/Apache-2.0.txt\n[license-cc]: https://github.com/offen/offen/blob/development/LICENSES/CC-BY-NC-ND-4.0.txt\n[notice]: https://github.com/offen/offen/blob/development/NOTICE\n\n## Feedback and contributions welcome\n\nFound an issue or want to add something? Please do not hesitate to file an issue or open a pull request (or send an email in case you don't want to use GitHub).\nFor details on how to get started head over to our [contributing guidelines.](https://github.com/offen/offen/blob/development/CONTRIBUTING.md)\n\n---\n\nThis repository contains all source code needed to work on Offen Fair Web Analytics, both on the server as well as on the client.\nThe development setup requires `docker` and the `compose` plugin to be installed.\n\nAfter cloning the repository\n\n```\n$ git clone git@github.com:offen/offen.git\n```\n\nyou can build the containers and install dependencies using:\n\n```sh\n$ make setup\n```\n\nNext seed the database for the `server` application:\n\n```sh\n$ make bootstrap\n```\n\nYou can test your setup by starting the application:\n\n```sh\n$ make up\n```\n\nwhich should enable you to access \u003chttp://localhost:8080/auditorium/\u003e and use the `Auditorium`\n\nRun the tests for all subapplications using\n\n```sh\n$ make test\n```\n\nDetailed instructions on how to get started with development can be found at our [dedicated docs site][dev-docs].\n\n[dev-docs]: https://docs.offen.dev/developing-offen/\n\n---\n\nThe documentation site at \u003chttps://docs.offen.dev\u003e is also part of this repository.\nTo run this site locally, you can:\n\n```sh\nmake setup-docs\nmake docs\n```\n\nThis will serve the documentation site on \u003chttps://localhost:4000\u003e.\n\n## Kind support\n\n[![NLnet Foundation](https://offen.github.io/press-kit/external-material/nlnet-logo.svg)](https://nlnet.nl/)\n\nWe are happy to work with [NLnet Foundation,](https://nlnet.nl/) which has supported our efforts as part of its [Next Generation Internet](https://nlnet.nl/NGI/) initiative.\n\n\u003ca href=\"https://www.browserstack.com/\"\u003e\n  \u003cimg src=\"https://offen.github.io/press-kit/external-material/browserstack-logo.svg\" width=\"160\"\u003e\n\u003c/a\u003e\n\nCross-Browser testing provided by [BrowserStack](https://www.browserstack.com/).\n\n## Who's using Offen Fair Web Analytics?\n\nWe're happy to feature you in this README.\nSend a PR adding your site or app to this section.\n\n- [All Quiet](https://allquiet.app) - Incident escalation made easy  \n\n## Links\n[Website](https://www.offen.dev/)  \n[Docs](https://docs.offen.dev/)  \n[Mastodon](https://fosstodon.org/@offen)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffen%2Foffen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foffen%2Foffen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffen%2Foffen/lists"}