{"id":21027058,"url":"https://github.com/hugomd/lnd-nostr-zapper","last_synced_at":"2025-05-15T10:32:11.645Z","repository":{"id":163024022,"uuid":"637683904","full_name":"hugomd/lnd-nostr-zapper","owner":"hugomd","description":"⚡️⚡️⚡️","archived":false,"fork":false,"pushed_at":"2023-05-16T07:03:42.000Z","size":77,"stargazers_count":9,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-03T07:43:05.896Z","etag":null,"topics":["docker","lightning","nostr","nostr-protocol","selfhosted"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hugomd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-05-08T07:36:52.000Z","updated_at":"2023-11-29T17:33:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"af18640b-c016-4b62-ba55-4007c68fd6b9","html_url":"https://github.com/hugomd/lnd-nostr-zapper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugomd%2Flnd-nostr-zapper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugomd%2Flnd-nostr-zapper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugomd%2Flnd-nostr-zapper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hugomd%2Flnd-nostr-zapper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hugomd","download_url":"https://codeload.github.com/hugomd/lnd-nostr-zapper/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254322989,"owners_count":22051696,"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":["docker","lightning","nostr","nostr-protocol","selfhosted"],"created_at":"2024-11-19T11:47:29.738Z","updated_at":"2025-05-15T10:32:06.629Z","avatar_url":"https://github.com/hugomd.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lnd-nostr-zapper\n\nSelf-host your own [zap](https://nostr.how/en/zaps) server to receive zaps\ndirectly to your own [Umbrel](https://umbrel.com)/LND node!\n\nHeavily inspired by [fiatjaf/bridgeaddr](https://github.com/fiatjaf/bridgeaddr/tree/master) and [jb55/cln-nostr-zapper](https://github.com/jb55/cln-nostr-zapper/tree/master).\n\n# Features\nImplements [LUD-06](https://github.com/lnurl/luds/blob/luds/06.md) (LNURLp) and\n[NIP-57](https://github.com/nostr-protocol/nips/blob/master/57.md).\n\n* [x] Connect to LND via Tor\n* [x] Publish zap receipts\n* [x] Configure default relays for zap receipts\n* [x] Easy deployment with Fly.io\n* [x] Public Docker image\n\n# Installation\n\nA Docker container image is available via [GitHub Container Registry](https://github.com/hugomd/lnd-nostr-zapper/pkgs/container/lnd-nostr-zapper):\n```\ndocker pull ghcr.io/hugomd/lnd-nostr-zapper:e8de5840\n```\n\n# Deploying\n\n## Fly.io\n\n[Fly](https://fly.io) makes it easy to run Docker containers, and has a generous \nfree tier.\n\nInstall `flyctl`:\n\n```bash\nbrew install flyctl\n```\n\nClone this repository:\n```bash\ngit clone git@github.com:hugomd/lnd-nostr-zapper.git \u0026\u0026 cd lnd-nostr-zapper\n```\n\n### Set environment variables\n\nUpdate the environment variables in [`fly.toml`](./fly.toml) (e.g. `LND_HOST`).\n\nMost of the environment variables can be found on your Umbrel node by SSH'ing \nin and running the commands below:\n\nTo find your Tor hostname, run:\n```bash\ncat /home/umbrel/umbrel/tor/data/app-lightning-rest/hostname\n```\n\n`LND_HOST` should be of the form:\n```\nhttps://TOR_HOSTNAME:8080\n```\n\nTo bake a macaroon run:\n```bash\ndocker exec lightning_lnd_1 lncli bakemacaroon invoices:read invoices:write\n```\n\n### Deploy\n\nLaunch the application:\n```bash\nflyctl launch\n```\n\n### Set secrets\n\nSet secret values, which will be available to the container as runtime\nenvironment variables:\n```bash\nflyctl secrets set NOSTR_KEY=\"NOSTR_PRIVATE_KEY_HERE\"\nflyctl secrets set LND_MACAROON=\"LND_MACAROON_HERE\"\n```\n\nThis should deploy lnd-nostr-zapper to a `fly.dev` domain, which you can use to \nreceive zaps! ⚡️\n\n### Test!\n\nYou can see it in action by running:\n```bash\nflyctl open \"/.well-known/lnurlp/capybara\"\n```\n\n# Configuration\nConfiguration is done via environment variables:\n\n| Environment Variable  | Required | Default value | Description |\n| --------------------- | -------- | ------------- | ----------- |\n| `HOST`                | false    | `0.0.0.0`      | The host to bind the HTTP server to. | \n| `PORT`                | false    | `8080`         | The port to bind the HTTP server to. | \n| `DOMAIN`              | true     | N/A            | The domain associated with the server, used in the LNURL callback. | \n| `LND_HOST`            | true     | N/A            | URL pointing to LND, followed by the REST API port. E.g. `https://example.onion:8080` | \n| `LND_MACAROON`        | true     | N/A            | An invoice read/write macaroon for auth with LND. | \n| `LND_CERT`            | false    | `\"\"`           | Optional self-signed certificate to call LND. Don't set this if you run Umbrel. | \n| `NOSTR_KEY`           | true     | N/A            | Nostr private key, used to publish zap receipts. | \n| `COMMENT_LENGTH`      | false    | `0`            | Maximum length of associated comments, sent via webhook. | \n| `WEBHOOK_URL`         | false    | `\"\"`           | URL to call after successful payment. | \n| `DESCRIPTION`         | false    | `\"Send sats!\"` | Description shown in LNURL metadata. | \n| `IMAGE_URL`           | false    | `\"\"`           | Optional avatar URL shown in LNURL metadata. | \n| `RELAYS`              | false    | `\"\"`           | Optional comma separated list of relays to publish zaps to, of the form: `wss://relay.damus.io,wss://brb.io`. | \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhugomd%2Flnd-nostr-zapper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhugomd%2Flnd-nostr-zapper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhugomd%2Flnd-nostr-zapper/lists"}