mirror of
				https://github.com/bumi/lntip
				synced 2025-10-30 20:31:01 +00:00 
			
		
		
		
	Drop go rice and switch to go 1.17
This commit is contained in:
		
							parent
							
								
									c4b4430387
								
							
						
					
					
						commit
						77d21734c3
					
				| @ -1,15 +1,13 @@ | ||||
| # Go base image | ||||
| FROM golang:1.17-alpine as builder | ||||
| 
 | ||||
| RUN go get github.com/GeertJohan/go.rice && go get github.com/GeertJohan/go.rice/rice | ||||
| 
 | ||||
| WORKDIR /app | ||||
| 
 | ||||
| COPY . . | ||||
| 
 | ||||
| RUN go install | ||||
| 
 | ||||
| RUN rice embed-go && go build | ||||
| RUN go build | ||||
| 
 | ||||
| FROM alpine:3.14 | ||||
| 
 | ||||
|  | ||||
| @ -35,11 +35,9 @@ There are no other dependencies. Simply download the binary and run it! | ||||
| 
 | ||||
| 1. `$ git clone https://github.com/bumi/lnme.git && cd lnme` | ||||
| 2. `$ go install` | ||||
| 3. `$ rice embed-go && go build` | ||||
| 3. `$ go build` | ||||
| 4. `$ ./lnme` | ||||
| 
 | ||||
| Note: You must have [go.rice installed](https://github.com/GeertJohan/go.rice#installation) | ||||
| 
 | ||||
| ### Running in Docker | ||||
| 
 | ||||
| LnMe is now available in docker too. | ||||
|  | ||||
							
								
								
									
										147
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										147
									
								
								go.mod
									
									
									
									
									
								
							| @ -1,17 +1,146 @@ | ||||
| // +heroku goVersion 1.15 | ||||
| // +heroku goVersion 1.17 | ||||
| module github.com/bumi/lnme | ||||
| 
 | ||||
| go 1.15 | ||||
| go 1.17 | ||||
| 
 | ||||
| // https://github.com/lightningnetwork/lnd/issues/5624#issuecomment-897512230 | ||||
| replace go.etcd.io/etcd => go.etcd.io/etcd v0.5.0-alpha.5.0.20201125193152-8a03d2e9614b | ||||
| require ( | ||||
| 	github.com/GeertJohan/go.rice v1.0.2 | ||||
| 	github.com/cretz/bine v0.2.0 | ||||
| 	github.com/didip/tollbooth/v6 v6.1.1 | ||||
| 	github.com/knadh/koanf v1.2.1 | ||||
| 	github.com/labstack/echo/v4 v4.5.0 | ||||
| 	github.com/lightningnetwork/lnd v0.13.1-beta | ||||
| 	google.golang.org/grpc v1.40.0 | ||||
| 	github.com/knadh/koanf v1.4.0 | ||||
| 	github.com/labstack/echo/v4 v4.6.3 | ||||
| 	github.com/lightningnetwork/lnd v0.14.1-beta | ||||
| 	google.golang.org/grpc v1.44.0 | ||||
| 	gopkg.in/macaroon.v2 v2.1.0 | ||||
| ) | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect | ||||
| 	github.com/aead/siphash v1.0.1 // indirect | ||||
| 	github.com/andybalholm/brotli v1.0.3 // indirect | ||||
| 	github.com/beorn7/perks v1.0.1 // indirect | ||||
| 	github.com/btcsuite/btcd v0.22.0-beta.0.20211005184431-e3449998be39 // indirect | ||||
| 	github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f // indirect | ||||
| 	github.com/btcsuite/btcutil v1.0.3-0.20210527170813-e2ba6805a890 // indirect | ||||
| 	github.com/btcsuite/btcutil/psbt v1.0.3-0.20210527170813-e2ba6805a890 // indirect | ||||
| 	github.com/btcsuite/btcwallet v0.13.0 // indirect | ||||
| 	github.com/btcsuite/btcwallet/wallet/txauthor v1.1.0 // indirect | ||||
| 	github.com/btcsuite/btcwallet/wallet/txrules v1.1.0 // indirect | ||||
| 	github.com/btcsuite/btcwallet/wallet/txsizes v1.1.0 // indirect | ||||
| 	github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec // indirect | ||||
| 	github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210822222949-9b5a201c344c // indirect | ||||
| 	github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd // indirect | ||||
| 	github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 // indirect | ||||
| 	github.com/cespare/xxhash/v2 v2.1.1 // indirect | ||||
| 	github.com/coreos/go-semver v0.3.0 // indirect | ||||
| 	github.com/coreos/go-systemd/v22 v22.3.2 // indirect | ||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||
| 	github.com/decred/dcrd/lru v1.0.0 // indirect | ||||
| 	github.com/dsnet/compress v0.0.1 // indirect | ||||
| 	github.com/dustin/go-humanize v1.0.0 // indirect | ||||
| 	github.com/fergusstrange/embedded-postgres v1.10.0 // indirect | ||||
| 	github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect | ||||
| 	github.com/fsnotify/fsnotify v1.4.9 // indirect | ||||
| 	github.com/go-errors/errors v1.0.1 // indirect | ||||
| 	github.com/go-pkgz/expirable-cache v0.0.3 // indirect | ||||
| 	github.com/gogo/protobuf v1.3.2 // indirect | ||||
| 	github.com/golang-jwt/jwt v3.2.2+incompatible // indirect | ||||
| 	github.com/golang/protobuf v1.5.2 // indirect | ||||
| 	github.com/golang/snappy v0.0.4 // indirect | ||||
| 	github.com/google/btree v1.0.1 // indirect | ||||
| 	github.com/gorilla/websocket v1.4.2 // indirect | ||||
| 	github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect | ||||
| 	github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect | ||||
| 	github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect | ||||
| 	github.com/grpc-ecosystem/grpc-gateway/v2 v2.5.0 // indirect | ||||
| 	github.com/jackc/chunkreader/v2 v2.0.1 // indirect | ||||
| 	github.com/jackc/pgconn v1.10.0 // indirect | ||||
| 	github.com/jackc/pgio v1.0.0 // indirect | ||||
| 	github.com/jackc/pgpassfile v1.0.0 // indirect | ||||
| 	github.com/jackc/pgproto3/v2 v2.1.1 // indirect | ||||
| 	github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect | ||||
| 	github.com/jackc/pgtype v1.8.1 // indirect | ||||
| 	github.com/jackc/pgx/v4 v4.13.0 // indirect | ||||
| 	github.com/jonboulle/clockwork v0.2.2 // indirect | ||||
| 	github.com/jrick/logrotate v1.0.0 // indirect | ||||
| 	github.com/json-iterator/go v1.1.11 // indirect | ||||
| 	github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8 // indirect | ||||
| 	github.com/kkdai/bstream v1.0.0 // indirect | ||||
| 	github.com/klauspost/compress v1.13.6 // indirect | ||||
| 	github.com/klauspost/pgzip v1.2.5 // indirect | ||||
| 	github.com/labstack/gommon v0.3.1 // indirect | ||||
| 	github.com/lib/pq v1.10.3 // indirect | ||||
| 	github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf // indirect | ||||
| 	github.com/lightninglabs/neutrino v0.13.0 // indirect | ||||
| 	github.com/lightningnetwork/lightning-onion v1.0.2-0.20210520211913-522b799e65b1 // indirect | ||||
| 	github.com/lightningnetwork/lnd/clock v1.1.0 // indirect | ||||
| 	github.com/lightningnetwork/lnd/healthcheck v1.2.0 // indirect | ||||
| 	github.com/lightningnetwork/lnd/kvdb v1.2.1 // indirect | ||||
| 	github.com/lightningnetwork/lnd/queue v1.1.0 // indirect | ||||
| 	github.com/lightningnetwork/lnd/ticker v1.1.0 // indirect | ||||
| 	github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 // indirect | ||||
| 	github.com/mattn/go-colorable v0.1.11 // indirect | ||||
| 	github.com/mattn/go-isatty v0.0.14 // indirect | ||||
| 	github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect | ||||
| 	github.com/mholt/archiver/v3 v3.5.0 // indirect | ||||
| 	github.com/miekg/dns v1.1.43 // indirect | ||||
| 	github.com/mitchellh/copystructure v1.2.0 // indirect | ||||
| 	github.com/mitchellh/mapstructure v1.4.1 // indirect | ||||
| 	github.com/mitchellh/reflectwalk v1.0.2 // indirect | ||||
| 	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | ||||
| 	github.com/modern-go/reflect2 v1.0.1 // indirect | ||||
| 	github.com/nwaples/rardecode v1.1.2 // indirect | ||||
| 	github.com/pelletier/go-toml v1.7.0 // indirect | ||||
| 	github.com/pierrec/lz4/v4 v4.1.8 // indirect | ||||
| 	github.com/pkg/errors v0.9.1 // indirect | ||||
| 	github.com/pmezard/go-difflib v1.0.0 // indirect | ||||
| 	github.com/prometheus/client_golang v1.11.0 // indirect | ||||
| 	github.com/prometheus/client_model v0.2.0 // indirect | ||||
| 	github.com/prometheus/common v0.26.0 // indirect | ||||
| 	github.com/prometheus/procfs v0.6.0 // indirect | ||||
| 	github.com/rogpeppe/fastuuid v1.2.0 // indirect | ||||
| 	github.com/sirupsen/logrus v1.7.0 // indirect | ||||
| 	github.com/soheilhy/cmux v0.1.5 // indirect | ||||
| 	github.com/spf13/pflag v1.0.5 // indirect | ||||
| 	github.com/stretchr/testify v1.7.0 // indirect | ||||
| 	github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 // indirect | ||||
| 	github.com/ulikunitz/xz v0.5.10 // indirect | ||||
| 	github.com/valyala/bytebufferpool v1.0.0 // indirect | ||||
| 	github.com/valyala/fasttemplate v1.2.1 // indirect | ||||
| 	github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect | ||||
| 	github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect | ||||
| 	go.etcd.io/bbolt v1.3.6 // indirect | ||||
| 	go.etcd.io/etcd/api/v3 v3.5.0 // indirect | ||||
| 	go.etcd.io/etcd/client/pkg/v3 v3.5.0 // indirect | ||||
| 	go.etcd.io/etcd/client/v2 v2.305.0 // indirect | ||||
| 	go.etcd.io/etcd/client/v3 v3.5.0 // indirect | ||||
| 	go.etcd.io/etcd/pkg/v3 v3.5.0 // indirect | ||||
| 	go.etcd.io/etcd/raft/v3 v3.5.0 // indirect | ||||
| 	go.etcd.io/etcd/server/v3 v3.5.0 // indirect | ||||
| 	go.opentelemetry.io/contrib v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/otel v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/otel/exporters/otlp v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/otel/metric v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/otel/sdk v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/otel/sdk/export/metric v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/otel/sdk/metric v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/otel/trace v0.20.0 // indirect | ||||
| 	go.opentelemetry.io/proto/otlp v0.7.0 // indirect | ||||
| 	go.uber.org/atomic v1.7.0 // indirect | ||||
| 	go.uber.org/multierr v1.6.0 // indirect | ||||
| 	go.uber.org/zap v1.17.0 // indirect | ||||
| 	golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect | ||||
| 	golang.org/x/net v0.0.0-20210913180222-943fd674d43e // indirect | ||||
| 	golang.org/x/sys v0.0.0-20211103235746-7861aae1554b // indirect | ||||
| 	golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect | ||||
| 	golang.org/x/text v0.3.7 // indirect | ||||
| 	golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba // indirect | ||||
| 	google.golang.org/genproto v0.0.0-20210617175327-b9e0b3197ced // indirect | ||||
| 	google.golang.org/protobuf v1.26.0 // indirect | ||||
| 	gopkg.in/errgo.v1 v1.0.1 // indirect | ||||
| 	gopkg.in/macaroon-bakery.v2 v2.0.1 // indirect | ||||
| 	gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect | ||||
| 	gopkg.in/yaml.v2 v2.4.0 // indirect | ||||
| 	gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect | ||||
| 	sigs.k8s.io/yaml v1.2.0 // indirect | ||||
| ) | ||||
|  | ||||
| @ -173,7 +173,10 @@ func NewLNDclient(lndOptions LNDoptions) (LNDclient, error) { | ||||
| 	if err := mac.UnmarshalBinary(macaroonData); err != nil { | ||||
| 		return result, err | ||||
| 	} | ||||
| 	macCred := macaroons.NewMacaroonCredential(mac) | ||||
| 	macCred, err := macaroons.NewMacaroonCredential(mac) | ||||
| 	if err != nil { | ||||
| 		return result, err | ||||
| 	} | ||||
| 	opts = append(opts, grpc.WithPerRPCCredentials(macCred)) | ||||
| 
 | ||||
| 	conn, err := grpc.Dial(lndOptions.Address, opts...) | ||||
|  | ||||
							
								
								
									
										24
									
								
								lnme.go
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								lnme.go
									
									
									
									
									
								
							| @ -2,6 +2,7 @@ package main | ||||
| 
 | ||||
| import ( | ||||
| 	"crypto/sha256" | ||||
| 	"embed" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"log" | ||||
| @ -10,7 +11,6 @@ import ( | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	rice "github.com/GeertJohan/go.rice" | ||||
| 	"github.com/bumi/lnme/ln" | ||||
| 	"github.com/bumi/lnme/lnurl" | ||||
| 	"github.com/didip/tollbooth/v6" | ||||
| @ -47,6 +47,12 @@ type Invoice struct { | ||||
| 	Memo  string `json:"memo"` | ||||
| } | ||||
| 
 | ||||
| //go:embed files/assets | ||||
| var embeddedAssets embed.FS | ||||
| 
 | ||||
| //go:embed files/root/index.html | ||||
| var indexPage string | ||||
| 
 | ||||
| func main() { | ||||
| 	cfg := LoadConfig() | ||||
| 
 | ||||
| @ -57,19 +63,13 @@ func main() { | ||||
| 		e.Static("/", cfg.String("static-path")) | ||||
| 		// Serve default page | ||||
| 	} else if !cfg.Bool("disable-website") { | ||||
| 		rootBox := rice.MustFindBox("files/root") | ||||
| 		indexPage, err := rootBox.String("index.html") | ||||
| 		if err == nil { | ||||
| 			stdOutLogger.Print("Running embedded page") | ||||
| 			e.GET("/", func(c echo.Context) error { | ||||
| 				return c.HTML(200, indexPage) | ||||
| 			}) | ||||
| 		} else { | ||||
| 			stdOutLogger.Printf("Failed to run embedded website: %s", err) | ||||
| 		} | ||||
| 		stdOutLogger.Print("Running embedded page") | ||||
| 		e.GET("/", func(c echo.Context) error { | ||||
| 			return c.HTML(200, string(indexPage)) | ||||
| 		}) | ||||
| 	} | ||||
| 	// Embed static files and serve those on /lnme (e.g. /lnme/lnme.js) | ||||
| 	assetHandler := http.FileServer(rice.MustFindBox("files/assets").HTTPBox()) | ||||
| 	assetHandler := http.FileServer(http.FS(embeddedAssets)) | ||||
| 	e.GET("/lnme/*", echo.WrapHandler(http.StripPrefix("/lnme/", assetHandler))) | ||||
| 
 | ||||
| 	// CORS settings | ||||
|  | ||||
							
								
								
									
										104
									
								
								rice-box.go
									
									
									
									
									
								
							
							
						
						
									
										104
									
								
								rice-box.go
									
									
									
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user