{"id":13832505,"url":"https://gitlab.com/minds/infrastructure/nostr-relay","last_synced_at":"2025-07-09T19:30:29.572Z","repository":{"id":50055144,"uuid":"37125088","full_name":"minds/infrastructure/nostr-relay","owner":"minds","description":"","archived":false,"fork":false,"pushed_at":null,"size":null,"stargazers_count":2,"open_issues_count":7,"forks_count":4,"subscribers_count":null,"default_branch":"master","last_synced_at":"2024-08-04T11:01:14.613Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":null,"metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-17T21:11:01.850Z","updated_at":"2023-10-18T00:00:14.092Z","dependencies_parsed_at":"2022-08-29T20:01:15.454Z","dependency_job_id":null,"html_url":"https://gitlab.com/minds/infrastructure/nostr-relay","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/minds%2Finfrastructure%2Fnostr-relay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/minds%2Finfrastructure%2Fnostr-relay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/minds%2Finfrastructure%2Fnostr-relay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories/minds%2Finfrastructure%2Fnostr-relay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners/minds","download_url":"https://gitlab.com/minds/infrastructure/nostr-relay/-/archive/master/nostr-relay-master.zip","host":{"name":"gitlab.com","url":"https://gitlab.com","kind":"gitlab","repositories_count":4515929,"owners_count":6550,"icon_url":"https://github.com/gitlab.png","version":null,"created_at":"2022-05-30T11:31:42.605Z","updated_at":"2024-07-18T11:24:13.055Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/gitlab.com/owners"}},"keywords":[],"created_at":"2024-08-04T11:00:21.420Z","updated_at":"2024-11-20T15:30:44.950Z","avatar_url":null,"language":null,"funding_links":[],"categories":["Install from Source","Relays"],"sub_categories":["Nostr","Implementations"],"readme":"# Minds Nostr Relay\n\nThis project contains the source code for the Minds Nostr relay.\n\n## Implemented NIPs\n\nNostr defines several \"NIPs\", or **Nostr Implementation Possibilities**, that define expected behavior for both clients and relays. \n\nThese are the NIPs that are currently implemented by this relay:\n\n✅ - Implemented\n🚧 - In Progress / Partially Implemented\n❌ - Not (Yet) Implemented\n\n| NIP      | Status |\n| -------- | ------ |\n| NIP-01   | ✅     |\n| NIP-02   | ❌     |\n| NIP-03   | ❌     |\n| NIP-04   | ❌     |\n| NIP-05   | 🚧     |\n| NIP-06   | ❌     |\n| NIP-07   | ❌     |\n| NIP-08   | ✅     |\n| NIP-09   | ✅     |\n| NIP-10   | ✅     |\n| NIP-11   | ❌     |\n| NIP-12   | ❌     |\n| NIP-13   | ❌     |\n| NIP-14   | ❌     |\n| NIP-15   | ❌     |\n| NIP-16   | ❌     |\n| NIP-26   | 🚧     |\n\n## Getting Started\n\n### Run the project\n\nThis project is built with [Node.js](https://nodejs.org/), and uses `npm` for dependency mangement.\n\nYou can install the project dependencies and start locally with:\n\n```bash\ncp .env.example .env\nnpm i\nnpm run dev\n```\n\n### Execute Tests\n\nWe have unit tests witten with [Jest](https://jestjs.io/). You can run the tests with this command:\n\n```bash\nnpm test\n```\n\n### Local K3s\n\nIn order for testing the Kubernetes infrastructure included in this project, you can deploy to a local K3s cluster with [k3d](https://k3d.io/) and [Skaffold](https://skaffold.dev/).\n\nIf you are using Homebrew, you can install these packages:\n\n```bash\nbrew install skaffold k3d\n```\n\nIn order for `k3d` to function, you wil also need to have [Docker](https://docs.docker.com/get-docker/) installed.\n\nOnce the required dependencies are installed, you can start a `k3d` cluster with:\n\n```bash\nnpm run k3d:up\n```\n\nand then deploy to your local cluster using Skaffold with:\n\n```bash\nnpm run k3d:dev\n```\n\nSkaffold will automate the process of building an image using the `Dockerfile` specified in this repo and deploying to the `k3d` cluster whenever a change is made to the code.\n\n#### Helm Tests\n\nAlong with unit tests, we also have integration tests that are deployed as [Helm chart tests](https://helm.sh/docs/topics/chart_tests/).\n\nAfter deploying the Helm chart to `k3s`, you can run the integration tests with:\n\n```bash\nhelm test minds-nostr-relay\n```\n\n## Requesting a Nostr Event\n\nCurrently only requesting specific events by the unique hash is supported. One simple way to test this is by using the [noscl](https://github.com/fiatjaf/noscl) command line client for Nostr (this is the tool used in the integration tests).\n\nFor example:\n\n```bash\nnoscl relay add ws://localhost:8000/nostr/v1/ws # Default K3s Ingress port used when running k3d:up\n\nnoscl event \u003cevent_hash\u003e\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Fminds%2Finfrastructure%2Fnostr-relay","html_url":"https://awesome.ecosyste.ms/projects/gitlab.com%2Fminds%2Finfrastructure%2Fnostr-relay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/gitlab.com%2Fminds%2Finfrastructure%2Fnostr-relay/lists"}