Forestil dig at kunne modtage betalinger i bitcoin på få sekunder – helt uden kortgebyrer, tilbageførsler eller afhængighed af tredjeparts-gateways. Det lyder næsten for godt til at være sandt, men med en selvhostet BTCPay Server og Lightning Network er det præcis, hvad både webshops, freelancere og cafés over hele verden allerede gør.
I denne guide på USD Finans viser vi dig, hvordan du på egen hånd kan sætte en BTCPay-instans op, åbne dine første kanaler og udstede LN-fakturaer (BOLT11) til kunder, medlemmer eller donorer. Vi gennemgår både de tekniske skridt – fra Docker-installationen til de første testbetalinger – og de forretningsmæssige overvejelser som likviditet, gebyrstruktur og bogføring.
Hvorfor bruge energi på at selvhoste? Svaret er enkelt: kontrol og frihed. BTCPay Server giver dig fuld råderet over dine midler, dine kundedata og dine transaktionsgebyrer. Samtidig åbner Lightning Network døren til instant settlement med mikroskopiske omkostninger – ideelt til alt fra 1-kronesaviser til globale abonnements-services.
Er du klar til at dykke ned i kryptovalutaens svar på MobilePay og få hands-on tips til at komme i gang? Så læn dig tilbage, og lad os tage dig trin for trin fra nul til mainnet…
Hvad er BTCPay Server og Lightning Network-fakturaer?
BTCPay Server er blevet de facto standarden for virksomheder og entusiaster, der ønsker at modtage bitcoin-betalinger uden at overlade nøgler, data eller gebyrindtægter til en tredjepart. Som 100 % open-source kan softwaren downloades, ændres og hostes på din egen server, så du selv styrer alt fra transaktionsflow til brugerdata og routing-gebyrer.
Lightning network i fugleperspektiv
Bitcoin-netværket i sin rå form (on-chain) kan kun håndtere få transaktioner pr. sekund. Lightning Network (LN) er et såkaldt lag-2-netværk oven på Bitcoin, der muliggør næsten øjeblikkelige og meget billige mikro-betalinger via betalingskanaler. Brugerne låser først en sats på Bitcoin-kæden; herefter flytter de saldo internt i kanalen, uden at hvert hop skal publiceres on-chain.
Hvad er en ln-faktura (bolt11)?
Når du som sælger vil modtage en Lightning-betaling, genererer BTCPay Server en BOLT11-faktura. Det er en kodet streng (typisk vist som en QR-kode), der indeholder:
- Beløb og valuta (fx 50 DKK konverteret til sats)
- Node-ID og routing-hint
- Udløbstid & metadata (beskrivelse, ordre-ID, m.m.)
- Digital signatur, så modtageren verificeres kryptografisk
On-chain vs. Lightning – Hvad er forskellen?
| On-chain | Lightning Network | |
|---|---|---|
| Bekræftelsestid | 10-60 min (afhængig af fee og antal konfirmeringer) | <1 sekund (næsten instant) |
| Gebyr | Variabel – typisk 5-1000 sats pr. input | ~0-5 sats + routing-gebyrer (ppm) |
| Tilbagebetaling | Ny transaktion, nye gebyrer | Kan refunderes internt i kanalen uden on-chain fee |
| Skalering | Begrænset til ~1 MB blokke | Næsten ubegrænset antal mikro-betalinger |
Fordele og ulemper ved selvhosting
- Fordele: fuld kontrol over private nøgler, ingen custodial risk, højere privatliv, ingen tredjepartsgebyrer, mulighed for at tjene routing-fees.
- Ulemper: du er selv drift- og sikkerhedsansvarlig, udgifter til server og energi, kompleksitet ved backups og opgraderinger.
Arkitektur i et btcpay-setup
- Bitcoin-node (
bitcoind) – validerer blokke og giver prishistorik til BTCPay. - Lightning-backend – vælg mellem LND, Core Lightning eller Eclair; sørger for kanal-administration og routing.
- BTCPay Server – web-interface, fakturagenerator, regnskab og API.
- Store – den butiksinstans hvor du indtaster xpub, vælger fiat-omregning og aktiverer betalingsmetoder.
Centrale lightning-begreber
- Kanallikviditet – hvor meget af balancen er inbound (kan modtage) og outbound (kan sende).
- Routing-fees – små gebyrer (ppm + fast sats), du kan tjene når andres betalinger passerer din node.
- Hold invoices – fakturaer der reserveres, men først afregnes når du frigiver pre-image; nyttigt til abonnementer og lagerkontrol.
Sikkerhed & compliance
Selvom Lightning er off-chain, står midlerne stadig på hot wallets, hvilket gør sikkerhed altafgørende.
- Seed- og kanal-backups: gem BIP39-frø i kold opbevaring og tag løbende
channel.backup. - Server-hærdening: SSH-nøgler, firewalls, regelmæssige software-opdateringer og 2-FA til BTCPay-dashboardet.
- KYC/AML: Danske erhvervsdrivende er fortsat underlagt hvidvaskloven ved beløb > 1000 EUR pr. kunde pr. dag.
- Bogføring og moms: Eksportér .CSV fra BTCPay, registrér DKK-værdi på betalingstidspunktet, og opkræv moms på normale vilkår.
Typiske anvendelser
- Webshops: WooCommerce, Magento, Shopify (via proxy-app) – kunder betaler i BTC/LN, butikken modtager el. auto-konverterer.
- Donationer: enkel Pay-button eller
lnurlp-adresse uden KYC-krav for modtageren. - Point of Sale (POS): Tablet i café eller bar, instant betaling med QR-kode – ingen kortgebyrer.
- Abonnementer & SaaS: Hold invoices/AMP muliggør månedlig fakturering uden at gemme kortdata.
Med andre ord er BTCPay Server + Lightning Network en one-stop, self-custody løsning, der kombinerer Bitcoinkædens tillid og Lightning-netværkets hastighed – og som samtidig giver dig fuld suverænitet over dine penge og data.
Trin-for-trin: Opsætning af BTCPay Server og udstedelse af LN-fakturaer
- Domæne: F.eks. pay.ditfirma.dk
- Server/VPS: Min. 2 GB RAM, 50 GB SSD, offentlig IP-adresse
- Driftsmiljø: Linux (Ubuntu 20.04+), sudo-adgang, Docker og Docker Compose installeret
- Basal terminalviden: SSH, editor (nano/vim) og firewall-opsætning (ufw)
1. Installation af btcpay server (docker-deployment)
- SSH ind på serveren og kør:
sudo su -
mkdir btcpay && cd btcpay
curl https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/master/btcpay-setup.sh -o btcpay-setup.sh
chmod +x btcpay-setup.sh - Start installationsscriptet – angiv domæne og LN-backend:
./btcpay-setup.sh -i pay.ditfirma.dk -l lnd
Scriptet- Genererer docker-compose.yml
- Henter billeder (Bitcoin Core, LND/Core Lightning, BTCPay m.fl.)
- Opsætter Let’s Encrypt-certifikat og automatisk fornyelse
- Efter ca. 10-15 min er BTCPay tilgængelig på
https://pay.ditfirma.dk
2. Opret en butik (store) og tilknyt bitcoin-wallet
- Log ind (første bruger bliver admin), klik “Create a new store”
- Vælg Set up a wallet → Hot Wallet eller importer en
xpubfra hardware-/watch-only-wallet for cold-storage - Notér store ID; den skal bruges ved API-kald
3. Vælg og konfigurer lightning-backend
| Backend | Fordele | Ulemper |
|---|---|---|
| LND | Størst økosystem, nemme tools | Mere RAM-krævende |
| Core Lightning (CLN) | Lavt resource-forbrug, plugin-arkitektur | Færre GUI-værktøjer |
Kør lncli newaddress (LND) eller lightning-cli newaddr (CLN) for at generere node URI og start en static channel backup (SCB). Download SCB-filen og opbevar den offline.
4. Åbn kanaler & skaf inbound-likviditet
- Indbetal on-chain BTC til din LN-wallet (
lncli newaddress) - Åbn 2-3 kanaler (0,01-0,05 BTC) til velrutede noder via:
lncli openchannel --node_key=<pubkey> --local_amt=1000000 - Inbound-likviditet:
- Lightning Loop In / Boltz Reverse Swap
- Kanalkøb (Amboss Magma, Lightning Network+)
- Frivillige peer-forbindelser fra kunder/venner
5. Aktiver lightning i btcpay
- Gå til Store → Settings → Lightning Network
- Vælg backend (LND/CLN), test forbindelsen, og gem
- Under Payments → Rates justér kurser (CoinGecko m.fl.)
- Sæt invoice expiry (typisk 30 min), payment tolerance og accepterede metoder (on-chain, LN eller begge)
6. Udsted din første ln-faktura
- Klik Invoices → Create new invoice
- Angiv beløb (DKK eller sats), metadata (ordre-ID, kunde-e-mail) og Lightning only
- BTCPay genererer en BOLT11-streng og QR-kode. Scan med en mobil wallet (Phoenix, Breez, Muun) og send 10-20 sats for at teste
- Status skifter til Settled på få sekunder
7. Integration i dit økosystem
- WooCommerce: Installer BTCPay for WooCommerce, indsæt Store ID & API key (Scoped)
- API / Webhooks: Hent
/invoices, modtaginvoice_paidevents til lager-/ERP-system - POS-app: Generér webbaseret kasse-interface til caféer & events
- E-mail/QR: Send faktura-link automatiseret via regnskabs-software
- LNURL-Pay & Lightning Address:
[email protected]for donationer og mikrobetalinger
8. Drift & bedste praksis
- Opdateringer: Kør
./btcpay-update.shmånedligt. Test i staging først - Monitorering: Prometheus + Grafana eller BTCPay’s indbyggede Server Stats. Alert på lav inbound-likviditet
- Rebalancering:
lncli payinvoice --outgoing-chan-id=... --last_hop=...; hold routing-gebyrer (base/ppm) konkurrencedygtige - Sikkerhed:
- Firewall – åbn kun
80/443+ LN-port 9735 - SSH-nøgler, fail2ban, 2FA på BTCPay-konti
- Automatisk off-site backup af seed, SCB og docker-compose.yml
- Firewall – åbn kun
- Fejlfinding:
lncli lookupinvoice, check HTLC-status;btcpay.logsfor 404/500-fejl - Bogføring: Eksportér CSV fra Invoices og synkronisér til e-conomic/Dinero; husk kursvederlag og momsrapport
Med ovenstående workflow kan du på under en time gå fra nul infrastruktur til at modtage lynhurtige, gebyrbillige LN-betalinger direkte til din egen node – helt uden mellemmænd.













