Skip to content

Instantly share code, notes, and snippets.

View openoms's full-sized avatar

openoms openoms

View GitHub Profile
openoms /
Last active March 13, 2023 02:26
LNURLpay over Tor

LNURLpay over Tor

Setup used

  • Raspiblitz on the dev branch (~v1.9.0rc3 - earlier versions should work)
  • CLN / LND with incoming capacity on public channel(s)
  • BTCPayServer v1.8.2 (an earlier version with LNaddress support should work)

Steps to create the service

  • Create user and log in
  • Create Store
openoms / .gitignore
Last active August 13, 2022 07:37 — forked from fiatjaf/.gitignore
hsm_secret and custom invoices with lnurl on c-lightning
openoms / Fund c-lightning channel with
Created July 8, 2022 22:07 — forked from BitcoinWukong/Fund c-lightning channel with
Creating a Core Lightning channel funded by JoinMarket

Software Version

bitcoin core: 0.21.0
core lightning: 0.11.1
joinmarket: 0.9.6

Step 1:

openoms /
Last active March 19, 2024 19:56
Restore a CLN node on a Raspiblitz from the database backup on the SDcard

make !backups to your desktop! of:

  • hsm_secret (this is the root key for your onchain funds - can be regenerated from the CLN backup words)
    • stored on the SSD: /home/bitcoin/.lightning/bitcoin/hsm_secret
  • lightningd.sqlite3.backup (this is the realtime channel database backup saved to your SDcard by the backup plugin)
    • find it on the SDcard in /home/bitcoin/. If there are multiple backup files always use the latest one (the backups of the backup are dated and stored when the backup plugin is reinitialized - they can be discarded).

To start the process flash a new SDcard (keep your old SDcard as a backup) and make sure everything is working by starting a new (empty) CLN node and have bitcoind synced.

Upload the backups from your desktop (can use WinSCP on Windows):

openoms /
Last active April 4, 2022 20:47
Install Core Ligthning on a RaspiBolt - cleaned and modified from the RaspiBlitz
# CLVERSION=v0.10.2
# install the latest master by using the last commit id
# CLVERSION="063366ed7e3b7cc12a8d1681acc2b639cf07fa23"
openoms /
Last active January 2, 2023 03:09
A script to connect to sa shared VPN service with openvpn + set up a killswitch with UFW
sudo apt update
sudo apt install openvpn -y
## define config filename and credentials
echo "# Type or paste the config filename and press ENTER:"
read config; echo $config; echo
echo "# Type or paste the VPN username and press ENTER:"
openoms /
Last active May 14, 2022 20:56 — forked from solarmicrobe/
Add zerotier to TrueNAS
#! /usr/bin/env sh
pkg install wget -y
echo "# Check the latest version at:"
echo "# Which version to install?"
echo "# Example:"
echo "1.6.5"
openoms / gist:30674a7a2bcc85cd95254ad00b324d50
Created June 8, 2021 05:43 — forked from tr3buchet/gist:5105747
yubikey OR private key ssh authentication on debian

the grand idea

I like public key auth. I feel safer using them instead of a username and password login. But, I might not have my private key with me at a time where I need access.

I started using yubikey with LastPass and since I have it always on my keychain, I decided to find more ways to make use of it.

I wasn't originally aware, but if you pass a private key to ssh and sshd is configured to accept a key, it appears pam isn't used. Your authorized keys are checked and you are logged in. If you don't pass a private key, ssh falls back to the more standard un*x style login found in /etc/pam.d/sshd. This is where we'll add the yubikey pam. I am currently unaware of a way to use both public key auth and yubikey for login.

These steps worked for me on debian squeeze/wheezy.

more info at the yubico-pam github repo

openoms / twittermute.txt
Created August 27, 2020 06:22 — forked from IanColdwater/twittermute.txt
Here are some terms to mute on Twitter to clean your timeline up a bit.
Mute these words in your settings here:
openoms /
Created August 17, 2020 08:02 — forked from freenancial/
Convert xpub/xprv to zpub/zprv
import base58
x = 'xprv9s21ZrQH143K2f55zo5GiXiX16MiPzBgc2bEXNd77e1ooGsjxAyXjozyuniqiSB76VESjTW8s7vdsK3NFboha6tZgF9BzcDdNtUT6Aw99P2'
zp = b'\x04\xb2\x43\x0c'
base58.b58encode_check(zp + base58.b58decode_check(x)[4:]).decode('ascii')
# output: 'zprvAWgYBBk7JR8GjFTKfWeX8huXM2ecHEAgSFdg6AQssemZuUWCTVJeywKFxCe1iFUwumU4EQhFnSdjdtGVgzdjAaFmQvY3ARrbvLbjsLf6oNE'
# xprv = b'\x04\x88\xad\xe4'
# yprv = b'\x04\x9d\x78\x78'
# zprv = b'\x04\xb2\x43\x0c'