Compare commits
1182 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
70a6e3b4c4 | ||
|
|
2fcbae7504 | ||
|
|
9f50d12b86 | ||
|
|
5a10e94e91 | ||
|
|
c545f02b04 | ||
|
|
a444532cef | ||
|
|
615404fca7 | ||
|
|
edf7533b39 | ||
|
|
209646a876 | ||
|
|
f9e025087e | ||
|
|
c50d83b7b8 | ||
|
|
c53e2dd808 | ||
|
|
847eeb27b9 | ||
|
|
88ad6f201b | ||
|
|
e353eda9ce | ||
|
|
0450edf79d | ||
|
|
ba2b76663e | ||
|
|
ad1e82630f | ||
|
|
7e3e6766ac | ||
|
|
9fe677e907 | ||
|
|
258870c47c | ||
|
|
537c86ad55 | ||
|
|
78829a38c4 | ||
|
|
e5da3b2c88 | ||
|
|
3bf5b000c8 | ||
|
|
7af397cb58 | ||
|
|
6f8b6bdc01 | ||
|
|
b44b49aa2c | ||
|
|
6e03939bbb | ||
|
|
31530ef588 | ||
|
|
1a1e5b343c | ||
|
|
83d829ba29 | ||
|
|
880d9a7053 | ||
|
|
63786821bb | ||
|
|
97b8abebcb | ||
|
|
e091b30421 | ||
|
|
d5c66cbcc4 | ||
|
|
240cda561a | ||
|
|
2536559731 | ||
|
|
0a72dcd676 | ||
|
|
3bd29ae5a4 | ||
|
|
2deb883c16 | ||
|
|
4cdadcf667 | ||
|
|
a1a6b8a66e | ||
|
|
2be4549094 | ||
|
|
2b0ad6ba33 | ||
|
|
68cfe745c1 | ||
|
|
829f564f33 | ||
|
|
15b3e5f98b | ||
|
|
2ff29f469e | ||
|
|
7e0fa145cc | ||
|
|
3e49a2063b | ||
|
|
af3d32e5c7 | ||
|
|
a42d187142 | ||
|
|
152065ce86 | ||
|
|
62013a05bd | ||
|
|
cb53f9e9c6 | ||
|
|
4c95198375 | ||
|
|
819cf8d2f2 | ||
|
|
2ac3c8516c | ||
|
|
da970dad91 | ||
|
|
6932fd11c4 | ||
|
|
2479f8bd93 | ||
|
|
3663b667e9 | ||
|
|
67b4055898 | ||
|
|
b022c7ec1f | ||
|
|
0e633dc6c2 | ||
|
|
ecbda1cdd8 | ||
|
|
d1fff34e73 | ||
|
|
b0a7f2c9f0 | ||
|
|
ca60e0e18e | ||
|
|
e4f5214e3e | ||
|
|
9fe3dae48f | ||
|
|
c193cc6bdb | ||
|
|
5b4329c33b | ||
|
|
cdb319d61f | ||
|
|
880417c8b2 | ||
|
|
329c7a8538 | ||
|
|
7fb46d125e | ||
|
|
54e2b1b669 | ||
|
|
47787d68b0 | ||
|
|
2752963de5 | ||
|
|
89a3d8f40c | ||
|
|
09f1c1d83a | ||
|
|
fe202ff85e | ||
|
|
f9a4e97fc4 | ||
|
|
e38ede5eef | ||
|
|
c2dad64194 | ||
|
|
9dc5ca2612 | ||
|
|
6bdd29295a | ||
|
|
f1905f9ec6 | ||
|
|
c6019f1e13 | ||
|
|
6100430ba4 | ||
|
|
14f086fe5b | ||
|
|
e6f2c46ad0 | ||
|
|
187042c830 | ||
|
|
86ab6cdd21 | ||
|
|
1b5b46a993 | ||
|
|
6dfd19bec6 | ||
|
|
4f5d44d18f | ||
|
|
f3a319e7f9 | ||
|
|
9aa2d310f8 | ||
|
|
77f61eb386 | ||
|
|
c98570e60d | ||
|
|
ea6c63f043 | ||
|
|
9ac85f25a5 | ||
|
|
c09f6513b5 | ||
|
|
4053153be3 | ||
|
|
6b02777496 | ||
|
|
3a102e9588 | ||
|
|
f97850780f | ||
|
|
b4586c1d5d | ||
|
|
732d676891 | ||
|
|
6666e3fed2 | ||
|
|
2ae3621bfd | ||
|
|
db361e25e1 | ||
|
|
4f73dc89fc | ||
|
|
28a4597eea | ||
|
|
48c3cf19cf | ||
|
|
3b04576e15 | ||
|
|
f60ad08740 | ||
|
|
0df726703e | ||
|
|
42aed95a48 | ||
|
|
279a93d676 | ||
|
|
6283e18276 | ||
|
|
f7b637f191 | ||
|
|
90c5813121 | ||
|
|
1538884868 | ||
|
|
fccaa7b06f | ||
|
|
1f4de8a4bd | ||
|
|
ad675de966 | ||
|
|
2c674f8c69 | ||
|
|
bb69f874d8 | ||
|
|
02edbeaf8e | ||
|
|
7df47fa680 | ||
|
|
f5c2648044 | ||
|
|
8347685126 | ||
|
|
61405c1cbe | ||
|
|
9ca208c1ca | ||
|
|
78ebed8e8d | ||
|
|
e1b10ce9d7 | ||
|
|
f23d0b0069 | ||
|
|
d61050beae | ||
|
|
3a83d3c12c | ||
|
|
dba64bf230 | ||
|
|
a7670a0fb4 | ||
|
|
f989152921 | ||
|
|
dfff69d3f5 | ||
|
|
d7e603a3a4 | ||
|
|
310dea5ce6 | ||
|
|
68ff5bd71f | ||
|
|
d2950ee293 | ||
|
|
f05723a629 | ||
|
|
10b8315917 | ||
|
|
bbecf79956 | ||
|
|
659ebb5b7c | ||
|
|
9bb621f239 | ||
|
|
89fa3cab14 | ||
|
|
371cfe0c10 | ||
|
|
396a48644b | ||
|
|
9e7b4a25c2 | ||
|
|
4c15cdf2d4 | ||
|
|
5557e224bb | ||
|
|
3c63fc3697 | ||
|
|
ae7159b52e | ||
|
|
1e08b52574 | ||
|
|
a5540e58ed | ||
|
|
cff45bc1db | ||
|
|
650e831dc1 | ||
|
|
56446ba78c | ||
|
|
aec5e1ed8a | ||
|
|
f23a2b254d | ||
|
|
8a62590c00 | ||
|
|
b4373ce274 | ||
|
|
fd15c1d9db | ||
|
|
68472256a0 | ||
|
|
80ebc3aa70 | ||
|
|
5a5e2064b4 | ||
|
|
96a5f1dead | ||
|
|
272fb42882 | ||
|
|
df229c21ec | ||
|
|
d1d3389a54 | ||
|
|
5d61baf544 | ||
|
|
d9babd66ca | ||
|
|
7b0f9e1404 | ||
|
|
24b5213a20 | ||
|
|
72f7a3afb4 | ||
|
|
0a1547b35f | ||
|
|
2fca39ca92 | ||
|
|
a733148686 | ||
|
|
1cd0faf93c | ||
|
|
632bebc827 | ||
|
|
0f19f7199f | ||
|
|
5e2fde45a2 | ||
|
|
ec8fea5ecf | ||
|
|
bcc01c95ad | ||
|
|
60973673be | ||
|
|
3570bcd7fe | ||
|
|
df71ca2d91 | ||
|
|
489fc50bfd | ||
|
|
a35ec6641e | ||
|
|
8f81178fde | ||
|
|
40f5ea5fe2 | ||
|
|
27b7e0a43c | ||
|
|
a4a56bb6da | ||
|
|
9b30caa09c | ||
|
|
f278e00770 | ||
|
|
4e8aa5e5c5 | ||
|
|
0ce063e8f0 | ||
|
|
bff2102d42 | ||
|
|
0c0e234ec2 | ||
|
|
51214ff47c | ||
|
|
1ef9d11738 | ||
|
|
885de9496f | ||
|
|
723eba8f84 | ||
|
|
202f6d4a8f | ||
|
|
b53d970148 | ||
|
|
c406e70863 | ||
|
|
16db1122bf | ||
|
|
143fe21d54 | ||
|
|
08d51c5fa6 | ||
|
|
2f1309c06e | ||
|
|
8e36ae8531 | ||
|
|
01f545960e | ||
|
|
e00698217d | ||
|
|
4b3dafa71a | ||
|
|
a9ab300997 | ||
|
|
0f2316287e | ||
|
|
62c1092645 | ||
|
|
73e2e999e6 | ||
|
|
d4548e36da | ||
|
|
6737d7b8d8 | ||
|
|
976eebe892 | ||
|
|
fe8ee001e3 | ||
|
|
92018fc41a | ||
|
|
aa55e7c525 | ||
|
|
2a9cf197cf | ||
|
|
6b5841efdc | ||
|
|
5ea2e55848 | ||
|
|
bac24e8d2b | ||
|
|
eb918756cf | ||
|
|
9308ca46a5 | ||
|
|
9b468dd133 | ||
|
|
33cb3de205 | ||
|
|
d1556ed2f5 | ||
|
|
9f865a5240 | ||
|
|
f2a1dc57d7 | ||
|
|
21b68be6b0 | ||
|
|
4d3ba10516 | ||
|
|
cd16b249d2 | ||
|
|
d42292a46d | ||
|
|
7a7da002c6 | ||
|
|
a53860c959 | ||
|
|
b2d8161e48 | ||
|
|
bd8001dbdb | ||
|
|
354b8e6d81 | ||
|
|
2138b82c8f | ||
|
|
d3f3a4e6ed | ||
|
|
8fc5e63f5f | ||
|
|
b6a457777a | ||
|
|
bb9e077478 | ||
|
|
52b8c8372a | ||
|
|
edc36109ca | ||
|
|
9a46ddd0f2 | ||
|
|
1d83d73685 | ||
|
|
74ec0cb466 | ||
|
|
f8949bb7ee | ||
|
|
ebe005ae41 | ||
|
|
e06b6704ee | ||
|
|
7c22e4312a | ||
|
|
39c803e91f | ||
|
|
ad63bc6e2d | ||
|
|
b1f304bd81 | ||
|
|
81d7390a7d | ||
|
|
954aa8d663 | ||
|
|
c4d62d6d74 | ||
|
|
23813c1596 | ||
|
|
4da0691fab | ||
|
|
19a4d077d6 | ||
|
|
3472aa3a3b | ||
|
|
c58fbdff15 | ||
|
|
0e04f101ae | ||
|
|
891960997b | ||
|
|
6dc2c783b1 | ||
|
|
5fecdd6570 | ||
|
|
5d1a55b3b1 | ||
|
|
a5ee4d9460 | ||
|
|
a06b72c469 | ||
|
|
284ddef293 | ||
|
|
ccbcef3112 | ||
|
|
0dae254dd4 | ||
|
|
51aa8443a2 | ||
|
|
20364b34a9 | ||
|
|
5a1b11f594 | ||
|
|
c20d6972e6 | ||
|
|
33dcc077ff | ||
|
|
03cb105f45 | ||
|
|
01e0643dd2 | ||
|
|
cd0a73435c | ||
|
|
cbbb94e7b0 | ||
|
|
b7b1fe1b83 | ||
|
|
fc379bcb87 | ||
|
|
bb5636ca1a | ||
|
|
3c83736e0e | ||
|
|
9565e833cb | ||
|
|
0571ca0c40 | ||
|
|
1f38a87fcf | ||
|
|
b3ece8c4cc | ||
|
|
bf22e49f18 | ||
|
|
fde700b1ae | ||
|
|
7501bc2a4f | ||
|
|
3fd96b170f | ||
|
|
6560a108f1 | ||
|
|
fad08a54af | ||
|
|
cc658a9a9e | ||
|
|
f0e0b2cf11 | ||
|
|
283a1ad899 | ||
|
|
e2075eeea6 | ||
|
|
f502b9f1bb | ||
|
|
cec19acb95 | ||
|
|
2d1f4047a5 | ||
|
|
d0ed0686e1 | ||
|
|
99ca971a2b | ||
|
|
825cdbe8c6 | ||
|
|
6906424e01 | ||
|
|
f0577479f2 | ||
|
|
1caddfe78c | ||
|
|
44acbcc269 | ||
|
|
182b8e91b8 | ||
|
|
ff95b6301d | ||
|
|
c3238f3b3f | ||
|
|
5fef63b6b0 | ||
|
|
6c5769a32d | ||
|
|
b2200966c3 | ||
|
|
9c1d4a5bbf | ||
|
|
6e9b85a9c8 | ||
|
|
260dc480f1 | ||
|
|
67825b0740 | ||
|
|
ea76fd8a63 | ||
|
|
8d55c3f0ba | ||
|
|
4c06c65774 | ||
|
|
06e7aebe43 | ||
|
|
c5c14af07b | ||
|
|
53138dae86 | ||
|
|
b98bcfb307 | ||
|
|
68984cba53 | ||
|
|
6d38d64328 | ||
|
|
25e8c3df02 | ||
|
|
b3acf37d99 | ||
|
|
2d3128505d | ||
|
|
0aae273855 | ||
|
|
5169ae8f75 | ||
|
|
478fb9e00b | ||
|
|
2c7887b39e | ||
|
|
2f4b25b31e | ||
|
|
688ed586b4 | ||
|
|
876ec137f9 | ||
|
|
82bfb21c24 | ||
|
|
50ba88162a | ||
|
|
7222649ccf | ||
|
|
e0b7c58ea1 | ||
|
|
f9f23180e8 | ||
|
|
00e9a994bf | ||
|
|
5369a4d5ac | ||
|
|
10be1beaec | ||
|
|
42beb4278e | ||
|
|
da12521b3f | ||
|
|
e5143b81fb | ||
|
|
3b2245a702 | ||
|
|
9b75c020f3 | ||
|
|
7147ea6613 | ||
|
|
31c4fb7fbb | ||
|
|
7a0b2d3a25 | ||
|
|
56eb724094 | ||
|
|
c5fc2fc5ca | ||
|
|
109e3fbb87 | ||
|
|
c8accdb915 | ||
|
|
7f276daa58 | ||
|
|
9bc5766904 | ||
|
|
02cc2b11db | ||
|
|
8baf963f19 | ||
|
|
15f75362ee | ||
|
|
810e4c8290 | ||
|
|
92cee83794 | ||
|
|
a6de926c89 | ||
|
|
2b0aca3168 | ||
|
|
bbe148f026 | ||
|
|
96875d0205 | ||
|
|
9cd1e49321 | ||
|
|
684711c794 | ||
|
|
29f3b65fb4 | ||
|
|
0a73105640 | ||
|
|
0dc6e2ef95 | ||
|
|
6107d8b123 | ||
|
|
f7da465d6f | ||
|
|
3c5a83115d | ||
|
|
031489d66a | ||
|
|
7391d15601 | ||
|
|
0dd7cfb7fe | ||
|
|
34246d8d25 | ||
|
|
7591c3cb8b | ||
|
|
be0c18c5e2 | ||
|
|
6caa1b9460 | ||
|
|
f65dfd31f7 | ||
|
|
07e43b4cf9 | ||
|
|
b5410f7130 | ||
|
|
8d76d27ee2 | ||
|
|
ff088f61b2 | ||
|
|
23895ff91e | ||
|
|
882b50e266 | ||
|
|
0462a375a5 | ||
|
|
d766b25bc1 | ||
|
|
b61c66cdf3 | ||
|
|
e50ed907c9 | ||
|
|
d60236b2a9 | ||
|
|
97ebeec06a | ||
|
|
110b162acc | ||
|
|
20f3c1e291 | ||
|
|
4d968e3ba3 | ||
|
|
7e2c60be07 | ||
|
|
9911fa999e | ||
|
|
8cad0c32b3 | ||
|
|
f5faa0d0ca | ||
|
|
d2e81724ba | ||
|
|
e265d0d182 | ||
|
|
b595fe3216 | ||
|
|
867f34ac3c | ||
|
|
9e1f8c2d9d | ||
|
|
dd3cc12aad | ||
|
|
e687dd162e | ||
|
|
22a635a7f3 | ||
|
|
b2b2ced877 | ||
|
|
8d80b2eb63 | ||
|
|
592210e941 | ||
|
|
b944945fb2 | ||
|
|
ab402fa51e | ||
|
|
b85041e25e | ||
|
|
f8eae35674 | ||
|
|
c0a5e89091 | ||
|
|
4bedfc3439 | ||
|
|
831d7a561b | ||
|
|
b3701ebad3 | ||
|
|
110c1caa01 | ||
|
|
58ab26b58b | ||
|
|
4b90268ce3 | ||
|
|
bb3fb86964 | ||
|
|
b0e8eb43ba | ||
|
|
1c9134194f | ||
|
|
6c5ce5ab4a | ||
|
|
b00c0a9800 | ||
|
|
529aa0d62c | ||
|
|
c733e49ded | ||
|
|
f3242d0035 | ||
|
|
29e4963d18 | ||
|
|
10e3e343df | ||
|
|
7d4f4cea6b | ||
|
|
8783ba8cf1 | ||
|
|
18748e6dd6 | ||
|
|
4caa52c502 | ||
|
|
23fb1bd26e | ||
|
|
95917972ae | ||
|
|
ef72d5a246 | ||
|
|
2bee91b6cc | ||
|
|
8a88f829c5 | ||
|
|
70622e6a21 | ||
|
|
a387f05c42 | ||
|
|
bf791e8d11 | ||
|
|
6f78a5fc06 | ||
|
|
0f62469b99 | ||
|
|
9f96a7b74e | ||
|
|
88dced5b34 | ||
|
|
5a7ec36d7c | ||
|
|
dfce1f56e2 | ||
|
|
905259b822 | ||
|
|
358750769d | ||
|
|
8e464848e4 | ||
|
|
90ab0df17c | ||
|
|
82a2b8f219 | ||
|
|
8ed79b20ad | ||
|
|
6941e7ce0b | ||
|
|
1c26632a39 | ||
|
|
a8488307a1 | ||
|
|
0499d39aa4 | ||
|
|
49bf819211 | ||
|
|
35be274b44 | ||
|
|
f4d44ed6e9 | ||
|
|
4d2d811a9c | ||
|
|
f8d71a0bd0 | ||
|
|
18f5e6e029 | ||
|
|
bb5e60e5c0 | ||
|
|
5332d6f510 | ||
|
|
d6b19373c5 | ||
|
|
f147c5a0ae | ||
|
|
49193cbc29 | ||
|
|
6eed520521 | ||
|
|
542c43a3a6 | ||
|
|
b99667390c | ||
|
|
7fd3549b4b | ||
|
|
f997d847c3 | ||
|
|
3a05cf3a61 | ||
|
|
4ad0ae18c7 | ||
|
|
12b6758b51 | ||
|
|
ecf09d75cd | ||
|
|
1b44a9b704 | ||
|
|
9077cbfae8 | ||
|
|
846a052efb | ||
|
|
d5c765e7cc | ||
|
|
afa60a8891 | ||
|
|
3c4f44ed5a | ||
|
|
212828944a | ||
|
|
1980e4bc0c | ||
|
|
2c7a0c7f22 | ||
|
|
14cdf434a7 | ||
|
|
a86e25254f | ||
|
|
e06898a433 | ||
|
|
e25e8fde0d | ||
|
|
e5c80f2ba3 | ||
|
|
ab0f31ee0e | ||
|
|
a52add49ae | ||
|
|
4cea7deda6 | ||
|
|
a1a5e8f180 | ||
|
|
73505ab4fd | ||
|
|
7159d9577e | ||
|
|
94df868a5d | ||
|
|
5250e2c275 | ||
|
|
26fc8ec24b | ||
|
|
5f670096c5 | ||
|
|
89d2d2096b | ||
|
|
09b6dc6af3 | ||
|
|
07519d810e | ||
|
|
400bb3de2b | ||
|
|
a6e103c0eb | ||
|
|
e1799f4176 | ||
|
|
be65253bd7 | ||
|
|
f04530c032 | ||
|
|
d8a9cb5b40 | ||
|
|
ece211cd8e | ||
|
|
a44871f1ae | ||
|
|
a703e26324 | ||
|
|
7e648d296d | ||
|
|
f8cb3b60c6 | ||
|
|
4554f842fb | ||
|
|
f4d7a12488 | ||
|
|
9d0edbfa12 | ||
|
|
a073a5f7b3 | ||
|
|
08f7c0bb62 | ||
|
|
7c0e92dabf | ||
|
|
514b6812c0 | ||
|
|
c41a96a940 | ||
|
|
7f1893db16 | ||
|
|
68e61ccf78 | ||
|
|
384f4883b2 | ||
|
|
c176745bc3 | ||
|
|
e87ef5d0b0 | ||
|
|
f2a0f889f5 | ||
|
|
80f93152c7 | ||
|
|
92442b05ce | ||
|
|
36d0108e06 | ||
|
|
a0548fb688 | ||
|
|
141aefb76d | ||
|
|
81e3ab7d0d | ||
|
|
9e939eb68c | ||
|
|
fe08922f32 | ||
|
|
cac2c625e8 | ||
|
|
028ee4c6b1 | ||
|
|
fc0e82ceb9 | ||
|
|
30205e366a | ||
|
|
c0951fdaea | ||
|
|
cbed7ea0f1 | ||
|
|
ed82dbb2bb | ||
|
|
2366cd1dcb | ||
|
|
da15954703 | ||
|
|
7753d35627 | ||
|
|
ef490b56fa | ||
|
|
80bbcd0707 | ||
|
|
eb0108be40 | ||
|
|
c4f3e7bbee | ||
|
|
bb86a31287 | ||
|
|
e0e6d638ee | ||
|
|
585b1bd28e | ||
|
|
fad2f5d6d7 | ||
|
|
35d45701cf | ||
|
|
b98be1f820 | ||
|
|
dfff0d855a | ||
|
|
58b8753660 | ||
|
|
75a58ca9e3 | ||
|
|
05c99c6c7d | ||
|
|
980cab388a | ||
|
|
6d5a0a042d | ||
|
|
9e5e6c8fa1 | ||
|
|
d0543d6829 | ||
|
|
575785abf1 | ||
|
|
8f1f4c6089 | ||
|
|
4d547fdf4c | ||
|
|
f00163b4a5 | ||
|
|
a65e7db685 | ||
|
|
213af0a631 | ||
|
|
207c38ceab | ||
|
|
bbe4c6c8f1 | ||
|
|
81f662382d | ||
|
|
9694822def | ||
|
|
9dcfda6f66 | ||
|
|
b021fc2e1f | ||
|
|
4493419211 | ||
|
|
edc9b72101 | ||
|
|
3c29295678 | ||
|
|
1f139e8057 | ||
|
|
79df28b6ed | ||
|
|
febdf5a686 | ||
|
|
62192cd9ff | ||
|
|
f9e57b20aa | ||
|
|
f07963a3a0 | ||
|
|
40a7c82df4 | ||
|
|
518b62357a | ||
|
|
8582e453c3 | ||
|
|
32d278eae1 | ||
|
|
df53db8def | ||
|
|
fdc5836cab | ||
|
|
0ee725e7b8 | ||
|
|
8853ad8ebd | ||
|
|
ec7aa328b7 | ||
|
|
934a8ace42 | ||
|
|
3ee627466c | ||
|
|
9db78dc76b | ||
|
|
c9cb35a507 | ||
|
|
10bd88da37 | ||
|
|
61c059fc68 | ||
|
|
40f429d46b | ||
|
|
da8a307265 | ||
|
|
8e1b3d7588 | ||
|
|
eb1a28d10e | ||
|
|
88c90e0e73 | ||
|
|
107dd36242 | ||
|
|
c629f3b779 | ||
|
|
f02e4bbd39 | ||
|
|
36619b3f98 | ||
|
|
4dcbeaf193 | ||
|
|
d73cab1ebb | ||
|
|
7ed86a14a5 | ||
|
|
8726ba6f2f | ||
|
|
9bc5eea2ee | ||
|
|
40c1cb4322 | ||
|
|
4c038bc3bd | ||
|
|
bfa73fcf18 | ||
|
|
c470bb278e | ||
|
|
595a71100e | ||
|
|
6920b800bc | ||
|
|
32074e05c2 | ||
|
|
9760747959 | ||
|
|
3d6d2a81db | ||
|
|
8b07b2b47d | ||
|
|
f0c424f177 | ||
|
|
0e0f8e7dce | ||
|
|
ee2c3f2fcd | ||
|
|
9bc6fa7bdd | ||
|
|
b41a5e4664 | ||
|
|
903d0617ef | ||
|
|
4eff3f4c1c | ||
|
|
afafca2f26 | ||
|
|
d102e2f042 | ||
|
|
ae64ff21fa | ||
|
|
1539961223 | ||
|
|
688e1ec46f | ||
|
|
343b9c667e | ||
|
|
29a547a759 | ||
|
|
0682ba1311 | ||
|
|
1b7c038aff | ||
|
|
92b93ca74d | ||
|
|
f936fb0f23 | ||
|
|
6af4e80e78 | ||
|
|
a8ff18fb73 | ||
|
|
730d42cf91 | ||
|
|
b153b84953 | ||
|
|
8b3f0368a8 | ||
|
|
650de8f647 | ||
|
|
07451713fd | ||
|
|
ec8359199e | ||
|
|
8d8c131c14 | ||
|
|
ed98cf4455 | ||
|
|
16bb5c5bae | ||
|
|
463410a772 | ||
|
|
daa889dc2a | ||
|
|
dcf0e554b4 | ||
|
|
a092054f86 | ||
|
|
e3b7d57868 | ||
|
|
82803987b3 | ||
|
|
3721c651d6 | ||
|
|
4df7243b4d | ||
|
|
915569e49f | ||
|
|
425ca5880f | ||
|
|
c7eb720dd5 | ||
|
|
384a0a9038 | ||
|
|
5b82a9a6ae | ||
|
|
c6d45bfa04 | ||
|
|
6cc3583205 | ||
|
|
360cff9a02 | ||
|
|
1585bc3a90 | ||
|
|
478b4c26b2 | ||
|
|
5dc207409b | ||
|
|
069be073e0 | ||
|
|
57a21629fe | ||
|
|
9e534b4324 | ||
|
|
d321c09ba0 | ||
|
|
bc3699ba67 | ||
|
|
3c98599e60 | ||
|
|
81a17317e1 | ||
|
|
54bd6eedef | ||
|
|
91d33b513a | ||
|
|
97414993dc | ||
|
|
97a18ecbf8 | ||
|
|
65a37e2509 | ||
|
|
611da529bf | ||
|
|
33fd9d2ffc | ||
|
|
caf31976c3 | ||
|
|
2f00fe98e0 | ||
|
|
0eaf203419 | ||
|
|
ecddf1e599 | ||
|
|
d09338b2e5 | ||
|
|
8dfd554f58 | ||
|
|
d7b6e47b5a | ||
|
|
29df796a99 | ||
|
|
ce0f217935 | ||
|
|
84d79fd41b | ||
|
|
baf3cbe5c7 | ||
|
|
d9ba5a29b4 | ||
|
|
1866e0fd73 | ||
|
|
aa16f1ab28 | ||
|
|
3bf838f800 | ||
|
|
c2ba4399bc | ||
|
|
ddc35d58bc | ||
|
|
216a0ab9cb | ||
|
|
c6bed37ff2 | ||
|
|
53adb9582b | ||
|
|
40f2765684 | ||
|
|
64fe7dbddc | ||
|
|
4a429e8c6f | ||
|
|
b0ce3e1102 | ||
|
|
616494e3c4 | ||
|
|
5b133ea587 | ||
|
|
33b01ba992 | ||
|
|
fb7f2ff60c | ||
|
|
4d9072c36d | ||
|
|
7fb8b69624 | ||
|
|
1364529cd8 | ||
|
|
80323309e6 | ||
|
|
11e36a3d78 | ||
|
|
989ca7ab9c | ||
|
|
eff6cb9d32 | ||
|
|
8083d0a1d1 | ||
|
|
e6f6568b91 | ||
|
|
7a732e9c4a | ||
|
|
dade557853 | ||
|
|
b9777f975d | ||
|
|
40715684e1 | ||
|
|
88794fee09 | ||
|
|
7574612a68 | ||
|
|
71d967082c | ||
|
|
d60a4e6430 | ||
|
|
b2c7a3e6ea | ||
|
|
e0bb3b82b0 | ||
|
|
bff1bc4ab2 | ||
|
|
f027bc36dd | ||
|
|
4f9005fbce | ||
|
|
b1b0fe8151 | ||
|
|
4b7fffe0c7 | ||
|
|
2cd474b809 | ||
|
|
51d09765bd | ||
|
|
a7701414d3 | ||
|
|
365e990740 | ||
|
|
776fdbeeb1 | ||
|
|
aac6173d81 | ||
|
|
51b700209b | ||
|
|
92d9d840bc | ||
|
|
b05e633dbb | ||
|
|
72ca972f0b | ||
|
|
ece80920ee | ||
|
|
4ff671f50f | ||
|
|
51b97527f6 | ||
|
|
3c2c742607 | ||
|
|
e88f4a5e49 | ||
|
|
dcb9060b35 | ||
|
|
c7219c5b47 | ||
|
|
5fec2aa642 | ||
|
|
a3669f5101 | ||
|
|
f90a038fa0 | ||
|
|
420ae328b1 | ||
|
|
9fca47533b | ||
|
|
5ce5dab872 | ||
|
|
aaae850790 | ||
|
|
7d8bcaf0d1 | ||
|
|
58903f8453 | ||
|
|
c79724d5cb | ||
|
|
0aee07f932 | ||
|
|
d417a4f231 | ||
|
|
01faebc02f | ||
|
|
cd47c95271 | ||
|
|
26eacfdbcb | ||
|
|
d8bccf7253 | ||
|
|
a86252dde1 | ||
|
|
9cfcbc943c | ||
|
|
e26733a869 | ||
|
|
79e9602df2 | ||
|
|
0c5d47621c | ||
|
|
4b6ae57607 | ||
|
|
fba469105c | ||
|
|
e6079ad7a3 | ||
|
|
d703473f51 | ||
|
|
4b192beed0 | ||
|
|
cdccc20239 | ||
|
|
5ad43e3f60 | ||
|
|
ac8a09068e | ||
|
|
8a916b0d5c | ||
|
|
84ab8f7c67 | ||
|
|
314a7ac400 | ||
|
|
2125614781 | ||
|
|
ad35efa4d8 | ||
|
|
77280a409a | ||
|
|
4f522d5e40 | ||
|
|
5a006a7d1a | ||
|
|
6004dd8154 | ||
|
|
8f89f0f058 | ||
|
|
206103eacd | ||
|
|
742b7bd05c | ||
|
|
45ecc3de02 | ||
|
|
13e8fcfac6 | ||
|
|
0259d3163e | ||
|
|
e7c297bf4e | ||
|
|
27c4471181 | ||
|
|
d5d6a6a7da | ||
|
|
cfca83421a | ||
|
|
9c5f0ac7a2 | ||
|
|
b9ffc73015 | ||
|
|
04c25883ef | ||
|
|
253c9757ce | ||
|
|
192a953c43 | ||
|
|
c71895ab97 | ||
|
|
2988683a7f | ||
|
|
e61e6fe355 | ||
|
|
987ee0783f | ||
|
|
8c6a517b83 | ||
|
|
feff41bf14 | ||
|
|
22045e797a | ||
|
|
27f397e51a | ||
|
|
e97e851c60 | ||
|
|
5be1a33c0b | ||
|
|
56c5c5fee2 | ||
|
|
64505689aa | ||
|
|
f6aba78edc | ||
|
|
0d4e27fd30 | ||
|
|
f49cc878d4 | ||
|
|
e47d54d541 | ||
|
|
8bd3b65b5a | ||
|
|
01899efd57 | ||
|
|
a9b1b99ad1 | ||
|
|
3902197a8a | ||
|
|
6fc066a34f | ||
|
|
e32df2fd0e | ||
|
|
b1f3eca3aa | ||
|
|
dc39a3ca58 | ||
|
|
6157c40704 | ||
|
|
0be7e85abc | ||
|
|
530ccc67d7 | ||
|
|
66f4379904 | ||
|
|
6f604c13fe | ||
|
|
52d2a6975e | ||
|
|
d71b64e934 | ||
|
|
bf26e45533 | ||
|
|
12b99504d0 | ||
|
|
f0d6bc774f | ||
|
|
1c03fab43c | ||
|
|
6ccf91304f | ||
|
|
df31247201 | ||
|
|
600bad52a5 | ||
|
|
44a36be775 | ||
|
|
5b0ee8247a | ||
|
|
8cc53e9932 | ||
|
|
4f7f1a7084 | ||
|
|
2bb1fb242e | ||
|
|
b985713d46 | ||
|
|
d73cbf6ad9 | ||
|
|
efec51f159 | ||
|
|
a1ee60451a | ||
|
|
ea4d5aba97 | ||
|
|
8c631b08bd | ||
|
|
fdf60970c5 | ||
|
|
2bce8ae481 | ||
|
|
6d157089e2 | ||
|
|
6e61c63cb1 | ||
|
|
af5e35edaf | ||
|
|
5eb1c0ce23 | ||
|
|
6f179a8910 | ||
|
|
ccadca3bfe | ||
|
|
174f149c99 | ||
|
|
4616ac49d0 | ||
|
|
35ce1e70a7 | ||
|
|
2b10b875fe | ||
|
|
593ea9f472 | ||
|
|
b1cb03a362 | ||
|
|
a879a5ad60 | ||
|
|
b0c5182248 | ||
|
|
835672dd18 | ||
|
|
ccd96f185b | ||
|
|
7fda5c2564 | ||
|
|
c297d090ee | ||
|
|
7fe6d235fd | ||
|
|
36bc50ecd1 | ||
|
|
3304966e84 | ||
|
|
23b2ed93a4 | ||
|
|
e44846d7a3 | ||
|
|
1804147354 | ||
|
|
25075792fe | ||
|
|
0eb2ed6487 | ||
|
|
fbc8b32c8e | ||
|
|
10a0f0bd9f | ||
|
|
f3f8c541be | ||
|
|
f8d0e6eb8f | ||
|
|
b8b0fa5df7 | ||
|
|
97ab5545cf | ||
|
|
7658df8cd8 | ||
|
|
356bf54bcc | ||
|
|
1d8e916857 | ||
|
|
0ec9fbfdf1 | ||
|
|
a7a63dabd0 | ||
|
|
165f329a60 | ||
|
|
34b61bc123 | ||
|
|
ea9abe6301 | ||
|
|
f48fb291c1 | ||
|
|
2a0638f3d1 | ||
|
|
dec2e42b9b | ||
|
|
e3f2e243ee | ||
|
|
230bdaeee2 | ||
|
|
b942a285ff | ||
|
|
1f9d6f0f63 | ||
|
|
8ad900f3f8 | ||
|
|
6a5984968c | ||
|
|
20352efb3e | ||
|
|
c70ada4176 | ||
|
|
79effbcace | ||
|
|
af72cf7237 | ||
|
|
03ede259b6 | ||
|
|
9fdd0bfffa | ||
|
|
44a7fed0bd | ||
|
|
7dded5254e | ||
|
|
27f2dfffe0 | ||
|
|
98a7a14b16 | ||
|
|
bba687c838 | ||
|
|
29f59edcb9 | ||
|
|
a249252f6c | ||
|
|
c0805e4949 | ||
|
|
6eda6df018 | ||
|
|
f1f2016cdb | ||
|
|
f6c59e0389 | ||
|
|
8d470c4320 | ||
|
|
68ffd757dc | ||
|
|
34ff92879d | ||
|
|
cd71ba8733 | ||
|
|
f2df1feb05 | ||
|
|
300001bfe9 | ||
|
|
78d21be008 | ||
|
|
f473efa239 | ||
|
|
b163200186 | ||
|
|
cfde4bfae5 | ||
|
|
527f61633d | ||
|
|
7a8269d7c7 | ||
|
|
604d8bcf2c | ||
|
|
8f2834ea65 | ||
|
|
9487cecd24 | ||
|
|
ec707c9c27 | ||
|
|
4a8d3a7552 | ||
|
|
1f55d7bc0e | ||
|
|
20bb6db9e0 | ||
|
|
de5e302755 | ||
|
|
01dfb11db0 | ||
|
|
db0485c6b7 | ||
|
|
68c6b90b28 | ||
|
|
6201905057 | ||
|
|
a780a1efa0 | ||
|
|
3e8920b9b8 | ||
|
|
bc0e50be63 | ||
|
|
026e65dbc8 | ||
|
|
af1250de34 | ||
|
|
025794e691 | ||
|
|
2cbb637b47 | ||
|
|
442d08ac58 | ||
|
|
9843f69a6a | ||
|
|
6b2dde90cd | ||
|
|
495dc89db8 | ||
|
|
d697725dd3 | ||
|
|
f3b2eaa836 | ||
|
|
7169d8d56a | ||
|
|
fdd0dcb2ef | ||
|
|
adbefbba5f | ||
|
|
f86b5dafc1 | ||
|
|
3384876be9 | ||
|
|
3b4f956665 | ||
|
|
d3d8c585b7 | ||
|
|
e3081ca74f | ||
|
|
6ee19000e0 | ||
|
|
82d5b745e8 | ||
|
|
1e2bbfd0bb | ||
|
|
49e0fb26c7 | ||
|
|
02af29dba2 | ||
|
|
fd0952ff02 | ||
|
|
cf7120961d | ||
|
|
18214dbbce | ||
|
|
d211d8c467 | ||
|
|
5ea9f8c1d0 | ||
|
|
daf3db0d12 | ||
|
|
26314767e5 | ||
|
|
f00766105a | ||
|
|
761e5ea9a8 | ||
|
|
1ae425ebc9 | ||
|
|
ab75f0a7b7 | ||
|
|
3233de82fb | ||
|
|
dc28dfe133 | ||
|
|
3621906edc | ||
|
|
9892e149cf | ||
|
|
f4f86ea842 | ||
|
|
27a454b5ca | ||
|
|
e19900d9bb | ||
|
|
08e8f5f8c6 | ||
|
|
d7432e011c | ||
|
|
52ccd05ea8 | ||
|
|
982465c134 | ||
|
|
ffd8020bd2 | ||
|
|
99bbd139c0 | ||
|
|
31f5c02a97 | ||
|
|
a76755aca4 | ||
|
|
e0f5f2592f | ||
|
|
a427d4c4fb | ||
|
|
5325512d2c | ||
|
|
310b0a3882 | ||
|
|
b12e08cc72 | ||
|
|
2da700dfe4 | ||
|
|
4f75f198c9 | ||
|
|
bf436a81e3 | ||
|
|
248251ba2a | ||
|
|
fc6c5f99eb | ||
|
|
c80f90dcb0 | ||
|
|
a6ee1be0ac | ||
|
|
cc829e5fe0 | ||
|
|
2e3b33bdd3 | ||
|
|
8fa6acaf3b | ||
|
|
3ad97343e2 | ||
|
|
f94a8582a2 | ||
|
|
e2ba268559 | ||
|
|
45511166cc | ||
|
|
e4fd37c5f3 | ||
|
|
c223abed8d | ||
|
|
93bcedb10c | ||
|
|
b7b21a711c | ||
|
|
2f82a91c85 | ||
|
|
9a79bb8ab9 | ||
|
|
a1fe23e4d3 | ||
|
|
ca5c5df3d0 | ||
|
|
3c6c7498e8 | ||
|
|
0838cd5a7f | ||
|
|
42795c5b2e | ||
|
|
719e5c1fe9 | ||
|
|
cde0756a54 | ||
|
|
55e5ff54db | ||
|
|
e095876af4 | ||
|
|
7023f9ee60 | ||
|
|
ef0afbf5e6 | ||
|
|
32cf928035 | ||
|
|
a5da75901f | ||
|
|
eb181b57cc | ||
|
|
db25da9346 | ||
|
|
0a4d0c617c | ||
|
|
56ce1cc3c5 | ||
|
|
3118e62f3a | ||
|
|
de6314587d | ||
|
|
ab603fc713 | ||
|
|
4280822ecf | ||
|
|
f06964cc99 | ||
|
|
f0503637f3 | ||
|
|
618d8dc85a | ||
|
|
aab999d8a0 | ||
|
|
6739abe861 | ||
|
|
7803f9fa70 | ||
|
|
c5d067d5cc | ||
|
|
a2561e0b23 | ||
|
|
240006529a | ||
|
|
41a4ce0d86 | ||
|
|
feebc6c9eb | ||
|
|
8c80fbcee9 | ||
|
|
fc34608f4c | ||
|
|
5fea4dac3d | ||
|
|
acebd44681 | ||
|
|
3611522879 | ||
|
|
fba0aea6ca | ||
|
|
b5bf43bb0f | ||
|
|
574e9b47e6 | ||
|
|
b9feed7dd8 | ||
|
|
03b958e1c2 | ||
|
|
163e5ddf01 | ||
|
|
3edc722e42 | ||
|
|
8bc700651b | ||
|
|
9e17632599 | ||
|
|
5d32b5fbca | ||
|
|
6b5eefbe67 | ||
|
|
eeb5ffea99 | ||
|
|
df2ede750a | ||
|
|
094e53eae3 | ||
|
|
c59abe91a1 | ||
|
|
811292db26 | ||
|
|
312670d7b9 | ||
|
|
0607cfb14e | ||
|
|
8d3914fa03 | ||
|
|
ce06b5eb23 | ||
|
|
a9f78512fc | ||
|
|
41fb29e11f | ||
|
|
7efe694d59 | ||
|
|
2002d6eaa0 | ||
|
|
c27b7c76e6 | ||
|
|
47a70554d6 | ||
|
|
1dbba51afd | ||
|
|
4977130903 | ||
|
|
75c9ced91b | ||
|
|
8e6ff8b516 | ||
|
|
6ad1b99584 | ||
|
|
760516339f | ||
|
|
3138a6d44f | ||
|
|
4a004cda8b | ||
|
|
00457188e5 | ||
|
|
f608a237bd | ||
|
|
852d7ac066 | ||
|
|
8b11dcecaf | ||
|
|
8c72475ecf | ||
|
|
3019dd71cb | ||
|
|
b66359554c | ||
|
|
18ef1d2d46 | ||
|
|
5d031d9638 | ||
|
|
3c64f6618d | ||
|
|
1b5e6fe7a8 | ||
|
|
7360cec929 | ||
|
|
ec7bca1991 | ||
|
|
ff146ac8c8 | ||
|
|
dae55e751e | ||
|
|
3bbeb2b3c1 | ||
|
|
6edf171807 | ||
|
|
267fd29d02 | ||
|
|
1e426ba5d1 | ||
|
|
78099511d2 | ||
|
|
f9636d30ee | ||
|
|
2c1a240973 | ||
|
|
4f27a2068a | ||
|
|
733e2e25b0 | ||
|
|
3c1296ba01 | ||
|
|
1622d3777f | ||
|
|
0f26b807d1 | ||
|
|
26a74f120b | ||
|
|
3388a4db46 | ||
|
|
9d4bbcb0f3 | ||
|
|
12a59afa07 | ||
|
|
d5a7f395ac | ||
|
|
50b7b37941 | ||
|
|
7fd70d15ab | ||
|
|
41aa4b91a7 | ||
|
|
7979dfb36d | ||
|
|
cc237c141a | ||
|
|
38bd2853b9 | ||
|
|
455e5b5e61 | ||
|
|
400471537e | ||
|
|
4be6537c69 | ||
|
|
9d4ebdf280 | ||
|
|
f280b8e6cc | ||
|
|
7528225a72 | ||
|
|
627fa3b629 | ||
|
|
1d33642f7b | ||
|
|
fc0c946afc | ||
|
|
face696853 | ||
|
|
b3eb1445d6 | ||
|
|
de191c7cc3 | ||
|
|
9ac1b80832 | ||
|
|
475e426012 | ||
|
|
dace44ef16 | ||
|
|
f48e52b0bb | ||
|
|
08351e86ba | ||
|
|
8529c641cd | ||
|
|
0375184ebc | ||
|
|
3ff6a88d8e |
@ -2,7 +2,8 @@ version: 2
|
||||
jobs:
|
||||
cansetup:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
enabled: true
|
||||
image: ubuntu-2204:current
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
@ -11,62 +12,19 @@ jobs:
|
||||
sudo ./test-install.sh
|
||||
# Define in CircleCi Project Variables: $DOCKERHUB_REPO, $DOCKERHUB_USER, $DOCKERHUB_PASS
|
||||
# Publish jobs require those variables
|
||||
amd64:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
docker:
|
||||
docker:
|
||||
- image: cimg/base:stable
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
cd docker-compose-generator
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_REPO:latest-amd64 -f linuxamd64.Dockerfile .
|
||||
sudo docker push $DOCKERHUB_REPO:latest-amd64
|
||||
|
||||
arm32v7:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
#
|
||||
cd docker-compose-generator
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_REPO:latest-arm32v7 -f linuxarm32v7.Dockerfile .
|
||||
sudo docker push $DOCKERHUB_REPO:latest-arm32v7
|
||||
arm64v8:
|
||||
machine:
|
||||
docker_layer_caching: true
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: |
|
||||
sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
#
|
||||
cd docker-compose-generator
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
sudo docker build --pull -t $DOCKERHUB_REPO:latest-arm64v8 -f linuxarm64v8.Dockerfile .
|
||||
sudo docker push $DOCKERHUB_REPO:latest-arm64v8
|
||||
multiarch:
|
||||
machine:
|
||||
enabled: true
|
||||
image: circleci/classic:201808-01
|
||||
steps:
|
||||
- run:
|
||||
command: |
|
||||
# Turn on Experimental features
|
||||
sudo mkdir $HOME/.docker
|
||||
sudo sh -c 'echo "{ \"experimental\": \"enabled\" }" >> $HOME/.docker/config.json'
|
||||
#
|
||||
sudo docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
#
|
||||
sudo docker manifest create --amend $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-amd64 $DOCKERHUB_REPO:latest-arm32v7 $DOCKERHUB_REPO:latest-arm64v8
|
||||
sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-amd64 --os linux --arch amd64
|
||||
sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-arm32v7 --os linux --arch arm --variant v7
|
||||
sudo docker manifest annotate $DOCKERHUB_REPO:latest $DOCKERHUB_REPO:latest-arm64v8 --os linux --arch arm64 --variant v8
|
||||
sudo docker manifest push $DOCKERHUB_REPO:latest -p
|
||||
docker login --username=$DOCKERHUB_USER --password=$DOCKERHUB_PASS
|
||||
docker buildx create --use
|
||||
DOCKER_BUILDX_OPTS="--platform linux/amd64,linux/arm64,linux/arm/v7 --push"
|
||||
docker buildx build $DOCKER_BUILDX_OPTS -t $DOCKERHUB_REPO:latest .
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
@ -76,23 +34,7 @@ workflows:
|
||||
filters:
|
||||
branches:
|
||||
only: master
|
||||
- amd64:
|
||||
filters:
|
||||
branches:
|
||||
only: dcg-latest
|
||||
- arm32v7:
|
||||
filters:
|
||||
branches:
|
||||
only: dcg-latest
|
||||
- arm64v8:
|
||||
filters:
|
||||
branches:
|
||||
only: dcg-latest
|
||||
- multiarch:
|
||||
requires:
|
||||
- amd64
|
||||
- arm32v7
|
||||
- arm64v8
|
||||
- docker:
|
||||
filters:
|
||||
branches:
|
||||
only: dcg-latest
|
||||
|
||||
@ -2,7 +2,9 @@
|
||||
|
||||
set -e
|
||||
|
||||
systemctl stop docker.socket
|
||||
apt-get remove docker-ce
|
||||
rm -rf /usr/bin/docker
|
||||
rm -rf /usr/local/bin/docker-compose
|
||||
|
||||
cd ../..
|
||||
@ -24,4 +26,4 @@ timeout 1m bash .circleci/test-connectivity.sh
|
||||
|
||||
# Testing scripts are not crashing and installed
|
||||
btcpay-up.sh
|
||||
btcpay-down.sh
|
||||
btcpay-down.sh
|
||||
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@ -297,9 +297,11 @@ Production/.env
|
||||
.vscode/
|
||||
*docker-compose.generated.yml
|
||||
|
||||
Generated/acme.json
|
||||
Generated/traefik_logs/
|
||||
Generated/chatwoot_config.env
|
||||
Generated/error
|
||||
|
||||
|
||||
/Generated/save-images.sh
|
||||
|
||||
# DS_Store ignore
|
||||
.DS_Store
|
||||
|
||||
3
Generated/.gitignore
vendored
3
Generated/.gitignore
vendored
@ -1,5 +1,4 @@
|
||||
*.yml
|
||||
nginx.tmpl
|
||||
*.toml
|
||||
*.json
|
||||
pull-images.sh
|
||||
pull-images.sh
|
||||
|
||||
2
Generated/pihole/resolv.conf
Normal file
2
Generated/pihole/resolv.conf
Normal file
@ -0,0 +1,2 @@
|
||||
nameserver 127.0.0.1
|
||||
nameserver 8.8.8.8
|
||||
12
Generated/torrc-relay.tmpl
Normal file
12
Generated/torrc-relay.tmpl
Normal file
@ -0,0 +1,12 @@
|
||||
ORPort 9001
|
||||
DirPort 9030
|
||||
ExitPolicy reject *:*
|
||||
CookieAuthentication 1
|
||||
|
||||
Nickname {{ $.Env.TOR_RELAY_NICKNAME}}
|
||||
ContactInfo {{ $.Env.TOR_RELAY_EMAIL}}
|
||||
|
||||
|
||||
{{ if $.Env.ADDITIONAL_TORRC_CONFIG }}
|
||||
{{ $.Env.ADDITIONAL_TORRC_CONFIG}}
|
||||
{{ end }}
|
||||
@ -10,8 +10,8 @@
|
||||
|
||||
{{ range $reverseProxyContainer := where $ "Name" $containerOrReverseProxyName }}
|
||||
{{ range $containerNetwork := where $reverseProxyContainer.Networks "Name" $knownNetwork.Name }}
|
||||
{{ $port := coalesce $container.Env.HIDDENSERVICE_PORT "80" }}
|
||||
{{ $virtualPort := coalesce $container.Env.HIDDENSERVICE_VIRTUAL_PORT $port }}
|
||||
{{ $port := coalesceempty (index $container.Env (print $name "_HIDDENSERVICE_PORT")) $container.Env.HIDDENSERVICE_PORT "80" }}
|
||||
{{ $virtualPort := coalesceempty (index $container.Env (print $name "_HIDDENSERVICE_VIRTUAL_PORT")) $container.Env.HIDDENSERVICE_VIRTUAL_PORT $port }}
|
||||
{{ if ne $containerNetwork.IP "" }}
|
||||
{{ if $firstServicePort }}
|
||||
# For the hidden service {{ $name }}
|
||||
@ -27,4 +27,8 @@ HiddenServicePort {{ $virtualPort }} {{ $containerNetwork.IP }}:{{ $port }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if $.Env.ADDITIONAL_TORRC_CONFIG }}
|
||||
{{ $.Env.ADDITIONAL_TORRC_CONFIG}}
|
||||
{{ end }}
|
||||
2
Generated/zcash.conf
Normal file
2
Generated/zcash.conf
Normal file
@ -0,0 +1,2 @@
|
||||
rpcpassword=none
|
||||
rpcbind=zebra
|
||||
@ -18,9 +18,10 @@ The relevant environment variables are:
|
||||
|
||||
* `NBITCOIN_NETWORK`: The blockchain identifier used by NBitcoin (eg., `regtest`, `testnet`, `mainnet`)
|
||||
* `BTCPAY_HOST`: The external url used to access the NGINX server from internet. This domain name must point to this machine for Let's Encrypt to create your certificate. (typically with a CNAME or A record)
|
||||
* `BTCPAY_LIGHTNING_HOST`: The hostname announced for your node on the lightning network (by default, the `BTCPAY_HOST` will be used)
|
||||
* `BTCPAY_ROOTPATH`: The root path directory where BTCPay is accessed, more information below. (default: /)
|
||||
* `LETSENCRYPT_EMAIL`: The email Let's Encrypt will use to notify you about certificate expiration.
|
||||
* `ACME_CA_URI`: Let's encrypt API endpoint (`https://acme-staging.api.letsencrypt.org/directory` for a staging certificate, `https://acme-v01.api.letsencrypt.org/directory` for a production one)
|
||||
* `ACME_CA_URI`: Let's encrypt API endpoint (`staging` for a staging certificate, `production` for a production one)
|
||||
* `LIGHTNING_ALIAS`: Optional, if using the integrated lightning feature, customize the alias of your nodes
|
||||
* `BTCPAY_SSHKEYFILE`: Optional, SSH private key that BTCPay can use to connect to this VM's SSH server (You need to copy the key file on BTCPay's datadir volume)
|
||||
* `BTCPAY_SSHTRUSTEDFINGERPRINTS`: Optional, BTCPay will ensure that it is connecting to the expected SSH server by checking the host public's key against those fingerprints
|
||||
@ -45,7 +46,7 @@ docker-compose up \
|
||||
-e "NBITCOIN_NETWORK=mainnet" \
|
||||
-e "BTCPAY_HOST=btcpay.example.com" \
|
||||
-e "LETSENCRYPT_EMAIL=me@example.com" \
|
||||
-e "ACME_CA_URI=https://acme-v01.api.letsencrypt.org/directory"
|
||||
-e "ACME_CA_URI=production"
|
||||
```
|
||||
|
||||
For powershell:
|
||||
@ -55,7 +56,7 @@ docker-compose up `
|
||||
-e "NBITCOIN_NETWORK=mainnet" `
|
||||
-e "BTCPAY_HOST=btcpay.example.com" `
|
||||
-e "LETSENCRYPT_EMAIL=me@example.com" `
|
||||
-e "ACME_CA_URI=https://acme-v01.api.letsencrypt.org/directory"
|
||||
-e "ACME_CA_URI=production"
|
||||
```
|
||||
|
||||
See also [The guide for docker noobs](../README.md#fornoobs).
|
||||
|
||||
@ -1,207 +0,0 @@
|
||||
version: "3"
|
||||
# DO NOT USE THOSE ARE DEPRECATED
|
||||
services:
|
||||
nginx:
|
||||
restart: unless-stopped
|
||||
image: nginx:stable
|
||||
container_name: nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:ro"
|
||||
links:
|
||||
- btcpayserver
|
||||
nginx-gen:
|
||||
restart: unless-stopped
|
||||
image: btcpayserver/docker-gen:0.7.5
|
||||
container_name: nginx-gen
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/tmp/docker.sock:ro"
|
||||
- "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:ro"
|
||||
entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
|
||||
links:
|
||||
- nginx
|
||||
letsencrypt-nginx-proxy-companion:
|
||||
restart: unless-stopped
|
||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||
container_name: letsencrypt-nginx-proxy-companion
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:rw"
|
||||
environment:
|
||||
NGINX_DOCKER_GEN_CONTAINER: "nginx-gen"
|
||||
NGINX_PROXY_CONTAINER: "nginx"
|
||||
ACME_CA_URI: ${ACME_CA_URI:-https://acme-staging.api.letsencrypt.org/directory}
|
||||
links:
|
||||
- nginx-gen
|
||||
btcpayserver:
|
||||
restart: unless-stopped
|
||||
image: nicolasdorier/btcpayserver:1.0.2.106
|
||||
expose:
|
||||
- "49392"
|
||||
environment:
|
||||
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_BIND: 0.0.0.0:49392
|
||||
BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/
|
||||
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
|
||||
BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS}
|
||||
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
|
||||
VIRTUAL_NETWORK: nginx-proxy
|
||||
VIRTUAL_PORT: 49392
|
||||
VIRTUAL_HOST: ${BTCPAY_HOST}
|
||||
VIRTUAL_HOST_NAME: "btcpay"
|
||||
SSL_POLICY: Mozilla-Modern
|
||||
LETSENCRYPT_HOST: ${BTCPAY_HOST}
|
||||
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
|
||||
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
|
||||
BTCPAY_CHAINS: "ltc,btc"
|
||||
BTCPAY_LTCLIGHTNING: "type=clightning;server=unix://etc/clightning_litecoin/lightning-rpc"
|
||||
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
|
||||
BTCPAY_BTCLIGHTNING: "type=clightning;server=unix://etc/clightning_bitcoin/lightning-rpc"
|
||||
links:
|
||||
- nbxplorer
|
||||
- postgres
|
||||
- clightning_litecoin
|
||||
- clightning_bitcoin
|
||||
volumes:
|
||||
- "btcpay_datadir:/datadir"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
- "clightning_litecoin_datadir:/etc/clightning_litecoin"
|
||||
- "clightning_bitcoin_datadir:/etc/clightning_bitcoin"
|
||||
nbxplorer:
|
||||
restart: unless-stopped
|
||||
image: nicolasdorier/nbxplorer:1.0.2.31
|
||||
expose:
|
||||
- "32838"
|
||||
environment:
|
||||
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
NBXPLORER_BIND: 0.0.0.0:32838
|
||||
NBXPLORER_CHAINS: "ltc,btc"
|
||||
NBXPLORER_LTCRPCURL: http://litecoind:43782/
|
||||
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
|
||||
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
|
||||
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
|
||||
volumes:
|
||||
- "nbxplorer_datadir:/datadir"
|
||||
- "litecoin_datadir:/root/.litecoin"
|
||||
- "bitcoin_datadir:/root/.bitcoin"
|
||||
links:
|
||||
- litecoind
|
||||
- bitcoind
|
||||
postgres:
|
||||
restart: unless-stopped
|
||||
image: postgres:9.6.5
|
||||
volumes:
|
||||
- "postgres_datadir:/var/lib/postgresql/data"
|
||||
litecoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_litecoind
|
||||
image: nicolasdorier/docker-litecoin:0.16.3
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
zmqpubrawtx=tcp://0.0.0.0:28333
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
- "28332"
|
||||
- "28333"
|
||||
volumes:
|
||||
- "litecoin_datadir:/data"
|
||||
clightning_litecoin:
|
||||
image: nicolasdorier/clightning:v0.6.1
|
||||
container_name: btcpayserver_clightning_litecoin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
LIGHTNINGD_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
LIGHTNINGD_CHAIN: ltc
|
||||
LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/"
|
||||
LIGHTNINGD_OPT: |
|
||||
bitcoin-datadir=/etc/litecoin
|
||||
bitcoin-rpcconnect=litecoind
|
||||
bind-addr=0.0.0.0:9735
|
||||
announce-addr=${BTCPAY_HOST}:9736
|
||||
network=${NBITCOIN_NETWORK:-regtest}
|
||||
alias=${LIGHTNING_ALIAS}
|
||||
chain=ltc
|
||||
volumes:
|
||||
- "clightning_litecoin_datadir:/root/.lightning"
|
||||
- "litecoin_datadir:/etc/litecoin"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
ports:
|
||||
- "9736:9735"
|
||||
links:
|
||||
- nbxplorer
|
||||
- litecoind
|
||||
bitcoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoind
|
||||
image: nicolasdorier/docker-bitcoin:0.16.3
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
zmqpubrawtx=tcp://0.0.0.0:28333
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
- "28332"
|
||||
- "28333"
|
||||
volumes:
|
||||
- "bitcoin_datadir:/data"
|
||||
clightning_bitcoin:
|
||||
image: nicolasdorier/clightning:v0.6.1
|
||||
container_name: btcpayserver_clightning_bitcoin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
LIGHTNINGD_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
LIGHTNINGD_CHAIN: btc
|
||||
LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/"
|
||||
LIGHTNINGD_OPT: |
|
||||
bitcoin-datadir=/etc/bitcoin
|
||||
bitcoin-rpcconnect=bitcoind
|
||||
announce-addr=${BTCPAY_HOST}:9735
|
||||
bind-addr=0.0.0.0:9735
|
||||
network=${NBITCOIN_NETWORK:-regtest}
|
||||
alias=${LIGHTNING_ALIAS}
|
||||
chain=btc
|
||||
volumes:
|
||||
- "clightning_bitcoin_datadir:/root/.lightning"
|
||||
- "bitcoin_datadir:/etc/bitcoin"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
ports:
|
||||
- "9735:9735"
|
||||
links:
|
||||
- nbxplorer
|
||||
- bitcoind
|
||||
volumes:
|
||||
nginx_conf:
|
||||
nginx_vhost:
|
||||
nginx_html:
|
||||
nginx_certs:
|
||||
postgres_datadir:
|
||||
btcpay_datadir:
|
||||
nbxplorer_datadir:
|
||||
litecoin_datadir:
|
||||
clightning_litecoin_datadir:
|
||||
bitcoin_datadir:
|
||||
clightning_bitcoin_datadir:
|
||||
@ -1,149 +0,0 @@
|
||||
version: "3"
|
||||
# DO NOT USE THOSE ARE DEPRECATED
|
||||
services:
|
||||
nginx:
|
||||
restart: unless-stopped
|
||||
image: nginx:stable
|
||||
container_name: nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:ro"
|
||||
links:
|
||||
- btcpayserver
|
||||
nginx-gen:
|
||||
restart: unless-stopped
|
||||
image: btcpayserver/docker-gen:0.7.5
|
||||
container_name: nginx-gen
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/tmp/docker.sock:ro"
|
||||
- "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:ro"
|
||||
entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
|
||||
links:
|
||||
- nginx
|
||||
letsencrypt-nginx-proxy-companion:
|
||||
restart: unless-stopped
|
||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||
container_name: letsencrypt-nginx-proxy-companion
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:rw"
|
||||
environment:
|
||||
NGINX_DOCKER_GEN_CONTAINER: "nginx-gen"
|
||||
NGINX_PROXY_CONTAINER: "nginx"
|
||||
ACME_CA_URI: ${ACME_CA_URI:-https://acme-staging.api.letsencrypt.org/directory}
|
||||
links:
|
||||
- nginx-gen
|
||||
btcpayserver:
|
||||
restart: unless-stopped
|
||||
image: nicolasdorier/btcpayserver:1.0.2.106
|
||||
expose:
|
||||
- "49392"
|
||||
environment:
|
||||
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_BIND: 0.0.0.0:49392
|
||||
BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/
|
||||
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
|
||||
BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS}
|
||||
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
|
||||
VIRTUAL_NETWORK: nginx-proxy
|
||||
VIRTUAL_PORT: 49392
|
||||
VIRTUAL_HOST: ${BTCPAY_HOST}
|
||||
VIRTUAL_HOST_NAME: "btcpay"
|
||||
SSL_POLICY: Mozilla-Modern
|
||||
LETSENCRYPT_HOST: ${BTCPAY_HOST}
|
||||
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
|
||||
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
|
||||
BTCPAY_CHAINS: "ltc,btc"
|
||||
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
|
||||
links:
|
||||
- nbxplorer
|
||||
- postgres
|
||||
volumes:
|
||||
- "btcpay_datadir:/datadir"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
nbxplorer:
|
||||
restart: unless-stopped
|
||||
image: nicolasdorier/nbxplorer:1.0.2.31
|
||||
expose:
|
||||
- "32838"
|
||||
environment:
|
||||
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
NBXPLORER_BIND: 0.0.0.0:32838
|
||||
NBXPLORER_CHAINS: "ltc,btc"
|
||||
NBXPLORER_LTCRPCURL: http://litecoind:43782/
|
||||
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
|
||||
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
|
||||
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
|
||||
volumes:
|
||||
- "nbxplorer_datadir:/datadir"
|
||||
- "litecoin_datadir:/root/.litecoin"
|
||||
- "bitcoin_datadir:/root/.bitcoin"
|
||||
links:
|
||||
- litecoind
|
||||
- bitcoind
|
||||
postgres:
|
||||
restart: unless-stopped
|
||||
image: postgres:9.6.5
|
||||
volumes:
|
||||
- "postgres_datadir:/var/lib/postgresql/data"
|
||||
litecoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_litecoind
|
||||
image: nicolasdorier/docker-litecoin:0.16.3
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
zmqpubrawtx=tcp://0.0.0.0:28333
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
- "28332"
|
||||
- "28333"
|
||||
volumes:
|
||||
- "litecoin_datadir:/data"
|
||||
bitcoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoind
|
||||
image: nicolasdorier/docker-bitcoin:0.16.3
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
zmqpubrawtx=tcp://0.0.0.0:28333
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
- "28332"
|
||||
- "28333"
|
||||
volumes:
|
||||
- "bitcoin_datadir:/data"
|
||||
volumes:
|
||||
nginx_conf:
|
||||
nginx_vhost:
|
||||
nginx_html:
|
||||
nginx_certs:
|
||||
postgres_datadir:
|
||||
btcpay_datadir:
|
||||
nbxplorer_datadir:
|
||||
litecoin_datadir:
|
||||
bitcoin_datadir:
|
||||
@ -1,123 +0,0 @@
|
||||
version: "3"
|
||||
services:
|
||||
nginx:
|
||||
restart: unless-stopped
|
||||
image: nginx:stable
|
||||
container_name: nginx
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:ro"
|
||||
links:
|
||||
- btcpayserver
|
||||
nginx-gen:
|
||||
restart: unless-stopped
|
||||
image: btcpayserver/docker-gen:0.7.5
|
||||
container_name: nginx-gen
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/tmp/docker.sock:ro"
|
||||
- "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro"
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:ro"
|
||||
entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf
|
||||
links:
|
||||
- nginx
|
||||
letsencrypt-nginx-proxy-companion:
|
||||
restart: unless-stopped
|
||||
image: jrcs/letsencrypt-nginx-proxy-companion
|
||||
container_name: letsencrypt-nginx-proxy-companion
|
||||
volumes:
|
||||
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||
- "nginx_conf:/etc/nginx/conf.d"
|
||||
- "nginx_vhost:/etc/nginx/vhost.d"
|
||||
- "nginx_html:/usr/share/nginx/html"
|
||||
- "nginx_certs:/etc/nginx/certs:rw"
|
||||
environment:
|
||||
NGINX_DOCKER_GEN_CONTAINER: "nginx-gen"
|
||||
NGINX_PROXY_CONTAINER: "nginx"
|
||||
ACME_CA_URI: ${ACME_CA_URI:-https://acme-staging.api.letsencrypt.org/directory}
|
||||
links:
|
||||
- nginx-gen
|
||||
btcpayserver:
|
||||
restart: unless-stopped
|
||||
image: nicolasdorier/btcpayserver:1.0.2.106
|
||||
expose:
|
||||
- "49392"
|
||||
environment:
|
||||
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_BIND: 0.0.0.0:49392
|
||||
BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/
|
||||
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
|
||||
BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS}
|
||||
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
|
||||
VIRTUAL_NETWORK: nginx-proxy
|
||||
VIRTUAL_PORT: 49392
|
||||
VIRTUAL_HOST: ${BTCPAY_HOST}
|
||||
VIRTUAL_HOST_NAME: "btcpay"
|
||||
SSL_POLICY: Mozilla-Modern
|
||||
LETSENCRYPT_HOST: ${BTCPAY_HOST}
|
||||
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
|
||||
BTCPAY_CHAINS: "btc"
|
||||
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
|
||||
links:
|
||||
- nbxplorer
|
||||
- postgres
|
||||
volumes:
|
||||
- "btcpay_datadir:/datadir"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
nbxplorer:
|
||||
restart: unless-stopped
|
||||
image: nicolasdorier/nbxplorer:1.0.2.31
|
||||
expose:
|
||||
- "32838"
|
||||
environment:
|
||||
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
NBXPLORER_BIND: 0.0.0.0:32838
|
||||
NBXPLORER_CHAINS: "btc"
|
||||
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
|
||||
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
|
||||
volumes:
|
||||
- "nbxplorer_datadir:/datadir"
|
||||
- "bitcoin_datadir:/root/.bitcoin"
|
||||
links:
|
||||
- bitcoind
|
||||
postgres:
|
||||
restart: unless-stopped
|
||||
image: postgres:9.6.5
|
||||
volumes:
|
||||
- "postgres_datadir:/var/lib/postgresql/data"
|
||||
bitcoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoind
|
||||
image: nicolasdorier/docker-bitcoin:0.16.3
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
zmqpubrawtx=tcp://0.0.0.0:28333
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
- "28332"
|
||||
- "28333"
|
||||
volumes:
|
||||
- "bitcoin_datadir:/data"
|
||||
volumes:
|
||||
nginx_conf:
|
||||
nginx_vhost:
|
||||
nginx_html:
|
||||
nginx_certs:
|
||||
postgres_datadir:
|
||||
btcpay_datadir:
|
||||
nbxplorer_datadir:
|
||||
bitcoin_datadir:
|
||||
@ -1,4 +1,4 @@
|
||||
{{ $CurrentContainer := where $ "ID" .Docker.CurrentContainerID | first }}
|
||||
{{ $CurrentContainer := where $ "ID" .Docker.CurrentContainerID | first }}
|
||||
{{ define "upstream" }}
|
||||
{{ if .Address }}
|
||||
{{/* If we got the containers from swarm and this container's port is published to host, use host IP:PORT */}}
|
||||
@ -18,15 +18,18 @@
|
||||
server 127.0.0.1 down;
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ define "redirects" }}
|
||||
{{ if eq $.HostName "btcpay" }}
|
||||
{{ range $container := $.Containers }}
|
||||
{{ $serviceName := (index $container.Labels "com.docker.compose.service") }}
|
||||
{{ if (eq $serviceName "lnd_bitcoin") }}
|
||||
location /lnrpc {
|
||||
location ~* ^/(lnrpc|routerrpc|verrpc|walletrpc)\. {
|
||||
grpc_read_timeout 6000s;
|
||||
grpc_send_timeout 6000s;
|
||||
grpc_pass grpcs://lnd_bitcoin:10009;
|
||||
}
|
||||
location /lnd-rest/btc/ {
|
||||
@ -34,9 +37,29 @@
|
||||
proxy_pass http://lnd_bitcoin:8080/;
|
||||
}
|
||||
{{ end }}
|
||||
{{ if (eq $serviceName "lnd_bitcoin_rtl") }}
|
||||
{{ if $container.Env.REAL_IP_HEADER }}
|
||||
{{ range $containerNetwork := $container.Networks }}
|
||||
set_real_ip_from {{ $containerNetwork.IP }};
|
||||
{{ end }}
|
||||
{{ if (ne $container.Env.REAL_IP_HEADER "X-Real-IP") }}
|
||||
real_ip_header {{ $container.Env.REAL_IP_HEADER }};
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if (eq $serviceName "bitcoin_rtl") }}
|
||||
location /rtl/ {
|
||||
proxy_pass http://lnd_bitcoin_rtl:3000/rtl/;
|
||||
proxy_pass http://bitcoin_rtl:3000/rtl/;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "joinmarket") }}
|
||||
location /obwatch/ {
|
||||
proxy_pass http://joinmarket:62601/;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "bitcoin_thub") }}
|
||||
location /thub {
|
||||
proxy_pass http://bitcoin_thub:3000/thub;
|
||||
}
|
||||
{{ end }}
|
||||
{{ if (eq $serviceName "btcqbo") }}
|
||||
@ -56,6 +79,12 @@
|
||||
{{ if (eq $serviceName "clightning_bitcoin_charge") }}
|
||||
location /lightning-charge/btc/ {
|
||||
proxy_pass http://clightning_bitcoin_charge:9112/;
|
||||
}
|
||||
{{ end }}
|
||||
{{ if (eq $serviceName "clightning_bitcoin") }}
|
||||
location /clightning-rest/btc/ {
|
||||
rewrite ^/clightning-rest/btc/(.*) /$1 break;
|
||||
proxy_pass http://clightning_bitcoin:3010/;
|
||||
}
|
||||
{{ end }}
|
||||
{{ if (eq $serviceName "clightning_groestlcoin_spark") }}
|
||||
@ -68,6 +97,177 @@
|
||||
proxy_pass http://clightning_groestlcoin_charge:9112/;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "btctransmuter") }}
|
||||
location /btctransmuter/ {
|
||||
proxy_set_header Connection "";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $host:443;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-Port 443;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_pass http://btctransmuter;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "bluewallet_lndhub_app") }}
|
||||
location /bluewallet_lndhub_app/ {
|
||||
proxy_pass http://bluewallet_lndhub_app:3000/;
|
||||
sub_filter 'href="../' 'href="/bluewallet_lndhub_app/';
|
||||
sub_filter 'src="/' 'src="/bluewallet_lndhub_app/';
|
||||
sub_filter_once off;
|
||||
}
|
||||
{{ end }}
|
||||
{{ if (eq $serviceName "helipad") }}
|
||||
location /helipad/ {
|
||||
proxy_set_header Connection "";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $host:443;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-Port 443;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
|
||||
sub_filter_once off;
|
||||
sub_filter_types *;
|
||||
|
||||
|
||||
|
||||
sub_filter 'src="/' 'src="/helipad/';
|
||||
sub_filter 'href="/' 'href="/helipad/';
|
||||
sub_filter '/image' '/helipad/image';
|
||||
sub_filter '/pew' '/helipad/pew';
|
||||
sub_filter '/boosts' '/helipad/boosts';
|
||||
sub_filter '/api/v1/helipad' '/helipad/api/v1/helipad';
|
||||
proxy_pass http://helipad:2112/;
|
||||
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "lnd_lit") }}
|
||||
location /lit/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://lnd_lit:8080/;
|
||||
}
|
||||
|
||||
location ~* ^/(ln|loop|pool|lit)rpc\. {
|
||||
proxy_pass http://lnd_lit:8080;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "sphinxrelay") }}
|
||||
location /sphinxrelay/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://sphinxrelay:3300/;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "tallycoin_connect") }}
|
||||
location /tallycoin-connect/ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://tallycoin_connect:8123/;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "configurator") }}
|
||||
location /configurator/ {
|
||||
proxy_set_header Connection "";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $host:443;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-Port 443;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_pass http://configurator;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
{{ if (eq $serviceName "snapdrop") }}
|
||||
location /snapdrop/ {
|
||||
proxy_connect_timeout 300;
|
||||
proxy_set_header Connection "";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $host:443;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-Port 443;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_pass http://snapdrop:8080/;
|
||||
}
|
||||
location /snapdrop/server {
|
||||
proxy_connect_timeout 300;
|
||||
proxy_pass http://snapdrop:8080/server;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header X-Forwarded-for $remote_addr;
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ if (eq $serviceName "nnostr-relay") }}
|
||||
location /nostr {
|
||||
proxy_set_header Connection "";
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Host $host:443;
|
||||
proxy_set_header X-Forwarded-Server $host;
|
||||
proxy_set_header X-Forwarded-Port 443;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_pass http://nnostr-relay;
|
||||
}
|
||||
{{ end }}
|
||||
{{ if (eq $serviceName "mempool_web") }}
|
||||
# https://github.com/mempool/mempool/tree/master/production/nginx
|
||||
location /mempool/ {
|
||||
proxy_pass http://mempool_web:8080/;
|
||||
|
||||
# Bypass gzip, so that we can apply sub_filter, which does not work with proxy compressed response.
|
||||
# Details: https://www.nginx.com/resources/wiki/modules/substitutions/#directives
|
||||
proxy_set_header Accept-Encoding "";
|
||||
|
||||
sub_filter_types *;
|
||||
sub_filter_once off;
|
||||
|
||||
sub_filter 'base href="/' 'base href="/mempool/';
|
||||
sub_filter '/api/' '/mempool/api/';
|
||||
sub_filter '/resources' '/mempool/resources';
|
||||
|
||||
# mainnet API
|
||||
location /mempool/api/v1/ws {
|
||||
proxy_pass http://mempool_api:8999;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
}
|
||||
location /mempool/api/v1/ {
|
||||
proxy_pass http://mempool_api:8999/api/v1/;
|
||||
}
|
||||
location /mempool/api/ {
|
||||
proxy_pass http://mempool_api:8999/api/v1/;
|
||||
}
|
||||
}
|
||||
location ~ "^/[a-z]{2}/mempool" {
|
||||
rewrite ^/(.*)/mempool $scheme://$server_name/mempool/$1/ redirect;
|
||||
}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
@ -125,7 +325,9 @@ map $scheme $proxy_x_forwarded_ssl {
|
||||
https on;
|
||||
}
|
||||
|
||||
gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
gzip on;
|
||||
gzip_min_length 1000;
|
||||
gzip_types image/svg+xml text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
|
||||
log_format vhost '$host $remote_addr - $remote_user [$time_local] '
|
||||
'"$request" $status $body_bytes_sent '
|
||||
@ -157,8 +359,6 @@ proxy_buffers 4 256k;
|
||||
proxy_busy_buffers_size 256k;
|
||||
client_header_buffer_size 500k;
|
||||
large_client_header_buffers 4 500k;
|
||||
http2_max_field_size 500k;
|
||||
http2_max_header_size 500k;
|
||||
|
||||
# Mitigate httpoxy attack (see README for details)
|
||||
proxy_set_header Proxy "";
|
||||
@ -171,18 +371,17 @@ server {
|
||||
{{ if $enable_ipv6 }}
|
||||
listen [::]:80;
|
||||
{{ end }}
|
||||
access_log /var/log/nginx/access.log vhost;
|
||||
return 503;
|
||||
}
|
||||
|
||||
{{ if (and (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }}
|
||||
server {
|
||||
server_name _; # This is just an invalid value which will never trigger on a real hostname.
|
||||
listen 443 ssl http2;
|
||||
listen 443 ssl;
|
||||
{{ if $enable_ipv6 }}
|
||||
listen [::]:443 ssl http2;
|
||||
listen [::]:443 ssl;
|
||||
{{ end }}
|
||||
access_log /var/log/nginx/access.log vhost;
|
||||
http2 on;
|
||||
return 503;
|
||||
|
||||
ssl_session_tickets off;
|
||||
@ -231,9 +430,18 @@ upstream {{ $upstream_name }} {
|
||||
{{ $onionHost := read (printf "/var/lib/tor/hidden_services/%s/hostname" $hiddenHostName) }}
|
||||
{{ if ne $onionHost "" }}
|
||||
server {
|
||||
client_max_body_size 100M;
|
||||
server_name {{ trim $onionHost }};
|
||||
listen 80 ;
|
||||
access_log /var/log/nginx/access.log vhost;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $proxy_connection;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
|
||||
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
|
||||
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
|
||||
{{ if (exists "/etc/nginx/vhost.d/default") }}
|
||||
include /etc/nginx/vhost.d/default;
|
||||
{{ end }}
|
||||
@ -272,15 +480,18 @@ server {
|
||||
{{/* Get the first cert name defined by containers w/ the same vhost */}}
|
||||
{{ $certName := (first (groupByKeys $containers "Env.CERT_NAME")) }}
|
||||
|
||||
{{/* Get the best matching cert by name for the vhost. */}}
|
||||
{{ $vhostCert := (closest (dir "/etc/nginx/certs") (printf "%s.crt" $host))}}
|
||||
{{ $cert := "" }}
|
||||
{{ if exists "/etc/nginx/certs" }}
|
||||
{{/* Get the best matching cert by name for the vhost. */}}
|
||||
{{ $vhostCert := (closest (dir "/etc/nginx/certs") (printf "%s.crt" $host))}}
|
||||
|
||||
{{/* vhostCert is actually a filename so remove any suffixes since they are added later */}}
|
||||
{{ $vhostCert := trimSuffix ".crt" $vhostCert }}
|
||||
{{ $vhostCert := trimSuffix ".key" $vhostCert }}
|
||||
{{/* vhostCert is actually a filename so remove any suffixes since they are added later */}}
|
||||
{{ $vhostCert := trimSuffix ".crt" $vhostCert }}
|
||||
{{ $vhostCert := trimSuffix ".key" $vhostCert }}
|
||||
|
||||
{{/* Use the cert specified on the container or fallback to the best vhost match */}}
|
||||
{{ $cert := (coalesce $certName $vhostCert) }}
|
||||
{{/* Use the cert specified on the container or fallback to the best vhost match */}}
|
||||
{{ $cert = (coalesce $certName $vhostCert) }}
|
||||
{{ end }}
|
||||
|
||||
{{ $is_https := (and (ne $https_method "nohttps") (ne $cert "") (exists (printf "/etc/nginx/certs/%s.crt" $cert)) (exists (printf "/etc/nginx/certs/%s.key" $cert))) }}
|
||||
|
||||
@ -293,19 +504,41 @@ server {
|
||||
{{ if $enable_ipv6 }}
|
||||
listen [::]:80 {{ $default_server }};
|
||||
{{ end }}
|
||||
access_log /var/log/nginx/access.log vhost;
|
||||
return 301 https://$host$request_uri;
|
||||
|
||||
# Allow acme challenge requests without redirect
|
||||
location ^~ /.well-known/acme-challenge/ {
|
||||
auth_basic off;
|
||||
auth_request off;
|
||||
allow all;
|
||||
root /usr/share/nginx/html;
|
||||
try_files $uri =404;
|
||||
break;
|
||||
}
|
||||
|
||||
# Redirect all other requests to HTTPS
|
||||
location / {
|
||||
return 301 https://$host$request_uri;
|
||||
}
|
||||
}
|
||||
{{ end }}
|
||||
|
||||
server {
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $proxy_connection;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
|
||||
proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
|
||||
proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
|
||||
client_max_body_size 100M;
|
||||
server_name {{ $host }};
|
||||
listen 443 ssl http2 {{ $default_server }};
|
||||
listen 443 ssl {{ $default_server }};
|
||||
{{ if $enable_ipv6 }}
|
||||
listen [::]:443 ssl http2 {{ $default_server }};
|
||||
listen [::]:443 ssl {{ $default_server }};
|
||||
{{ end }}
|
||||
access_log /var/log/nginx/access.log vhost;
|
||||
http2 on;
|
||||
|
||||
{{ if eq $network_tag "internal" }}
|
||||
# Only allow traffic from internal clients
|
||||
@ -399,12 +632,12 @@ server {
|
||||
{{ if or (not $is_https) (eq $https_method "noredirect") }}
|
||||
|
||||
server {
|
||||
client_max_body_size 100M;
|
||||
server_name {{ $host }};
|
||||
listen 80 {{ $default_server }};
|
||||
{{ if $enable_ipv6 }}
|
||||
listen [::]:80 {{ $default_server }};
|
||||
{{ end }}
|
||||
access_log /var/log/nginx/access.log vhost;
|
||||
|
||||
{{ if eq $network_tag "internal" }}
|
||||
# Only allow traffic from internal clients
|
||||
@ -443,12 +676,13 @@ server {
|
||||
|
||||
{{ if (and (not $is_https) (exists "/etc/nginx/certs/default.crt") (exists "/etc/nginx/certs/default.key")) }}
|
||||
server {
|
||||
client_max_body_size 100M;
|
||||
server_name {{ $host }};
|
||||
listen 443 ssl http2 {{ $default_server }};
|
||||
listen 443 ssl {{ $default_server }};
|
||||
{{ if $enable_ipv6 }}
|
||||
listen [::]:443 ssl http2 {{ $default_server }};
|
||||
listen [::]:443 ssl {{ $default_server }};
|
||||
{{ end }}
|
||||
access_log /var/log/nginx/access.log vhost;
|
||||
http2 on;
|
||||
{{/* Enable usage of self-signed SSL certificate if .local hostname */}}
|
||||
{{ if hasSuffix "local" $host }}
|
||||
{{ if eq $network_tag "internal" }}
|
||||
@ -496,3 +730,6 @@ server {
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ if $.Env.ADDITIONAL_NGINX_CONFIG }}
|
||||
{{ $.Env.ADDITIONAL_NGINX_CONFIG}}
|
||||
{{ end }}
|
||||
|
||||
71
Production/postgres/migrate-docker-entrypoint.sh
Executable file
71
Production/postgres/migrate-docker-entrypoint.sh
Executable file
@ -0,0 +1,71 @@
|
||||
#!/usr/bin/env bash
|
||||
set -Eeo pipefail
|
||||
shopt -s extglob
|
||||
|
||||
CURRENT_PGVERSION=""
|
||||
EXPECTED_PGVERSION="$PG_MAJOR"
|
||||
if [[ -f "/var/lib/postgresql/data/PG_VERSION" ]]; then
|
||||
CURRENT_PGVERSION="$(cat /var/lib/postgresql/data/PG_VERSION)"
|
||||
fi
|
||||
|
||||
if [[ "$CURRENT_PGVERSION" != "$EXPECTED_PGVERSION" ]] && \
|
||||
[[ "$CURRENT_PGVERSION" != "" ]]; then
|
||||
sed -i "s/$/ $CURRENT_PGVERSION/" /etc/apt/sources.list.d/pgdg.list
|
||||
if ! apt-get update; then
|
||||
echo "apt-get update failed. Are you using raspberry pi 4? If yes, please follow https://blog.samcater.com/fix-workaround-rpi4-docker-libseccomp2-docker-20/"
|
||||
exit 1
|
||||
fi
|
||||
if ! apt-get install -y --no-install-recommends \
|
||||
postgresql-$CURRENT_PGVERSION \
|
||||
postgresql-contrib-$CURRENT_PGVERSION; then
|
||||
# On arm32, postgres doesn't ship those packages, so we download
|
||||
# the binaries from an archive we built from the postgres 9.6.20 image's binaries
|
||||
FALLBACK="https://aois.blob.core.windows.net/public/$CURRENT_PGVERSION-$(uname -m).tar.gz"
|
||||
FALLBACK_SHARE="https://aois.blob.core.windows.net/public/share-$CURRENT_PGVERSION-$(uname -m).tar.gz"
|
||||
echo "Failure to install postgresql-$CURRENT_PGVERSION and postgresql-contrib-$CURRENT_PGVERSION trying fallback $FALLBACK"
|
||||
apt-get install -y wget
|
||||
pushd . > /dev/null
|
||||
cd /usr/lib/postgresql
|
||||
wget $FALLBACK
|
||||
tar -xvf *.tar.gz
|
||||
rm -f *.tar.gz
|
||||
cd /usr/share/postgresql
|
||||
wget $FALLBACK_SHARE
|
||||
tar -xvf *.tar.gz
|
||||
rm -f *.tar.gz
|
||||
popd > /dev/null
|
||||
echo "Successfully installed PG utilities via the fallback"
|
||||
fi
|
||||
|
||||
export PGBINOLD="/usr/lib/postgresql/$CURRENT_PGVERSION/bin"
|
||||
export PGDATABASE="/var/lib/postgresql/data"
|
||||
export PGDATAOLD="/var/lib/postgresql/data/$CURRENT_PGVERSION"
|
||||
export PGDATANEW="/var/lib/postgresql/data/$EXPECTED_PGVERSION"
|
||||
|
||||
mkdir -p "$PGDATANEW" "$PGDATAOLD"
|
||||
find "$PGDATABASE" -maxdepth 1 -mindepth 1 \
|
||||
-not -wholename "$PGDATAOLD" \
|
||||
-not -wholename "$PGDATANEW" \
|
||||
-exec mv {} "$PGDATAOLD/" \;
|
||||
|
||||
chmod 700 "$PGDATAOLD" "$PGDATANEW"
|
||||
chown postgres .
|
||||
chown -R postgres "$PGDATAOLD" "$PGDATANEW" "$PGDATABASE"
|
||||
if [ ! -s "$PGDATANEW/PG_VERSION" ]; then
|
||||
PGDATA="$PGDATANEW" eval "gosu postgres initdb $POSTGRES_INITDB_ARGS"
|
||||
fi
|
||||
|
||||
gosu postgres pg_upgrade
|
||||
rm $PGDATANEW/*.conf
|
||||
mv $PGDATANEW/* "$PGDATABASE"
|
||||
mv $PGDATAOLD/*.conf "$PGDATABASE"
|
||||
rm -r "$PGDATANEW"
|
||||
./delete_old_cluster.sh
|
||||
rm ./analyze_new_cluster.sh
|
||||
fi
|
||||
|
||||
if [ -f "docker-entrypoint.sh" ]; then
|
||||
exec ./docker-entrypoint.sh "$@"
|
||||
else
|
||||
exec docker-entrypoint.sh "$@"
|
||||
fi
|
||||
388
README.md
388
README.md
@ -1,26 +1,26 @@
|
||||
[](https://circleci.com/gh/btcpayserver/btcpayserver-docker)
|
||||
[](https://app.circleci.com/pipelines/github/btcpayserver/btcpayserver-docker)
|
||||
|
||||
#### Start accepting Bitcoin today with BTCPayServer! This guide will walk you through the installation.
|
||||
#### Start accepting Bitcoin today with BTCPay Server! This guide will walk you through the installation.
|
||||
|
||||
# Introduction
|
||||
|
||||
While [our instructions](https://docs.btcpayserver.org/deployment/lunanodewebdeployment) cover how to install BTCPayServer in one click on Azure or Lunanode, BTCPay Server is not limited to those options.
|
||||
While [our instructions](https://docs.btcpayserver.org/LunaNodeWebDeployment/) cover how to install BTCPayServer in one click on Azure or Lunanode, BTCPay Server is not limited to those options.
|
||||
|
||||
You will find below information about how you can install BTCPay Server easily in any environment having docker available.
|
||||
|
||||
# Architecture
|
||||
|
||||

|
||||

|
||||
|
||||
As you can see, BTCPay depends on several pieces of infrastructure, mainly:
|
||||
|
||||
* A lightweight block explorer (NBXplorer),
|
||||
* A database (PostgreSQL or SQLite),
|
||||
* A database (PostgreSQL),
|
||||
* A full node (eg. Bitcoin Core)
|
||||
|
||||
There can be more dependencies if you support more than just standard Bitcoin transactions, including:
|
||||
|
||||
* [C-Lightning](https://github.com/ElementsProject/lightning)
|
||||
* [Core Lightning (CLN)](https://github.com/ElementsProject/lightning)
|
||||
* [LitecoinD](https://github.com/litecoin-project/litecoin) and other coin daemons
|
||||
* And more...
|
||||
|
||||
@ -28,23 +28,25 @@ Note: The setup process can be time consuming, but is heavily automated to make
|
||||
|
||||
Take a look at how BTCPay works in a video below.
|
||||
|
||||
[](https://www.youtube.com/watch?v=nr0UNbz3AoQ "How BTCPay Works")
|
||||
[](https://www.youtube.com/watch?v=nr0UNbz3AoQ)
|
||||
|
||||
Here is a presentation of the global architecture at Advancing Bitcoin conference.
|
||||
|
||||
[](https://vimeo.com/316630434 "BTCPay - Architecture overview")
|
||||
[](https://www.youtube.com/watch?v=Up0dvorzSNM "BTCPay - Architecture overview")
|
||||
|
||||
# Full installation (for technical users)
|
||||
|
||||
You can also install BTCPayServer on your own machine or VPS instance.
|
||||
You can also install BTCPay Server on your own machine or VPS instance.
|
||||
|
||||
The officially supported setup is driven by Docker (and Docker-Compose).
|
||||
|
||||
First, make sure you have a domain name pointing to your host (CNAME), with ports `443` and `80` externally accessible (and perhaps additional ports like `9735` and `9736` for Bitcoin and Litecoin lightning). Otherwise, you will have to set it manually by running `changedomain.sh`.
|
||||
First, make sure you have a domain name pointing to your host `A record`, with ports `443` and `80` externally accessible. For Lightning Network, port `9735` is required (`9736` if you use Litecoin Lightning). Otherwise, you will have to set a domain manually by running `changedomain.sh`.
|
||||
|
||||
Let's assume it is `btcpay.EXAMPLE.com`.
|
||||
Let's assume your domain is `btcpay.EXAMPLE.com`.
|
||||
|
||||
If you want to support Litecoin, Bitcoin, and C-Lightning, and want HTTPS automatically configured by Nginx:
|
||||
The setup below assumes you want to support Bitcoin, Core Lightning (CLN), HTTPS automatically configured by Nginx. It also enables node pruning, which you can [modify](#generated-docker-compose) or ignore if you have enough disk space for a full node. Finally, your domain is `btcpay.EXAMPLE.com` should reflect your actual domain name.
|
||||
|
||||
[Environment variables](#environment-variables) can be tailored to your needs. Some variables require additional storage space.
|
||||
|
||||
```bash
|
||||
# Login as root
|
||||
@ -62,9 +64,10 @@ cd btcpayserver-docker
|
||||
export BTCPAY_HOST="btcpay.EXAMPLE.com"
|
||||
export NBITCOIN_NETWORK="mainnet"
|
||||
export BTCPAYGEN_CRYPTO1="btc"
|
||||
export BTCPAYGEN_CRYPTO2="ltc"
|
||||
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s"
|
||||
export BTCPAYGEN_REVERSEPROXY="nginx"
|
||||
export BTCPAYGEN_LIGHTNING="clightning"
|
||||
export BTCPAY_ENABLE_SSH=true
|
||||
. ./btcpay-setup.sh -i
|
||||
|
||||
exit
|
||||
@ -77,12 +80,15 @@ exit
|
||||
* Make sure BTCPay starts at reboot via upstart or systemd
|
||||
* Setup environment variables to use BTCPay utilities
|
||||
* Add BTCPay utilities in /usr/bin
|
||||
* Start BTCPay
|
||||
* Start BTCPay Server
|
||||
|
||||
You can read [the article](https://medium.com/@BtcpayServer/hosting-btcpay-server-for-cheap-2b27761fdb9d) for step by step instructions.
|
||||
Video below guides you step by step on how to set up BTCPay Server on a VPS with Docker.
|
||||
|
||||
[](https://hub.docker.com/r/nicolasdorier/btcpayserver/)
|
||||
[](https://www.youtube.com/watch?v=x6hqTFgHqhA)
|
||||
|
||||
Check out this video if you're interested in learning more about setting up [BTCPay with Docker Compose](https://www.youtube.com/playlist?list=PLH4m2oS2ratfaprAFx9E3ZDjwxNKvCk4e).
|
||||
|
||||
[](https://hub.docker.com/r/btcpayserver/btcpayserver/)
|
||||
|
||||
# Environment variables
|
||||
|
||||
@ -92,46 +98,58 @@ You can read [the article](https://medium.com/@BtcpayServer/hosting-btcpay-serve
|
||||
* `BTCPAY_ADDITIONAL_HOSTS`: Optional, specify additional domains to your BTCPayServer with https support if enabled. (eg. example2.com,example3.com)
|
||||
* `REVERSEPROXY_HTTP_PORT`: The public port the reverse proxy binds to for HTTP traffic (default: 80)
|
||||
* `REVERSEPROXY_HTTPS_PORT`: The public port the reverse proxy binds to for HTTPS traffic (default: 443)
|
||||
* `REVERSEPROXY_DEFAULT_HOST`: Optional, if using a reverse proxy nginx, specify which website should be presented if the server is accessed by its IP.
|
||||
* `REVERSEPROXY_DEFAULT_HOST`: Optional, if using a reverse proxy nginx, specify which website should be presented if the server is accessed by its IP or by an unrecognized domain name.
|
||||
* `NOREVERSEPROXY_HTTP_PORT`: Optional, if not using a reverse proxy, specify which port should be opened for HTTP traffic. (default: 80)
|
||||
* `NBITCOIN_NETWORK`: The type of network to use (eg. `mainnet`, `testnet`, or `regtest`. Default: `mainnet`)
|
||||
* `LIGHTNING_ALIAS`: An alias for your lightning network node, if used
|
||||
* `BTCPAYGEN_CRYPTO1`: First supported crypto currency (eg. `btc`, `ltc`. Default: `btc`)
|
||||
* `BTCPAYGEN_CRYPTO1`: First supported crypto currency (eg. `btc`, `ltc`, `none`. Default: `btc`)
|
||||
* `BTCPAYGEN_CRYPTO2`: Second supported crypto currency (eg. `btc`, `ltc`. Default: `(empty)`)
|
||||
* `BTCPAYGEN_CRYPTON`: N'th supported crypto currency where N is 9 at maximum. (eg. `btc`, `ltc`. Default: `(empty)`)
|
||||
* `BTCPAYGEN_REVERSEPROXY`: Specify reverse proxy to use; NGinx has HTTPS support. (eg. `nginx`, `traefik`, `(empty)`. Default: `nginx`)
|
||||
* `BTCPAYGEN_LIGHTNING`: Lightning network implementation to use (eg. `clightning`, `(empty)`)
|
||||
* `BTCPAYGEN_LIGHTNING`: Lightning network implementation to use (eg. `clightning`, `lnd`, `phoenixd` Default: `(empty)`)
|
||||
* `BTCPAYGEN_SUBNAME`: The subname of the generated docker-compose file, where the full name is `Generated/docker-compose.SUBNAME.yml` (Default: `generated`)
|
||||
* `BTCPAYGEN_ADDITIONAL_FRAGMENTS`: Semicolon-separated list of additional fragments you want to use (eg. `opt-save-storage`)
|
||||
* `LETSENCRYPT_EMAIL`: An email will be sent to this address if certificate expires and fails to renew automatically (eg. `me@example.com`)
|
||||
* `ACME_CA_URI`: The API endpoint to ask for HTTPS certificate (Default: `https://acme-v01.api.letsencrypt.org/directory`)
|
||||
* `ACME_CA_URI`: The API endpoint to ask for HTTPS certificate (Default: `production`)
|
||||
* `BTCPAY_ENABLE_SSH`: Optional, gives BTCPay Server SSH access to the host by allowing it to edit authorized_keys of the host, it can be used for managing the authorized_keys or updating BTCPay Server directly through the website. (Default: false)
|
||||
* `BTCPAYGEN_DOCKER_IMAGE`: Optional, Specify which generator image to use if you have customized the C# generator. Set to `btcpayserver/docker-compose-generator:local` to build the generator locally at runtime.
|
||||
* `BTCPAY_IMAGE`: Optional, Specify which btcpayserver image to use if you have a customized btcpayserver.
|
||||
* `BTCPAY_UPDATE_CLEAN`: Clean (prune) all old BTCPayServer images after an update. WARNING: also removes all non-BTCPayServer images! (default: true)
|
||||
* `BTCPAYGEN_EXCLUDE_FRAGMENTS`: Semicolon-separated list of fragments you want to forcefully exclude (eg. `litecoin-clightning`)
|
||||
* `TOR_RELAY_NICKNAME`: If tor relay is activated with opt-add-tor-relay, the relay nickname
|
||||
* `TOR_RELAY_EMAIL`: If tor relay is activated with opt-add-tor-relay, the email for Tor to contact you regarding your relay
|
||||
|
||||
Additionally, there are specific environment variables for some addons:
|
||||
|
||||
* `LIBREPATRON_HOST`: If libre patron is activated with [opt-add-librepatron](docker-compose-generator/docker-fragments/opt-add-librepatron.yml), the hostname of your libre patron website (eg. `librepatron.example.com`)
|
||||
* `ZAMMAD_HOST`: If zammad is activated with [opt-add-zammad](docker-compose-generator/docker-fragments/opt-add-zammad.yml), the hostname of your zammad website (eg. `zammad.example.com`)
|
||||
* `WOOCOMMERCE_HOST`: If woocommerce is activated with [opt-add-woocommerce](docker-compose-generator/docker-fragments/opt-add-woocommerce.yml), the hostname of your woocommerce website (eg. `store.example.com`)
|
||||
* `BTCTRANSMUTER_HOST`: If btctransmuter is activated with [opt-add-btctransmuter](docker-compose-generator/docker-fragments/opt-add-btctransmuter.yml), the hostname of your btctransmuter website (eg. `transmuter.example.com`)
|
||||
* `EPS_XPUB`: If Electrum Personal Server (EPS) is activated with [opt-add-electrum-ps](docker-compose-generator/docker-fragments/opt-add-electrum-ps.yml), you must set the Extended Public Key (XPUB, YPUB or ZPUB) of the wallet you want to use, before first run of the EPS server. If you accidentally start EPS without this, it will not work properly as the model of EPS is to monitor only specified wallets.
|
||||
* If Bitcoin Wallet Tracker is activated with [opt-add-bwt](docker-compose-generator/docker-fragments/opt-add-bwt.yml), you can use `BWT_XPUB`/`BWT_XPUB_*` (to set your XPUB/YPUB/ZPUB), `BWT_DESCRIPTOR`/`BWT_DESCRIPTOR_*` (for script descriptors), `BWT_RESCAN_SINCE` (set to the wallet creation date in YYYY-MM-DD to speed up the rescan), `BWT_BITCOIND_WALLET` and `BWT_GAP_LIMIT`.
|
||||
* `LND_WTCLIENT_SWEEP_FEE`: If LND watchtower is activated with [opt-lnd-wtclient](docker-compose-generator/docker-fragments/opt-lnd-wtclient.yml), you can use `LND_WTCLIENT_SWEEP_FEE` to change the sweep fee used in constructing the justice transaction (default is 10 sat/byte)
|
||||
* `FIREFLY_HOST`: If fireflyiii is activated with [opt-add-fireflyiii](docker-compose-generator/docker-fragments/opt-add-fireflyiii.yml), the hostname of your fireflyiii website (eg. `firefly.example.com`)
|
||||
* `CLOUDFLARE_TUNNEL_TOKEN`: Used to expose your instance to clearnet with a Cloudflare Argo Tunnel (if cloudflare tunnel is activated with [opt-add-cloudflared](docker-compose-generator/docker-fragments/opt-add-cloudflared.yml), for setup instructions [see documentation](docs/cloudflare-tunnel.md))
|
||||
|
||||
# Tooling
|
||||
|
||||
A wide variety of useful scripts are available once BTCPay is installed:
|
||||
|
||||
* `bitcoin-cli.sh`: Access your Bitcoin node instance (for RPC)
|
||||
* `bitcoin-lightning-cli.sh`: Access your C-Lightning node instance (for RPC)
|
||||
* `changedomain.sh`: Change the domain of your BTCPayServer
|
||||
* `bitcoin-lightning-cli.sh`: Access your CLN node instance (for RPC)
|
||||
* `changedomain.sh`: Change the domain of your BTCPayServer (remember to disable 2FA/U2F first, as you risk being unable to log in to your account)
|
||||
* `btcpay-update.sh`: Update BTCPayServer to the latest version
|
||||
* `btcpay-up.sh`: Run `docker-compose up`
|
||||
* `btcpay-down.sh`: Run `docker-compose down`
|
||||
* `btcpay-setup.sh`: Change the settings of your server
|
||||
* `btcpay-clean.sh`: Purge any unused docker images
|
||||
* `. ./btcpay-setup.sh`: Information about additional parameters
|
||||
* `. ./btcpay-setup.sh -i`: Set up your BTCPayServer
|
||||
* `btcpay-restart.sh`: Restart your BTCPayServer
|
||||
* `switch-node.sh default|bitcoincore|bitcoinknots`: Switch your Bitcoin node implementation
|
||||
|
||||
# Under the hood
|
||||
|
||||
## Generated docker-compose <a id="generated-docker-compose"></a>
|
||||
## Generated docker-compose
|
||||
|
||||
When you run `btcpay-setup.sh`, your environment variables are used by [build.sh](build.sh) (or [build.ps1](build.ps1)) to generate a docker-compose adapted for your needs. For the full list of options, see: [Environment variables](#environment-variables)
|
||||
|
||||
@ -143,20 +161,50 @@ Available `BTCPAYGEN_ADDITIONAL_FRAGMENTS` currently are:
|
||||
* [opt-save-storage-s](docker-compose-generator/docker-fragments/opt-save-storage-s.yml) will keep around 6 months of blocks (prune BTC for 50 GB)
|
||||
* [opt-save-storage-xs](docker-compose-generator/docker-fragments/opt-save-storage-xs.yml) will keep around 3 months of blocks (prune BTC for 25 GB)
|
||||
* [opt-save-storage-xxs](docker-compose-generator/docker-fragments/opt-save-storage-xxs.yml) will keep around 2 weeks of blocks (prune BTC for 5 GB) (lightning not supported)
|
||||
* [opt-lnd-autocompact](docker-compose-generator/docker-fragments/opt-lnd-autocompact.yml) will activate auto compacting of LND database.
|
||||
* [opt-lnd-autopilot](docker-compose-generator/docker-fragments/opt-lnd-autopilot.yml) will activate auto pilot on LND. (5 channels, 60% of allocation)
|
||||
* [opt-lnd-keysend](docker-compose-generator/docker-fragments/opt-lnd-keysend.yml) will activate keysend on LND.
|
||||
* [opt-lnd-wtclient](docker-compose-generator/docker-fragments/opt-lnd-wtclient.yml) will activate the watchtower client on LND. `LND_WTCLIENT_SWEEP_FEE` can be used to override the default 10 sat/byte justice transaction fee
|
||||
* [opt-lnd-watchtower](docker-compose-generator/docker-fragments/opt-lnd-watchtower.yml) will activate the LND watchtower RPC
|
||||
* [opt-save-memory](docker-compose-generator/docker-fragments/opt-save-memory.yml) will decrease the default dbcache at the expense of longer synchronization time. (Useful if your machine is less than 2GB)
|
||||
* [opt-more-memory](docker-compose-generator/docker-fragments/opt-more-memory.yml) will increase the default dbcache to make synchronization faster (Useful if your machine is has around 4GB)
|
||||
* [opt-add-btcqbo](docker-compose-generator/docker-fragments/opt-add-btcqbo.yml) will allow you to create an invoice on Quickbooks which include a way for your customer to pay on BTCPay Server (More information on this [github repository](https://github.com/JeffVandrewJr/btcqbo/), this add-on is maintained by [JeffVandrewJr](https://github.com/JeffVandrewJr), see more on [this video](https://www.youtube.com/watch?v=srgwL9ozg6c))
|
||||
* [opt-add-librepatron](docker-compose-generator/docker-fragments/opt-add-librepatron.yml), for a self-hosted Patreon alternative backed by BTCPay (More information on this [github repository](https://github.com/JeffVandrewJr/patron), this add-on is maintained by [JeffVandrewJr](https://github.com/JeffVandrewJr).
|
||||
* [opt-add-woocommerce](docker-compose-generator/docker-fragments/opt-add-woocommerce.yml), for a self-hosted woocommerce with BTCPay Server plugin pre installed.
|
||||
* [opt-add-tor](docker-compose-generator/docker-fragments/opt-add-tor.yml), for exposing BTCPayServer, Woocommerce, your lightning nodes as hidden services and accept onion peers for your full node. Warning: This options is for working around NAT and firewall problems as well as to help protect your customer's privacy. This will not protect your privacy against a targeted attack against you.
|
||||
* [opt-add-btctransmuter](docker-compose-generator/docker-fragments/opt-add-btctransmuter.yml), for a self-hosted IFTTT style service for crypto services such as fiat settlement.
|
||||
* [opt-txindex](docker-compose-generator/docker-fragments/opt-txindex.yml), to enable txindex=1 in bitcoin.conf if you require txindexing for Bisq, DOJO, Esplora, etc.
|
||||
* [opt-unsafe-expose](docker-compose-generator/docker-fragments/opt-unsafe-expose.yml), to unsafely expose bitcoind P2P port 8333 if you require P2P for Bisq, DOJO, Esplora, etc. WARNING: ONLY USE ON TRUSTED LAN OR WITH FIREWALL RULES WHITELISTING SPECIFIC HOSTS
|
||||
* [opt-add-btctransmuter](docker-compose-generator/docker-fragments/opt-add-btctransmuter.yml), for a self-hosted IFTTT style service for crypto services such as fiat settlement. (More information on this [github repository](https://github.com/btcpayserver/btcTransmuter/)
|
||||
* [opt-txindex](docker-compose-generator/docker-fragments/opt-txindex.yml), to enable txindex=1 in bitcoin.conf if you require txindexing for Bisq, DOJO, etc.
|
||||
* [opt-expose-unsafe](docker-compose-generator/docker-fragments/opt-expose-unsafe.yml), to unsafely expose bitcoind P2P port 8333 if you require P2P for Bisq, DOJO, Esplora, etc. WARNING: ONLY USE ON TRUSTED LAN OR WITH FIREWALL RULES WHITELISTING SPECIFIC HOSTS
|
||||
* [opt-add-tor-relay](docker-compose-generator/docker-fragments/opt-add-tor-relay.yml), for a non-exit tor relay. Make sure to have port 9001 accessible externally. [Please read the legal implications of running a tor relay](https://community.torproject.org/relay/community-resources/eff-tor-legal-faq) and [what resources are used to operate the relay](https://trac.torproject.org/projects/tor/wiki/TorRelayGuide#RelayRequirements).
|
||||
* [opt-add-electrumx](docker-compose-generator/docker-fragments/opt-add-electrumx.yml), to integrate a full ElectrumX server (from official source) with BTCPay, using the BTCPay server's full bitcoin node for complete privacy when using your own Electrum wallet. You can also open port 50002 up to the internet on your router etc, to be part of the ElectrumX network, helping other Electrum wallet users to get connected. The bitcoin option `-txindex` is mandatory for ElectrumX, and this fragment will enable it on your BTCPay server automatically - No need to use the fragment opt-txindex.yml.
|
||||
* [opt-add-electrum-ps](docker-compose-generator/docker-fragments/opt-add-electrum-ps.yml), to integrate Electrum Personal Server (EPS) with BTCPay (EPS is a single-user alternative to the ElectrumX Server option above). EPS will also use the BTCPay server's full bitcoin node for complete privacy when using your own Electrum wallet, for your own personal use (i.e. other users cannot use your server to verify transactions). Also, the bitcoin option `-txindex` is NOT mandatory for EPS, and it will run on a pruned node (unlike ElectrumX). You will need to add your XPUB/YPUB/ZPUB as environment variable `EPS_XPUB` before enabling EPS for the first time (see above section on environment variables, and see [full documentation](https://docs.btcpayserver.org/ElectrumPersonalServer/) for details).
|
||||
* [opt-add-electrum-bwt](docker-compose-generator/docker-fragments/opt-add-bwt.yml), to integrate the [Bitcoin Wallet Tracker](https://github.com/bwt-dev/bwt) Electrum server, which uses a personal wallet index model similar to that of EPS. You will need to set `BWT_XPUB` with your XPUB/YPUB/ZPUB (see environment variables section). The server will only be available locally and through an onion service.
|
||||
* [opt-add-configurator](docker-compose-generator/docker-fragments/opt-add-configurator.yml), to integrate the [BTCPay Server Configurator](https://install.btcpayserver.org) to manage your BTCPay deployment through a UI, and to allow new deployments elsewhere easily.
|
||||
* [opt-add-pihole](docker-compose-generator/docker-fragments/opt-add-pihole.yml) ([See the documentation](docs/pihole.md))
|
||||
* [opt-add-ndlc](docker-compose-generator/docker-fragments/opt-add-ndlc.yml) ([See the documentation](docs/ndlc.md))
|
||||
* [opt-add-lightning-terminal](docker-compose-generator/docker-fragments/opt-add-lightning-terminal.yml) for [Lightning Terminal/LiT](https://github.com/lightninglabs/lightning-terminal). Maintained by [dennisreimann](https://github.com/dennisreimann).
|
||||
* [opt-add-mempool](docker-compose-generator/docker-fragments/opt-add-mempool.yml) for [Mempool](https://github.com/mempool/mempool). Maintained by [dennisreimann](https://github.com/dennisreimann).
|
||||
* [opt-add-sphinxrelay](docker-compose-generator/docker-fragments/opt-add-sphinxrelay.yml) for [Sphinx Relay](https://github.com/stakwork/sphinx-relay). Maintained by [dennisreimann](https://github.com/dennisreimann).
|
||||
* [opt-add-tallycoin-connect](docker-compose-generator/docker-fragments/opt-add-tallycoin-connect.yml) for [Tallycoin Connect](https://github.com/djbooth007/tallycoin_connect). Maintained by [dennisreimann](https://github.com/dennisreimann).
|
||||
* [opt-add-thunderhub](docker-compose-generator/docker-fragments/opt-add-thunderhub.yml) for a LND Lightning Node Manager in your Browser. Maintained by [apotdevin](https://github.com/apotdevin).
|
||||
* [opt-add-teos](docker-compose-generator/docker-fragments/opt-add-teos.yml) for [The Eye Of Satoshi](https://github.com/talaia-labs/python-teos), a BOLT13 Lightning Watchtower. Use port 9814 on your server or Tor to connect.
|
||||
* [opt-add-chatwoot](docker-compose-generator/docker-fragments/opt-add-chatwoot.yml) for open source chat support system. ([See the documentation](docs/chatwoot.md))
|
||||
* [opt-add-zammad](docker-compose-generator/docker-fragments/opt-add-zammad.yml) for [Zammad](https://zammad.com/features), a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and e-mails
|
||||
* [opt-monero-expose](docker-compose-generator/docker-fragments/opt-monero-expose.yml) to expose monero node's RPC port at 127.0.0.1:18081 to connect your own wallet. Use f.e. ssh port forwarding to forward to your own computer.
|
||||
* [opt-add-fireflyiii](docker-compose-generator/docker-fragments/opt-add-fireflyiii.yml) ([See the documentation](docs/fireflyiii.md))
|
||||
* [opt-add-joinmarket](docker-compose-generator/docker-fragments/opt-add-joinmarket.yml) ([See the documentation](docs/joinmarket.md))
|
||||
* [opt-add-helipad](docker-compose-generator/docker-fragments/opt-add-helipad.yml) for [Podcastindex.org Helipad](https://github.com/Podcastindex-org/helipad). Requires LND.
|
||||
* [opt-add-nostr-relay](docker-compose-generator/docker-fragments/opt-add-nostr-relay.yml) for [Nostr Relay](https://github.com/kukks/Nnostr).
|
||||
* [opt-add-cloudflared](docker-compose-generator/docker-fragments/opt-add-cloudflared.yml) to expose your local server on clearnet painlessly ([see documentation](docs/cloudflare-tunnel.md)).
|
||||
* [opt-add-snapdrop](docker-compose-generator/docker-fragments/opt-add-snapdrop.yml) to install [Snapdrop](https://snapdrop.net/). You can then browse to `/snapdrop` of your server to access it.
|
||||
* [opt-add-ltcmweb](docker-compose-generator/docker-fragments/opt-add-ltcmweb.yml) to add the support service for the Litecoin MWEB payment method plugin.
|
||||
* [opt-add-shopify](docker-compose-generator/docker-fragments/opt-add-shopify.yml) to install the [Shopify App Deployer](https://github.com/btcpayserver/shopify-app). Used by the [BTCPay Server Shopify plugin](https://github.com/btcpayserver/btcpayserver-shopify-plugin).
|
||||
* [opt-add-nolimits](docker-compose-generator/docker-fragments/opt-add-nolimits.yml) to remove OP_RETURN limits and min relay tx fee from your bitcoin node.
|
||||
|
||||
You can also create your own [custom fragments](#how-can-i-customize-the-generated-docker-compose-file).
|
||||
|
||||
If you want to add an option to `BTCPAYGEN_ADDITIONAL_FRAGMENTS` and re-configure your install:
|
||||
|
||||
```bash
|
||||
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;opt-lnd-autopilot"
|
||||
. btcpay-setup.sh -i
|
||||
@ -166,7 +214,7 @@ For example, if you want `btc` and `ltc` support with `nginx` and `clightning` i
|
||||
|
||||
Note: The first run might take a while, but following runs are instantaneous.
|
||||
|
||||
On Windows (run in [powershell](https://docs.microsoft.com/en-us/powershell/scripting/setup/starting-windows-powershell?view=powershell-6)):
|
||||
On Windows (run in [powershell](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/starting-windows-powershell)):
|
||||
|
||||
```powershell
|
||||
Invoke-Command {
|
||||
@ -212,7 +260,8 @@ Next, you will need to configure the runtime environment variables for `Generate
|
||||
`/etc/profile.d/btcpay-env.sh` ensures that your environment variables are correctly setup when you login, so you can use the tools:
|
||||
|
||||
```bash
|
||||
export BTCPAYGEN_OLD_PREGEN="false"
|
||||
#!/bin/bash
|
||||
export COMPOSE_HTTP_TIMEOUT="180"
|
||||
export BTCPAYGEN_CRYPTO1="btc"
|
||||
export BTCPAYGEN_CRYPTO2=""
|
||||
export BTCPAYGEN_CRYPTO3=""
|
||||
@ -222,15 +271,20 @@ export BTCPAYGEN_CRYPTO6=""
|
||||
export BTCPAYGEN_CRYPTO7=""
|
||||
export BTCPAYGEN_CRYPTO8=""
|
||||
export BTCPAYGEN_CRYPTO9=""
|
||||
export BTCPAYGEN_LIGHTNING="clightning"
|
||||
export BTCPAYGEN_LIGHTNING="lnd"
|
||||
export BTCPAYGEN_REVERSEPROXY="nginx"
|
||||
export BTCPAYGEN_ADDITIONAL_FRAGMENTS=""
|
||||
export BTCPAY_DOCKER_COMPOSE="/var/lib/waagent/custom-script/download/0/btcpayserver-docker/Production/docker-compose.generated.yml"
|
||||
export BTCPAY_BASE_DIRECTORY="/var/lib/waagent/custom-script/download/0"
|
||||
export BTCPAY_ENV_FILE="/var/lib/waagent/custom-script/download/0/.env"
|
||||
export BTCPAY_HOST_SSHKEYFILE="/root/.ssh/id_rsa_btcpay"
|
||||
if cat $BTCPAY_ENV_FILE &> /dev/null; then
|
||||
export $(grep -v '^#' "$BTCPAY_ENV_FILE" | xargs)
|
||||
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s;opt-add-nolimits"
|
||||
export BTCPAYGEN_EXCLUDE_FRAGMENTS=";bitcoin"
|
||||
export BTCPAY_DOCKER_COMPOSE="/root/btcpayserver-docker/Generated/docker-compose.generated.yml"
|
||||
export BTCPAY_BASE_DIRECTORY="/root"
|
||||
export BTCPAY_ENV_FILE="/root/.env"
|
||||
export BTCPAY_HOST_SSHKEYFILE=""
|
||||
export BTCPAY_ENABLE_SSH=true
|
||||
export PIHOLE_SERVERIP=""
|
||||
if cat "$BTCPAY_ENV_FILE" &> /dev/null; then
|
||||
while IFS= read -r line; do
|
||||
! [[ "$line" == "#"* ]] && [[ "$line" == *"="* ]] && export "$line"
|
||||
done < "$BTCPAY_ENV_FILE"
|
||||
fi
|
||||
```
|
||||
|
||||
@ -258,7 +312,7 @@ WantedBy=multi-user.target
|
||||
|
||||
```ini
|
||||
BTCPAY_HOST=btcpay.EXAMPLE.com
|
||||
ACME_CA_URI=https://acme-v01.api.letsencrypt.org/directory
|
||||
ACME_CA_URI=production
|
||||
NBITCOIN_NETWORK=mainnet
|
||||
LETSENCRYPT_EMAIL=me@EXAMPLE.com
|
||||
BTCPAY_SSHTRUSTEDFINGERPRINTS=SHA256:eSCD7NtQ/Q6IBl2iRB9caAQ3lDZd8s8iUL6SdeNnhpA
|
||||
@ -281,6 +335,7 @@ BTCPAYGEN_DOCKER_IMAGE="btcpayserver/docker-compose-generator:local"
|
||||
```
|
||||
|
||||
Or on powershell:
|
||||
|
||||
```powershell
|
||||
cd docker-compose-generator
|
||||
$BTCPAYGEN_DOCKER_IMAGE="btcpayserver/docker-compose-generator:local"
|
||||
@ -293,51 +348,78 @@ Note that BTCPayServer developers will not spend excessive time testing your ima
|
||||
|
||||
# Support
|
||||
|
||||
We are trying to update our dependencies to run on `arm32v7` and `x64` boards. Here is our progress:
|
||||
|
||||
| Source | Image | Version | x64 | arm32v7 | arm64v8 | links |
|
||||
|---|---|---|:-:|:-:|:-:|:-:|
|
||||
| * | btcpayserver/docker-compose-generator | latest | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver-docker) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-compose-generator) |
|
||||
| * | btcpayserver/docker-compose-builder | 1.24.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-compose-builder/v1.24.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-compose-builder/v1.24.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-compose-builder/v1.24.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/docker-compose-builder) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-compose-builder) |
|
||||
| bitcoin.yml | btcpayserver/bitcoin | 0.18.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/0.18.0/Bitcoin/0.18.0/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/0.18.0/Bitcoin/0.18.0/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/0.18.0/Bitcoin/0.18.0/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/bitcoin) |
|
||||
| bitcoin-clightning.yml | btcpayserver/lightning | v0.7.2-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v0.7.2-1/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v0.7.2-1/contrib/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v0.7.2-1/contrib/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lightning) - [DockerHub](https://hub.docker.com/r/btcpayserver/lightning) |
|
||||
| bitcoin-clightning.yml | shesek/lightning-charge | 0.4.6-standalone | [✔️](https://raw.githubusercontent.com/ElementsProject/lightning-charge/v0.4.6/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ElementsProject/lightning-charge) - [DockerHub](https://hub.docker.com/r/shesek/lightning-charge) |
|
||||
| bitcoin-clightning.yml | shesek/spark-wallet | 0.2.8-standalone | [✔️](https://raw.githubusercontent.com/shesek/spark-wallet/v0.2.8/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/shesek/spark-wallet) - [DockerHub](https://hub.docker.com/r/shesek/spark-wallet) |
|
||||
| bitcoin-lnd.yml | btcpayserver/lnd | v0.7.1-beta | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.7.1-beta/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.7.1-beta/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.7.1-beta/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lnd) - [DockerHub](https://hub.docker.com/r/btcpayserver/lnd) |
|
||||
| bitcore.yml | dalijolijo/docker-bitcore | 0.15.2 | [✔️](https://raw.githubusercontent.com/dalijolijo/btcpayserver-docker-bitcore/master/btx-debian/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/dalijolijo/btcpayserver-docker-bitcore) - [DockerHub](https://hub.docker.com/r/dalijolijo/docker-bitcore) |
|
||||
| btcpayserver.yml | btcpayserver/btcpayserver | 1.0.3.133 | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v1.0.3.133/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v1.0.3.133/arm32v7.Dockerfile) | ️❌ | [Github](https://github.com/btcpayserver/btcpayserver) - [DockerHub](https://hub.docker.com/r/btcpayserver/btcpayserver) |
|
||||
| dash.yml | btcpayserver/dash | 0.14.0.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/0.14.0.1/Dash/0.14.0.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/0.14.0.1/Dash/0.14.0.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/0.14.0.1/Dash/0.14.0.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/dash) |
|
||||
| dogecoin.yml | rockstardev/dogecoin | 1.10.0 | [✔️](https://raw.githubusercontent.com/rockstardev/docker-bitcoin/feature/dogecoin/dogecoin/1.10.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/rockstardev/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/rockstardev/dogecoin) |
|
||||
| feathercoin.yml | chekaz/docker-feathercoin | 0.16.3 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/feathercoin/0.16.3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-feathercoin) |
|
||||
| groestlcoin.yml | nicolasdorier/docker-groestlcoin | 2.17.2 | [✔️](https://raw.githubusercontent.com/NicolasDorier/docker-bitcoin/master/groestlcoin/2.17.2/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/NicolasDorier/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/nicolasdorier/docker-groestlcoin) |
|
||||
| groestlcoin-clightning.yml | groestlcoin/lightning | v0.7.2 | [✔️](https://raw.githubusercontent.com/Groestlcoin/lightning/v0.7.2/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/lightning) - [DockerHub](https://hub.docker.com/r/groestlcoin/lightning) |
|
||||
| groestlcoin-clightning.yml | groestlcoin/groestlcoin-lightning-charge | version-0.4.9 | [✔️](https://raw.githubusercontent.com/Groestlcoin/groestlcoin-lightning-charge/v0.4.9/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/groestlcoin-lightning-charge) - [DockerHub](https://hub.docker.com/r/groestlcoin/groestlcoin-lightning-charge) |
|
||||
| groestlcoin-clightning.yml | groestlcoin/groestlcoin-spark | version-0.2.8 | [✔️](https://raw.githubusercontent.com/Groestlcoin/groestlcoin-spark/v0.2.8/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/groestlcoin-spark) - [DockerHub](https://hub.docker.com/r/groestlcoin/groestlcoin-spark) |
|
||||
| litecoin.yml | btcpayserver/litecoin | 0.17.1-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.17.1-1/Litecoin/0.17.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.17.1-1/Litecoin/0.17.1/linuxarm32v7.Dockerfile) | ️❌ | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/litecoin) |
|
||||
| litecoin-clightning.yml | btcpayserver/lightning | v0.7.2-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v0.7.2-1/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v0.7.2-1/contrib/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v0.7.2-1/contrib/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lightning) - [DockerHub](https://hub.docker.com/r/btcpayserver/lightning) |
|
||||
| litecoin-lnd.yml | btcpayserver/lnd | v0.7.1-beta | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.7.1-beta/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.7.1-beta/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.7.1-beta/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lnd) - [DockerHub](https://hub.docker.com/r/btcpayserver/lnd) |
|
||||
| monacoin.yml | wakiyamap/docker-monacoin | 0.16.3 | [✔️](https://raw.githubusercontent.com/wakiyamap/docker-bitcoin/master/monacoin/0.16.3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/wakiyamap/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/wakiyamap/docker-monacoin) |
|
||||
| nbxplorer.yml | nicolasdorier/nbxplorer | 2.0.0.57 | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.0.0.57/Dockerfile.linuxamd64) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.0.0.57/Dockerfile.linuxarm32v7) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.0.0.57/Dockerfile.linuxarm64v8) | [Github](https://github.com/dgarage/nbxplorer) - [DockerHub](https://hub.docker.com/r/nicolasdorier/nbxplorer) |
|
||||
| nginx.yml | nginx | 1.16.0 | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.16.0/stable/stretch/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.16.0/stable/stretch/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.16.0/stable/stretch/Dockerfile) | [Github](https://github.com/nginxinc/docker-nginx) - [DockerHub](https://hub.docker.com/_/nginx) |
|
||||
| nginx.yml | btcpayserver/docker-gen | 0.7.6 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.6/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.6/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.6/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/docker-gen) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-gen) |
|
||||
| nginx-https.yml | btcpayserver/letsencrypt-nginx-proxy-companion | 1.11.2.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v1.11.2.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v1.11.2.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v1.11.2.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion) - [DockerHub](https://hub.docker.com/r/btcpayserver/letsencrypt-nginx-proxy-companion) |
|
||||
| opt-add-btcqbo.yml | jvandrew/btcqbo | 0.3.36 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/btcqbo/v0.3.36/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/btcqbo) - [DockerHub](https://hub.docker.com/r/jvandrew/btcqbo) |
|
||||
| opt-add-btcqbo.yml | redis | 5.0.2-alpine | [✔️](https://raw.githubusercontent.com/docker-library/redis/f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c/5.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/redis) - [DockerHub](https://hub.docker.com/_/redis) |
|
||||
| opt-add-btctransmuter.yml | btcpayserver/btctransmuter | 0.0.33 | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.33/BtcTransmuter/Dockerfile.linuxamd64) | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.33/BtcTransmuter/Dockerfile.linuxarm32v7) | ️❌ | [Github](https://github.com/btcpayserver/btctransmuter) - [DockerHub](https://hub.docker.com/r/btcpayserver/btctransmuter) |
|
||||
| opt-add-librepatron.yml | jvandrew/librepatron | 0.7.39 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/patron/v0.7.39/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/patron) - [DockerHub](https://hub.docker.com/r/jvandrew/librepatron) |
|
||||
| opt-add-librepatron.yml | jvandrew/isso | atron.22 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/isso/patron.22/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/isso) - [DockerHub](https://hub.docker.com/r/jvandrew/isso) |
|
||||
| opt-add-tor.yml | btcpayserver/tor | 0.4.1.5 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.1.5/Tor/0.4.1.5/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.1.5/Tor/0.4.1.5/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.1.5/Tor/0.4.1.5/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/tor) |
|
||||
| opt-add-tor.yml | btcpayserver/docker-gen | 0.7.6 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.6/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.6/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/v0.7.6/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/docker-gen) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-gen) |
|
||||
| opt-add-woocommerce.yml | btcpayserver/docker-woocommerce | 3.0.6-3 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-woocommerce/v3.0.6-3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/btcpayserver/docker-woocommerce) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-woocommerce) |
|
||||
| opt-add-woocommerce.yml | mariadb | 10.3 | [✔️](https://raw.githubusercontent.com/docker-library/mariadb/master/10.3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/mariadb) - [DockerHub](https://hub.docker.com/_/mariadb) |
|
||||
| postgres.yml | postgres | 9.6.5 | [✔️](https://raw.githubusercontent.com/docker-library/postgres/b7cb3c6eacea93be2259381033be3cc435649369/9.6/Dockerfile) | [✔️](https://raw.githubusercontent.com/docker-library/postgres/b7cb3c6eacea93be2259381033be3cc435649369/9.6/Dockerfile) | [✔️](https://raw.githubusercontent.com/docker-library/postgres/b7cb3c6eacea93be2259381033be3cc435649369/9.6/Dockerfile) | [Github](https://github.com/docker-library/postgres) - [DockerHub](https://hub.docker.com/_/postgres) |
|
||||
| traefik.yml | traefik | latest | [✔️](https://raw.githubusercontent.com/containous/traefik-library-image/master/scratch/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/containous/traefik-library-image) - [DockerHub](https://hub.docker.com/_/traefik) |
|
||||
| trezarcoin.yml | chekaz/docker-trezarcoin | 0.13.0 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/trezarcoin/1.2.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-trezarcoin) |
|
||||
| viacoin.yml | romanornr/docker-viacoin | 0.15.2 | [✔️](https://raw.githubusercontent.com/viacoin/docker-viacoin/master/viacoin/0.15.2/docker-viacoin) | ️❌ | ️❌ | [Github](https://github.com/viacoin/docker-viacoin) - [DockerHub](https://hub.docker.com/r/romanornr/docker-viacoin) |
|
||||
| bgold.yml | kamigawabul/docker-bitcoingold | 0.15.2 | [✔️](https://raw.githubusercontent.com/Vutov/docker-bitcoin/master/bitcoingold/0.15.2/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Vutov/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/kamigawabul/docker-bitcoingold) |
|
||||
| bgold-lnd.yml | kamigawabul/btglnd | latest | [✔️](https://raw.githubusercontent.com/vutov/lnd/master/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/vutov/lnd) - [DockerHub](https://hub.docker.com/r/kamigawabul/btglnd) |
|
||||
| bitcoin-lnd.yml | shahanafarooqui/rtl | 0.5.1 | [✔️](https://raw.githubusercontent.com/ShahanaFarooqui/RTL/v0.5.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/ShahanaFarooqui/RTL/v0.5.1/Dockerfile.arm32v7) | [✔️](https://raw.githubusercontent.com/ShahanaFarooqui/RTL/v0.5.1/Dockerfile.arm64v8) | [Github](https://github.com/ShahanaFarooqui/RTL) - [DockerHub](https://hub.docker.com/r/shahanafarooqui/rtl) |
|
||||
| bitcoinplus.yml | chekaz/docker-bitcoinplus | 2.7.0 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/bitcoinplus/2.7.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-bitcoinplus) |
|
||||
| Image | Version | x64 | arm32v7 | arm64v8 | links |
|
||||
|---|---|:-:|:-:|:-:|:-:|
|
||||
| btcpayserver/docker-compose-generator | latest | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-docker/dcg-latest/docker-compose-generator/Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver-docker) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-compose-generator) |
|
||||
| btcpayserver/lightning | v26.06.1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v26.06.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v26.06.1/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lightning/basedon-v26.06.1/Dockerfile) | [Github](https://github.com/btcpayserver/lightning) - [DockerHub](https://hub.docker.com/r/btcpayserver/lightning) |
|
||||
| shahanafarooqui/rtl | v0.15.4 | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/Ride-The-Lightning/RTL/v0.15.4/Dockerfile) | [Github](https://github.com/Ride-The-Lightning/RTL) - [DockerHub](https://hub.docker.com/r/shahanafarooqui/rtl) |
|
||||
| btcpayserver/lnd | v0.19.3-beta-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.19.3-beta-1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.19.3-beta-1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/lnd/basedon-v0.19.3-beta-1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/lnd) - [DockerHub](https://hub.docker.com/r/btcpayserver/lnd) |
|
||||
| btcpayserver/bitcoin | 29.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/29.2/Bitcoin/29.2/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/29.2/Bitcoin/29.2/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Bitcoin/29.2/Bitcoin/29.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/bitcoin) |
|
||||
| btcpayserver/bitcoinknots | 29.3.knots20260508 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/BitcoinKnots/29.3.knots20260508/BitcoinKnots/29.3.knots20260508/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/BitcoinKnots/29.3.knots20260508/BitcoinKnots/29.3.knots20260508/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/BitcoinKnots/29.3.knots20260508/BitcoinKnots/29.3.knots20260508/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/bitcoinknots) |
|
||||
| btcpayserver/btcpayserver | 2.4.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v2.4.0/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v2.4.0/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver/v2.4.0/Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver) - [DockerHub](https://hub.docker.com/r/btcpayserver/btcpayserver) |
|
||||
| btcpayserver/monero | 0.18.4.3 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.4.3/Monero/0.18.4.3/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.4.3/Monero/0.18.4.3/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Monero/0.18.4.3/Monero/0.18.4.3/Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/monero) |
|
||||
| nicolasdorier/nbxplorer | 2.6.8 | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.6.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.6.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/nbxplorer/v2.6.8/Dockerfile) | [Github](https://github.com/dgarage/nbxplorer) - [DockerHub](https://hub.docker.com/r/nicolasdorier/nbxplorer) |
|
||||
| btcpayserver/letsencrypt-nginx-proxy-companion | 2.2.9-2 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v2.2.9-2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v2.2.9-2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion/v2.2.9-2/Dockerfile) | [Github](https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion) - [DockerHub](https://hub.docker.com/r/btcpayserver/letsencrypt-nginx-proxy-companion) |
|
||||
| nginx | 1.25.3-bookworm | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.23.2/stable/debian/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.23.2/stable/debian/Dockerfile) | [✔️](https://raw.githubusercontent.com/nginxinc/docker-nginx/1.23.2/stable/debian/Dockerfile) | [Github](https://github.com/nginxinc/docker-nginx) - [DockerHub](https://hub.docker.com/_/nginx) |
|
||||
| btcpayserver/docker-gen | 0.10.7 | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/0.10.7/Dockerfile.alpine) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/0.10.7/Dockerfile.alpine) | [✔️](https://raw.githubusercontent.com/btcpayserver/docker-gen/0.10.7/Dockerfile.alpine) | [Github](https://github.com/btcpayserver/docker-gen) - [DockerHub](https://hub.docker.com/r/btcpayserver/docker-gen) |
|
||||
| btcpayserver/btctransmuter | 0.0.59 | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.59/Dockerfiles/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.59/Dockerfiles/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btctransmuter/v0.0.59/Dockerfiles/arm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/btctransmuter) - [DockerHub](https://hub.docker.com/r/btcpayserver/btctransmuter) |
|
||||
| btcpayserver/cloudflared | 2024.8.2-4 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2024.8.2-4/Cloudflared/2024.8.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2024.8.2-4/Cloudflared/2024.8.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Cloudflared/2024.8.2-4/Cloudflared/2024.8.2/Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/cloudflared) |
|
||||
| btcpayserver/btcpayserver-configurator | 0.0.21 | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-configurator/v0.0.21/Dockerfiles/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-configurator/v0.0.21/Dockerfiles/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/btcpayserver-configurator/v0.0.21/Dockerfiles/arm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/btcpayserver-configurator) - [DockerHub](https://hub.docker.com/r/btcpayserver/btcpayserver-configurator) |
|
||||
| btcpayserver/eps | 0.2.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/EPS/0.2.2/EPS/0.2.2/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/EPS/0.2.2/EPS/0.2.2/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/EPS/0.2.2/EPS/0.2.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/eps) |
|
||||
| btcpayserver/joinmarket | 0.9.10 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.10/JoinMarket/0.9.10/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.10/JoinMarket/0.9.10/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/JoinMarket/0.9.10/JoinMarket/0.9.10/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/joinmarket) |
|
||||
| nicolasdorier/ndlc-cli | 1.0.1 | [✔️](https://raw.githubusercontent.com/dgarage/ndlc/releases/1.0.1/amd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/ndlc/releases/1.0.1/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/dgarage/ndlc/releases/1.0.1/arm64v8.Dockerfile) | [Github](https://github.com/dgarage/ndlc) - [DockerHub](https://hub.docker.com/r/nicolasdorier/ndlc-cli) |
|
||||
| pihole/pihole | 2025.03.0 | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/2025.03.0/src/Dockerfile) | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/2025.03.0/src/Dockerfile) | [✔️](https://raw.githubusercontent.com/pi-hole/docker-pi-hole/2025.03.0/src/Dockerfile) | [Github](https://github.com/pi-hole/docker-pi-hole) - [DockerHub](https://hub.docker.com/r/pihole/pihole) |
|
||||
| btcpayserver/shopify-app-deployer | 1.8 | [✔️](https://raw.githubusercontent.com/btcpayserver/shopify-app/1.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/shopify-app/1.8/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/shopify-app/1.8/Dockerfile) | [Github](https://github.com/btcpayserver/shopify-app) - [DockerHub](https://hub.docker.com/r/btcpayserver/shopify-app-deployer) |
|
||||
| btcpayserver/snapdrop | 1.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Snapdrop/1.2/Snapdrop/1.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Snapdrop/1.2/Snapdrop/1.2/Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Snapdrop/1.2/Snapdrop/1.2/Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/snapdrop) |
|
||||
| btcpayserver/tor | 0.4.9.10 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.9.10/Tor/0.4.9.10/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.9.10/Tor/0.4.9.10/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Tor/0.4.9.10/Tor/0.4.9.10/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/tor) |
|
||||
| btcpayserver/woocommerce | 3.1.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/WooCommerce/3.1.0/WooCommerce/3.1.0/linuxamd64.Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/WooCommerce/3.1.0/WooCommerce/3.1.0/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/woocommerce) |
|
||||
| btcpayserver/postgres | 18.1-1 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/18.1-1/Postgres/18.1/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/18.1-1/Postgres/18.1/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Postgres/18.1-1/Postgres/18.1/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/postgres) |
|
||||
| kamigawabul/btglnd | latest | [✔️](https://raw.githubusercontent.com/vutov/lnd/master/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/vutov/lnd) - [DockerHub](https://hub.docker.com/r/kamigawabul/btglnd) |
|
||||
| kamigawabul/docker-bitcoingold | 0.15.2 | [✔️](https://raw.githubusercontent.com/Vutov/docker-bitcoin/master/bitcoingold/0.15.2/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Vutov/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/kamigawabul/docker-bitcoingold) |
|
||||
| acinq/eclair | release-0.7.0 | [✔️](https://raw.githubusercontent.com/ACINQ/eclair/v0.7.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ACINQ/eclair) - [DockerHub](https://hub.docker.com/r/acinq/eclair) |
|
||||
| chekaz/docker-bitcoinplus | 2.7.0 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/bitcoinplus/2.7.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-bitcoinplus) |
|
||||
| dalijolijo/docker-bitcore | 0.90.9.10 | [✔️](https://raw.githubusercontent.com/dalijolijo/btcpayserver-docker-bitcore/master/docker-bitcored/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/dalijolijo/btcpayserver-docker-bitcore) - [DockerHub](https://hub.docker.com/r/dalijolijo/docker-bitcore) |
|
||||
| btcpayserver/dash | 23.1.2 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/23.1.2/Dash/23.1.2/linuxamd64.Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dash/23.1.2/Dash/23.1.2/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/dash) |
|
||||
| ghcr.io/bisoncraft/decred | 2.1.5 | [✔️](https://raw.githubusercontent.com/bisoncraft/btcpayserver-decred-plugin/v2.1.5/Dockerfile.decred) | ️❌ | ️❌ | [Github](https://github.com/bisoncraft/btcpayserver-decred-plugin) - [DockerHub](https://hub.docker.com/r/ghcr.io/bisoncraft/decred) |
|
||||
| btcpayserver/dogecoin | 1.14.7 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Dogecoin/1.14.7/Dogecoin/1.14.7/linuxamd64.Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/dogecoin) |
|
||||
| chekaz/docker-feathercoin | 0.16.3 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/feathercoin/0.16.3/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-feathercoin) |
|
||||
| groestlcoin/lightning | v24.08 | [✔️](https://raw.githubusercontent.com/Groestlcoin/lightning/v24.08/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/lightning) - [DockerHub](https://hub.docker.com/r/groestlcoin/lightning) |
|
||||
| groestlcoin/groestlcoin-lightning-charge | version-0.4.22 | [✔️](https://raw.githubusercontent.com/Groestlcoin/groestlcoin-lightning-charge/v0.4.22/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/groestlcoin-lightning-charge) - [DockerHub](https://hub.docker.com/r/groestlcoin/groestlcoin-lightning-charge) |
|
||||
| groestlcoin/groestlcoin-spark | version-0.2.16 | [✔️](https://raw.githubusercontent.com/Groestlcoin/groestlcoin-spark/v0.2.16/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/groestlcoin-spark) - [DockerHub](https://hub.docker.com/r/groestlcoin/groestlcoin-spark) |
|
||||
| groestlcoin/eclair | v0.6.0 | [✔️](https://raw.githubusercontent.com/Groestlcoin/eclair/v0.6.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/eclair) - [DockerHub](https://hub.docker.com/r/groestlcoin/eclair) |
|
||||
| groestlcoin/lnd | v0.10.0-grs | [✔️](https://raw.githubusercontent.com/Groestlcoin/lnd/v0.10.0-grs/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/Groestlcoin/lnd) - [DockerHub](https://hub.docker.com/r/groestlcoin/lnd) |
|
||||
| btcpayserver/groestlcoin | 25.0 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/25.0/Groestlcoin/25.0/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/25.0/Groestlcoin/25.0/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Groestlcoin/25.0/Groestlcoin/25.0/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/groestlcoin) |
|
||||
| btcpayserver/elements | 23.2.3 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/23.2.3/Elements/23.2.3/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/23.2.3/Elements/23.2.3/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Elements/23.2.3/Elements/23.2.3/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/elements) |
|
||||
| btcpayserver/litecoin | 0.21.5.5 | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.5.5/Litecoin/0.21.5.5/linuxamd64.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.5.5/Litecoin/0.21.5.5/linuxarm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/btcpayserver/dockerfile-deps/Litecoin/0.21.5.5/Litecoin/0.21.5.5/linuxarm64v8.Dockerfile) | [Github](https://github.com/btcpayserver/dockerfile-deps) - [DockerHub](https://hub.docker.com/r/btcpayserver/litecoin) |
|
||||
| wakiyamap/docker-monacoin | 0.20.2 | [✔️](https://raw.githubusercontent.com/wakiyamap/docker-bitcoin/master/monacoin/0.20.2/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/wakiyamap/docker-bitcoin) - [DockerHub](https://hub.docker.com/r/wakiyamap/docker-monacoin) |
|
||||
| redis | 6.2.2-buster | [✔️](https://raw.githubusercontent.com/docker-library/redis/f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c/5.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/redis) - [DockerHub](https://hub.docker.com/_/redis) |
|
||||
| jvandrew/btcqbo | 0.3.36 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/btcqbo/v0.3.36/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/btcqbo) - [DockerHub](https://hub.docker.com/r/jvandrew/btcqbo) |
|
||||
| shesek/bwt | 0.2.2-electrum | [✔️](https://raw.githubusercontent.com/bwt-dev/bwt/v0.2.2/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/bwt-dev/bwt/v0.2.2/docker/arm32v7.Dockerfile) | [✔️](https://raw.githubusercontent.com/bwt-dev/bwt/v0.2.2/docker/arm64v8.Dockerfile) | [Github](https://github.com/bwt-dev/bwt) - [DockerHub](https://hub.docker.com/r/shesek/bwt) |
|
||||
| chatwoot/chatwoot | v1.7.0 | [✔️](https://raw.githubusercontent.com/chatwoot/chatwoot/v1.7.0/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/chatwoot/chatwoot/v1.7.0/docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/chatwoot/chatwoot/v1.7.0/docker/Dockerfile) | [Github](https://github.com/chatwoot/chatwoot) - [DockerHub](https://hub.docker.com/r/chatwoot/chatwoot) |
|
||||
| lukechilds/electrumx | latest | [✔️](https://raw.githubusercontent.com/lukechilds/docker-electrumx/master/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/lukechilds/docker-electrumx) - [DockerHub](https://hub.docker.com/r/lukechilds/electrumx) |
|
||||
| fireflyiii/core | latest | [✔️](https://dev.azure.com/Firefly-III/66fb773b-063e-42d7-b6a5-e7729a22e8b3/_apis/git/repositories/e9c3dcf8-4533-4ef1-83cc-75527cab3377/items?path=%2FDockerfile&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&versionDescriptor%5Bversion%5D=main&resolveLfs=true&%24format=octetStream&api-version=5.0&download=true) | [✔️](https://dev.azure.com/Firefly-III/66fb773b-063e-42d7-b6a5-e7729a22e8b3/_apis/git/repositories/e9c3dcf8-4533-4ef1-83cc-75527cab3377/items?path=%2FDockerfile&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&versionDescriptor%5Bversion%5D=main&resolveLfs=true&%24format=octetStream&api-version=5.0&download=true) | [✔️](https://dev.azure.com/Firefly-III/66fb773b-063e-42d7-b6a5-e7729a22e8b3/_apis/git/repositories/e9c3dcf8-4533-4ef1-83cc-75527cab3377/items?path=%2FDockerfile&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&versionDescriptor%5Bversion%5D=main&resolveLfs=true&%24format=octetStream&api-version=5.0&download=true) | [Github](https://dev.azure.com/Firefly-III/_git/MainImage) - [DockerHub](https://hub.docker.com/r/fireflyiii/core) |
|
||||
| podcastindexorg/podcasting20-helipad | v0.1.10 | [✔️](https://raw.githubusercontent.com/Podcastindex-org/helipad/v0.1.10/umbrel/Dockerfile) | [✔️](https://raw.githubusercontent.com/Podcastindex-org/helipad/v0.1.10/umbrel/Dockerfile) | [✔️](https://raw.githubusercontent.com/Podcastindex-org/helipad/v0.1.10/umbrel/Dockerfile) | [Github](https://github.com/Podcastindex-org/helipad) - [DockerHub](https://hub.docker.com/r/podcastindexorg/podcasting20-helipad) |
|
||||
| jvandrew/librepatron | 0.7.39 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/patron/v0.7.39/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/patron) - [DockerHub](https://hub.docker.com/r/jvandrew/librepatron) |
|
||||
| jvandrew/isso | atron.22 | [✔️](https://raw.githubusercontent.com/JeffVandrewJr/isso/patron.22/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/JeffVandrewJr/isso) - [DockerHub](https://hub.docker.com/r/jvandrew/isso) |
|
||||
| lightninglabs/lightning-terminal | v0.14.1-alpha-path-prefix | [✔️](https://raw.githubusercontent.com/lightninglabs/lightning-terminal/v0.14.1-alpha/Dockerfile) | ️❌ | [✔️](https://raw.githubusercontent.com/lightninglabs/lightning-terminal/v0.14.1-alpha/Dockerfile) | [Github](https://github.com/lightninglabs/lightning-terminal) - [DockerHub](https://hub.docker.com/r/lightninglabs/lightning-terminal) |
|
||||
| hectorchu1/mwebd | latest | [✔️](https://raw.githubusercontent.com/ltcmweb/btcpayserver-ltcmweb-plugin/main/Dockerfile) | [✔️](https://raw.githubusercontent.com/ltcmweb/btcpayserver-ltcmweb-plugin/main/Dockerfile) | [✔️](https://raw.githubusercontent.com/ltcmweb/btcpayserver-ltcmweb-plugin/main/Dockerfile) | [Github](https://github.com/ltcmweb/btcpayserver-ltcmweb-plugin) - [DockerHub](https://hub.docker.com/r/hectorchu1/mwebd) |
|
||||
| mempool/frontend | v2.5.0 | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/frontend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/frontend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/frontend/Dockerfile) | [Github](https://github.com/mempool/mempool) - [DockerHub](https://hub.docker.com/r/mempool/frontend) |
|
||||
| mempool/backend | v2.5.0 | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/backend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/backend/Dockerfile) | [✔️](https://raw.githubusercontent.com/mempool/mempool/v2.5.0/docker/backend/Dockerfile) | [Github](https://github.com/mempool/mempool) - [DockerHub](https://hub.docker.com/r/mempool/backend) |
|
||||
| mariadb | 10.11 | [✔️](https://raw.githubusercontent.com/docker-library/mariadb/master/10.11/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/mariadb) - [DockerHub](https://hub.docker.com/_/mariadb) |
|
||||
| kukks/nnostr-relay | v0.0.23 | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.23/Relay/Dockerfile) | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.23/Relay/Dockerfile) | [✔️](https://raw.githubusercontent.com/kukks/nnostr/Relay/v0.0.23/Relay/Dockerfile) | [Github](https://github.com/kukks/nnostr) - [DockerHub](https://hub.docker.com/r/kukks/nnostr-relay) |
|
||||
| sphinxlightning/sphinx-relay | v2.2.9 | [✔️](https://raw.githubusercontent.com/stakwork/sphinx-relay/v2.2.9/Dockerfile) | [✔️](https://raw.githubusercontent.com/stakwork/sphinx-relay/v2.2.9/Dockerfile) | [✔️](https://raw.githubusercontent.com/stakwork/sphinx-relay/v2.2.9/Dockerfile) | [Github](https://github.com/stakwork/sphinx-relay) - [DockerHub](https://hub.docker.com/r/sphinxlightning/sphinx-relay) |
|
||||
| djbooth007/tallycoin_connect | v1.8.0 | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.8.0/Dockerfile) | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.8.0/Dockerfile.arm32v7) | [✔️](https://raw.githubusercontent.com/djbooth007/tallycoin_connect/v1.8.0/Dockerfile.arm64v8) | [Github](https://github.com/djbooth007/tallycoin_connect) - [DockerHub](https://hub.docker.com/r/djbooth007/tallycoin_connect) |
|
||||
| benjaminchodroff/rust-teos | latest | [✔️](https://raw.githubusercontent.com/benjaminchodroff/rust-teos/master/docker/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/benjaminchodroff/rust-teos) - [DockerHub](https://hub.docker.com/r/benjaminchodroff/rust-teos) |
|
||||
| apotdevin/thunderhub | base-0.15.4 | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.15.4/Dockerfile) | [✔️](https://raw.githubusercontent.com/apotdevin/thunderhub/v0.15.4/Dockerfile) | [Github](https://github.com/apotdevin/thunderhub) - [DockerHub](https://hub.docker.com/r/apotdevin/thunderhub) |
|
||||
| zammad/zammad-docker-compose | zammad-postgresql-3.4.0-4 | [✔️](https://raw.githubusercontent.com/zammad/zammad-docker-compose/ff20084ce2829486076e9781fe27407ca6cc09bb/containers/zammad-postgresql/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/zammad/zammad-docker-compose) - [DockerHub](https://hub.docker.com/r/zammad/zammad-docker-compose) |
|
||||
| memcached | 1.5.22-alpine | [✔️](https://raw.githubusercontent.com/docker-library/memcached/eb38bf28263b8e5bb7367797cb7b181b65d769bd/alpine/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/docker-library/memcached) - [DockerHub](https://hub.docker.com/_/memcached) |
|
||||
| acinq/phoenixd | 0.8.0 | [✔️](https://raw.githubusercontent.com/ACINQ/phoenixd/v0.8.0/.docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/ACINQ/phoenixd/v0.8.0/.docker/Dockerfile) | [✔️](https://raw.githubusercontent.com/ACINQ/phoenixd/v0.8.0/.docker/Dockerfile) | [Github](https://github.com/ACINQ/phoenixd) - [DockerHub](https://hub.docker.com/r/acinq/phoenixd) |
|
||||
| traefik | v2.6 | [✔️](https://raw.githubusercontent.com/containous/traefik-library-image/master/scratch/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/containous/traefik-library-image) - [DockerHub](https://hub.docker.com/_/traefik) |
|
||||
| chekaz/docker-trezarcoin | 0.13.0 | [✔️](https://raw.githubusercontent.com/ChekaZ/docker/master/trezarcoin/1.2.0/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ChekaZ/docker) - [DockerHub](https://hub.docker.com/r/chekaz/docker-trezarcoin) |
|
||||
| romanornr/docker-viacoin | 0.15.2 | [✔️](https://raw.githubusercontent.com/viacoin/docker-viacoin/master/viacoin/0.15.2/docker-viacoin) | ️❌ | ️❌ | [Github](https://github.com/viacoin/docker-viacoin) - [DockerHub](https://hub.docker.com/r/romanornr/docker-viacoin) |
|
||||
| hhanh00/zcash-walletd | 1.1.5 | [✔️](https://raw.githubusercontent.com/elemental-pay/zcash-walletd/feat/data-config/docker/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/elemental-pay/zcash-walletd) - [DockerHub](https://hub.docker.com/r/hhanh00/zcash-walletd) |
|
||||
| zfnd/zebra | 3.0.0 | [✔️](https://raw.githubusercontent.com/ZcashFoundation/zebra/main/docker/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/ZcashFoundation/zebra) - [DockerHub](https://hub.docker.com/r/zfnd/zebra) |
|
||||
| electriccoinco/lightwalletd | v0.4.18 | [✔️](https://raw.githubusercontent.com/zcash/lightwalletd/master/Dockerfile) | ️❌ | ️❌ | [Github](https://github.com/zcash/lightwalletd) - [DockerHub](https://hub.docker.com/r/electriccoinco/lightwalletd) |
|
||||
|
||||
# FAQ
|
||||
|
||||
@ -351,41 +433,6 @@ export BTCPAYGEN_CRYPTO3='btg'
|
||||
. btcpay-setup.sh -i
|
||||
```
|
||||
|
||||
## I deployed before `btcpay-setup.sh` existed (before May 17, 2018), can I migrate to this new system?
|
||||
|
||||
Yes, run the following commands to update:
|
||||
|
||||
```bash
|
||||
sudo su -
|
||||
|
||||
cd $DOWNLOAD_ROOT/btcpayserver-docker
|
||||
git checkout master
|
||||
git pull
|
||||
git checkout 9acb5d8067cb5c46f59858137feb699b41ac9f19
|
||||
btcpay-update.sh
|
||||
. ./btcpay-setup.sh -i
|
||||
git checkout master
|
||||
btcpay-update.sh
|
||||
|
||||
exit
|
||||
```
|
||||
|
||||
## I'm getting an error on Windows: `Cannot create container for service docker: Mount denied`?
|
||||
|
||||
If you see this error:
|
||||
|
||||
`Cannot create container for service docker: b'Mount denied:\nThe source path "\\\\var\\\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'`.
|
||||
|
||||
Run this in [powershell](https://docs.microsoft.com/en-us/powershell/scripting/setup/starting-windows-powershell?view=powershell-6):
|
||||
|
||||
```powershell
|
||||
$Env:COMPOSE_CONVERT_WINDOWS_PATHS=1
|
||||
```
|
||||
|
||||
Then, run `docker-compose -f EXAMPLE.yml up`.
|
||||
|
||||
This bug comes from Docker for Windows and is [tracked on Github](https://github.com/docker/for-win/issues/1829).
|
||||
|
||||
## How I can prune my node(s)?
|
||||
|
||||
This will prune your Bitcoin full node to a maximum of 100GB (of blocks):
|
||||
@ -410,8 +457,7 @@ First, copy [opt-save-storage](docker-compose-generator/docker-fragments/opt-sav
|
||||
Modify the new `opt-save-storage.custom.yml` file to your taste:
|
||||
|
||||
```diff
|
||||
@@ -14,8 +14,7 @@ version: "3"
|
||||
services:
|
||||
@@ -14,8 +14,7 @@ services:
|
||||
bitcoind:
|
||||
environment:
|
||||
- BITCOIN_EXTRA_ARGS: prune=100000
|
||||
@ -421,7 +467,7 @@ Modify the new `opt-save-storage.custom.yml` file to your taste:
|
||||
Then set it up:
|
||||
|
||||
```bash
|
||||
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage.custom"
|
||||
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;opt-save-storage.custom"
|
||||
. ./btcpay-setup.sh -i
|
||||
```
|
||||
|
||||
@ -431,10 +477,102 @@ You can change the ports for HTTP and HTTPS by setting the environment variables
|
||||
|
||||
When you set `REVERSEPROXY_HTTP_PORT` to another value than 80, the built-in Let's Encrypt certificate will not work, as Let's Encrypt will try to validate your SSL certificate request by connecting from the internet to your domain on port 80. This validation request should be able to reach BTCPay Server in order to receive the certificate.
|
||||
|
||||
If you need to run on a different port, it's best to terminate SSL using another web proxy and forward your traffic.
|
||||
If you need to run on a different port, it's best to terminate SSL using another web proxy and forward your traffic.
|
||||
|
||||
## Can I offload HTTPS termination?
|
||||
## Can I offload HTTPS termination?
|
||||
|
||||
Yes. To offload SSL termination, just forward the requests to the port specified by `REVERSEPROXY_HTTP_PORT` and make sure you are setting the header `X-Forwarded-Proto: https` so BTC Pay Server can know the original request was HTTPS. If you forget this extra header, BTCPay Server will work, but it will believe the connection is insecure and display a warning message.
|
||||
Yes. Please [see the documentation](https://docs.btcpayserver.org/FAQ/FAQ-Deployment/#can-i-use-an-existing-nginx-server-as-a-reverse-proxy-with-ssl-termination).
|
||||
|
||||
Because you are offloading HTTPS, you won't need the built-in Let's Encrypt anymore and can exclude `nginx-https` by adding it to `BTCPAYGEN_EXCLUDE_FRAGMENTS`.
|
||||
## How can I back up my BTCPay Server?
|
||||
|
||||
See the [Backup & Restore](https://docs.btcpayserver.org/Docker/backup-restore/) guide in our documentation.
|
||||
|
||||
<details>
|
||||
<summary>For backwards compatibility: Click here for the description of the old backup.sh process</summary>
|
||||
|
||||
:::warning
|
||||
Please consider switching to the [new Backup & Restore process](https://docs.btcpayserver.org/Docker/backup-restore/), because the `backup.sh` will not be maintained anymore.
|
||||
:::
|
||||
We provide a backup script that dumps the database and saves the important files:
|
||||
|
||||
```bash
|
||||
cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
|
||||
./backup.sh
|
||||
```
|
||||
|
||||
This will save the backup locally as `/var/lib/docker/volumes/backup_datadir/_data/backup.tar.gz`.
|
||||
These are the options to customize the backup name and location:
|
||||
|
||||
* `BACKUP_TIMESTAMP=true` saves the backup with datetime as part of the file name, so that backups do not get overwritten.
|
||||
* `BACKUP_PROVIDER=SCP` saves the backup remotely, requires additional `SCP_TARGET` environment variable (see below).
|
||||
* `BACKUP_PROVIDER=Dropbox` saves the backup to Dropbox, requires additional `DROPBOX_TOKEN` environment variable (see below).
|
||||
|
||||
```bash
|
||||
cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
|
||||
|
||||
# Backup with custom file name and timestamp:
|
||||
BACKUP_TIMESTAMP=true ./backup.sh
|
||||
|
||||
# Backup via SCP:
|
||||
BACKUP_PROVIDER=SCP SCP_TARGET=myhost:backups/btcpay ./backup.sh
|
||||
|
||||
# Backup to Dropbox:
|
||||
BACKUP_PROVIDER=Dropbox DROPBOX_TOKEN=myDropboxToken ./backup.sh
|
||||
```
|
||||
|
||||
You can also choose to only dump the database.
|
||||
This option does not need to stop and restart the docker-containers:
|
||||
|
||||
```bash
|
||||
cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
|
||||
./backup.sh --only-db
|
||||
```
|
||||
</details>
|
||||
|
||||
## How can I connect to the database?
|
||||
|
||||
On the server you can open a database session by connecting via `psql` as the postgres user:
|
||||
|
||||
```bash
|
||||
docker exec -ti $(docker ps -a -q -f "name=postgres_1") psql -U postgres
|
||||
```
|
||||
|
||||
Then, inside `psql` you can select a database and interact with the tables:
|
||||
|
||||
```bash
|
||||
# list databases
|
||||
\l
|
||||
|
||||
# connect to database
|
||||
\c btcpayservermainnet
|
||||
|
||||
# list tables
|
||||
\dt
|
||||
|
||||
# list users
|
||||
SELECT "Id", "Email" FROM "AspNetUsers";
|
||||
|
||||
# end session
|
||||
\q
|
||||
```
|
||||
|
||||
The main BTCPay Server database tables are part of the `public` schema.
|
||||
Plugins have their own schema, named after the plugin.
|
||||
|
||||
By default, only the tables of the `public` schema are shown.
|
||||
If you want to also see and select the plugin tables, you need to extend the search path:
|
||||
|
||||
```bash
|
||||
# list plugin schemas
|
||||
SELECT * FROM pg_catalog.pg_namespace WHERE nspname LIKE 'BTCPayServer.%';
|
||||
|
||||
# extend search path
|
||||
SET search_path TO "BTCPayServer.Plugins.MyPlugin", public;
|
||||
|
||||
# table list now also shows the MyPlugin tables
|
||||
\dt
|
||||
```
|
||||
|
||||
## How do I upgrade my BTCPay Server docker?
|
||||
|
||||
Run the script `./btcpay-update.sh` and patiently wait for your server to be upgraded.
|
||||
|
||||
11
Tools/fireflyiii/init.sh
Executable file
11
Tools/fireflyiii/init.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
[[ $(docker exec $(docker ps -a -q -f "name=postgres_1") psql -U postgres -tc "SELECT 1 FROM pg_database WHERE datname = 'fireflyiii'") =~ "1" ]] || docker exec $(docker ps -a -q -f "name=postgres_1") psql -U postgres -c "CREATE DATABASE fireflyiii"
|
||||
docker exec generated_fireflyiii_1 php artisan migrate --seed
|
||||
docker exec generated_fireflyiii_1 php artisan firefly-iii:decrypt-all
|
||||
docker exec generated_fireflyiii_1 php artisan cache:clear
|
||||
docker exec generated_fireflyiii_1 php artisan firefly-iii:upgrade-database
|
||||
docker exec generated_fireflyiii_1 php artisan passport:install
|
||||
docker exec generated_fireflyiii_1 php artisan cache:clear
|
||||
exit 0
|
||||
16
Tools/lnd/lnd_delete_tls.sh
Executable file
16
Tools/lnd/lnd_delete_tls.sh
Executable file
@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
read -p "This script will delete LND's TLS certificate, so that's it's recreated on restart. Please keep in mind that you'll need to update external connections to LND that depend on TLS cert. Type 'yes' to confirm you want to proceed`echo $'\n> '`" yn
|
||||
if [ $yn != "yes" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
docker exec btcpayserver_lnd_bitcoin rm -rf /root/.lnd/tls.cert
|
||||
docker exec btcpayserver_lnd_bitcoin rm -rf /root/.lnd/tls.key
|
||||
|
||||
docker stop btcpayserver_lnd_bitcoin
|
||||
docker start btcpayserver_lnd_bitcoin
|
||||
|
||||
echo "LND TLS certificate recreated"
|
||||
30
Tools/lnd/lnd_recreate_volume.sh
Executable file
30
Tools/lnd/lnd_recreate_volume.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
read -p "This script will delete and recreate your LND Bitcoin container. YOU CAN'T UNDO THIS OPERATION, ALL FUNDS THAT YOU CURRENTLY HAVE ON THIS LND WILL BE LOST! Type 'yes' to proceed only after you've transfered all your funds from this LND instance `echo $'\n> '`" yn
|
||||
if [ $yn != "yes" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
read -p "Only proceed if you've removed all the funds from LND Bitcoin container! This LND instance will be completely deleted and all data from it unrecoverable. Type 'yes' to proceed only if you are 100% sure `echo $'\n> '`" yn
|
||||
if [ $yn != "yes" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
read -p "OK, last chance to abort. Type 'yes' to continue! `echo $'\n> '`" yn
|
||||
if [ $yn != "yes" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
btcpay-down.sh
|
||||
|
||||
docker volume rm --force generated_lnd_bitcoin_datadir
|
||||
|
||||
# very old installations had production_lnd_bitcoin_datadir volume
|
||||
# https://github.com/btcpayserver/btcpayserver-docker/issues/272
|
||||
docker volume rm --force production_lnd_bitcoin_datadir
|
||||
|
||||
btcpay-up.sh
|
||||
|
||||
echo "LND container recreated"
|
||||
@ -1,17 +1,26 @@
|
||||
# How to use docker-compose with Traefik
|
||||
|
||||
Traefik is a modern reverse proxy aimed towards applications running through container orchestrators.
|
||||
Traefik is a modern reverse proxy aimed towards applications running through container orchestrators.
|
||||
|
||||
Some of the benefits of using Traefik over NGinx are:
|
||||
* Real-time configuration changes - no need to reload the proxy
|
||||
* Auto discovery and configuration of services through a vast amount of container orchestrators.
|
||||
* Built-in official support for Let's Encrypt SSL with certificate auto-renewal
|
||||
|
||||
- Real-time configuration changes - no need to reload the proxy
|
||||
- Auto discovery and configuration of services through a vast amount of container orchestrators.
|
||||
- Built-in official support for Let's Encrypt SSL with certificate auto-renewal
|
||||
- Supports path-based routing without need to [hard-code it in global config](../Production/nginx.tmpl).
|
||||
|
||||
## Traefik Specific Environment Variables
|
||||
|
||||
* `BTCPAYGEN_REVERSEPROXY` to `traefik`.
|
||||
* `LETSENCRYPT_EMAIL`: Optional, The email Let's Encrypt will use to notify you about certificate expiration.
|
||||
* `BTCPAYGEN_ADDITIONAL_FRAGMENTS`: In the case that you have an already deployed traefik container, you can use the fragment `traefik-labels` which will tag the btcpayserver service with the needed labels to be discovered.
|
||||
- `BTCPAYGEN_REVERSEPROXY` to `traefik`.
|
||||
- `LETSENCRYPT_EMAIL`: Optional, The email Let's Encrypt will use to notify you about certificate expiration.
|
||||
- `BTCPAYGEN_ADDITIONAL_FRAGMENTS`: Add `traefik`
|
||||
- `BTCPAY_ADDITIONAL_HOSTS`: Traefik can not accept list of hosts. Add additional hosts in a new file named e.g. `btcpayserver-traefic.custom.yml`:
|
||||
```
|
||||
services:
|
||||
btcpayserver:
|
||||
labels:
|
||||
traefik.http.routers.btcpayserver2.rule: Host(`additional.example.com`)
|
||||
traefik.http.routers.btcpayserver3.rule: Host(`another-additional.example.com`)
|
||||
```
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
defaultEntryPoints = ["https","http"]
|
||||
|
||||
logLevel = "ERROR"
|
||||
|
||||
[entryPoints]
|
||||
[entryPoints.http]
|
||||
address = ":80"
|
||||
[entryPoints.http.redirect]
|
||||
entryPoint = "https"
|
||||
[entryPoints.https]
|
||||
address = ":443"
|
||||
[entryPoints.https.tls]
|
||||
|
||||
[retry]
|
||||
|
||||
[docker]
|
||||
endpoint = "unix:///var/run/docker.sock"
|
||||
watch = true
|
||||
exposedByDefault = false
|
||||
|
||||
[acme]
|
||||
storage = "acme.json"
|
||||
entryPoint = "https"
|
||||
onHostRule = true
|
||||
[acme.httpChallenge]
|
||||
entryPoint = "http"
|
||||
|
||||
[traefikLog]
|
||||
filePath = "/traefik_logs/traefik.log"
|
||||
format = "json"
|
||||
|
||||
[accessLog]
|
||||
filePath = "/traefik_logs/access.log"
|
||||
format = "json"
|
||||
34
Traefik/traefik.yml
Normal file
34
Traefik/traefik.yml
Normal file
@ -0,0 +1,34 @@
|
||||
entryPoints:
|
||||
http:
|
||||
address: :80
|
||||
http:
|
||||
redirections:
|
||||
entrypoint:
|
||||
to: https
|
||||
scheme: https
|
||||
https:
|
||||
address: :443
|
||||
http:
|
||||
tls:
|
||||
certResolver: default
|
||||
|
||||
providers:
|
||||
docker:
|
||||
exposedByDefault: false
|
||||
watch: true
|
||||
endpoint: unix:///var/run/docker.sock
|
||||
|
||||
# Enable only for debug
|
||||
#api:
|
||||
# insecure: true
|
||||
# dashboard: true
|
||||
|
||||
log:
|
||||
level: ERROR # or DEBUG, PANIC, FATAL, WARN, and INFO
|
||||
|
||||
certificatesResolvers:
|
||||
default:
|
||||
acme:
|
||||
storage: /data/acme.json
|
||||
httpChallenge:
|
||||
entryPoint: http
|
||||
131
backup.sh
131
backup.sh
@ -16,35 +16,108 @@ if [ "$(id -u)" != "0" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
(return 2>/dev/null) && sourced=1 || sourced=0
|
||||
|
||||
if [ $sourced != 1 ]; then
|
||||
echo "You forgot the leading '.' followed by a space!"
|
||||
echo "Try this format: . ./backup.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z ${BACKUP_PROVIDER+x} ]; then
|
||||
echo "Set BACKUP_PROVIDER environmental variable and try again."
|
||||
exit 1
|
||||
elif [ ${BACKUP_PROVIDER="Dropbox"} ]; then
|
||||
if [ -z ${DROPBOX_TOKEN+x} ]; then
|
||||
echo "Set DROPBOX_TOKEN environmental variable and try again."
|
||||
case "$BACKUP_PROVIDER" in
|
||||
"Dropbox")
|
||||
if [ -z "$DROPBOX_TOKEN" ]; then
|
||||
echo -e "\033[0;31mSet DROPBOX_TOKEN environment variable and try again.\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
if [ -z ${1+x} ]; then
|
||||
filename="backup.tar.gz"
|
||||
else
|
||||
filename=$1
|
||||
fi
|
||||
if [ ! -d /var/lib/docker/volumes/backup_datadir ]; then
|
||||
docker volume create backup_datadir
|
||||
fi
|
||||
btcpay-down.sh
|
||||
tar --exclude='/var/lib/docker/volumes/backup_datadir/*' --exclude='/var/lib/docker/volumes/generated_bitcoin_datadir/*' --exclude='/var/lib/docker/volumes/generated_litecoin_datadir/*' -cvzf /var/lib/docker/volumes/backup_datadir/_data/${filename} /var/lib/docker/volumes
|
||||
btcpay-up.sh
|
||||
echo "Uploading to Dropbox..."
|
||||
docker run --name backup --env DROPBOX_TOKEN=$DROPBOX_TOKEN -v backup_datadir:/data jvandrew/btcpay-dropbox:1.0.5 $filename
|
||||
echo "Deleting local backup..."
|
||||
rm /var/lib/docker/volumes/backup_datadir/_data/${filename}
|
||||
;;
|
||||
|
||||
"S3")
|
||||
echo -e "\033[1;33mUsing S3 backup provider. Make sure you have ran 'aws configure' on your root user and configured an AMI with access to your bucket.\033[0m"
|
||||
if [ -z "$S3_BUCKET" ]; then
|
||||
echo -e "\033[0;31mSet S3_BUCKET environment variable and try again.\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$S3_PATH" ]; then
|
||||
echo -e "\033[1;33mUsing bucket root for backup, set S3_PATH if you want to backup into a specific folder (Make sure it ends with a trailing slash).\033[0m"
|
||||
fi
|
||||
;;
|
||||
|
||||
"SCP")
|
||||
if [ -z "$SCP_TARGET" ]; then
|
||||
echo -e "\033[0;31mSet SCP_TARGET environment variable and try again.\033[0m"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "No BACKUP_PROVIDER set. Backing up to local directory."
|
||||
;;
|
||||
esac
|
||||
|
||||
# preparation
|
||||
volumes_dir=/var/lib/docker/volumes
|
||||
backup_dir="$volumes_dir/backup_datadir"
|
||||
filename="backup.tar.gz"
|
||||
dumpname="postgres.sql.gz"
|
||||
|
||||
if [ "$BACKUP_TIMESTAMP" == true ]; then
|
||||
timestamp=$(date "+%Y%m%d-%H%M%S")
|
||||
filename="$timestamp-$filename"
|
||||
dumpname="$timestamp-$dumpname"
|
||||
fi
|
||||
|
||||
backup_path="$backup_dir/_data/${filename}"
|
||||
dbdump_path="$backup_dir/_data/${dumpname}"
|
||||
|
||||
cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
|
||||
. helpers.sh
|
||||
|
||||
# ensure backup dir exists
|
||||
if [ ! -d "$backup_dir" ]; then
|
||||
docker volume create backup_datadir
|
||||
fi
|
||||
|
||||
# dump database
|
||||
echo "Dumping database …"
|
||||
btcpay_dump_db $dbdump_path
|
||||
|
||||
if [[ "$1" == "--only-db" ]]; then
|
||||
tar -cvzf $backup_path $dbdump_path
|
||||
else
|
||||
# stop docker containers, save files and restart
|
||||
echo "Stopping BTCPay Server …"
|
||||
btcpay_down
|
||||
|
||||
echo "Backing up files …"
|
||||
tar --exclude="$backup_path" --exclude="$volumes_dir/generated_bitcoin_datadir/*" --exclude="$volumes_dir/generated_litecoin_datadir/*" --exclude="$volumes_dir/generated_postgres_datadir/*" --exclude="$volumes_dir/**/logs/*" -cvzf $backup_path $dbdump_path $volumes_dir
|
||||
|
||||
echo "Restarting BTCPay Server …"
|
||||
btcpay_up
|
||||
fi
|
||||
|
||||
# post processing
|
||||
case $BACKUP_PROVIDER in
|
||||
"Dropbox")
|
||||
echo "Uploading to Dropbox …"
|
||||
docker run --name backup --env DROPBOX_TOKEN=$DROPBOX_TOKEN -v backup_datadir:/data jvandrew/btcpay-dropbox:1.0.5 $filename
|
||||
echo "Deleting local backup …"
|
||||
rm $backup_path
|
||||
;;
|
||||
|
||||
"S3")
|
||||
echo "Uploading to S3 …"
|
||||
docker run --rm -v ~/.aws:/root/.aws -v $backup_path:/aws/$filename amazon/aws-cli s3 cp $filename s3://$S3_BUCKET/$S3_PATH
|
||||
echo "Deleting local backup …"
|
||||
rm $backup_path
|
||||
;;
|
||||
|
||||
"SCP")
|
||||
echo "Uploading via SCP …"
|
||||
scp $backup_path $SCP_TARGET
|
||||
echo "Deleting local backup …"
|
||||
rm $backup_path
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Backed up to $backup_path"
|
||||
;;
|
||||
esac
|
||||
|
||||
# cleanup
|
||||
rm $dbdump_path
|
||||
|
||||
echo "Backup done."
|
||||
|
||||
1
beldex-wallet-cli.ps1
Normal file
1
beldex-wallet-cli.ps1
Normal file
@ -0,0 +1 @@
|
||||
docker exec -it btcpayserver_beldexd beldex-wallet-cli $args
|
||||
3
beldex-wallet-cli.sh
Normal file
3
beldex-wallet-cli.sh
Normal file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -it btcpayserver_beldexd beldex-wallet-cli "$@"
|
||||
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_bgoldd bgold-cli -datadir="/data" $args
|
||||
docker exec btcpayserver_bgoldd bgold-cli -datadir="/data" $args
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_bgoldd bgold-cli -datadir="/data" "$@"
|
||||
docker exec btcpayserver_bgoldd bgold-cli -datadir="/data" "$@"
|
||||
|
||||
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_lnd_bitcoingold lncli $args
|
||||
docker exec btcpayserver_lnd_bitcoingold lncli $args
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_lnd_bitcoingold lncli "$@"
|
||||
docker exec btcpayserver_lnd_bitcoingold lncli "$@"
|
||||
|
||||
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_bitcoind bitcoin-cli -datadir="/data" $args
|
||||
docker exec btcpayserver_bitcoind bitcoin-cli -datadir="/data" $args
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_bitcoind bitcoin-cli -datadir="/data" "$@"
|
||||
docker exec btcpayserver_bitcoind bitcoin-cli -datadir="/data" "$@"
|
||||
|
||||
1
bitcoin-eclair-cli.ps1
Executable file
1
bitcoin-eclair-cli.ps1
Executable file
@ -0,0 +1 @@
|
||||
docker exec btcpayserver_eclair_bitcoin eclair-cli -p DwubwWsoo3 "$@" $args
|
||||
3
bitcoin-eclair-cli.sh
Executable file
3
bitcoin-eclair-cli.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec btcpayserver_eclair_bitcoin eclair-cli -p DwubwWsoo3 "$@"
|
||||
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_clightning_bitcoin lightning-cli $args
|
||||
docker exec btcpayserver_clightning_bitcoin lightning-cli $args
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_clightning_bitcoin lightning-cli "$@"
|
||||
docker exec btcpayserver_clightning_bitcoin lightning-cli --rpc-file /root/.lightning/lightning-rpc "$@"
|
||||
|
||||
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_lnd_bitcoin lncli --macaroonpath /root/.lnd/admin.macaroon $args
|
||||
docker exec btcpayserver_lnd_bitcoin lncli --macaroonpath /root/.lnd/admin.macaroon $args
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_lnd_bitcoin lncli --macaroonpath /root/.lnd/admin.macaroon "$@"
|
||||
docker exec btcpayserver_lnd_bitcoin lncli --macaroonpath /root/.lnd/admin.macaroon "$@"
|
||||
|
||||
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_bitcored bitcore-cli -datadir="/data" $args
|
||||
docker exec btcpayserver_bitcored bitcore-cli -datadir="/data" $args
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_bitcored bitcore-cli -datadir="/data" "$@"
|
||||
docker exec btcpayserver_bitcored bitcore-cli -datadir="/data" "$@"
|
||||
|
||||
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_bitcoinplusd bitcoinplus-cli -datadir="/data" $args
|
||||
docker exec btcpayserver_bitcoinplusd bitcoinplus-cli -datadir="/data" $args
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_bitcoinplusd bitcoinplus-cli -datadir="/data" "$@"
|
||||
docker exec btcpayserver_bitcoinplusd bitcoinplus-cli -datadir="/data" "$@"
|
||||
@ -7,7 +7,8 @@ query()
|
||||
case "$1" in
|
||||
disable-multifactor)
|
||||
query "DELETE FROM \"U2FDevices\" WHERE \"ApplicationUserId\" = (SELECT \"Id\" FROM \"AspNetUsers\" WHERE upper('$2') = \"NormalizedEmail\")"
|
||||
query "UPDATE public.\"AspNetUsers\" SET \"TwoFactorEnabled\"=false WHERE upper('\$2') = \"NormalizedEmail\""
|
||||
query "DELETE FROM \"Fido2Credentials\" WHERE \"ApplicationUserId\" = (SELECT \"Id\" FROM \"AspNetUsers\" WHERE upper('$2') = \"NormalizedEmail\")"
|
||||
query "UPDATE public.\"AspNetUsers\" SET \"TwoFactorEnabled\"=false WHERE upper('$2') = \"NormalizedEmail\""
|
||||
;;
|
||||
set-user-admin)
|
||||
query "INSERT INTO \"AspNetUserRoles\" Values ( (SELECT \"Id\" FROM \"AspNetUsers\" WHERE upper('$2') = \"NormalizedEmail\"), (SELECT \"Id\" FROM \"AspNetRoles\" WHERE \"NormalizedName\"='SERVERADMIN'))"
|
||||
|
||||
156
btcpay-backup.sh
Executable file
156
btcpay-backup.sh
Executable file
@ -0,0 +1,156 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
set -o pipefail -o errexit
|
||||
|
||||
# Please be aware of these important issues:
|
||||
#
|
||||
# - Old channel state is toxic and you can loose all your funds, if you or someone
|
||||
# else closes a channel based on the backup with old state - and the state changes
|
||||
# often! If you publish an old state (say from yesterday's backup) on chain, you
|
||||
# WILL LOSE ALL YOUR FUNDS IN A CHANNEL, because the counterparty will publish a
|
||||
# revocation key!
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
printf "\n🚨 This script must be run as root.\n"
|
||||
printf "➡️ Use the command 'sudo su -' (include the trailing hypen) and try again.\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# preparation
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# Mac OS
|
||||
BASH_PROFILE_SCRIPT="$HOME/btcpay-env.sh"
|
||||
else
|
||||
# Linux
|
||||
BASH_PROFILE_SCRIPT="/etc/profile.d/btcpay-env.sh"
|
||||
fi
|
||||
|
||||
. "$BASH_PROFILE_SCRIPT"
|
||||
|
||||
docker_dir=$(docker volume inspect generated_btcpay_datadir --format="{{.Mountpoint}}" | sed -e "s%/volumes/.*%%g")
|
||||
postgres_dump_name=postgres.sql.gz
|
||||
btcpay_dir="$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
|
||||
backup_dir="$docker_dir/volumes/backup_datadir/_data"
|
||||
postgres_dump_path="$docker_dir/$postgres_dump_name"
|
||||
backup_path="$backup_dir/backup.tar.gz"
|
||||
|
||||
# ensure backup dir exists
|
||||
if [ ! -d "$backup_dir" ]; then
|
||||
mkdir -p $backup_dir
|
||||
fi
|
||||
|
||||
cd $btcpay_dir
|
||||
. helpers.sh
|
||||
|
||||
# Postgres database
|
||||
postgres_container=$(docker ps -a -q -f "name=postgres_1")
|
||||
if [ -z "$postgres_container" ]; then
|
||||
printf "\n"
|
||||
echo "ℹ️ Postgres container is not up and running. Starting BTCPay Server …"
|
||||
docker volume create generated_postgres_datadir
|
||||
docker-compose -f $BTCPAY_DOCKER_COMPOSE up -d postgres
|
||||
|
||||
printf "\n"
|
||||
postgres_container=$(docker ps -a -q -f "name=postgres_1")
|
||||
if [ -z "$postgres_container" ]; then
|
||||
echo "🚨 Postgres container could not be started or found."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
echo "ℹ️ Dumping Postgres database …"
|
||||
{
|
||||
docker exec $postgres_container pg_dumpall -c -U postgres | gzip > $postgres_dump_path
|
||||
echo "✅ Postgres database dump done."
|
||||
} || {
|
||||
echo "🚨 Dumping Postgres database failed. Please check the error message above."
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Optional: MariaDB database
|
||||
mariadb_container=$(docker ps -a -q -f "name=mariadb_1")
|
||||
if [ ! -z "$mariadb_container" ]; then
|
||||
mariadb_dump_name=mariadb.sql.gz
|
||||
mariadb_dump_path="$docker_dir/$mariadb_dump_name"
|
||||
# MariaDB container exists and is running - dump it
|
||||
printf "\n"
|
||||
echo "ℹ️ Dumping MariaDB database …"
|
||||
{
|
||||
docker exec $mariadb_container mysqldump -u root -pwordpressdb -A --add-drop-database | gzip > $mariadb_dump_path
|
||||
echo "✅ MariaDB database dump done."
|
||||
} || {
|
||||
echo "🚨 Dumping MariaDB database failed. Please check the error message above."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
# BTCPay Server backup
|
||||
printf "\nℹ️ Stopping BTCPay Server …\n\n"
|
||||
btcpay_down
|
||||
|
||||
printf "\n"
|
||||
cd $docker_dir
|
||||
echo "ℹ️ Archiving files in $(pwd)…"
|
||||
|
||||
{
|
||||
tar \
|
||||
--exclude="volumes/backup_datadir" \
|
||||
--exclude="volumes/generated_btcpay_datadir/_data/host_*" \
|
||||
--exclude="volumes/generated_bitcoin_datadir/_data" \
|
||||
--exclude="volumes/generated_litecoin_datadir/_data" \
|
||||
--exclude="volumes/generated_mwebd_datadir" \
|
||||
--exclude="volumes/generated_elements_datadir/_data" \
|
||||
--exclude="volumes/generated_xmr_data/_data" \
|
||||
--exclude="volumes/generated_bdx_data/_data" \
|
||||
--exclude="volumes/generated_dogecoin_datadir/_data/blocks" \
|
||||
--exclude="volumes/generated_dogecoin_datadir/_data/chainstate" \
|
||||
--exclude="volumes/generated_dash_datadir/_data/blocks" \
|
||||
--exclude="volumes/generated_dash_datadir/_data/chainstate" \
|
||||
--exclude="volumes/generated_dash_datadir/_data/indexes" \
|
||||
--exclude="volumes/generated_dash_datadir/_data/debug.log" \
|
||||
--exclude="volumes/generated_dash_datadir/_data/evodb" \
|
||||
--exclude="volumes/generated_mariadb_datadir" \
|
||||
--exclude="volumes/generated_postgres_datadir" \
|
||||
--exclude="volumes/generated_electrumx_datadir" \
|
||||
--exclude="volumes/generated_lnd_bitcoin_datadir/_data/data/graph" \
|
||||
--exclude="volumes/generated_clightning_bitcoin_datadir/_data/lightning-rpc" \
|
||||
--exclude="volumes/generated_lwd-cache" \
|
||||
--exclude="volumes/generated_zebrad-cache" \
|
||||
--exclude="volumes/generated_zec_data" \
|
||||
--exclude="**/logs/*" \
|
||||
-cvzf $backup_path $postgres_dump_name $mariadb_dump_name volumes/generated_*
|
||||
echo "✅ Archive done."
|
||||
|
||||
if [ ! -z "$BTCPAY_BACKUP_PASSPHRASE" ]; then
|
||||
printf "\n"
|
||||
echo "🔐 BTCPAY_BACKUP_PASSPHRASE is set, the backup will be encrypted."
|
||||
{
|
||||
gpg -o "$backup_path.gpg" --batch --yes -c --passphrase "$BTCPAY_BACKUP_PASSPHRASE" $backup_path
|
||||
rm $backup_path
|
||||
backup_path="$backup_path.gpg"
|
||||
echo "✅ Encryption done."
|
||||
} || {
|
||||
echo "🚨 Encrypting failed. Please check the error message above."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
} || {
|
||||
echo "🚨 Archiving failed. Please check the error message above."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
}
|
||||
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
|
||||
printf "\nℹ️ Cleaning up …\n\n"
|
||||
rm $postgres_dump_path
|
||||
|
||||
printf "✅ Backup done => $backup_path\n\n"
|
||||
182
btcpay-restore.sh
Executable file
182
btcpay-restore.sh
Executable file
@ -0,0 +1,182 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
set -o pipefail -o errexit
|
||||
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
printf "\n🚨 This script must be run as root.\n"
|
||||
printf "➡️ Use the command 'sudo su -' (include the trailing hypen) and try again.\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
backup_path=$1
|
||||
if [ -z "$backup_path" ]; then
|
||||
printf "\nℹ️ Usage: btcpay-restore.sh /path/to/backup.tar.gz\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$backup_path" ]; then
|
||||
printf "\n🚨 $backup_path does not exist.\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$backup_path" == *.gpg && -z "$BTCPAY_BACKUP_PASSPHRASE" ]]; then
|
||||
printf "\n🔐 $backup_path is encrypted. Please provide the passphrase to decrypt it."
|
||||
printf "\nℹ️ Usage: BTCPAY_BACKUP_PASSPHRASE=t0pSeCrEt btcpay-restore.sh /path/to/backup.tar.gz.gpg\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# preparation
|
||||
docker_dir=$(docker volume inspect generated_btcpay_datadir --format="{{.Mountpoint}}" | sed -e "s%/volumes/.*%%g")
|
||||
restore_dir="$docker_dir/volumes/backup_datadir/_data/restore"
|
||||
postgres_dump_name=postgres.sql.gz
|
||||
btcpay_dir="$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
|
||||
|
||||
# ensure clean restore dir
|
||||
printf "\nℹ️ Cleaning restore directory $restore_dir …\n\n"
|
||||
rm -rf $restore_dir
|
||||
mkdir -p $restore_dir
|
||||
|
||||
if [[ "$backup_path" == *.gpg ]]; then
|
||||
echo "🔐 Decrypting backup file …"
|
||||
{
|
||||
gpg -o "${backup_path%.*}" --batch --yes --passphrase "$BTCPAY_BACKUP_PASSPHRASE" -d $backup_path
|
||||
backup_path="${backup_path%.*}"
|
||||
printf "✅ Decryption done.\n\n"
|
||||
} || {
|
||||
echo "🚨 Decryption failed. Please check the error message above."
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
cd $restore_dir
|
||||
|
||||
echo "ℹ️ Extracting files in $(pwd) …"
|
||||
tar -xvf $backup_path -C $restore_dir
|
||||
|
||||
# basic control checks
|
||||
if [ ! -f "$postgres_dump_name" ]; then
|
||||
printf "\n🚨 $postgres_dump_name does not exist.\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "volumes" ]; then
|
||||
printf "\n🚨 volumes directory does not exist.\n\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f "mariadb.sql.gz" ]; then
|
||||
mariadb_dump_name=mariadb.sql.gz
|
||||
fi
|
||||
|
||||
cd $btcpay_dir
|
||||
. helpers.sh
|
||||
|
||||
printf "\nℹ️ Stopping BTCPay Server …\n\n"
|
||||
btcpay_down
|
||||
|
||||
cd $restore_dir
|
||||
|
||||
{
|
||||
printf "\nℹ️ Restoring volumes …\n"
|
||||
# ensure volumes dir exists
|
||||
if [ ! -d "$docker_dir/volumes" ]; then
|
||||
mkdir -p $docker_dir/volumes
|
||||
fi
|
||||
# copy volume directories over
|
||||
cp -r volumes/* $docker_dir/volumes/
|
||||
# ensure datadirs excluded in backup exist
|
||||
mkdir -p $docker_dir/volumes/generated_postgres_datadir/_data
|
||||
if [ ! -z "$mariadb_dump_name" ]; then
|
||||
mkdir -p $docker_dir/volumes/generated_mariadb_datadir/_data
|
||||
fi
|
||||
echo "✅ Volume restore done."
|
||||
} || {
|
||||
echo "🚨 Restoring volumes failed. Please check the error message above."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Start Postgres database
|
||||
{
|
||||
printf "\nℹ️ Starting Postgres database container …\n"
|
||||
docker-compose -f $BTCPAY_DOCKER_COMPOSE up -d postgres
|
||||
sleep 10
|
||||
postgres_container=$(docker ps -a -q -f "name=postgres_1")
|
||||
if [ -z "$postgres_container" ]; then
|
||||
echo "🚨 Postgres database container could not be started or found."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
fi
|
||||
} || {
|
||||
echo "🚨 Starting Postgres database container failed. Please check the error message above."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Optional: Start MariaDB database
|
||||
if [ ! -z "$mariadb_dump_name" ]; then
|
||||
{
|
||||
printf "\nℹ️ Starting MariaDB database container …\n"
|
||||
docker-compose -f $BTCPAY_DOCKER_COMPOSE up -d mariadb
|
||||
sleep 10
|
||||
mariadb_container=$(docker ps -a -q -f "name=mariadb_1")
|
||||
if [ -z "$mariadb_container" ]; then
|
||||
echo "🚨 MariaDB database container could not be started or found."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
fi
|
||||
} || {
|
||||
echo "🚨 Starting MariaDB database container failed. Please check the error message above."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
cd $restore_dir
|
||||
|
||||
# Postgres database
|
||||
{
|
||||
printf "\nℹ️ Restoring Postgres database …"
|
||||
gunzip -c $postgres_dump_name | docker exec -i $postgres_container psql -U postgres postgres
|
||||
echo "✅ Postgres database restore done."
|
||||
} || {
|
||||
echo "🚨 Restoring Postgres database failed. Please check the error message above."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Optional: MariaDB database
|
||||
if [ ! -z "$mariadb_dump_name" ]; then
|
||||
{
|
||||
printf "\nℹ️ Restoring MariaDB database …"
|
||||
gunzip -c $mariadb_dump_name | docker exec -i $mariadb_container mysql -u root -pwordpressdb
|
||||
printf "\n✅ MariaDB database restore done."
|
||||
} || {
|
||||
echo "🚨 Restoring MariaDB database failed. Please check the error message above."
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
printf "\nℹ️ Restarting BTCPay Server …\n\n"
|
||||
cd $btcpay_dir
|
||||
btcpay_up
|
||||
|
||||
printf "\nℹ️ Cleaning up …\n\n"
|
||||
rm -rf $restore_dir
|
||||
|
||||
printf "✅ Restore done\n\n"
|
||||
@ -38,12 +38,12 @@ else
|
||||
fi
|
||||
|
||||
# Verify we are in right folder. If we are not, let's go in the parent folder of the current docker-compose.
|
||||
if ! git -C . rev-parse &> /dev/null || [ ! -d "Generated" ]; then
|
||||
if ! git rev-parse --git-dir &> /dev/null || [ ! -d "Generated" ]; then
|
||||
if [[ ! -z $BTCPAY_DOCKER_COMPOSE ]]; then
|
||||
cd $(dirname $BTCPAY_DOCKER_COMPOSE)
|
||||
cd ..
|
||||
fi
|
||||
if ! git -C . rev-parse || [[ ! -d "Generated" ]]; then
|
||||
if ! git rev-parse || [[ ! -d "Generated" ]]; then
|
||||
echo "You must run this script inside the git repository of btcpayserver-docker"
|
||||
return
|
||||
fi
|
||||
@ -81,6 +81,7 @@ Or, if you want to offload SSL because you have an existing web proxy, change RE
|
||||
|
||||
Environment variables:
|
||||
BTCPAY_HOST: The hostname of your website (eg. btcpay.example.com)
|
||||
BTCPAY_LIGHTNING_HOST: The hostname announced for your node on the lightning network (by default, the BTCPAY_HOST will be used)
|
||||
REVERSEPROXY_HTTP_PORT: The port the reverse proxy binds to for public HTTP requests. Default: 80
|
||||
REVERSEPROXY_HTTPS_PORT: The port the reverse proxy binds to for public HTTPS requests. Default: 443
|
||||
REVERSEPROXY_DEFAULT_HOST: Optional, if using a reverse proxy nginx, specify which website should be presented if the server is accessed by its IP.
|
||||
@ -93,17 +94,23 @@ Environment variables:
|
||||
BTCPAYGEN_REVERSEPROXY: Whether to use or not a reverse proxy. NGinx setup HTTPS for you. (eg. nginx, traefik, none. Default: nginx)
|
||||
BTCPAYGEN_LIGHTNING: Lightning network implementation to use (eg. clightning, lnd, none)
|
||||
BTCPAYGEN_ADDITIONAL_FRAGMENTS: Semi colon separated list of additional fragments you want to use (eg. opt-save-storage)
|
||||
ACME_CA_URI: The API endpoint to ask for HTTPS certificate (default: https://acme-v01.api.letsencrypt.org/directory)
|
||||
ACME_CA_URI: The API endpoint to ask for HTTPS certificate (default: production)
|
||||
BTCPAY_ENABLE_SSH: Optional, gives BTCPay Server SSH access to the host by allowing it to edit authorized_keys of the host, it can be used for managing the authorized_keys or updating BTCPay Server directly through the website. (Default: false)
|
||||
BTCPAYGEN_DOCKER_IMAGE: Allows you to specify a custom docker image for the generator (Default: btcpayserver/docker-compose-generator)
|
||||
BTCPAY_IMAGE: Allows you to specify the btcpayserver docker image to use over the default version. (Default: current stable version of btcpayserver)
|
||||
BTCPAY_IMAGE: Allows you to specify the btcpayserver docker image to use over the default version. (Default: current stable version of btcpayserver, eg. btcpayserver/btcpayserver:version)
|
||||
BTCPAY_UPDATE_CLEAN: Clean (prune) all old BTCPayServer images after an update. WARNING: also removes all non-BTCPayServer images! (default: true)
|
||||
BTCPAY_PROTOCOL: Allows you to specify the external transport protocol of BTCPayServer. (Default: https)
|
||||
BTCPAY_ADDITIONAL_HOSTS: Allows you to specify additional domains to your BTCPayServer with https support if enabled. (eg. example2.com,example3.com)
|
||||
Add-on specific variables:
|
||||
LIBREPATRON_HOST: If libre patron is activated with opt-add-librepatron, the hostname of your libre patron website (eg. librepatron.example.com)
|
||||
ZAMMAD_HOST: If zammad is activated with opt-add-zammad, the hostname of your zammad website (eg. zammad.example.com)
|
||||
WOOCOMMERCE_HOST: If woocommerce is activated with opt-add-woocommerce, the hostname of your woocommerce website (eg. store.example.com)
|
||||
BTCPAYGEN_EXCLUDE_FRAGMENTS: Semicolon-separated list of fragments you want to forcefully exclude (eg. litecoin-clightning)
|
||||
BTCTRANSMUTER_HOST: If btc transmuter is activated with opt-add-btctransmuter, the hostname of your btc transmuter website (eg. store.example.com)
|
||||
TOR_RELAY_NICKNAME: If tor relay is activated with opt-add-tor-relay, the relay nickname
|
||||
TOR_RELAY_EMAIL: If tor relay is activated with opt-add-tor-relay, the email for Tor to contact you regarding your relay
|
||||
CHATWOOT_HOST: If chatwoot is activated with opt-add-chatwoot, the hostname of your chatwoot website (eg. store.example.com)
|
||||
FIREFLY_HOST: If fireflyiii is activated with opt-add-fireflyiii, the hostname of your libre patron website (eg. firefly.example.com)
|
||||
CLOUDFLARE_TUNNEL_TOKEN: Used to expose your instance to clearnet with a Cloudflare Argo Tunnel
|
||||
END
|
||||
}
|
||||
START=""
|
||||
@ -172,48 +179,33 @@ if [ ! -z "$BTCPAY_ADDITIONAL_HOSTS" ] && [[ "$BTCPAY_ADDITIONAL_HOSTS" == *[';'
|
||||
return;
|
||||
fi
|
||||
|
||||
if [ ! -z "$BTCPAY_ADDITIONAL_HOSTS" ] && [[ "$BTCPAY_ADDITIONAL_HOSTS" == .onion* ]]; then
|
||||
echo "$BTCPAY_ADDITIONAL_HOSTS should not contains onion hosts, additional hosts is only for getting https certificates, those are not available to tor addresses"
|
||||
if [ ! -z "$BTCPAY_ADDITIONAL_HOSTS" ] && [[ "$BTCPAY_ADDITIONAL_HOSTS" == .onion* ]]; then
|
||||
echo "$BTCPAY_ADDITIONAL_HOSTS should not contain onion hosts, additional hosts is only for getting https certificates, those are not available to tor addresses"
|
||||
return;
|
||||
fi
|
||||
######### Migration: old pregen environment to new environment ############
|
||||
if [[ ! -z $BTCPAY_DOCKER_COMPOSE ]] && [[ ! -z $DOWNLOAD_ROOT ]] && [[ -z $BTCPAYGEN_OLD_PREGEN ]]; then
|
||||
echo "Your deployment is too old, you need to migrate by following instructions on this link https://github.com/btcpayserver/btcpayserver-docker/tree/master#i-deployed-before-btcpay-setupsh-existed-before-may-17-can-i-migrate-to-this-new-system"
|
||||
return
|
||||
fi
|
||||
#########################################################
|
||||
|
||||
[[ $LETSENCRYPT_EMAIL == *@example.com ]] && echo "LETSENCRYPT_EMAIL ends with @example.com, setting to empty email instead" && LETSENCRYPT_EMAIL=""
|
||||
|
||||
: "${LETSENCRYPT_EMAIL:=}"
|
||||
: "${BTCPAYGEN_OLD_PREGEN:=false}"
|
||||
: "${NBITCOIN_NETWORK:=mainnet}"
|
||||
: "${BTCPAYGEN_CRYPTO1:=btc}"
|
||||
: "${BTCPAYGEN_REVERSEPROXY:=nginx}"
|
||||
: "${BTCPAYGEN_LIGHTNING:=none}"
|
||||
: "${REVERSEPROXY_DEFAULT_HOST:=none}"
|
||||
: "${ACME_CA_URI:=https://acme-v01.api.letsencrypt.org/directory}"
|
||||
: "${ACME_CA_URI:=production}"
|
||||
: "${BTCPAY_PROTOCOL:=https}"
|
||||
: "${BTCPAY_ADDITIONAL_HOSTS:=}"
|
||||
: "${REVERSEPROXY_HTTP_PORT:=80}"
|
||||
: "${REVERSEPROXY_HTTPS_PORT:=443}"
|
||||
: "${BTCPAY_ENABLE_SSH:=false}"
|
||||
: "${PIHOLE_SERVERIP:=}"
|
||||
: "${CLOUDFLARE_TUNNEL_TOKEN:=}"
|
||||
: "${BTCPAY_UPDATE_CLEAN:=true}"
|
||||
|
||||
OLD_BTCPAY_DOCKER_COMPOSE="$BTCPAY_DOCKER_COMPOSE"
|
||||
ORIGINAL_DIRECTORY="$(pwd)"
|
||||
BTCPAY_BASE_DIRECTORY="$(dirname "$(pwd)")"
|
||||
|
||||
if [[ "$BTCPAYGEN_OLD_PREGEN" == "true" ]]; then
|
||||
if [[ $(dirname $BTCPAY_DOCKER_COMPOSE) == *Production ]]; then
|
||||
BTCPAY_DOCKER_COMPOSE="$(pwd)/Production/docker-compose.generated.yml"
|
||||
elif [[ $(dirname $BTCPAY_DOCKER_COMPOSE) == *Production-NoReverseProxy ]]; then
|
||||
BTCPAY_DOCKER_COMPOSE="$(pwd)/Production-NoReverseProxy/docker-compose.generated.yml"
|
||||
else
|
||||
BTCPAY_DOCKER_COMPOSE="$(pwd)/Production/docker-compose.generated.yml"
|
||||
fi
|
||||
else # new deployments must be in Generated
|
||||
BTCPAY_DOCKER_COMPOSE="$(pwd)/Generated/docker-compose.generated.yml"
|
||||
fi
|
||||
BTCPAY_DOCKER_COMPOSE="$(pwd)/Generated/docker-compose.generated.yml"
|
||||
|
||||
BTCPAY_ENV_FILE="$BTCPAY_BASE_DIRECTORY/.env"
|
||||
|
||||
@ -238,7 +230,7 @@ if $BTCPAY_ENABLE_SSH && [[ "$BTCPAY_HOST_SSHAUTHORIZEDKEYS" ]]; then
|
||||
touch $BTCPAY_HOST_SSHAUTHORIZEDKEYS
|
||||
fi
|
||||
BTCPAY_SSHAUTHORIZEDKEYS="/datadir/host_authorized_keys"
|
||||
BTCPAY_SSHKEYFILE="/datadir/host_id_rsa"
|
||||
BTCPAY_SSHKEYFILE="/datadir/host_id_ed25519"
|
||||
use_ssh=true
|
||||
fi
|
||||
|
||||
@ -274,13 +266,16 @@ echo "
|
||||
Parameters passed:
|
||||
BTCPAY_PROTOCOL:$BTCPAY_PROTOCOL
|
||||
BTCPAY_HOST:$BTCPAY_HOST
|
||||
BTCPAY_LIGHTNING_HOST: $BTCPAY_LIGHTNING_HOST
|
||||
BTCPAY_ADDITIONAL_HOSTS:$BTCPAY_ADDITIONAL_HOSTS
|
||||
REVERSEPROXY_HTTP_PORT:$REVERSEPROXY_HTTP_PORT
|
||||
REVERSEPROXY_HTTPS_PORT:$REVERSEPROXY_HTTPS_PORT
|
||||
REVERSEPROXY_DEFAULT_HOST:$REVERSEPROXY_DEFAULT_HOST
|
||||
LIBREPATRON_HOST:$LIBREPATRON_HOST
|
||||
ZAMMAD_HOST:$ZAMMAD_HOST
|
||||
WOOCOMMERCE_HOST:$WOOCOMMERCE_HOST
|
||||
BTCTRANSMUTER_HOST:$BTCTRANSMUTER_HOST
|
||||
CHATWOOT_HOST:$CHATWOOT_HOST
|
||||
BTCPAY_ENABLE_SSH:$BTCPAY_ENABLE_SSH
|
||||
BTCPAY_HOST_SSHKEYFILE:$BTCPAY_HOST_SSHKEYFILE
|
||||
LETSENCRYPT_EMAIL:$LETSENCRYPT_EMAIL
|
||||
@ -300,13 +295,17 @@ BTCPAYGEN_LIGHTNING:$BTCPAYGEN_LIGHTNING
|
||||
BTCPAYGEN_ADDITIONAL_FRAGMENTS:$BTCPAYGEN_ADDITIONAL_FRAGMENTS
|
||||
BTCPAYGEN_EXCLUDE_FRAGMENTS:$BTCPAYGEN_EXCLUDE_FRAGMENTS
|
||||
BTCPAY_IMAGE:$BTCPAY_IMAGE
|
||||
BTCPAY_UPDATE_CLEAN:$BTCPAY_UPDATE_CLEAN
|
||||
ACME_CA_URI:$ACME_CA_URI
|
||||
TOR_RELAY_NICKNAME: $TOR_RELAY_NICKNAME
|
||||
TOR_RELAY_EMAIL: $TOR_RELAY_EMAIL
|
||||
PIHOLE_SERVERIP: $PIHOLE_SERVERIP
|
||||
FIREFLY_HOST: $FIREFLY_HOST
|
||||
----------------------
|
||||
Additional exported variables:
|
||||
BTCPAY_DOCKER_COMPOSE=$BTCPAY_DOCKER_COMPOSE
|
||||
BTCPAY_BASE_DIRECTORY=$BTCPAY_BASE_DIRECTORY
|
||||
BTCPAY_ENV_FILE=$BTCPAY_ENV_FILE
|
||||
BTCPAYGEN_OLD_PREGEN=$BTCPAYGEN_OLD_PREGEN
|
||||
BTCPAY_SSHKEYFILE=$BTCPAY_SSHKEYFILE
|
||||
BTCPAY_SSHAUTHORIZEDKEYS=$BTCPAY_SSHAUTHORIZEDKEYS
|
||||
BTCPAY_HOST_SSHAUTHORIZEDKEYS:$BTCPAY_HOST_SSHAUTHORIZEDKEYS
|
||||
@ -332,7 +331,6 @@ touch "$BASH_PROFILE_SCRIPT"
|
||||
echo "
|
||||
#!/bin/bash
|
||||
export COMPOSE_HTTP_TIMEOUT=\"180\"
|
||||
export BTCPAYGEN_OLD_PREGEN=\"$BTCPAYGEN_OLD_PREGEN\"
|
||||
export BTCPAYGEN_CRYPTO1=\"$BTCPAYGEN_CRYPTO1\"
|
||||
export BTCPAYGEN_CRYPTO2=\"$BTCPAYGEN_CRYPTO2\"
|
||||
export BTCPAYGEN_CRYPTO3=\"$BTCPAYGEN_CRYPTO3\"
|
||||
@ -351,6 +349,7 @@ export BTCPAY_BASE_DIRECTORY=\"$BTCPAY_BASE_DIRECTORY\"
|
||||
export BTCPAY_ENV_FILE=\"$BTCPAY_ENV_FILE\"
|
||||
export BTCPAY_HOST_SSHKEYFILE=\"$BTCPAY_HOST_SSHKEYFILE\"
|
||||
export BTCPAY_ENABLE_SSH=$BTCPAY_ENABLE_SSH
|
||||
export PIHOLE_SERVERIP=\"$PIHOLE_SERVERIP\"
|
||||
if cat \"\$BTCPAY_ENV_FILE\" &> /dev/null; then
|
||||
while IFS= read -r line; do
|
||||
! [[ \"\$line\" == \"#\"* ]] && [[ \"\$line\" == *\"=\"* ]] && export \"\$line\"
|
||||
@ -380,7 +379,7 @@ if ! [[ -x "$(command -v docker)" ]] || ! [[ -x "$(command -v docker-compose)" ]
|
||||
2>error
|
||||
fi
|
||||
if ! [[ -x "$(command -v docker)" ]]; then
|
||||
if [[ "$(uname -m)" == "x86_64" ]] || [[ "$(uname -m)" == "armv7l" ]]; then
|
||||
if [[ "$(uname -m)" == "x86_64" ]] || [[ "$(uname -m)" == "armv7l" ]] || [[ "$(uname -m)" == "aarch64" ]]; then
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
# Mac OS
|
||||
if ! [[ -x "$(command -v brew)" ]]; then
|
||||
@ -404,33 +403,13 @@ if ! [[ -x "$(command -v docker)" ]] || ! [[ -x "$(command -v docker-compose)" ]
|
||||
sh get-docker.sh
|
||||
rm get-docker.sh
|
||||
fi
|
||||
elif [[ "$(uname -m)" == "aarch64" ]]; then
|
||||
echo "Trying to install docker for armv7 on a aarch64 board..."
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
||||
RELEASE=$(lsb_release -cs)
|
||||
if [[ "$RELEASE" == "bionic" ]]; then
|
||||
RELEASE=xenial
|
||||
fi
|
||||
if [[ -x "$(command -v dpkg)" ]]; then
|
||||
dpkg --add-architecture armhf
|
||||
fi
|
||||
add-apt-repository "deb https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $RELEASE stable"
|
||||
apt-get update -y
|
||||
# zlib1g:armhf is needed for docker-compose, but we install it here as we changed dpkg here
|
||||
apt-get install -y docker-ce:armhf zlib1g:armhf
|
||||
else
|
||||
echo "Unsupported architecture $(uname -m)"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! [[ -x "$(command -v docker-compose)" ]]; then
|
||||
if ! [[ "$OSTYPE" == "darwin"* ]] && $HAS_DOCKER; then
|
||||
echo "Trying to install docker-compose by using the docker-compose-builder ($(uname -m))"
|
||||
! [[ -d "dist" ]] && mkdir dist
|
||||
docker run --rm -v "$(pwd)/dist:/dist" btcpayserver/docker-compose-builder:1.24.1
|
||||
mv dist/docker-compose /usr/local/bin/docker-compose
|
||||
chmod +x /usr/local/bin/docker-compose
|
||||
rm -rf "dist"
|
||||
fi
|
||||
fi
|
||||
docker_update
|
||||
fi
|
||||
|
||||
if $HAS_DOCKER; then
|
||||
@ -446,10 +425,11 @@ if $HAS_DOCKER; then
|
||||
fi
|
||||
|
||||
# Generate the docker compose in BTCPAY_DOCKER_COMPOSE
|
||||
$HAS_DOCKER && . ./build.sh
|
||||
|
||||
if [[ "$BTCPAYGEN_OLD_PREGEN" == "true" ]]; then
|
||||
cp Generated/docker-compose.generated.yml $BTCPAY_DOCKER_COMPOSE
|
||||
if $HAS_DOCKER; then
|
||||
if ! ./build.sh; then
|
||||
echo "Failed to generate the docker-compose"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
# Schedule for reboot
|
||||
|
||||
51
btcpay-teardown.sh
Executable file
51
btcpay-teardown.sh
Executable file
@ -0,0 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
set +x
|
||||
|
||||
if [[ "$0" = "$BASH_SOURCE" ]]; then
|
||||
echo "This script must be sourced \". btcpay-teardown.sh\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo "This script must be run as root after running \"sudo su -\""
|
||||
return
|
||||
fi
|
||||
|
||||
# Verify we are in right folder. If we are not, let's go in the parent folder of the current docker-compose.
|
||||
if ! git rev-parse --git-dir &> /dev/null || [ ! -d "Generated" ]; then
|
||||
if [[ ! -z $BTCPAY_DOCKER_COMPOSE ]]; then
|
||||
cd $(dirname $BTCPAY_DOCKER_COMPOSE)
|
||||
cd ..
|
||||
fi
|
||||
if ! git rev-parse || [[ ! -d "Generated" ]]; then
|
||||
echo "You must run this script inside the git repository of btcpayserver-docker"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "\n🚨 Running this script will completely erase the BTCPay Server instance. Do you wish to perform this action?\n\n"
|
||||
|
||||
read -p "➡️ Confirm by typing 'YES': " confirm
|
||||
|
||||
if [[ "$confirm" != "YES"* ]]; then
|
||||
printf "\n😌 Phew, that was close. Aborting uninstall — thanks for keeping your BTCPay Server!\n\n"
|
||||
return
|
||||
else
|
||||
printf "\n👋 Sad to see you go. Thanks for using BTCPay Server!\n"
|
||||
fi
|
||||
|
||||
BASH_PROFILE_SCRIPT="/etc/profile.d/btcpay-env.sh"
|
||||
ORIGINAL_DIRECTORY="$(pwd)"
|
||||
BTCPAY_BASE_DIRECTORY="$(dirname "$(pwd)")"
|
||||
|
||||
printf "\nℹ️ Stopping BTCPay Server and removing related Docker volumes and networks …\n\n"
|
||||
docker-compose -f $BTCPAY_DOCKER_COMPOSE down -v
|
||||
docker system prune -f
|
||||
|
||||
printf "\nℹ️ Removing BTCPay Server files …\n\n"
|
||||
cd $BTCPAY_BASE_DIRECTORY
|
||||
rm -rf $ORIGINAL_DIRECTORY
|
||||
rm $BASH_PROFILE_SCRIPT $BTCPAY_ENV_FILE
|
||||
|
||||
printf "\n✅ Teardown done, successfully uninstalled BTCPay Server!\n\n"
|
||||
@ -13,16 +13,6 @@ fi
|
||||
|
||||
. ${BASH_PROFILE_SCRIPT}
|
||||
|
||||
if [ ! -z $BTCPAY_DOCKER_COMPOSE ] && [ ! -z $DOWNLOAD_ROOT ] && [ -z $BTCPAYGEN_OLD_PREGEN ]; then
|
||||
echo "Your deployment is too old, you need to migrate by following instructions on this link https://github.com/btcpayserver/btcpayserver-docker/tree/master#i-deployed-before-btcpay-setupsh-existed-before-may-17-can-i-migrate-to-this-new-system"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [[ $BTCPAY_DOCKER_COMPOSE != *docker-compose.generated.yml ]]; then
|
||||
echo "Your deployment is too old, you need to migrate by following instructions on this link https://github.com/btcpayserver/btcpayserver-docker/tree/master#i-deployed-before-btcpay-setupsh-existed-before-may-17-can-i-migrate-to-this-new-system"
|
||||
exit
|
||||
fi
|
||||
|
||||
cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker"
|
||||
|
||||
if [[ "$1" != "--skip-git-pull" ]]; then
|
||||
@ -39,10 +29,12 @@ if ! [ -f "/etc/docker/daemon.json" ] && [ -w "/etc/docker" ]; then
|
||||
echo "Setting limited log files in /etc/docker/daemon.json"
|
||||
fi
|
||||
|
||||
. ./build.sh
|
||||
if [ "$BTCPAYGEN_OLD_PREGEN" == "true" ]; then
|
||||
cp Generated/docker-compose.generated.yml $BTCPAY_DOCKER_COMPOSE
|
||||
cp Generated/torrc.tmpl "$(dirname "$BTCPAY_DOCKER_COMPOSE")/torrc.tmpl"
|
||||
. helpers.sh
|
||||
docker_update
|
||||
|
||||
if ! ./build.sh; then
|
||||
echo "Failed to generate the docker-compose"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! grep -Fxq "export COMPOSE_HTTP_TIMEOUT=\"180\"" "$BASH_PROFILE_SCRIPT"; then
|
||||
@ -51,10 +43,29 @@ if ! grep -Fxq "export COMPOSE_HTTP_TIMEOUT=\"180\"" "$BASH_PROFILE_SCRIPT"; the
|
||||
echo "Adding COMPOSE_HTTP_TIMEOUT=180 in btcpay-env.sh"
|
||||
fi
|
||||
|
||||
. helpers.sh
|
||||
if [[ "$ACME_CA_URI" == "https://acme-v01.api.letsencrypt.org/directory" ]]; then
|
||||
original_acme="$ACME_CA_URI"
|
||||
export ACME_CA_URI="production"
|
||||
echo "Info: Rewriting ACME_CA_URI from $original_acme to $ACME_CA_URI"
|
||||
fi
|
||||
|
||||
if [[ "$ACME_CA_URI" == "https://acme-staging.api.letsencrypt.org/directory" ]]; then
|
||||
original_acme="$ACME_CA_URI"
|
||||
export ACME_CA_URI="staging"
|
||||
echo "Info: Rewriting ACME_CA_URI from $original_acme to $ACME_CA_URI"
|
||||
fi
|
||||
|
||||
install_tooling
|
||||
|
||||
if $BTCPAY_ENABLE_SSH && [[ "$BTCPAY_SSHKEYFILE" == "/datadir/host_id_rsa" ]]; then
|
||||
BTCPAY_SSHKEYFILE="/datadir/host_id_ed25519"
|
||||
echo "Info: BTCPAY -> Host SSH connection changed ssh keys from rsa to ed25519"
|
||||
fi
|
||||
btcpay_update_docker_env
|
||||
btcpay_up
|
||||
|
||||
set +e
|
||||
docker image prune -af --filter "label!=org.btcpayserver.image=docker-compose-generator"
|
||||
if [ "$BTCPAY_UPDATE_CLEAN" == true ]; then
|
||||
./btcpay-clean.sh
|
||||
fi
|
||||
exit 0
|
||||
|
||||
@ -10,6 +10,7 @@ If ($BTCPAYGEN_DOCKER_IMAGE -eq "btcpayserver/docker-compose-generator:local"){
|
||||
|
||||
docker run -v "$(Get-Location)\Generated:/app/Generated" `
|
||||
-v "$(Get-Location)\docker-compose-generator\docker-fragments:/app/docker-fragments" `
|
||||
-v "$(Get-Location)\docker-compose-generator\crypto-definitions.json:/app/crypto-definitions.json" `
|
||||
-e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" `
|
||||
-e "BTCPAYGEN_CRYPTO2=$BTCPAYGEN_CRYPTO2" `
|
||||
-e "BTCPAYGEN_CRYPTO3=$BTCPAYGEN_CRYPTO3" `
|
||||
@ -30,9 +31,3 @@ docker run -v "$(Get-Location)\Generated:/app/Generated" `
|
||||
If ($BTCPAYGEN_REVERSEPROXY -eq "nginx") {
|
||||
Copy-Item ".\Production\nginx.tmpl" -Destination ".\Generated"
|
||||
}
|
||||
|
||||
If ($BTCPAYGEN_REVERSEPROXY -eq "traefik") {
|
||||
Copy-Item ".\Traefik\traefik.toml" -Destination ".\Generated"
|
||||
|
||||
New-Item ".\Generated\acme.json" -type file
|
||||
}
|
||||
|
||||
9
build.sh
9
build.sh
@ -9,12 +9,14 @@ then
|
||||
else
|
||||
set +e
|
||||
docker pull $BTCPAYGEN_DOCKER_IMAGE
|
||||
docker rmi $(docker images btcpayserver/docker-compose-generator --format "{{.Tag}};{{.ID}}" | grep "^<none>" | cut -f2 -d ';') > /dev/null 2>&1
|
||||
set -e
|
||||
fi
|
||||
|
||||
# This script will run docker-compose-generator in a container to generate the yml files
|
||||
docker run -v "$(pwd)/Generated:/app/Generated" \
|
||||
-v "$(pwd)/docker-compose-generator/docker-fragments:/app/docker-fragments" \
|
||||
-v "$(pwd)/docker-compose-generator/crypto-definitions.json:/app/crypto-definitions.json" \
|
||||
-e "BTCPAYGEN_CRYPTO1=$BTCPAYGEN_CRYPTO1" \
|
||||
-e "BTCPAYGEN_CRYPTO2=$BTCPAYGEN_CRYPTO2" \
|
||||
-e "BTCPAYGEN_CRYPTO3=$BTCPAYGEN_CRYPTO3" \
|
||||
@ -30,6 +32,7 @@ docker run -v "$(pwd)/Generated:/app/Generated" \
|
||||
-e "BTCPAYGEN_LIGHTNING=$BTCPAYGEN_LIGHTNING" \
|
||||
-e "BTCPAYGEN_SUBNAME=$BTCPAYGEN_SUBNAME" \
|
||||
-e "BTCPAY_HOST_SSHAUTHORIZEDKEYS=$BTCPAY_HOST_SSHAUTHORIZEDKEYS" \
|
||||
-e "EPS_XPUB=$EPS_XPUB" \
|
||||
--rm $BTCPAYGEN_DOCKER_IMAGE
|
||||
|
||||
if [ "$BTCPAYGEN_REVERSEPROXY" == "nginx" ]; then
|
||||
@ -38,9 +41,3 @@ fi
|
||||
|
||||
[[ -f "Generated/pull-images.sh" ]] && chmod +x Generated/pull-images.sh
|
||||
[[ -f "Generated/save-images.sh" ]] && chmod +x Generated/save-images.sh
|
||||
|
||||
if [ "$BTCPAYGEN_REVERSEPROXY" == "traefik" ]; then
|
||||
cp Traefik/traefik.toml Generated/traefik.toml
|
||||
:> Generated/acme.json
|
||||
chmod 600 Generated/acme.json
|
||||
fi
|
||||
|
||||
@ -11,7 +11,7 @@ export OLD_HOST=`cat $BTCPAY_ENV_FILE | sed -n 's/^BTCPAY_HOST=\(.*\)$/\1/p'`
|
||||
echo "Changing domain from \"$OLD_HOST\" to \"$NEW_HOST\""
|
||||
|
||||
export BTCPAY_HOST="$NEW_HOST"
|
||||
export ACME_CA_URI="https://acme-v01.api.letsencrypt.org/directory"
|
||||
export ACME_CA_URI="production"
|
||||
[[ "$OLD_HOST" == "$REVERSEPROXY_DEFAULT_HOST" ]] && export REVERSEPROXY_DEFAULT_HOST="$NEW_HOST"
|
||||
pushd . > /dev/null
|
||||
# Modify environment file
|
||||
|
||||
@ -2,7 +2,9 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp2.1</TargetFramework>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<LangVersion>12</LangVersion>
|
||||
<StartupObject>DockerFileBuildHelper.Program</StartupObject>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="YamlDotNet" Version="5.2.1" />
|
||||
|
||||
@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace DockerFileBuildHelper
|
||||
namespace DockerFileBuildHelper
|
||||
{
|
||||
public class DockerInfo
|
||||
{
|
||||
@ -12,11 +8,13 @@ namespace DockerFileBuildHelper
|
||||
public string DockerHubLink { get; set; }
|
||||
public string GitLink { get; set; }
|
||||
public string GitRef { get; set; }
|
||||
public bool SupportedByUs { get; set; }
|
||||
public bool Deprecated { get; set; }
|
||||
public Image Image { get; internal set; }
|
||||
|
||||
public string RawLink { get; set; }
|
||||
public string GetGithubLinkOf(string path)
|
||||
{
|
||||
return $"https://raw.githubusercontent.com/{GitLink.Substring("https://github.com/".Length)}/{GitRef}/{path}";
|
||||
return RawLink ?? $"https://raw.githubusercontent.com/{GitLink.Substring("https://github.com/".Length)}{(GitRef is null ? string.Empty : ("/" + GitRef))}/{path}";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,6 +38,10 @@ namespace DockerFileBuildHelper
|
||||
img.User = match.Groups[1].Length == 0 ? string.Empty : match.Groups[1].Value.Substring(0, match.Groups[1].Value.Length - 1);
|
||||
img.Name = match.Groups[2].Value;
|
||||
img.Tag = match.Groups[3].Value;
|
||||
if (img.Tag.Contains('@'))
|
||||
{
|
||||
img.Tag = img.Tag.Split('@')[0];
|
||||
}
|
||||
if (img.Tag == string.Empty)
|
||||
img.Tag = "latest";
|
||||
return img;
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
using System;
|
||||
using YamlDotNet;
|
||||
using YamlDotNet.Helpers;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using YamlDotNet.RepresentationModel;
|
||||
using YamlDotNet.Serialization;
|
||||
using System.Net.Http;
|
||||
@ -40,9 +39,11 @@ namespace DockerFileBuildHelper
|
||||
foreach (var image in new[]
|
||||
{
|
||||
Image.Parse("btcpayserver/docker-compose-generator"),
|
||||
Image.Parse("btcpayserver/docker-compose-builder:1.24.1"),
|
||||
}.Concat(GetImages(fragmentDirectory)))
|
||||
{
|
||||
// TODO: Ask beldex guys
|
||||
if (image.Name == "beldex")
|
||||
continue;
|
||||
Console.WriteLine($"Image: {image.ToString()}");
|
||||
var info = GetDockerInfo(image);
|
||||
if (info == null)
|
||||
@ -124,7 +125,7 @@ namespace DockerFileBuildHelper
|
||||
if (!string.IsNullOrEmpty(options.READMEOutput))
|
||||
{
|
||||
var readme = File.ReadAllText(options.READMEOutput);
|
||||
var start = readme.IndexOf("| Source |");
|
||||
var start = readme.IndexOf("| Image |");
|
||||
var end = start;
|
||||
for (; end < readme.Length; end++)
|
||||
{
|
||||
@ -142,63 +143,52 @@ namespace DockerFileBuildHelper
|
||||
|
||||
StringBuilder tb = new StringBuilder();
|
||||
tb.Append(readme.Substring(0, start));
|
||||
tb.AppendLine("| Source | Image | Version | x64 | arm32v7 | arm64v8 | links |");
|
||||
tb.AppendLine("|---|---|---|:-:|:-:|:-:|:-:|");
|
||||
dockerInfos = dockerInfos.OrderBy(i => i.Image.Source).ToList();
|
||||
|
||||
// Make sure bitcoin appears before shitcoin
|
||||
PushToEnd(2, dockerInfos);
|
||||
PushToEnd(2, dockerInfos);
|
||||
PushToEnd(7, dockerInfos);
|
||||
PushToEnd(7, dockerInfos);
|
||||
|
||||
foreach (var image in dockerInfos)
|
||||
{
|
||||
string source = "*";
|
||||
if (image.Image.Source != null)
|
||||
{
|
||||
source = Path.GetFileName(image.Image.Source);
|
||||
}
|
||||
tb.Append($"| {source} | {image.Image.ToString(false)} | {image.Image.Tag} |");
|
||||
if (!string.IsNullOrEmpty(image.DockerFilePath))
|
||||
{
|
||||
tb.Append($" [✔️]({image.GetGithubLinkOf(image.DockerFilePath)}) |");
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.Append($" ️❌ |");
|
||||
}
|
||||
if (!string.IsNullOrEmpty(image.DockerFilePathARM32v7))
|
||||
{
|
||||
tb.Append($" [✔️]({image.GetGithubLinkOf(image.DockerFilePathARM32v7)}) |");
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.Append($" ️❌ |");
|
||||
}
|
||||
if (!string.IsNullOrEmpty(image.DockerFilePathARM64v8))
|
||||
{
|
||||
tb.Append($" [✔️]({image.GetGithubLinkOf(image.DockerFilePathARM64v8)}) |");
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.Append($" ️❌ |");
|
||||
}
|
||||
tb.AppendLine($" [Github]({image.GitLink}) - [DockerHub]({image.DockerHubLink}) |");
|
||||
}
|
||||
tb.AppendLine("| Image | Version | x64 | arm32v7 | arm64v8 | links |");
|
||||
tb.AppendLine("|---|---|:-:|:-:|:-:|:-:|");
|
||||
dockerInfos = dockerInfos.GroupBy(d => d.Image.ToString(false)).Select(c => c.First()).ToList();
|
||||
RenderTable(tb, dockerInfos.Where(d => d.SupportedByUs));
|
||||
RenderTable(tb, dockerInfos.Where(d => !d.SupportedByUs));
|
||||
tb.Append(readme.Substring(end));
|
||||
|
||||
// RenderTable(tb, dockerInfos.Where(d => !d.SupportedByUs));
|
||||
File.WriteAllText(options.READMEOutput, tb.ToString());
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void PushToEnd(int index, List<DockerInfo> dockerInfos)
|
||||
void RenderTable(StringBuilder tb, IEnumerable<DockerInfo> dockerInfos)
|
||||
{
|
||||
var temp = dockerInfos[index];
|
||||
dockerInfos.RemoveAt(index);
|
||||
dockerInfos.Add(temp);
|
||||
dockerInfos = dockerInfos.OrderBy(i => i.Image.Source).ToList();
|
||||
foreach (var image in dockerInfos)
|
||||
{
|
||||
if (image.Deprecated) continue;
|
||||
tb.Append($"| {image.Image.ToString(false)} | {image.Image.Tag} |");
|
||||
if (!string.IsNullOrEmpty(image.DockerFilePath))
|
||||
{
|
||||
tb.Append($" [✔️]({image.GetGithubLinkOf(image.DockerFilePath)}) |");
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.Append($" ️❌ |");
|
||||
}
|
||||
if (!string.IsNullOrEmpty(image.DockerFilePathARM32v7))
|
||||
{
|
||||
tb.Append($" [✔️]({image.GetGithubLinkOf(image.DockerFilePathARM32v7)}) |");
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.Append($" ️❌ |");
|
||||
}
|
||||
if (!string.IsNullOrEmpty(image.DockerFilePathARM64v8))
|
||||
{
|
||||
tb.Append($" [✔️]({image.GetGithubLinkOf(image.DockerFilePathARM64v8)}) |");
|
||||
}
|
||||
else
|
||||
{
|
||||
tb.Append($" ️❌ |");
|
||||
}
|
||||
tb.AppendLine($" [Github]({image.GitLink}) - [DockerHub]({image.DockerHubLink}) |");
|
||||
}
|
||||
}
|
||||
|
||||
HttpClient client = new HttpClient();
|
||||
@ -244,46 +234,144 @@ namespace DockerFileBuildHelper
|
||||
retry:
|
||||
switch (name)
|
||||
{
|
||||
case "pihole":
|
||||
dockerInfo.GitLink = "https://github.com/pi-hole/docker-pi-hole";
|
||||
dockerInfo.DockerFilePath = $"src/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"src/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"src/Dockerfile";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "eps":
|
||||
dockerInfo.DockerFilePath = $"EPS/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"EPS/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"EPS/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"EPS/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "woocommerce":
|
||||
dockerInfo.DockerFilePath = $"WooCommerce/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"WooCommerce/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"WooCommerce/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "cloudflared":
|
||||
dockerInfo.DockerFilePath = $"Cloudflared/{NoRevision(image.Tag)}/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = dockerInfo.DockerFilePath;
|
||||
dockerInfo.DockerFilePathARM64v8 = dockerInfo.DockerFilePath;
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Cloudflared/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "joinmarket":
|
||||
dockerInfo.DockerFilePath = $"JoinMarket/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"JoinMarket/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"JoinMarket/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"JoinMarket/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "btglnd":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/vutov/lnd";
|
||||
dockerInfo.GitRef = "master";
|
||||
break;
|
||||
case "docker-compose-builder":
|
||||
dockerInfo.DockerFilePath = "linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/docker-compose-builder";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
case "docker-compose":
|
||||
dockerInfo.DockerFilePath = $"docker-compose/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"docker-compose/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"docker-compose/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"docker-compose/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "docker-compose-generator":
|
||||
dockerInfo.DockerFilePath = "docker-compose-generator/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "docker-compose-generator/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.DockerFilePath = "docker-compose-generator/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "docker-compose-generator/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "docker-compose-generator/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver-docker";
|
||||
dockerInfo.GitRef = $"dcg-latest";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "shopify-app-deployer":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/shopify-app";
|
||||
dockerInfo.GitRef = image.Tag;
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "mwebd":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/ltcmweb/btcpayserver-ltcmweb-plugin";
|
||||
dockerInfo.GitRef = "main";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "tallycoin_connect":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile.arm32v7";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile.arm64v8";
|
||||
dockerInfo.GitLink = "https://github.com/djbooth007/tallycoin_connect";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "lnd_lit":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/lightninglabs/lightning-terminal";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "mempool":
|
||||
dockerInfo.DockerFilePath = "docker/frontend/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "docker/frontend/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "docker/frontend/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/mempool/mempool";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "docker-bitcoingold":
|
||||
dockerInfo.DockerFilePath = $"bitcoingold/{image.Tag}/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/Vutov/docker-bitcoin";
|
||||
dockerInfo.GitRef = "master";
|
||||
break;
|
||||
case "snapdrop":
|
||||
dockerInfo.DockerFilePath = $"Snapdrop/{image.Tag}/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Snapdrop/{image.Tag}/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Snapdrop/{image.Tag}/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Snapdrop/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "lightning":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "contrib/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "contrib/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/lightning";
|
||||
dockerInfo.GitRef = $"basedon-{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "groestlcoin/lightning":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/Groestlcoin/lightning";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
break;
|
||||
case "chatwoot":
|
||||
dockerInfo.DockerFilePath = $"docker/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/chatwoot/chatwoot";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "lightning-charge":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/ElementsProject/lightning-charge";
|
||||
dockerInfo.GitRef = $"v{image.Tag.Replace("-standalone", "")}";
|
||||
dockerInfo.GitRef = NoRevision($"v{image.Tag.Replace("-standalone", "")}");
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "docker-bitcoinplus":
|
||||
dockerInfo.DockerFilePath = $"bitcoinplus/{image.Tag}/Dockerfile";
|
||||
@ -305,18 +393,30 @@ namespace DockerFileBuildHelper
|
||||
dockerInfo.GitLink = "https://github.com/JeffVandrewJr/patron";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
break;
|
||||
case "electrumx":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/lukechilds/docker-electrumx";
|
||||
dockerInfo.GitRef = $"master";
|
||||
break;
|
||||
case "eclair":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/ACINQ/eclair";
|
||||
dockerInfo.GitRef = $"v{image.Tag.Substring("release-".Length)}";
|
||||
break;
|
||||
case "groestlcoin/eclair":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/Groestlcoin/eclair";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
break;
|
||||
case "isso":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/JeffVandrewJr/isso";
|
||||
dockerInfo.GitRef = $"patron.{image.Tag.Substring("atron.".Length)}";
|
||||
break;
|
||||
case "docker-woocommerce":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/docker-woocommerce";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
break;
|
||||
case "mariadb":
|
||||
dockerInfo.DockerFilePath = $"{image.Tag}/Dockerfile";
|
||||
// 10.5.8 -> 10.5
|
||||
var tag = Regex.Match(image.Tag, "\\d*\\.\\d*");
|
||||
dockerInfo.DockerFilePath = $"{tag.Value}/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/docker-library/mariadb";
|
||||
dockerInfo.GitRef = $"master";
|
||||
break;
|
||||
@ -325,67 +425,147 @@ namespace DockerFileBuildHelper
|
||||
dockerInfo.GitLink = "https://github.com/ChekaZ/docker";
|
||||
dockerInfo.GitRef = "master";
|
||||
break;
|
||||
case "phoenixd":
|
||||
dockerInfo.DockerFilePath = ".docker/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = ".docker/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = ".docker/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/ACINQ/phoenixd";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "lightwalletd":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/zcash/lightwalletd";
|
||||
dockerInfo.GitRef = $"master";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "zebra":
|
||||
dockerInfo.DockerFilePath = "docker/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/ZcashFoundation/zebra";
|
||||
dockerInfo.GitRef = $"main";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "zcash-walletd":
|
||||
dockerInfo.DockerFilePath = "docker/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/elemental-pay/zcash-walletd";
|
||||
dockerInfo.GitRef = $"feat/data-config";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "lnd":
|
||||
dockerInfo.DockerFilePath = "linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/lnd";
|
||||
dockerInfo.GitRef = $"basedon-{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "groestlcoin/lnd":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/Groestlcoin/lnd";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "monero":
|
||||
dockerInfo.DockerFilePath = $"Monero/{NoRevision(image.Tag)}/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Monero/{NoRevision(image.Tag)}/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Monero/{NoRevision(image.Tag)}/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Monero/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "bitcoin":
|
||||
dockerInfo.DockerFilePath = $"Bitcoin/{image.Tag}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Bitcoin/{image.Tag}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Bitcoin/{image.Tag}/linuxarm64v8.Dockerfile";
|
||||
{
|
||||
var tagNoRevision = image.Tag.Split('-').First();
|
||||
dockerInfo.DockerFilePath = $"Bitcoin/{tagNoRevision}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Bitcoin/{tagNoRevision}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Bitcoin/{tagNoRevision}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Bitcoin/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
}
|
||||
case "bitcoinknots":
|
||||
{
|
||||
var tagNoRevision = image.Tag.Split('-').First();
|
||||
dockerInfo.DockerFilePath = $"BitcoinKnots/{tagNoRevision}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"BitcoinKnots/{tagNoRevision}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"BitcoinKnots/{tagNoRevision}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"BitcoinKnots/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
}
|
||||
case "elements":
|
||||
{
|
||||
var tagNoRevision = image.Tag.Split('-').First();
|
||||
dockerInfo.DockerFilePath = $"Elements/{tagNoRevision}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Elements/{tagNoRevision}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Elements/{tagNoRevision}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Elements/{image.Tag}";
|
||||
break;
|
||||
}
|
||||
case "tor":
|
||||
dockerInfo.DockerFilePath = $"Tor/{image.Tag}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Tor/{image.Tag}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Tor/{image.Tag}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Tor/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "dash":
|
||||
dockerInfo.DockerFilePath = $"Dash/{image.Tag}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dash/{image.Tag}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dash/{image.Tag}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Dash/{image.Tag}";
|
||||
break;
|
||||
case "btcpayserver":
|
||||
dockerInfo.DockerFilePath = "amd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "rtl":
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile.arm32v7";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile.arm64v8";
|
||||
dockerInfo.GitLink = "https://github.com/ShahanaFarooqui/RTL";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/Ride-The-Lightning/RTL";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "nbxplorer":
|
||||
dockerInfo.DockerFilePath = "Dockerfile.linuxamd64";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile.linuxarm32v7";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile.linuxarm64v8";
|
||||
dockerInfo.DockerFilePath = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/dgarage/nbxplorer";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "ndlc-cli":
|
||||
dockerInfo.DockerFilePath = "amd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/dgarage/ndlc";
|
||||
dockerInfo.GitRef = $"releases/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "btctransmuter":
|
||||
dockerInfo.DockerFilePath = "BtcTransmuter/Dockerfile.linuxamd64";
|
||||
dockerInfo.DockerFilePathARM32v7 = "BtcTransmuter/Dockerfile.linuxarm32v7";
|
||||
dockerInfo.DockerFilePath = "Dockerfiles/amd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfiles/arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfiles/arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/btctransmuter";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "dogecoin":
|
||||
dockerInfo.DockerFilePath = $"dogecoin/{image.Tag}/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/rockstardev/docker-bitcoin";
|
||||
dockerInfo.GitRef = "feature/dogecoin";
|
||||
dockerInfo.DockerFilePath = $"Dogecoin/{image.Tag}/linuxamd64.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Dogecoin/{image.Tag}";
|
||||
break;
|
||||
case "docker-bitcore":
|
||||
dockerInfo.DockerFilePath = "btx-debian/Dockerfile";
|
||||
dockerInfo.DockerFilePath = "docker-bitcored/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/dalijolijo/btcpayserver-docker-bitcore";
|
||||
dockerInfo.GitRef = "master";
|
||||
break;
|
||||
@ -394,10 +574,12 @@ namespace DockerFileBuildHelper
|
||||
dockerInfo.GitLink = "https://github.com/ChekaZ/docker";
|
||||
dockerInfo.GitRef = "master";
|
||||
break;
|
||||
case "docker-groestlcoin":
|
||||
dockerInfo.DockerFilePath = $"groestlcoin/{image.Tag}/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/NicolasDorier/docker-bitcoin";
|
||||
dockerInfo.GitRef = "master";
|
||||
case "btcpayserver/groestlcoin":
|
||||
dockerInfo.DockerFilePath = $"Groestlcoin/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Groestlcoin/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Groestlcoin/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Groestlcoin/{NoRevision(image.Tag)}";
|
||||
break;
|
||||
case "docker-viacoin":
|
||||
dockerInfo.DockerFilePath = $"viacoin/{image.Tag}/docker-viacoin";
|
||||
@ -407,6 +589,7 @@ namespace DockerFileBuildHelper
|
||||
case "litecoin":
|
||||
dockerInfo.DockerFilePath = $"Litecoin/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Litecoin/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Litecoin/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Litecoin/{image.Tag}";
|
||||
break;
|
||||
@ -416,25 +599,28 @@ namespace DockerFileBuildHelper
|
||||
dockerInfo.GitRef = "master";
|
||||
break;
|
||||
case "nginx":
|
||||
dockerInfo.DockerFilePath = $"stable/stretch/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"stable/stretch/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"stable/stretch/Dockerfile";
|
||||
dockerInfo.DockerFilePath = $"stable/debian/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"stable/debian/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"stable/debian/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/nginxinc/docker-nginx";
|
||||
dockerInfo.GitRef = image.Tag;
|
||||
dockerInfo.GitRef = "1.23.2"; // In reality we are on 1.23.3, but they didn't published yet
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "docker-gen":
|
||||
dockerInfo.DockerFilePath = $"linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
|
||||
dockerInfo.DockerFilePath = $"Dockerfile.alpine";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile.alpine";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile.alpine";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/docker-gen";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "letsencrypt-nginx-proxy-companion":
|
||||
dockerInfo.DockerFilePath = $"linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"linuxarm64v8.Dockerfile";
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/docker-letsencrypt-nginx-proxy-companion";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "btcqbo":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
@ -447,11 +633,12 @@ namespace DockerFileBuildHelper
|
||||
dockerInfo.GitRef = $"f1a8498333ae3ab340b5b39fbac1d7e1dc0d628c";
|
||||
break;
|
||||
case "postgres":
|
||||
dockerInfo.DockerFilePath = $"9.6/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"9.6/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"9.6/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/docker-library/postgres";
|
||||
dockerInfo.GitRef = $"b7cb3c6eacea93be2259381033be3cc435649369";
|
||||
dockerInfo.DockerFilePath = $"Postgres/{NoRevision(image.Tag)}/linuxamd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Postgres/{NoRevision(image.Tag)}/linuxarm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Postgres/{NoRevision(image.Tag)}/linuxarm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/dockerfile-deps";
|
||||
dockerInfo.GitRef = $"Postgres/{image.Tag}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "traefik":
|
||||
dockerInfo.DockerFilePath = $"scratch/Dockerfile";
|
||||
@ -460,8 +647,160 @@ namespace DockerFileBuildHelper
|
||||
break;
|
||||
case "spark-wallet":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/shesek/spark-wallet";
|
||||
dockerInfo.GitRef = $"v{image.Tag.Split('-')[0]}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "c-lightning-rest":
|
||||
dockerInfo.DockerFilePath = $"amd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/Ride-The-Lightning/c-lightning-REST";
|
||||
dockerInfo.GitRef = $"v{image.Tag.Split('-')[0]}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "btcpayserver-configurator":
|
||||
dockerInfo.DockerFilePath = $"Dockerfiles/amd64.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfiles/arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfiles/arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/btcpayserver/btcpayserver-configurator";
|
||||
dockerInfo.GitRef = $"v{image.Tag.Split('-')[0]}";
|
||||
dockerInfo.SupportedByUs = true;
|
||||
break;
|
||||
case "thunderhub":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = "Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = "Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/apotdevin/thunderhub";
|
||||
dockerInfo.GitRef = $"v{image.Tag.Split('-')[1]}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "python-teos":
|
||||
dockerInfo.DockerFilePath = $"docker/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"docker/arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"docker/arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/talaia-labs/python-teos";
|
||||
dockerInfo.GitRef = $"master";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "benjaminchodroff/rust-teos":
|
||||
dockerInfo.DockerFilePath = $"docker/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/benjaminchodroff/rust-teos";
|
||||
dockerInfo.GitRef = $"master";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-postgresql-"):
|
||||
dockerInfo.DockerFilePath = $"containers/zammad-postgresql/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/zammad/zammad-docker-compose";
|
||||
dockerInfo.GitRef = $"ff20084ce2829486076e9781fe27407ca6cc09bb";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-elasticsearch-"):
|
||||
dockerInfo.DockerFilePath = $"containers/zammad-elasticsearch/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/zammad/zammad-docker-compose";
|
||||
dockerInfo.GitRef = $"ff20084ce2829486076e9781fe27407ca6cc09bb";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "zammad/zammad-docker-compose" when image.Tag.StartsWith("zammad-"):
|
||||
dockerInfo.DockerFilePath = $"containers/zammad/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/zammad/zammad-docker-compose";
|
||||
dockerInfo.GitRef = $"ff20084ce2829486076e9781fe27407ca6cc09bb";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "memcached" when image.Tag.EndsWith("alpine"):
|
||||
dockerInfo.DockerFilePath = $"alpine/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/docker-library/memcached";
|
||||
dockerInfo.GitRef = $"eb38bf28263b8e5bb7367797cb7b181b65d769bd";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "bwt":
|
||||
dockerInfo.DockerFilePath = $"docker/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"docker/arm32v7.Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"docker/arm64v8.Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/bwt-dev/bwt";
|
||||
dockerInfo.GitRef = $"v{image.Tag.Split('-')[0]}";
|
||||
break;
|
||||
case "sphinx-relay":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/stakwork/sphinx-relay";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
break;
|
||||
case "lndhub":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/BlueWallet/LndHub";
|
||||
dockerInfo.GitRef = $"{image.Tag.Split("@")[0]}";
|
||||
dockerInfo.SupportedByUs = false;
|
||||
dockerInfo.Deprecated = true;
|
||||
break;
|
||||
case "fireflyiii/core":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://dev.azure.com/Firefly-III/_git/MainImage";
|
||||
dockerInfo.RawLink = "https://dev.azure.com/Firefly-III/66fb773b-063e-42d7-b6a5-e7729a22e8b3/_apis/git/repositories/e9c3dcf8-4533-4ef1-83cc-75527cab3377/items?path=%2FDockerfile&versionDescriptor%5BversionOptions%5D=0&versionDescriptor%5BversionType%5D=0&versionDescriptor%5Bversion%5D=main&resolveLfs=true&%24format=octetStream&api-version=5.0&download=true";
|
||||
dockerInfo.GitRef = null;
|
||||
break;
|
||||
case "lightninglabs/lightning-terminal":
|
||||
dockerInfo.GitLink = "https://github.com/lightninglabs/lightning-terminal";
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
|
||||
dockerInfo.GitRef = image.Tag.Replace("-path-prefix", "");
|
||||
break;
|
||||
case "chatwoot/chatwoot":
|
||||
dockerInfo.DockerFilePath = $"docker/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"docker/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"docker/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/chatwoot/chatwoot";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
break;
|
||||
case "podcastindexorg/podcasting20-helipad":
|
||||
dockerInfo.DockerFilePath = $"umbrel/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"umbrel/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"umbrel/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/Podcastindex-org/helipad";
|
||||
dockerInfo.GitRef = $"{image.Tag}";
|
||||
break;
|
||||
case "kukks/nnostr-relay":
|
||||
dockerInfo.DockerFilePath = $"Relay/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Relay/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Relay/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/kukks/nnostr";
|
||||
dockerInfo.GitRef = $"Relay/{image.Tag}";
|
||||
break;
|
||||
case "mempool/frontend":
|
||||
dockerInfo.DockerFilePath = $"docker/frontend/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"docker/frontend/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"docker/frontend/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/mempool/mempool";
|
||||
dockerInfo.GitRef = image.Tag;
|
||||
break;
|
||||
case "mempool/backend":
|
||||
dockerInfo.DockerFilePath = $"docker/backend/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"docker/backend/Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"docker/backend/Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/mempool/mempool";
|
||||
dockerInfo.GitRef = image.Tag;
|
||||
break;
|
||||
case "timescale/timescaledb":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM32v7 = $"Dockerfile";
|
||||
dockerInfo.DockerFilePathARM64v8 = $"Dockerfile";
|
||||
dockerInfo.GitLink = "https://github.com/timescale/timescaledb-docker";
|
||||
dockerInfo.GitRef = "main";
|
||||
break;
|
||||
case "ghcr.io/bisoncraft/decred":
|
||||
dockerInfo.DockerFilePath = $"Dockerfile.decred";
|
||||
//dockerInfo.DockerFilePathARM32v7 = $"Dockerfile.decred";
|
||||
//dockerInfo.DockerFilePathARM64v8 = $"Dockerfile.decred";
|
||||
dockerInfo.GitLink = "https://github.com/bisoncraft/btcpayserver-decred-plugin";
|
||||
dockerInfo.GitRef = $"v{image.Tag}";
|
||||
break;
|
||||
default:
|
||||
if (firstTry)
|
||||
|
||||
@ -12,5 +12,12 @@ Install [.NET Core SDK](https://dotnet.microsoft.com/download) and run:
|
||||
./run.sh
|
||||
```
|
||||
|
||||
This will build a `build-all.sh` file.
|
||||
Note that the
|
||||
Or using Docker:
|
||||
|
||||
```
|
||||
docker run -it --rm -v `pwd`:/project -w /project/contrib/DockerFileBuildHelper mcr.microsoft.com/dotnet/sdk:2.1 ./run.sh
|
||||
```
|
||||
|
||||
This will build a `build-all.sh` file which you can run locally.
|
||||
|
||||
To update the README table and the `build-all-images.sh` script that's checked into git, replace `run.sh` with `update-repo.sh`.
|
||||
|
||||
1277
contrib/DockerFileBuildHelper/build-all.sh
Normal file
1277
contrib/DockerFileBuildHelper/build-all.sh
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,36 +1,39 @@
|
||||
# Fast sync for Bitcoin
|
||||
# Fast sync Bitcoin for BTCPay Server
|
||||
|
||||
## What problem does Fast Sync solve?
|
||||
|
||||
When you start a new BTCPay Server, you need to synchronize your Bitcoin node from the genesis block.
|
||||
|
||||
Validating from the genesis blocks takes in general 1 or 2 days on affordable servers. (around 10$ per months)
|
||||
Validating from the genesis blocks takes, in general, 1 or 2 days on affordable servers. (around 10$ per month)
|
||||
|
||||
However, on some low powered devices like raspberry PI, synchronization time will take around 2 weeks nowadays. (and it will linearly increase with time)
|
||||
However, synchronization time will take around two weeks on some low-powered devices like a raspberry PI. (and it will linearly increase with time)
|
||||
|
||||
Fast sync provides a solution to decrease dramatically the synchronization time to minutes or few hours.
|
||||
Fast Sync provides a solution to decrease the synchronization time dramatically to minutes or a few hours.
|
||||
|
||||
__Current UTXO Set snapshots only work for Bitcoin Core 0.17.0 or higher. Do NOT use these sets on older versions of Bitcoin Core (0.16.3 or lower)__
|
||||
:::warning
|
||||
Current UTXO Set snapshots only work for Bitcoin Core 0.17.0 or higher. Do NOT use these sets on older versions of Bitcoin Core (0.16.3 or lower)
|
||||
:::
|
||||
|
||||
## How does Fast Sync solve it?
|
||||
## How does Fast Sync solve the problem?
|
||||
|
||||
In order for Bitcoin software to operate, you do not need all the history of blocks from the genesis.
|
||||
For Bitcoin software to operate, you do not need all the history of blocks from the genesis.
|
||||
|
||||
What you need is the state of Bitcoin up to a certain block (this state is called `UTXO Set`), and around 300 blocks before this point.
|
||||
You need the state of Bitcoin up to a certain block (this state is called `UTXO Set`), and around ~300 blocks before this point.
|
||||
|
||||
Fast Sync downloads the UTXO Set at a specific block on an external server, and deploy it on your node. We call this file a `UTXO Set snapshot`.
|
||||
|
||||
When your node start up again, it will only need to synchronize from the snapshot, to the latest blocks.
|
||||
When your node starts up again, with the `UTXO Set snapshot` it will only need to synchronize from this point to the latest blocks.
|
||||
|
||||
## What are the downsides of Fast Sync?
|
||||
|
||||
### Malicious UTXO Set
|
||||
|
||||
Fast Sync can be potentially abused:
|
||||
1. The attacker gives you an `UTXO Set snapshot` which does not follow Bitcoin consensus
|
||||
2. The attacker makes a purchase to your store.
|
||||
3. Nodes following the consensus would not recognize the payment as valid, but your node will.
|
||||
4. The coins the attacker sent you are just worthless
|
||||
Fast Sync can potentially get abused:
|
||||
|
||||
1. The attacker gives you a `UTXO Set snapshot`, which does not follow Bitcoin consensus.
|
||||
2. The attacker makes a purchase to your store.
|
||||
3. Nodes following the consensus would not recognize the payment as valid, but your node will.
|
||||
4. The coins the attacker sent you are just worthless.
|
||||
|
||||
Other attacks can completely bring down your node.
|
||||
|
||||
@ -40,133 +43,202 @@ As a merchant, you generally do not care about this issue. Merchants are mainly
|
||||
|
||||
However, if you plan to send payments from your lightning node, you may have issues:
|
||||
|
||||
Because you do not have old blocks, then your lightning node won't see any channels which have been created prior to the snapshot.
|
||||
Because you do not have old blocks, your lightning node won't see any channels created prior to the snapshot.
|
||||
|
||||
If this is a problem for you, just use an older snapshot.
|
||||
If this is a problem for you, use an older snapshot.
|
||||
|
||||
## How to verify that the UTXO Set snapshot follows the consensus?
|
||||
|
||||
### If you trust the owner of this repository....
|
||||
|
||||
The snapshots recognized as valid by the `btcpayserver-docker` repository you cloned can be found on [utxo-sets](utxo-sets).
|
||||
The snapshots recognized as valid by the `btcpayserver-docker` repository you've cloned, can be found on [utxo-sets](utxo-sets).
|
||||
|
||||
When you SSH into your new Sync BTCPay Server (by the use of Putty, for example), the first thing you have to do is become `root`.
|
||||
|
||||
```bash
|
||||
sudo su -
|
||||
```
|
||||
|
||||
Before you start the [load-utxo-set.sh](load-utxo-set.sh), you must bring down your BTCPay Server.
|
||||
|
||||
In the `btcpayserver-docker` directory you run `btcpay-down.sh` to bring down your instance.
|
||||
|
||||
```bash
|
||||
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker
|
||||
./btcpay-down.sh
|
||||
```
|
||||
|
||||

|
||||
|
||||
After you've shut down BTCPay Server, you now go into the FastSync directory and run the `load-utxo-set.sh` script:
|
||||
|
||||
```bash
|
||||
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker/contrib/FastSync
|
||||
./load-utxo-set.sh
|
||||
```
|
||||
|
||||
The script [load-utxo-set.sh](load-utxo-set.sh) will download the utxo-set from the environment variable `UTXO_DOWNLOAD_LINK`.
|
||||
|
||||
If `UTXO_DOWNLOAD_LINK` is empty, `NBITCOIN_NETWORK` (with value set to `mainnet` or `testnet`) will be used to take a default `UTXO_DOWNLOAD_LINK` that we hard coded inside [load-utxo-set.sh](load-utxo-set.sh).
|
||||
|
||||

|
||||
|
||||
Once the files are downloaded, the hash will be checked against those in [utxo-sets](utxo-sets).
|
||||
|
||||

|
||||
|
||||
However: This only prove that `if the owner of this git repository is honest`, then the utxo-set are correct.
|
||||
After the [load-utxo-set.sh](load-utxo-set.sh) is done, you will be warned, and asked to delete the docker volume `generated_bitcoin_wallet_datadir`.
|
||||
This will be recreated when we now run the `btcpay-up.sh` script.
|
||||
|
||||
NOTE: **Completing those steps does not mean that the UTXO set snapshot is legit**. It only mean that you trust the owner of this git repositoy to have verified that it is legit.
|
||||
```bash
|
||||
docker volume rm generated_bitcoin_wallet_datadir
|
||||
```
|
||||
|
||||
Now go back to the `btcpayserver-docker` directory, and let's restart your Server with `./btcpay-up.sh` to sync the rest!
|
||||
|
||||
```bash
|
||||
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker
|
||||
./btcpay-up.sh
|
||||
```
|
||||
|
||||
The rest of the Sync will take place on your BTCPay Server until it reaches the latest block height.
|
||||
|
||||
You can either follow this process in the UI of the BTCPay Server or run the following command in the CLI. This will show you the latest log output and the current block height of your `Fast Sync` node.
|
||||
|
||||
```bash
|
||||
docker logs --tail -100 btcpayserver_bitcoind
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
:::warning
|
||||
**However: This will only prove that the owner of this git repository is honest, and the utxo-sets are verified and correct.**
|
||||
**Completing those steps does not mean that the UTXO set snapshot is legit. It only means that you trust the owner of this git repository to have verified that it is legit.**
|
||||
:::
|
||||
|
||||
### Don't trust, verify!<a name="donttrust"></a>
|
||||
|
||||
If you don't trust anybody, which should be the case as much as possible, then here are the steps to verify that the UTXO set you just loaded is not malicious.
|
||||
|
||||
1. You need another node that you own, entirely `under your control`, that `you synchronized from the genesis block`. Let's call this node `Trusty`.
|
||||
2. In the previous [step](./README.md#if-you-trust-the-owner-of-this-repository) you've set up the `Fast Sync` node. Let's call this `Synchy`.
|
||||
3. Wait for `Synchy` to be fully synced.
|
||||
4. Now on, `Synchy` and `Trusty` run the following command at the same time:
|
||||
|
||||
If `Synchy` or `Trusty` are both using BTCPay Server, go to the `btcpayserver-docker` directory and use:
|
||||
|
||||
```bash
|
||||
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker
|
||||
./bitcoin-cli.sh gettxoutsetinfo
|
||||
```
|
||||
|
||||
Or use if non BTCPay Server node :
|
||||
|
||||
```bash
|
||||
bitcoin-cli gettxoutsetinfo
|
||||
```
|
||||
|
||||
Running this command might take some time, and nothing will show up in the terminal in the meantime.
|
||||
|
||||
5. Verify that the output of `Synchy` and `Trusty` are identical (you can ignore `disk_size`).
|
||||
|
||||

|
||||
|
||||
:::warning
|
||||
**Completing those steps, assuming the software you are running is not malicious, correctly prove that the UTXO set snapshot is legit**.
|
||||
:::
|
||||
|
||||
### If you trust someone else...
|
||||
|
||||
This repository contains the signatures of some developers, for example [sigs/NicolasDorier.utxo-sets.asc](sigs/NicolasDorier.utxo-sets.asc) contains the hashes that `NicolasDorier` verified himself.
|
||||
|
||||
You need to verify with [KeyBase command line](https://keybase.io/docs/command_line) that the signature is legit:
|
||||
|
||||
```bash
|
||||
keybase pgp verify -i sigs/NicolasDorier.utxo-sets.asc
|
||||
```
|
||||
|
||||
If you don't like command line, you can verify against [keybase verify page](https://keybase.io/verify) by just copying and pasting the content of [sigs/NicolasDorier.utxo-sets.asc](sigs/NicolasDorier.utxo-sets.asc).
|
||||
|
||||
You can verify that the handle `NicolasDorier` refers to the person who controls `NicolasDorier` Twitter, GitHub, and Reddit handle on [the keybase profile page](https://keybase.io/NicolasDorier).
|
||||
|
||||
You can verify that the handle `NicolasDorier` refers to the person who controls `NicolasDorier` twitter, github and reddit handle on [the keybase profile page](https://keybase.io/NicolasDorier).
|
||||
|
||||
NOTE: **Completing those steps does not mean that the UTXO set snapshot is legit**. It only mean that you trust the owner of a Keybase account who has proved access to some social media accounts in the past.
|
||||
|
||||
### Don't trust, verify!<a name="donttrust"></a>
|
||||
|
||||
If you don't trust anybody, which should be the case as much as possible, then here are the steps to verify that the UTXO set is not malicious.
|
||||
|
||||
1. You need another node that you own, `under your control`, that `you synchronized from the genesis block`. Let's call this node `Trusty`.
|
||||
2. You need to create a new node which use `Fast Sync` with the UTXO snapshot you want to verify. Let's call this node, `Synchy`.
|
||||
3. Wait that `Synchy` is fully synched.
|
||||
4. Now on `Synchy` and `Trusty` run at the same time:
|
||||
|
||||
```bash
|
||||
bitcoin-cli gettxoutsetinfo
|
||||
```
|
||||
If `Synchy` or `Trusty` are using BTCPay Server use:
|
||||
```bash
|
||||
bitcoin-cli.sh gettxoutsetinfo
|
||||
```
|
||||
|
||||
|
||||
5. Verify that the output of `Synchy` and `Trusty` are identical (you can ignore `disk_size`).
|
||||
|
||||
NOTE: Completing those steps, under the assumption the software you are running is not malicious, **correctly prove that the UTXO set snapshot is legit**.
|
||||
:::tip
|
||||
**Completing those steps does not mean that the UTXO set snapshot is legit**. It only means that you trust the owner of a Keybase account, who has proved access to some social media accounts in the past.
|
||||
:::
|
||||
|
||||
## FAQ
|
||||
|
||||
### Can I add my signature to this repository?
|
||||
|
||||
If you are a bitcoin developer or public figure, feel free to add your signature. For this you need:
|
||||
If you are a bitcoin developer or public figure, feel free to add your signature. For this, you need:
|
||||
|
||||
1. A [keybase account](http://keybase.io) linked to your social media accounts.
|
||||
2. Follow the steps described in the [Don't trust, verify!](#donttrust) section each snapshots you want to sign.
|
||||
3. Create a file with same format as [utxo-sets](utxo-sets) with the snapshots you validated. (Let's call this file `YOU.utxo-sets`)
|
||||
2. Follow the steps described in the [Don't trust, verify!](#donttrust) section for each snapshot you want to sign.
|
||||
3. Create a file with the same format as [utxo-sets](utxo-sets) with the snapshots you validated. (Let's call this file `YOU.utxo-sets`)
|
||||
4. Run the following command line
|
||||
|
||||
```bash
|
||||
# Assuming your are inside the FastSync directory
|
||||
cd $BTCPAY_BASE_DIRECTORY/btcpayserver-docker/contrib/FastSync
|
||||
keybase pgp sign -i YOU.utxo-sets -c -t -o sigs/YOU.utxo-sets.asc
|
||||
rm YOU.utxo-sets
|
||||
git add sigs/YOU.utxo-sets.asc
|
||||
git commit -m "Add YOU utxo-set signature" -all
|
||||
git commit -m "Add YOU utxo-set signature" --all
|
||||
```
|
||||
|
||||
And make a pull request to `btcpayserver-docker` repository.
|
||||
|
||||
### Where can I download UTXO set snapshots
|
||||
|
||||
You should not need to do this, because [load-utxo-set.sh](load-utxo-set.sh) do the hard work for you.
|
||||
You should not need to do this because [load-utxo-set.sh](load-utxo-set.sh) will do the hard work for you.
|
||||
|
||||
But if you really want, just browse on [this listing](http://utxosets.blob.core.windows.net/public?restype=container&comp=list&include=metadata).
|
||||
But if you want, browse on [this listing](http://utxosets.blob.core.windows.net/public?restype=container&comp=list&include=metadata).
|
||||
|
||||
Select the snapshot you want, and download it by querying `http://utxosets.blob.core.windows.net/public/{blobName}`.
|
||||
|
||||
### How can I create my own snapshot?
|
||||
|
||||
Assuming you have a node running on a docker deployment of BTCPay Server, you just need to run [save-utxo-set.sh](save-utxo-set.sh).
|
||||
Assuming you have a node running on a docker deployment of BTCPay Server, you need to run [save-utxo-set.sh](save-utxo-set.sh).
|
||||
|
||||
This script shows the steps to create an archive of the current UTXO Set
|
||||
It will:
|
||||
|
||||
This script shows the steps to create an archive of the current UTXO Set
|
||||
It will:
|
||||
1. Shutdown BTCPay Server
|
||||
2. Start bitcoind
|
||||
3. Prune it to up to 289 blocks from the tip
|
||||
4. Stop bitcoind
|
||||
5. Archive in a tarball the blocks and chainstate directories
|
||||
6. Restart BTCPay
|
||||
7. If `AZURE_STORAGE_CONNECTION_STRING` is set, then upload to azure storage and make the blob public, else print hash and tarball
|
||||
7. If `AZURE_STORAGE_CONNECTION_STRING` is set, then upload to azure storage and make the blob public else print hash and tarball
|
||||
|
||||
### How can I do this for my altcoin?
|
||||
|
||||
Your altcoin does not need it, almost nobody use it compared to bitcoin.
|
||||
Your altcoin does not need it. Almost nobody uses it compared to bitcoin.
|
||||
|
||||
However, if you insist, follow what we did for Bitcoin, we can't hand hold you on this.
|
||||
However, if you insist follow what we did for Bitcoin, we can't handhold you on this.
|
||||
|
||||
### Do you plan to destroy Bitcoin?
|
||||
|
||||
This feature may be controversial, because of the risk that almost nobody will follow the [Don't trust, verify!](#donttrust) step.
|
||||
This feature may be controversial because of the risk that almost nobody will follow the [Don't trust, verify!](#donttrust) step.
|
||||
|
||||
What if somebody start spreading a corrupted snapshot on wild scale?
|
||||
What if somebody starts spreading a corrupted snapshot on the wild scale?
|
||||
|
||||
I think this issue can be mitigated at the social layer. If several person start using social media for spreading their `bitcoin-cli getutxosetinfo` every 10 000 blocks, any corrupt snapshot would be soon detected. We plan to make expose the hash via `BTCPayServer` and make it easy for people to share.
|
||||
I think this issue can be mitigated at the social layer. If several people start using social media to spread their `bitcoin-cli getutxosetinfo` every 10 000 blocks, any corrupt snapshot would be soon detected. We plan to make expose the hash via `BTCPayServer` and make it easy for people to share.
|
||||
|
||||
### Why you don't just: Make BTCPayServer rely on SPV
|
||||
|
||||
All SPV solution brings a systemic risk to Bitcoin. If everybody relies on SPV to accept payment and miners want to change consensus rules, then you will have no leverage as individual, nor as a community to decide against.
|
||||
All SPV solution brings a systemic risk to Bitcoin. Suppose everybody relies on SPV to accept payment, and miners want to change consensus rules. In that case, you will have no leverage as an individual or a community to decide against.
|
||||
|
||||
Even with `UTXO Set snapshots` you continue to validate consensus rules from the block of the snapshot.
|
||||
Even with `UTXO Set snapshots`, you continue to validate consensus rules from the block of the snapshot.
|
||||
|
||||
### Why you don't just: Make BTCPayServer rely on an external trusted node
|
||||
|
||||
Why not just hosting BTCPayServer on the raspberry pi, but the bitcoin full node on another machine?
|
||||
Why not just host BTCPayServer on the raspberry pi, but the full bitcoin node on another machine?
|
||||
|
||||
For two reasons:
|
||||
|
||||
First, `BTCPayServer` is trying to bring down the technical barriers to operate payments on your own. Running on an external node means that the user need the technical skills to set it up.
|
||||
First, `BTCPayServer` is trying to reduce the technical barriers to operating payments on your own. Running on an external node means that the user needs the technical skills to set it up.
|
||||
|
||||
`BTCPayServer` also relies on Bitcoin's RPC which is not meant to be exposed on internet. We can't see any simple enough solution which would allow normal people to run an external node somewhere else.
|
||||
`BTCPayServer` also relies on Bitcoin's RPC, which is not meant to be exposed on the internet. We can't see a simple enough solution that would allow normal people to run an external node elsewhere.
|
||||
|
||||
The second reason is about reliability: You want your service to be self contained. If you host a node on another server, and for some reason this server goes down, then your `BTCPayServer` hosted on the raspberry PI will also cease to function.
|
||||
The second reason is reliability: You want your service to be self-contained. If you host a node on another server, and for some reason, this Server goes down, then your `BTCPayServer` hosted on the raspberry PI will also cease to function.
|
||||
|
||||
@ -11,7 +11,7 @@ set -e
|
||||
# This will download the utxo set and untar it in bitcoin's folder
|
||||
# Usage: ./load-utxo-set.sh
|
||||
# This will use the tar to load the utxo in bitcoin's folder
|
||||
# Usage: ./load-utxo-set.sh utxo-snapshot-bitcoin-mainnet-565305.tar
|
||||
# Usage: ./load-utxo-set.sh utxo-snapshot-bitcoin-mainnet-699714.tar
|
||||
|
||||
if ! [ "$0" = "$BASH_SOURCE" ]; then
|
||||
echo "This script must not be sourced"
|
||||
@ -28,11 +28,19 @@ if ! [[ "$NBITCOIN_NETWORK" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! [[ "$BTCPAYGEN_ADDITIONAL_FRAGMENTS" == *"opt-save-storage"* ]]; then
|
||||
echo "Pruning must be enabled, please update BTCPAYGEN_ADDITIONAL_FRAGMENTS by running:"
|
||||
echo ""
|
||||
echo 'BTCPAYGEN_ADDITIONAL_FRAGMENTS="$BTCPAYGEN_ADDITIONAL_FRAGMENTS;opt-save-storage-s"'
|
||||
echo '. btcpay-setup.sh -i'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TAR_FILE="$1"
|
||||
|
||||
if ! [[ "$UTXO_DOWNLOAD_LINK" ]]; then
|
||||
[[ $NBITCOIN_NETWORK == "mainnet" ]] && UTXO_DOWNLOAD_LINK="http://utxosets.blob.core.windows.net/public/utxo-snapshot-bitcoin-mainnet-585333.tar"
|
||||
[[ $NBITCOIN_NETWORK == "testnet" ]] && UTXO_DOWNLOAD_LINK="http://utxosets.blob.core.windows.net/public/utxo-snapshot-bitcoin-testnet-1445586.tar"
|
||||
[[ $NBITCOIN_NETWORK == "mainnet" ]] && UTXO_DOWNLOAD_LINK="https://snapshots.btcpay.tech/utxo-snapshot-bitcoin-mainnet-867690.tar"
|
||||
[[ $NBITCOIN_NETWORK == "testnet" ]] && UTXO_DOWNLOAD_LINK="https://eu2.contabostorage.com/1f50a74c9dc14888a8664415dad3d020:utxosets/utxo-snapshot-bitcoin-testnet-1445586.tar"
|
||||
fi
|
||||
|
||||
if ! [[ "$UTXO_DOWNLOAD_LINK" ]] && ! [[ "$TAR_FILE" ]]; then
|
||||
@ -40,7 +48,9 @@ if ! [[ "$UTXO_DOWNLOAD_LINK" ]] && ! [[ "$TAR_FILE" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BITCOIN_DATA_DIR="$(docker volume inspect generated_bitcoin_datadir -f "{{.Mountpoint}}" 2>/dev/null)" || \
|
||||
BITCOIN_DATA_DIR="/var/lib/docker/volumes/generated_bitcoin_datadir/_data"
|
||||
|
||||
[ ! -d "$BITCOIN_DATA_DIR" ] && mkdir -p "$BITCOIN_DATA_DIR"
|
||||
|
||||
if [[ "$TAR_FILE" ]]; then
|
||||
@ -56,7 +66,7 @@ cd "$TAR_DIR"
|
||||
IS_DOWNLOADED=false
|
||||
if [ ! -f "$TAR_FILE" ]; then
|
||||
echo "Downloading $UTXO_DOWNLOAD_LINK to $TAR_FILE"
|
||||
wget "$UTXO_DOWNLOAD_LINK" -q --show-progress
|
||||
wget "$UTXO_DOWNLOAD_LINK" -c -O $TAR_FILE.partial -q --show-progress && mv $TAR_FILE.partial $TAR_FILE
|
||||
IS_DOWNLOADED=true
|
||||
else
|
||||
echo "$TAR_FILE already exists"
|
||||
@ -93,8 +103,18 @@ if ! tar -xf "$TAR_FILE" -C "$BITCOIN_DATA_DIR"; then
|
||||
fi
|
||||
$IS_DOWNLOADED && rm -f "$TAR_FILE"
|
||||
|
||||
BTCPAY_DATA_DIR="$(docker volume inspect generated_btcpay_datadir -f "{{.Mountpoint}}" 2>/dev/null)" || \
|
||||
BTCPAY_DATA_DIR="/var/lib/docker/volumes/generated_btcpay_datadir/_data"
|
||||
|
||||
[ ! -d "$BTCPAY_DATA_DIR" ] && mkdir -p "$BTCPAY_DATA_DIR"
|
||||
echo "$TAR_NAME" > "$BTCPAY_DATA_DIR/FastSynced"
|
||||
|
||||
echo "Successfully downloaded and extracted, you can run btcpay again (btcpay-up.sh)"
|
||||
echo "Successfully downloaded and extracted."
|
||||
|
||||
if docker volume inspect generated_bitcoin_wallet_datadir &>/dev/null; then
|
||||
echo -e '\033[33mWARNING: You need to delete your Bitcoin Core wallet before restarting with "btcpay-up.sh", or bitcoin core will fail to start.\033[0m'
|
||||
echo -e '\033[33mDo not delete the wallet if you have any funds on it. (For example, this may be the case if you use Eclair or FullyNoded to receive funds)\033[0m'
|
||||
echo -e '\033[33mHow to proceed: If you agree to delete your Bitcoin Core wallet, run "docker volume rm generated_bitcoin_wallet_datadir"\033[0m'
|
||||
else
|
||||
echo "You can now run btcpay again (btcpay-up.sh)"
|
||||
fi
|
||||
|
||||
@ -26,8 +26,10 @@ cd /data
|
||||
TAR_NAME="utxo-snapshot-bitcoin-$NBITCOIN_NETWORK-$PRUNED_HEIGHT.tar"
|
||||
echo "Creating $TAR_NAME..."
|
||||
echo "Adding $NETWORK_DIRECTORY/blocks/*"
|
||||
tar -cvf "$TAR_NAME" "$NETWORK_DIRECTORY/blocks/"
|
||||
cd "$NETWORK_DIRECTORY"
|
||||
tar -cvf "$TAR_NAME" "blocks/"
|
||||
echo "Adding $NETWORK_DIRECTORY/chainstate/*"
|
||||
tar -rvf "$TAR_NAME" "$NETWORK_DIRECTORY/chainstate/"
|
||||
echo "TAR file created"
|
||||
tar -rvf "$TAR_NAME" "chainstate/"
|
||||
[[ $NBITCOIN_NETWORK == "mainnet" ]] || mv "$TAR_NAME" "/data/$TAR_NAME"
|
||||
echo "TAR file created to /data/$TAR_NAME"
|
||||
exit
|
||||
|
||||
@ -5,14 +5,20 @@ fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-
|
||||
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
|
||||
8e18176138be351707aee95f349dd1debc714cc2cc4f0c76d6a7380988bf0d22 utxo-snapshot-bitcoin-mainnet-565305.tar
|
||||
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
|
||||
52f0fc62dd28d016f49a75c22a6fa0827efc730f882bfa8cbc5ef96736d12100 utxo-snapshot-bitcoin-mainnet-609375.tar
|
||||
0afe8ca07e0ad2b538f43fc3ada89500b3e8594e8c16e0813c30d25fcff0d5a3 utxo-snapshot-bitcoin-mainnet-651474.tar
|
||||
587ac27b1929123313f842edbdb798afe116548e2a1bddea46d8d7068a6bc156 utxo-snapshot-bitcoin-mainnet-680891.tar
|
||||
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
|
||||
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQEzBAEBCgAdFiEEC5br8+cf2C1k8QnTslYYXTqXGQgFAl0ude0ACgkQslYYXTqX
|
||||
GQi6NggAnrin36xyKOFYJXEE7Ojk82A2Op5/TrN0h4sm9M8zdcKopVkAss6yMqoK
|
||||
LXX5B1LWruBgjei54JtwKr9bxvtvEZh3bCdYsfE4JcKNZ+um/7mbLfz0mCf6+Hjk
|
||||
E0RzW7ND2JJqRbSNx8/ZrTKt3QwUD6YyEE0l4KHpBNfJk/Rm4oFeF7hjnUheDTHj
|
||||
ZTsolccMgFUc1/1YWsHKtG0JFTpfykeBENYWYvkjXWYTmUqdmlhRlaSQW8ryyroA
|
||||
HnaraS5vFGQQEUkgXszcVoCtQ5PvUVJnNFatbqMoEkmIvuw2hcHtoB95R0wjPVh2
|
||||
WzmDxgZQApc45JGhTJbSf/OmH0AKuA==
|
||||
=41LV
|
||||
iQEzBAEBCgAdFiEEnGJq0mr2sgeLfBk5qSc7WtPke0UFAmLNiFgACgkQqSc7WtPk
|
||||
e0UGsgf+JrVIXjQHnGo8HvbdKWXn+aemaC6SfM0kCdS+Av6Hvg14YVj3LpfVE9if
|
||||
15ITBG+Q3LP8pO4A5T+RxG1YlfvnhsDP7GyhFiG55ew0H6G68Uf9iLwiBzqiqnqm
|
||||
gYOcNtVNaDhAP5ocRnyALSxVH7aWgPD68OPL3xsWvKjC85jsM7dkyWGBdzN4tfua
|
||||
Gp5Kcz1b3oGyvRSm/3syrWx1J/Cht0oO/tK6zVcwEo7Wq4fDOQD7AUZwiviJYbq5
|
||||
Q1GoBDEmFe/ZHlta9Qx4sIkib5ZeNRX7KOVFJAkAD/hzbFBBpLjwnTRSGwU+Aulh
|
||||
kRn9K2XG49yyL0tjJuNzEVwZ9Ynh8Q==
|
||||
=tb07
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
@ -5,19 +5,27 @@ fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-
|
||||
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
|
||||
8e18176138be351707aee95f349dd1debc714cc2cc4f0c76d6a7380988bf0d22 utxo-snapshot-bitcoin-mainnet-565305.tar
|
||||
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
|
||||
52f0fc62dd28d016f49a75c22a6fa0827efc730f882bfa8cbc5ef96736d12100 utxo-snapshot-bitcoin-mainnet-609375.tar
|
||||
0afe8ca07e0ad2b538f43fc3ada89500b3e8594e8c16e0813c30d25fcff0d5a3 utxo-snapshot-bitcoin-mainnet-651474.tar
|
||||
587ac27b1929123313f842edbdb798afe116548e2a1bddea46d8d7068a6bc156 utxo-snapshot-bitcoin-mainnet-680891.tar
|
||||
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
|
||||
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
|
||||
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAEBCAAQBQJdLdR7CRDWQ44flNBSkgAAYBYQADglysaarrjnmeCOQdIBxb6z
|
||||
M6TxIQcNHeUJTGT35B8TRzrwldf0WPw8ILFEeyBoG4O5vjJdIa6cjdYtCEELT7Aj
|
||||
y6jRbF8jf81yUafo1Az2+em1JkyYUcioloO7hdF0X+QjYZ7PGK2H106DdZ+k/sQ2
|
||||
o9CRtUgSYMeMmKWM1J/RahFKpoDwzTZ4j/pQwnwENaWlmmB+3tKVDn2NYiBK7dh2
|
||||
UwD/o+mvCfAQNkAR5WWNjfKR051nRNK9PO/nQY9rtV2lmX8acRCrvH/VvD/4pFJS
|
||||
7fZNVhH4/VOCj9IuuGVPr1gwyWz6BEzxTRCh1EJzmEq4lMAquwJjM8FHojiWuAa1
|
||||
LG5teV8gQYS+0tPqZ1gYhhNjxc8gMiDkMg2r0fLpLwXwKam3hj7T1R0vwsRj31Wl
|
||||
UUZPnzpYpAEnMzox5nC21muLsgqmmYrErmiUjeoThDMJC2rPD25CLT7320jsETOu
|
||||
2KGawMdkvZQrLviT6pyr43Gbjn74k3YxQ9hk+1DoH5gXs5lut/PFqnBbhKoKoqqx
|
||||
0pDFS8wg0ToTI2fUajRQaQn5jEPvUwXxKUb0jmurVvPknuPldbewFuQnG+5HQmo2
|
||||
biHsnnptwt6k7sGxUe/6ipcR8igaUbyCV8GoFN3BbwvOhKeXt7ZilOi3mbfsPxBE
|
||||
R3j75diaJRlab4j/GemS
|
||||
=fQOO
|
||||
wsFcBAEBCAAQBQJletbECRBmGHY+8JGG/gAACiQQAHoG7cXpdfks1sdb5Uzu44jl
|
||||
ABzgVCcIQ8qpQWuiwqBB/Cux/YW63wU4Ku95KMvOVC6P5Q3Dmil5Q2LEibHFzKjb
|
||||
/TofEdjKWIcqw2xut7Q3GSnyeMdjhm2fdUH4b3rhkt3Zh8T2BOvi1aWt3CsiaTnd
|
||||
+UooDXb218db28OKYzGZ9cbfaTueRW2rsX0T7xZhYUmo7ExOfe9xGN7AVljSxSnm
|
||||
OIammIuqi5uKbB6t+t1p2pl2lr2g/eLyY4iPzFRv3yk7tl9v4Uoj8Ry1+AT1E8+b
|
||||
p1M0uWj8c9sHbCizr8xW5RkVr7CQrgrNJbol00IfQVyooQI33szMX0jQ5X8Nt6y8
|
||||
KdwUvT8ZyT2eS1VG4RjH3Oq9V/ZxODPtaA8su8lAWTd10xrsRGKwO/qHYdhISOUC
|
||||
+NQmT9f6pFX35UH0CSk5T8c0jNTAChZcw7NlDUWQaKj3H63qajnVHnx/NuZCmhCe
|
||||
5L6ilWsYnqYnfjJX7d0i4ZMUNCXkeBTKZHBasWzEBp3ds8nOsHY5dCFcWkppABNw
|
||||
ynLkCSDN7TY1a8sTgdEIpNpZ6m2oq3rMhmxVzijcFuXV5eRtIxGY1mZPJTggZQXB
|
||||
8/1RT8B5EDbl0L9Bq+q8lYL/dDLRKQJH0IA3FKGzPDNcin+d8oWh0Ep1IuYDlRJ8
|
||||
xY8CXryVjzmbglJvC1Wt
|
||||
=PNpf
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
21
contrib/FastSync/sigs/baspeters.utxo-sets.asc
Normal file
21
contrib/FastSync/sigs/baspeters.utxo-sets.asc
Normal file
@ -0,0 +1,21 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAEBCAAQBQJjtfiOCRDXzmZXIX7aPwAADIsQANT3WzkTcTlKV/t74q+WFRpE
|
||||
5QkPWuOUsHdQzg5eHYzwjrt3KHO12JmX0efWG0ACb1VrXQtAnJuX8Xzzf04kTELp
|
||||
UGJfpPdHuqxiW+X+VtHiJBe0EqbLOum11rHaYylWmVK6tK/cId4UIaQv3LWwfRCJ
|
||||
BGrR4ay6SJtQvNxDs8M0lQdzNohmJnpVxbnAVP78/cBRLoHHrNgzqp0QnDISllfS
|
||||
m6DvWRX88Ul+xwfaBek3CKR9Z7cV6LyrveLh13VEyPt1KO/sGP0acY/uTCEmUKfY
|
||||
k5AK75nY4Rk349iVvlptxt2vPOdi6hTfuUF253s51XmBxEJfWswZQtxqdqNMD0m9
|
||||
7abxv5X+SpfnybpQQmiFj41CNWTmxCe/QPowGIejDwjBZtww5nhwI79uvSIbamwk
|
||||
tcClQG5agbqhDOB94tqxHZZVqG7OCanLKbuynmyp+4uiQ+zVnB623vP56PrUnNQv
|
||||
M0fhnNJBQFNARz3XU59/spTzmrso0lnKTGeKyMrN+/i84r+lHd6ynRe7gbVCj3Fh
|
||||
wshhCKZ64nAQkkJGsHgBxjbz9HZs3sPd5vatPl6sqyxtCyiVdpxN1WEk7FairTHx
|
||||
MkyiVHYkH7ip/fz0vdmf0DiQpTJ53plTVOQkxLpT0AGruzZtsgVjLYaU07hnzHLD
|
||||
L8cZ2glroURtcHgwbaPB
|
||||
=OVeC
|
||||
-----END PGP SIGNATURE-----
|
||||
20
contrib/FastSync/sigs/bitkarrot.utxo-sets.asc
Normal file
20
contrib/FastSync/sigs/bitkarrot.utxo-sets.asc
Normal file
@ -0,0 +1,20 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAEBCAAQBQJi8FGeCRAUIb9sTcmBfwAAJskQACzQmpio4/iDgmBlSYOgcsDn
|
||||
JXxFX7uiAxf4yr4ujLm7heDZAtA7P9p9ddVHCDsP/xp566RQXDqQQFSW8Jkh87JP
|
||||
8NZi5lEZMO1dMVXNgucg5MqLQOgE0JhMtpexS0TB4jW1dqcSjUHGU16Aq29MJQzW
|
||||
aF6egNkicEnc3KX9M5YV43wG0jklFqwkjUyjR1kUJgLoCjG9yzVRlp83oUZtI189
|
||||
K9XWYLPB4YbO7+S0Gug7OEQFPf0yuQR6vcfJynA1ney0QwIv+2C4JJPd/r1h3g4R
|
||||
TFQsTmlLBsrseMnCfSRxPv6+tHg4r010lfryDYwSq/N6eaj1AYSKeTDe2xPSBuGt
|
||||
L8FwPDJCTdXMmSwTas5XYUiTNUkIxa8as/Hqs5+sIDcBxH6zEOfmYuxdoXpOuMpw
|
||||
du/4Wk05Rd+lU9neSLTQJOxu40/SxRsBemLGfhcWBmzbOFYaPWyVxbBiwvhAliwK
|
||||
x8vtbk6JFQxIZlgq/N0VJFgEj/jkEiwDxIA6zMXI34UF18lStIHIDzGkrnnUpKEb
|
||||
erZxOk/tGNAjx/+fahLkQuz6fBY3LARBGlE//vX0+PFbv6R7ILGo1OYERjmYAsjy
|
||||
Wh7AoVpDu9TBwAolx15oYWgDNI6MTd3VN4/cxVAHqjj4HFEu6BZiBrgFQTg85pnH
|
||||
bJOZw3b3FWTCz8kJMBpg
|
||||
=NP2V
|
||||
-----END PGP SIGNATURE-----
|
||||
@ -1,20 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
|
||||
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
|
||||
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAEBCAAQBQJdbzuvCRALBDDNn2xJswAAAi4QAEXnV/2HBXogOmQRC1Tlpy5I
|
||||
hHjaNXy2ygHKTWECRQsZb7EzVtpEKK55Md7/yH1REy0Q9aoWxilWu0VLI52//NS5
|
||||
+tNhTipj3/ykUPaMZSfHdY/OU8Czkzpfzzqi4swddgQWPHcL20g8Xgl/OQPfNWN3
|
||||
+Bgjsvv1c3p2iXdMjg5JeQjN+qA1Byv4UJ9zcpiIADR1DLFR3PbjFhLx0vM9abO6
|
||||
TQa2XBfNaH3Jm9zJJgth7Xq5n061aw8ZKO+KxPe415G6xtFVL7lXnBifzHiWwF0F
|
||||
0wl9/5y3pv7SXn5T3tasgqB17hNcQJFp7aXsaCu6K0rVcwvGpDdKfe4FAfVpkuje
|
||||
c8z0zJ7Brg5ito7Mtmx4O+9m6qTEdjYsAYRenTMZX7a7legPMIZ4KomfjUit/Cw7
|
||||
PdNH1n56eE5fN97no14dyrTsb6hFQ02soO+X+Z3FhkM92ocjpKBdyeouw+bs6hYT
|
||||
aGtMA80rMHGhXFz/zRxZiRpDz+RkYUwaNnmsr0NvxmWqaIBKZjM3LYYKKn6URVFY
|
||||
U2Xxr9RyThD8AW0bMiKc5cHQJD8j45PIMWSsxVbTHduEm9gFHH0TCaCOrYRUHk+y
|
||||
jIDevEv3nbg7A9kyARpnuS5Yfg5SDMpgNFZEPuCZdH9By3M7jBg3Y7cxOdZAs07p
|
||||
GPQRzKSRqbbIfB7E1cht
|
||||
=IAdY
|
||||
wsFcBAEBCAAQBQJi0NlnCRBzZKIvLFvMBgAA5nQQADzO5UPHON+QqT+sbWDQMu2V
|
||||
zKDklR6CguqEtG+PCWg39r5u0E3bDUgsp3qMtw5liquKHWKhGa+D5xLrPYgdU2Ts
|
||||
91/6Dn4VIxyqcLNQYsw0jg3X6dlFIfKO2ULKULsDqUZRfi1vfeVFXxvPO48qMHel
|
||||
JMAObUXgCXirVdL4YZ0F40g5Sikv9/YhTIx0Pua5UxArCnCYp6vjmzMsS+84MAC3
|
||||
INW0ToziTedF7ROWtGSegzP75s11qEdJ9ObxIGhRmV1pvPwouVc0FQscdQ0s9tfc
|
||||
1E4B0p1i5HuC7BfuEETvP4bpk8idIZkVACJPu6qjEtKuGDtOwxyQvxOyCCFl5RY3
|
||||
RcFepZdWQjJ0Z2jufFPkowXlAlRAdd8COcDoNtuPigsjNY4MbvCSunQGy00k1dch
|
||||
0ZGhcf5t0XTO3yWfvfwK0WxAcReiccsgnASq8BifAWIZLrM4GfmBz/wVxltn/fXX
|
||||
cQPGKFsuBxxNv9ka0wdovClr3eLJZ5fZctQ+TNGzd6/ZmbsjZ0TNLAUjb/K3isTg
|
||||
yVrl9pry9iv9Yxd4DWLWOuwmS61TfuHMK1NnJHH9vpJoTEu2UKNEl0PfsfDuXnhu
|
||||
izxT3KpqqMPbrRfFTnmyEgX4Si7b0wqp2OqHIGTt25WyyJoieVNat8PGxCZ7qsS/
|
||||
+Y+qBlGDmRuWrLvvWxjb
|
||||
=2tFb
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
22
contrib/FastSync/sigs/jaonoctus.utxo-sets.asc
Normal file
22
contrib/FastSync/sigs/jaonoctus.utxo-sets.asc
Normal file
@ -0,0 +1,22 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-bitcoin-mainnet-551636.tar
|
||||
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
|
||||
8e18176138be351707aee95f349dd1debc714cc2cc4f0c76d6a7380988bf0d22 utxo-snapshot-bitcoin-mainnet-565305.tar
|
||||
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
|
||||
52f0fc62dd28d016f49a75c22a6fa0827efc730f882bfa8cbc5ef96736d12100 utxo-snapshot-bitcoin-mainnet-609375.tar
|
||||
0afe8ca07e0ad2b538f43fc3ada89500b3e8594e8c16e0813c30d25fcff0d5a3 utxo-snapshot-bitcoin-mainnet-651474.tar
|
||||
587ac27b1929123313f842edbdb798afe116548e2a1bddea46d8d7068a6bc156 utxo-snapshot-bitcoin-mainnet-680891.tar
|
||||
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
|
||||
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
|
||||
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iHUEARYKAB0WIQRQdmI2dt3KIgDgNOtP4h9f/4TJvAUCZxAV6gAKCRBP4h9f/4TJ
|
||||
vOvTAP4/MPtLjt2jWc8h7hWtc71pP43Q1s7I2/Fo6TqZwqmn4QEAyin+ylkz7OvQ
|
||||
+Zok4KaPDdHpHJk/ncdS3qKpX7E0iAg=
|
||||
=UO3X
|
||||
-----END PGP SIGNATURE-----
|
||||
20
contrib/FastSync/sigs/kiwi_.utxo-sets.asc
Normal file
20
contrib/FastSync/sigs/kiwi_.utxo-sets.asc
Normal file
@ -0,0 +1,20 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAEBCAAQBQJi0edkCRADBN2I1mxLvwAAqAEQAKzMbFyV2Kn9SN3LP1IaQCcH
|
||||
cRVyD8sgb5AkHVzdX/ThvzIr/IkHXdt+cR1bIGQWDtLpo7uTsFlvXoU/hqCzI+lf
|
||||
7EPaGLiGzUNav26d9LFbSqhuve62AkzCJuy63achwE/enOQWvwUZ4QR8sO/PtHDU
|
||||
h0ci/uWanLxwxrPuK5Zhy7/aQ3MLVgDlbH4suAriUn9LNrQqqVx+8Feiupxwwu7p
|
||||
8bOstKztrNJvrJLRqo6/tCJBv4ktnR3dSi9kxNwxRVDTjvxic6M7DmVFae1H5wiq
|
||||
mHkssDxGbCnRHQPUBgr0N58vR+NA/u2c7ojkfkxJRKavHpAxhzYSXQmoqCE5rrKS
|
||||
+FMmpawDZJiPigId6cbhkoKgmlZLlqYaP41zFbEGpOggkFAQ8kzACbrSUHu7/NRO
|
||||
KMHMhw0G0BtFc9+PejTQtjLrhhXVO4cLU5NtrsS2ghL+hCaWNl1nkX5PdtMyGK3l
|
||||
HO8EmJe2G0sp8tzXfIGCSGNr0Nre7oIGvdU00HQ/W72HdsbB6DnlRBXHuLe9+n/7
|
||||
LLlRLhF/ESqQAZFRnpU8Ei+n8714wIV77vgUZsAZo6MjeydhzQtwoRSDKxc6WMD9
|
||||
vrVTLfHHVCBI9lTA72Ak+wUxEGkJgu/qljoavBnNn8At8vFxTaTw+hTBc8ZI5K1U
|
||||
Sg+bMiPa1T1D6QwqfG22
|
||||
=yu81
|
||||
-----END PGP SIGNATURE-----
|
||||
21
contrib/FastSync/sigs/petzsch.utxo-sets.asc
Normal file
21
contrib/FastSync/sigs/petzsch.utxo-sets.asc
Normal file
@ -0,0 +1,21 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAEBCAAdFiEEkBNUT2D+8eESG4wviEz9aed8MMQFAmO2tLkACgkQiEz9aed8
|
||||
MMR2pRAAmn33MR+zOeTnQIYa49jg1OVRVfU81VNFnc6pABNO8s8Z2AYukM4GunSs
|
||||
SUIItJqiF1O+e2POiZa2tEDWzTAmkCfZ3r+bxJcbis5SLlkBf5fPesQhlwK7QfXK
|
||||
rAXUwTMLA2T7XJEFkhwYD5A7k21ea8T/ly1kE1eNInci6uPysYLGfYeUIaCSBAuZ
|
||||
UqmoaqBwKVSu3KyjagAuik1BTphNYqHgidA+3yWiMyHsgPuHjqp4HY+0xHiw/w5x
|
||||
XZIm1CEzpj2GOjNbaBHp0EOWQ5q4686qRYSAogqSklPvj0MLP6IhchLi+QIJKUEg
|
||||
yBTt5/8a6Ox81BSHBBVWrhjJYtAaHam4zWC3wv/6BF61BdiXIiV7ova58x8K/Zji
|
||||
QsIZqNaCZ/KkfB7CZycJ1LKyxELdMaOipbjkgVifUuNf9RL9Vle8zAENR2Mo5Kk/
|
||||
aATw8VO0Z/IIxuuDeT2w/9ogeoBiv4Bv5PBxRtm5gXQGpZyWYyCeeDukNQp3UKQD
|
||||
pgSGriyCBkWGzuHMltGXv6N/fndAmWau9W/fRGnVt01IgTNwjliQqkR2FcmfUfBN
|
||||
a+lFqcerVmTMUxExQKIwPqINqV5y2DE3gOWb4VZ97t8Yx2fPPbFuQ6fzPvhWcbtz
|
||||
Ffkg9aFpjkP4NFwDkrMG1ItBhXyDEVd/b9m1sqpP1B+YFOyd/mM=
|
||||
=TDDP
|
||||
-----END PGP SIGNATURE-----
|
||||
20
contrib/FastSync/sigs/rexh.utxo-sets.asc
Normal file
20
contrib/FastSync/sigs/rexh.utxo-sets.asc
Normal file
@ -0,0 +1,20 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAEBCAAQBQJi0LpTCRA2RAJ4cwSb5gAAgMUQAKaeNu4NR8hydLnk4nCJlaSG
|
||||
zQOXXz5JYT0Sz32yG7jQxundNbOFNEKDh0ggKRUAubmkmYcOR23kXMCn1OAbHROM
|
||||
PDwvKSzed3M9J1FceSe4GW4zXecWKFuCOwnVXHIbz6AAp8raI5HbZLTLHX6x+VvP
|
||||
zkyWw2uG5DN0GUv9ytLQ2YVFaoBJK5w+Dw/UQwkzxo6dtc5dcwhsjNv/2PaPPZdn
|
||||
0qG3vPUGyPhhAZN50YCjfq5LIgSv1vpUipyLRTAcH3a/XWHJxe1/P0tKENlOCa8j
|
||||
FBAe6kRsVwAeggKrrNOl9paRoAy+zjHqdRQdVe7H9f1L9Vc06EmorelH+9gXv8C+
|
||||
LZ5A1nf4OSNcGfY+flkfYNO2QZ10q5ttjIgtvfwbkj96/KFSHXG698gwQkYR4BHd
|
||||
qtF8BTO3bnJa581/blwKjtUpwTEtTVUijlQbo2tSnACVF0MwtYxuqdEjLhk9RbR3
|
||||
QS9UcKuYq7tvNSZed8GtLDwIW5KMh0kgdoG9gTvD+BKm43YD+l2oFUYCJyZXCqlo
|
||||
lsiluXRax9fqevGiPVdRyRX5cl/nFVUhTJNmLg8Z5+Lm2D2ZfM84dPW0A/uVTS5b
|
||||
7cYMmO1olt4qE1WeyOb5T2S8T5QGQ1/BBe0gyQJ9e7u7Pkdm72UhEwCYNeaTnoYR
|
||||
GXnDDB80H93DUFv4GUoo
|
||||
=YaXu
|
||||
-----END PGP SIGNATURE-----
|
||||
@ -1,22 +1,34 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
Hash: SHA512
|
||||
|
||||
fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-bitcoin-mainnet-551636.tar
|
||||
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
|
||||
8e18176138be351707aee95f349dd1debc714cc2cc4f0c76d6a7380988bf0d22 utxo-snapshot-bitcoin-mainnet-565305.tar
|
||||
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
|
||||
52f0fc62dd28d016f49a75c22a6fa0827efc730f882bfa8cbc5ef96736d12100 utxo-snapshot-bitcoin-mainnet-609375.tar
|
||||
0afe8ca07e0ad2b538f43fc3ada89500b3e8594e8c16e0813c30d25fcff0d5a3 utxo-snapshot-bitcoin-mainnet-651474.tar
|
||||
587ac27b1929123313f842edbdb798afe116548e2a1bddea46d8d7068a6bc156 utxo-snapshot-bitcoin-mainnet-680891.tar
|
||||
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
|
||||
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
|
||||
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
|
||||
744c42885df700513331a978b289d9c9d5b27e0cf1147f2f5a287b4492ff940c utxo-snapshot-bitcoin-mainnet-867690.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: Keybase OpenPGP v2.1.13
|
||||
Comment: https://keybase.io/crypto
|
||||
|
||||
wsFcBAEBCAAQBQJcqUdICRB5wjOsK6943QAAJ98QABNFxxBSI3HEWS7X/3twN9/E
|
||||
5eF2mzfApfNjaLSs1v3G82IpZOC6GV3vwa3X3TOMrgzNO4SqGbWUYPykxOZY+2kZ
|
||||
puww78tc22B5I4E9Yq7caWE8vdMX/lAyfi62iWWqGx/HolbacsTXIdLDMcKtDY55
|
||||
tzL2QaXBj3u8ZibAxAlRieHoX759AJwdYohx5MzUQIbxXMlPcrXDK3NY4oKpj6Rv
|
||||
dmJ5DRyxWEW4qIKnK/itlKBO9fBEp/DEN9CMEkbBA9pgOiZFgOKOwBJevYooYOUK
|
||||
1XyaF77hhk7RC66pFaAtxAgXETtRmGv3YAL7vFVR9Yrvb0BrNKKsNH305inBvEHU
|
||||
OMqxpQo34fE8YaPAhE/i3emiHIMQ8rMChmFLLbjRg5+oEW6H0yvVxYszdPMt2trq
|
||||
MaFeunpfDy4r2FC92lBYo1pfbFp4q5CFKSJiv9joxoqZmsMW1MCj6WcLDmvMQzxw
|
||||
Lu8GzWQxKuXJfncCUdWlLvBH901PvzJBJUcBX0gUpBRESNIzbKr283gwl+Y7W70C
|
||||
1djJ7UMaruvY53QnjiAv93QJnMvSpDT24HpOe0ZEmLrbKMknS+ArWbEJ/bCWMxlI
|
||||
CV2IoNMO+lVLoW9NbEaDsRkJWeGWMtcuD6u7kbHYcezc/ZgJmJCnU7pGiTlF7fC/
|
||||
C8G4yDrxxeR2riTfofjB
|
||||
=h45/
|
||||
wsFcBAABCgAGBQJnPpBHAAoJEHnCM6wrr3jdJEwP/3bSVFvciVH/z78UNbeUFQkE
|
||||
Jh93IBqWj7hOXy2MfE4w7X8t0uvHNH0TjtQ6bThTdABkYnT8M9oEkry7WoWfFgEb
|
||||
MQtCZq3jAUVwyuK3TN41KZMLhSqFkV0lEO5ZK6BT6pIUzHrPQfkjQLS0GHslvnWi
|
||||
xLrdO9wMBhLF40I76DBqeEutGd7HEw26D7QJUp9Mq4mMAQ0/X9uvQgjh/47szR8C
|
||||
Ip4tH6u/woMffr2IgVsjkfXM4uFLW6rrijyhL5ZIEbgaiz93M6fRBhYxEXpXSSAp
|
||||
IRS35GoY30aN0a6ZxPaj3UKMyBw4xRbfTtLWJsSJqhbMIq0iWuyLI2HDFHtfH3yy
|
||||
loRJG0/d1pfsAB5zYRVYjmey4cAI0wjK7eGbJ6uYnKrQ7JO7IWHiSE4PGGgF/4TG
|
||||
pUhGF6JhXCqoK9pn/ZvFb8lsc6tCoJYtGceGEClpOLSovxw2KQ9R82Dlmf3TK6rv
|
||||
NW2hyEpyhI9M6WwcKIuhKKrKmi//bwSWF8Rw602IEuyNGLCzChTA6AATI2QGPhBq
|
||||
QbcBhhu7UblAES9Wgk1e9/gZq8yH7SKtoipICc7rQDV3PURw8o5qJeQHYTxY9kQv
|
||||
SDTnwZZYWY/2nupHdNrAN2KvtDT0MlufZf4jtE8c7pgxJO/FrucfwIuW0pvLHkg6
|
||||
J5Rw3AofuAa1ql3kJvOI
|
||||
=2QeW
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
20
contrib/FastSync/sigs/sbrooks24.utxo-sets.asc
Normal file
20
contrib/FastSync/sigs/sbrooks24.utxo-sets.asc
Normal file
@ -0,0 +1,20 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
wsFcBAEBCAAQBQJi0ENyCRCP0DYsF/YIBQAAaGUQAIYlvPkZqUoQmv2Pv4YgjiRH
|
||||
dbXUbSzFP2azdDQhiQ4Ju8cMKCvQKXBg0DC3DgvK0yadhb0iaNsut+Qne1uMMfHl
|
||||
Mu9lmdgMZp86yl8ozp0MJHPEMNJcrP513N5xslMLRRKS+fnCwFa3e9i19NYWJa1N
|
||||
Cvc9uf16CJMnIQ4TijNJvgAxFz4Y1rJESob3AoZxSX2DglV08rhJhL5uk42szwTw
|
||||
7GN2oM5BNEdAdqpor59NE0Erl1TsoHIPPzHDecPgXvA4KDa8jfBD722j8PBHWtDq
|
||||
7XuUcx49MDZxKZzVWriDyuaut2CfKWginO9yc7jVJjXd/JXTSD/x0RR2i6Oh0oPV
|
||||
03AEthcmDVsKddsNVWqfm4GeYnZw7EXNsMgOnnplz9UIAfSzZFLTfgrUWfGOsisQ
|
||||
ewSLb2KFoS5NNvmaYDurUz+raB/R1JG2/qMt07yU6rL6dBSbZD1IlaUsD2Jn9XEI
|
||||
wtmyI3JfA2+H5e9WUL79TOAFi08zpwf9h0U7CFGVqvTEAsWjb4KpARN1PYQ0omY+
|
||||
6cmEhiKnWSl/Sk+X4tcAbjUNEG3iEqbuB2UN1L1IIql3WqVOZclu+dfpFErSYvqW
|
||||
G7ni9H3peAZtgJ68N5dvhjkb33fcQ/hNjOaECOJq0LfAJspmyHR0eNmRjsrDWNVb
|
||||
u18meA/Q/Jzutg0BUpLl
|
||||
=NNl1
|
||||
-----END PGP SIGNATURE-----
|
||||
@ -1,4 +1,13 @@
|
||||
fab994299273080bf7124c8c45c4ada867974ca747900178496a69e450cf713f utxo-snapshot-bitcoin-mainnet-551636.tar
|
||||
eabaaa717bb8eeaf603e383dd8642d9d34df8e767fccbd208b0c936b79c82742 utxo-snapshot-bitcoin-testnet-1445586.tar
|
||||
8e18176138be351707aee95f349dd1debc714cc2cc4f0c76d6a7380988bf0d22 utxo-snapshot-bitcoin-mainnet-565305.tar
|
||||
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
|
||||
58f65fc3e2abc367602c07ab0e7ae4a042e6acf2bc026623c7322d1886f52098 utxo-snapshot-bitcoin-mainnet-585333.tar
|
||||
52f0fc62dd28d016f49a75c22a6fa0827efc730f882bfa8cbc5ef96736d12100 utxo-snapshot-bitcoin-mainnet-609375.tar
|
||||
0afe8ca07e0ad2b538f43fc3ada89500b3e8594e8c16e0813c30d25fcff0d5a3 utxo-snapshot-bitcoin-mainnet-651474.tar
|
||||
587ac27b1929123313f842edbdb798afe116548e2a1bddea46d8d7068a6bc156 utxo-snapshot-bitcoin-mainnet-680891.tar
|
||||
79d5b28fb140c23602bebaf90e829fc89aef2bb95cb2a5d492cd818f22f01836 utxo-snapshot-bitcoin-mainnet-699714.tar
|
||||
58b3c9c8a3e5f7b3449521e8d7f8435db2e948918063cb7f5b0e635862e03891 utxo-snapshot-bitcoin-mainnet-720179.tar
|
||||
83f55203f4fca7d4197ef6261a9d3ce09e1ed308e1ecf969f223eb20038dc1dd utxo-snapshot-bitcoin-mainnet-744358.tar
|
||||
11b355b08a799e2bef7fffb5dea390d0e23f51ef2c31056fbf8d92e007a3d398 utxo-snapshot-bitcoin-mainnet-769818.tar
|
||||
725a049bc5a9fd60b05bba4d4825d35115d99f05ab5b7716d4507c295d05172d utxo-snapshot-bitcoin-mainnet-820852.tar
|
||||
744c42885df700513331a978b289d9c9d5b27e0cf1147f2f5a287b4492ff940c utxo-snapshot-bitcoin-mainnet-867690.tar
|
||||
1262
contrib/build-all-images.sh
Executable file → Normal file
1262
contrib/build-all-images.sh
Executable file → Normal file
File diff suppressed because it is too large
Load Diff
@ -1 +1 @@
|
||||
docker exec -ti btcpayserver_dashd dash-cli -datadir="/data" $args
|
||||
docker exec btcpayserver_dashd dash-cli -datadir="/data" $args
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
docker exec -ti btcpayserver_dashd dash-cli -datadir="/data" "$@"
|
||||
docker exec btcpayserver_dashd dash-cli -datadir="/data" "$@"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#
|
||||
FROM mcr.microsoft.com/dotnet/core/sdk:2.1.505-alpine3.7 AS builder
|
||||
FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:10.0.201-noble AS builder
|
||||
WORKDIR /source
|
||||
COPY src/docker-compose-generator.csproj docker-compose-generator.csproj
|
||||
# Cache some dependencies
|
||||
@ -8,7 +8,7 @@ COPY src/. .
|
||||
RUN dotnet publish --output /app/ --configuration Release
|
||||
|
||||
#
|
||||
FROM mcr.microsoft.com/dotnet/core/runtime:2.1.9-alpine3.7
|
||||
FROM mcr.microsoft.com/dotnet/runtime:10.0.5-noble
|
||||
LABEL org.btcpayserver.image=docker-compose-generator
|
||||
WORKDIR /datadir
|
||||
WORKDIR /app
|
||||
122
docker-compose-generator/crypto-definitions.json
Normal file
122
docker-compose-generator/crypto-definitions.json
Normal file
@ -0,0 +1,122 @@
|
||||
[
|
||||
{
|
||||
"Crypto": "ltc",
|
||||
"CryptoFragment": "litecoin",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "btc",
|
||||
"CryptoFragment": "bitcoin",
|
||||
"CLightningFragment": "bitcoin-clightning",
|
||||
"LNDFragment": "bitcoin-lnd",
|
||||
"EclairFragment": "bitcoin-eclair",
|
||||
"PhoenixdFragment": "phoenixd"
|
||||
},
|
||||
{
|
||||
"Crypto": "btx",
|
||||
"CryptoFragment": "bitcore",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "btg",
|
||||
"CryptoFragment": "bgold",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": "bgold-lnd",
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "ftc",
|
||||
"CryptoFragment": "feathercoin",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "grs",
|
||||
"CryptoFragment": "groestlcoin",
|
||||
"CLightningFragment": "groestlcoin-clightning",
|
||||
"LNDFragment": "groestlcoin-lnd",
|
||||
"EclairFragment": "groestlcoin-eclair",
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "via",
|
||||
"CryptoFragment": "viacoin",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "dash",
|
||||
"CryptoFragment": "dash",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "doge",
|
||||
"CryptoFragment": "dogecoin",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "mona",
|
||||
"CryptoFragment": "monacoin",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "xmr",
|
||||
"CryptoFragment": "monero",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "bdx",
|
||||
"CryptoFragment": "beldex",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "lbtc",
|
||||
"CryptoFragment": "liquid",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "zec",
|
||||
"CryptoFragment": "zcash",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
},
|
||||
{
|
||||
"Crypto": "dcr",
|
||||
"CryptoFragment": "decred",
|
||||
"CLightningFragment": null,
|
||||
"LNDFragment": null,
|
||||
"EclairFragment": null,
|
||||
"PhoenixdFragment": null
|
||||
}
|
||||
]
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26124.0
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.29519.181
|
||||
MinimumVisualStudioVersion = 15.0.26124.0
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "docker-compose-generator", "src\docker-compose-generator.csproj", "{0900AF35-48E8-46E2-85B3-BA3847EE0844}"
|
||||
EndProject
|
||||
@ -10,6 +10,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{8C1C711D-D
|
||||
..\.circleci\config.yml = ..\.circleci\config.yml
|
||||
linuxamd64.Dockerfile = linuxamd64.Dockerfile
|
||||
linuxarm32v7.Dockerfile = linuxarm32v7.Dockerfile
|
||||
linuxarm64v8.Dockerfile = linuxarm64v8.Dockerfile
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
|
||||
31
docker-compose-generator/docker-fragments/beldex.yml
Normal file
31
docker-compose-generator/docker-fragments/beldex.yml
Normal file
@ -0,0 +1,31 @@
|
||||
services:
|
||||
beldexd:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_beldexd
|
||||
image: beldex/beldex:7.0.0
|
||||
command: beldexd --rpc-bind-ip=0.0.0.0 --confirm-external-bind --rpc-bind-port=19091 --non-interactive --block-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/beldexlikedaemoncallback/block?cryptoCode=bdx&hash=%s" --hide-my-port
|
||||
expose:
|
||||
- "19091"
|
||||
volumes:
|
||||
- "bdx_data:/data"
|
||||
beldexd_wallet:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_beldex_wallet
|
||||
image: beldex/beldex:7.0.0
|
||||
command: beldex-wallet-rpc --rpc-bind-ip=0.0.0.0 --disable-rpc-login --confirm-external-bind --rpc-bind-port=19092 --non-interactive --trusted-daemon --daemon-address=beldexd:19091 --wallet-dir=/wallet --tx-notify="/bin/sh ./scripts/notifier.sh -X GET http://btcpayserver:49392/beldexlikedaemoncallback/tx?cryptoCode=bdx&hash=%s"
|
||||
expose:
|
||||
- "19092"
|
||||
volumes:
|
||||
- "bdx_wallet:/wallet"
|
||||
depends_on:
|
||||
- beldexd
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_BDX_DAEMON_URI: http://beldexd:19091
|
||||
BTCPAY_BDX_WALLET_DAEMON_URI: http://beldexd_wallet:19092
|
||||
BTCPAY_BDX_WALLET_DAEMON_WALLETDIR: /root/bdx_wallet
|
||||
volumes:
|
||||
- "bdx_wallet:/root/bdx_wallet"
|
||||
volumes:
|
||||
bdx_wallet:
|
||||
bdx_data:
|
||||
@ -1,5 +1,3 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
lnd_bitcoingold:
|
||||
image: kamigawabul/btglnd:latest
|
||||
@ -31,22 +29,12 @@ services:
|
||||
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_BTCLIGHTNING: "type=lnd-rest;server=http://lnd_bitcoingold:8080/;macaroonfilepath=/etc/lnd_bitcoingold/admin.macaroon;allowinsecure=true"
|
||||
BTCPAY_BTGLIGHTNING: "type=lnd-rest;server=http://lnd_bitcoingold:8080/;macaroonfilepath=/etc/lnd_bitcoingold/admin.macaroon;allowinsecure=true"
|
||||
volumes:
|
||||
- "lnd_bitcoingold_datadir:/etc/lnd_bitcoingold"
|
||||
links:
|
||||
- lnd_bitcoingold
|
||||
|
||||
bgoldd:
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
zmqpubrawtx=tcp://0.0.0.0:28332
|
||||
zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
zmqpubrawtxlock=tcp://0.0.0.0:28332
|
||||
zmqpubhashblock=tcp://0.0.0.0:28332
|
||||
expose:
|
||||
- "28332"
|
||||
|
||||
nginx:
|
||||
links:
|
||||
- "lnd_bitcoingold"
|
||||
@ -59,4 +47,7 @@ services:
|
||||
- "lnd_bitcoingold_datadir:/lnd"
|
||||
|
||||
volumes:
|
||||
lnd_bitcoingold_datadir:
|
||||
lnd_bitcoingold_datadir:
|
||||
|
||||
required:
|
||||
- "opt-add-zmq"
|
||||
|
||||
@ -1,31 +1,31 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
bgoldd:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bgoldd
|
||||
image: kamigawabul/docker-bitcoingold:0.15.2
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bgold_datadir:/data"
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bgoldd
|
||||
image: kamigawabul/docker-bitcoingold:0.15.2
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bgold_datadir:/data"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btg"
|
||||
NBXPLORER_BTGRPCURL: http://bgoldd:43782/
|
||||
NBXPLORER_BTGNODEENDPOINT: bgoldd:39388
|
||||
volumes:
|
||||
- "bgold_datadir:/root/.bitcoingold"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btg"
|
||||
NBXPLORER_BTGRPCURL: http://bgoldd:43782/
|
||||
NBXPLORER_BTGNODEENDPOINT: bgoldd:39388
|
||||
volumes:
|
||||
- "bgold_datadir:/root/.bitcoingold"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "btg"
|
||||
BTCPAY_BTGEXPLORERURL: http://nbxplorer:32838/
|
||||
environment:
|
||||
BTCPAY_CHAINS: "btg"
|
||||
BTCPAY_BTGEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
bgold_datadir:
|
||||
required:
|
||||
- "nbxplorer"
|
||||
@ -1,8 +1,6 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
clightning_bitcoin:
|
||||
image: btcpayserver/lightning:v0.7.2-1
|
||||
image: btcpayserver/lightning:v26.06.1
|
||||
container_name: btcpayserver_clightning_bitcoin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
@ -15,53 +13,70 @@ services:
|
||||
LIGHTNINGD_OPT: |
|
||||
bitcoin-datadir=/etc/bitcoin
|
||||
bitcoin-rpcconnect=bitcoind
|
||||
database-upgrade=true
|
||||
rpc-file-mode=0666
|
||||
clnrest-port=3010
|
||||
clnrest-protocol=http
|
||||
clnrest-host=0.0.0.0
|
||||
grpc-port=9736
|
||||
volumes:
|
||||
- "clightning_bitcoin_datadir:/root/.lightning"
|
||||
- "bitcoin_datadir:/etc/bitcoin"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
ports:
|
||||
- "9735:9735"
|
||||
- "3010"
|
||||
expose:
|
||||
- "9736"
|
||||
links:
|
||||
- bitcoind
|
||||
clightning_bitcoin_charge:
|
||||
image: shesek/lightning-charge:0.4.6-standalone
|
||||
|
||||
bitcoin_rtl:
|
||||
image: shahanafarooqui/rtl:v0.15.4
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
COOKIE_FILE: /data/.cookie
|
||||
URL: ${BTCPAY_ROOTPATH:-/}lightning-charge/btc/
|
||||
LN_IMPLEMENTATION: CLN
|
||||
CONFIG_PATH: /root/.lightning/config
|
||||
LN_SERVER_URL: http://clightning_bitcoin:3010
|
||||
RUNE_PATH: /root/.lightning/rune.env
|
||||
RTL_CONFIG_PATH: /data/
|
||||
BITCOIND_CONFIG_PATH: /etc/bitcoin/bitcoin.conf
|
||||
RTL_SSO: 1
|
||||
RTL_COOKIE_PATH: /data/.cookie
|
||||
LOGOUT_REDIRECT_LINK: /server/services
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.bitcoin_rtl.rule: Host(`${BTCPAY_HOST}`) && (Path(`/rtl`) || PathPrefix(`/rtl/`))
|
||||
volumes:
|
||||
- "clightning_bitcoin_datadir:/etc/lightning"
|
||||
- "clightning_bitcoin_charge:/data"
|
||||
- "clightning_bitcoin_datadir:/root/.lightning"
|
||||
- "bitcoin_datadir:/etc/bitcoin"
|
||||
- "clightning_bitcoin_rtl_datadir:/data"
|
||||
expose:
|
||||
- "9112"
|
||||
links:
|
||||
- clightning_bitcoin
|
||||
clightning_bitcoin_spark:
|
||||
image: shesek/spark-wallet:0.2.8-standalone
|
||||
restart: unless-stopped
|
||||
- "3000"
|
||||
|
||||
mempool_api:
|
||||
environment:
|
||||
NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
SPARK_OPT: --no-tls -C /data/.cookie
|
||||
LIGHTNING_ENABLED: "true"
|
||||
LIGHTNING_BACKEND: "cln"
|
||||
CLIGHTNING_SOCKET: "/etc/lightning/lightning-rpc"
|
||||
volumes:
|
||||
- "clightning_bitcoin_datadir:/etc/lightning"
|
||||
- "clightning_bitcoin_spark:/data"
|
||||
links:
|
||||
- clightning_bitcoin
|
||||
expose:
|
||||
- "9737"
|
||||
|
||||
mempool_web:
|
||||
environment:
|
||||
LIGHTNING: "true"
|
||||
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_BTCLIGHTNING: "type=clightning;server=unix://etc/clightning_bitcoin/lightning-rpc"
|
||||
BTCPAY_BTCEXTERNALSPARK: "server=/spark/btc/;cookiefile=/etc/clightning_bitcoin_spark/.cookie"
|
||||
BTCPAY_BTCEXTERNALCHARGE: "server=/lightning-charge/btc/;cookiefilepath=/etc/clightning_bitcoin_charge/.cookie"
|
||||
BTCPAY_BTCEXTERNALRTL: "server=/rtl/api/authenticate/cookie;cookiefile=/etc/clightning_bitcoin_rtl/.cookie"
|
||||
volumes:
|
||||
- "clightning_bitcoin_datadir:/etc/clightning_bitcoin"
|
||||
- "clightning_bitcoin_spark:/etc/clightning_bitcoin_spark"
|
||||
- "clightning_bitcoin_charge:/etc/clightning_bitcoin_charge"
|
||||
- "clightning_bitcoin_rtl_datadir:/etc/clightning_bitcoin_rtl"
|
||||
links:
|
||||
- clightning_bitcoin
|
||||
volumes:
|
||||
clightning_bitcoin_datadir:
|
||||
clightning_bitcoin_spark:
|
||||
clightning_bitcoin_charge:
|
||||
clightning_bitcoin_rtl_datadir:
|
||||
exclusive:
|
||||
- lightning
|
||||
|
||||
82
docker-compose-generator/docker-fragments/bitcoin-eclair.yml
Normal file
82
docker-compose-generator/docker-fragments/bitcoin-eclair.yml
Normal file
@ -0,0 +1,82 @@
|
||||
services:
|
||||
bitcoind:
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcauth=eclair:d3a244200d5c946f6bef48e6583ec979$$215049513aef33245dfec8ff3ab5e749458fde51ede931dec04c767c0732d468
|
||||
eclair_bitcoin:
|
||||
container_name: btcpayserver_eclair_bitcoin
|
||||
restart: unless-stopped
|
||||
stop_signal: SIGINT
|
||||
image: acinq/eclair:release-0.7.0
|
||||
environment:
|
||||
PUBLIC_HOST: ${BTCPAY_HOST}
|
||||
JAVA_OPTS: |
|
||||
-Declair.printToConsole
|
||||
-Declair.headless
|
||||
-Declair.chain=${NBITCOIN_NETWORK:-regtest}
|
||||
-Declair.server.binding-ip=0.0.0.0
|
||||
-Declair.server.public-ips.0=${BTCPAY_HOST}
|
||||
-Declair.server.port=9735
|
||||
-Declair.api.enabled=true
|
||||
-Declair.api.binding-ip=0.0.0.0
|
||||
-Declair.api.port=8080
|
||||
-Declair.node-alias=${LIGHTNING_ALIAS}
|
||||
-Declair.api.password=DwubwWsoo3
|
||||
-Declair.bitcoind.host=bitcoind
|
||||
-Declair.bitcoind.rpcport=43782
|
||||
-Declair.bitcoind.rpcuser=eclair
|
||||
-Declair.bitcoind.rpcpassword=sFLjcg99Puh4k3CAZCQkLvC-fcoFUFRyKwKcXQKa7dw=
|
||||
-Declair.bitcoind.zmqblock=tcp://bitcoind:28334
|
||||
-Declair.bitcoind.zmqtx=tcp://bitcoind:28333
|
||||
expose:
|
||||
- "9735" # server port
|
||||
- "8080" # api port
|
||||
volumes:
|
||||
- "bitcoin_datadir:/etc/bitcoin"
|
||||
- "eclair_bitcoin_datadir:/data"
|
||||
links:
|
||||
- bitcoind
|
||||
|
||||
bitcoin_rtl:
|
||||
image: shahanafarooqui/rtl:v0.15.4
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
LN_IMPLEMENTATION: ECL
|
||||
LN_SERVER_URL: http://eclair_bitcoin:8080
|
||||
LN_API_PASSWORD: DwubwWsoo3
|
||||
BITCOIND_CONFIG_PATH: /etc/bitcoin/bitcoin.conf
|
||||
RTL_SSO: 1
|
||||
RTL_COOKIE_PATH: /data/.cookie
|
||||
LOGOUT_REDIRECT_LINK: /server/services
|
||||
volumes:
|
||||
- "bitcoin_datadir:/etc/bitcoin"
|
||||
- "eclair_bitcoin_datadir:/etc/eclair"
|
||||
- "eclair_bitcoin_rtl_datadir:/data"
|
||||
expose:
|
||||
- "3000"
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.bitcoin_rtl.rule: Host(`${BTCPAY_HOST}`) && (Path(`/rtl`) || PathPrefix(`/rtl/`))
|
||||
links:
|
||||
- eclair_bitcoin
|
||||
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_BTCLIGHTNING: "type=eclair;server=http://eclair_bitcoin:8080;password=DwubwWsoo3"
|
||||
BTCPAY_BTCEXTERNALRTL: "server=/rtl/api/authenticate/cookie;cookiefile=/etc/eclair_bitcoin_rtl/.cookie"
|
||||
volumes:
|
||||
- "eclair_bitcoin_datadir:/etc/eclair_bitcoin"
|
||||
- "eclair_bitcoin_rtl_datadir:/etc/eclair_bitcoin_rtl"
|
||||
links:
|
||||
- eclair_bitcoin
|
||||
volumes:
|
||||
eclair_bitcoin_datadir:
|
||||
eclair_bitcoin_rtl_datadir:
|
||||
|
||||
incompatible:
|
||||
- pruning
|
||||
required:
|
||||
- "opt-add-zmq"
|
||||
- "opt-txindex"
|
||||
exclusive:
|
||||
- lightning
|
||||
@ -1,8 +1,6 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
lnd_bitcoin:
|
||||
image: btcpayserver/lnd:v0.7.1-beta
|
||||
image: btcpayserver/lnd:v0.19.3-beta-1
|
||||
container_name: btcpayserver_lnd_bitcoin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
@ -12,41 +10,50 @@ services:
|
||||
LND_ALIAS: ${LIGHTNING_ALIAS}
|
||||
LND_ENVIRONMENT: "${NBITCOIN_NETWORK:-regtest}"
|
||||
LND_READY_FILE: /root/.nbxplorer/btc_fully_synched
|
||||
LND_REST_LISTEN_HOST: http://lnd_bitcoin:8080
|
||||
LND_HOST_FOR_LOOP: 127.0.0.1:10009
|
||||
LND_EXTRA_ARGS: |
|
||||
restlisten=0.0.0.0:8080
|
||||
restlisten=lnd_bitcoin:8080
|
||||
rpclisten=127.0.0.1:10008
|
||||
rpclisten=0.0.0.0:10009
|
||||
rpclisten=lnd_bitcoin:10009
|
||||
rpclisten=127.0.0.1:10009
|
||||
bitcoin.node=bitcoind
|
||||
bitcoind.rpchost=bitcoind:43782
|
||||
bitcoind.rpcuser=lnd
|
||||
bitcoind.rpcpass=afixedpasswordbecauselndsuckswithcookiefile
|
||||
bitcoind.rpchost=bitcoind:43782
|
||||
bitcoind.zmqpubrawblock=tcp://bitcoind:28332
|
||||
bitcoind.zmqpubrawtx=tcp://bitcoind:28333
|
||||
adminmacaroonpath=/data/admin.macaroon
|
||||
invoicemacaroonpath=/data/invoice.macaroon
|
||||
readonlymacaroonpath=/data/readonly.macaroon
|
||||
noseedbackup=1
|
||||
notls=1
|
||||
tlsextradomain=lnd_bitcoin
|
||||
no-rest-tls=1
|
||||
protocol.wumbo-channels=1
|
||||
ports:
|
||||
- "9735:9735"
|
||||
expose:
|
||||
- "8080"
|
||||
- "8081"
|
||||
- "9735"
|
||||
volumes:
|
||||
- "lnd_bitcoin_datadir:/data"
|
||||
- "lndloop_bitcoin_datadir:/root/.loop/${NBITCOIN_NETWORK:-regtest}"
|
||||
- "bitcoin_datadir:/deps/.bitcoin"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
links:
|
||||
- bitcoind
|
||||
|
||||
lnd_bitcoin_rtl:
|
||||
image: shahanafarooqui/rtl:0.5.1
|
||||
bitcoin_rtl:
|
||||
image: shahanafarooqui/rtl:v0.15.4
|
||||
container_name: generated_lnd_bitcoin_rtl_1
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
LND_SERVER_URL: http://lnd_bitcoin:8080/v1
|
||||
MACAROON_PATH: /etc/lnd
|
||||
SWAP_SERVER_URL: https://lnd_bitcoin:8081/v1
|
||||
SWAP_MACAROON_PATH: /etc/lndloop
|
||||
RTL_CONFIG_PATH: /data/
|
||||
LND_CONFIG_PATH: /etc/lnd/lnd.conf
|
||||
RTL_CONFIG_PATH: /data/RTL.conf
|
||||
BITCOIND_CONFIG_PATH: /etc/bitcoin/bitcoin.conf
|
||||
RTL_SSO: 1
|
||||
RTL_COOKIE_PATH: /data/.cookie
|
||||
@ -54,9 +61,16 @@ services:
|
||||
volumes:
|
||||
- "bitcoin_datadir:/etc/bitcoin"
|
||||
- "lnd_bitcoin_datadir:/etc/lnd"
|
||||
- "lnd_bitcoin_datadir:/root/.lnd"
|
||||
- "lndloop_bitcoin_datadir:/etc/lndloop"
|
||||
- "lnd_bitcoin_rtl_datadir:/data"
|
||||
expose:
|
||||
- "3000"
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.bitcoin_rtl.rule: Host(`${BTCPAY_HOST}`) && (Path(`/rtl`) || PathPrefix(`/rtl/`))
|
||||
links:
|
||||
- lnd_bitcoin
|
||||
|
||||
btcpayserver:
|
||||
environment:
|
||||
@ -64,6 +78,7 @@ services:
|
||||
BTCPAY_BTCEXTERNALRTL: "server=/rtl/api/authenticate/cookie;cookiefile=/etc/lnd_bitcoin_rtl/.cookie"
|
||||
BTCPAY_BTCEXTERNALLNDGRPC: "server=/;macaroonfilepath=/etc/lnd_bitcoin/admin.macaroon;macaroondirectorypath=/etc/lnd_bitcoin"
|
||||
BTCPAY_BTCEXTERNALLNDREST: "server=/lnd-rest/btc/;macaroonfilepath=/etc/lnd_bitcoin/admin.macaroon;macaroondirectorypath=/etc/lnd_bitcoin"
|
||||
BTCPAY_BTCEXTERNALLNDSEEDBACKUP: "/etc/lnd_bitcoin/data/chain/bitcoin/${NBITCOIN_NETWORK:-regtest}/walletunlock.json"
|
||||
volumes:
|
||||
- "lnd_bitcoin_datadir:/etc/lnd_bitcoin"
|
||||
- "lnd_bitcoin_rtl_datadir:/etc/lnd_bitcoin_rtl"
|
||||
@ -73,17 +88,12 @@ services:
|
||||
bitcoind:
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
zmqpubrawblock=tcp://0.0.0.0:28332
|
||||
zmqpubrawtx=tcp://0.0.0.0:28333
|
||||
# rpcuser=lnd
|
||||
# rpcpassword=afixedpasswordbecauselndsuckswithcookiefile
|
||||
# We need to use rpcauth because we also need cookieauth. rpcpassword disabled cookie file auth.
|
||||
# Be careful if you copy the line below from the docker-compose.yml! A dollar sign is escaped.
|
||||
rpcauth=lnd:d031f7567c5b02ba95524170e51c77f4$$827ce5412f653d6613c2f480e521eb437c866b999bdeb2ee4f9c41d3b00dff1c
|
||||
expose:
|
||||
- "28332"
|
||||
- "28333"
|
||||
|
||||
|
||||
nginx:
|
||||
links:
|
||||
- "lnd_bitcoin"
|
||||
@ -95,6 +105,29 @@ services:
|
||||
volumes:
|
||||
- "lnd_bitcoin_datadir:/lnd"
|
||||
|
||||
mempool_api:
|
||||
environment:
|
||||
LIGHTNING_ENABLED: "true"
|
||||
LIGHTNING_BACKEND: "lnd"
|
||||
LND_TLS_CERT_PATH: "/etc/lnd/tls.cert"
|
||||
LND_MACAROON_PATH: "/etc/lnd/readonly.macaroon"
|
||||
LND_REST_API_URL: "http://lnd_bitcoin:8080"
|
||||
LND_TIMEOUT: 1000000
|
||||
volumes:
|
||||
- "lnd_bitcoin_datadir:/etc/lnd"
|
||||
|
||||
mempool_web:
|
||||
environment:
|
||||
LIGHTNING: "true"
|
||||
|
||||
volumes:
|
||||
lnd_bitcoin_datadir:
|
||||
lndloop_bitcoin_datadir:
|
||||
lnd_bitcoin_rtl_datadir:
|
||||
|
||||
recommended:
|
||||
- "opt-lnd-grpc"
|
||||
required:
|
||||
- "opt-add-zmq"
|
||||
exclusive:
|
||||
- lightning
|
||||
|
||||
@ -1,33 +1,46 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
bitcoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoind
|
||||
image: btcpayserver/bitcoin:0.18.0
|
||||
environment:
|
||||
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
rpcbind=0.0.0.0:43782
|
||||
port=39388
|
||||
disablewallet=1
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bitcoin_datadir:/data"
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoind
|
||||
image: btcpayserver/bitcoin:29.2
|
||||
environment:
|
||||
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
CREATE_WALLET: "false"
|
||||
BITCOIN_WALLETDIR: "/walletdata"
|
||||
# rpcport and rpcbind seems duplicates, but they are not
|
||||
# rpcport is using by some tooling to automatically get
|
||||
# the rpcport from the configuration file. Do not remove!
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
rpcbind=0.0.0.0:43782
|
||||
rpcallowip=0.0.0.0/0
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
maxmempool=500
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bitcoin_datadir:/data"
|
||||
- "bitcoin_wallet_datadir:/walletdata"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btc"
|
||||
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
|
||||
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
|
||||
volumes:
|
||||
- "bitcoin_datadir:/root/.bitcoin"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btc"
|
||||
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
|
||||
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
|
||||
volumes:
|
||||
- "bitcoin_datadir:/root/.bitcoin"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "btc"
|
||||
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
|
||||
environment:
|
||||
BTCPAY_CHAINS: "btc"
|
||||
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
bitcoin_datadir:
|
||||
bitcoin_datadir:
|
||||
bitcoin_wallet_datadir:
|
||||
|
||||
exclusive:
|
||||
- bitcoin-node
|
||||
recommended:
|
||||
- "opt-mempoolfullrbf"
|
||||
required:
|
||||
- "nbxplorer"
|
||||
|
||||
46
docker-compose-generator/docker-fragments/bitcoincore.yml
Normal file
46
docker-compose-generator/docker-fragments/bitcoincore.yml
Normal file
@ -0,0 +1,46 @@
|
||||
services:
|
||||
bitcoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoind
|
||||
image: btcpayserver/bitcoin:31.0
|
||||
environment:
|
||||
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
CREATE_WALLET: "false"
|
||||
BITCOIN_WALLETDIR: "/walletdata"
|
||||
# rpcport and rpcbind seems duplicates, but they are not
|
||||
# rpcport is using by some tooling to automatically get
|
||||
# the rpcport from the configuration file. Do not remove!
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
rpcbind=0.0.0.0:43782
|
||||
rpcallowip=0.0.0.0/0
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
maxmempool=500
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bitcoin_datadir:/data"
|
||||
- "bitcoin_wallet_datadir:/walletdata"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btc"
|
||||
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
|
||||
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
|
||||
volumes:
|
||||
- "bitcoin_datadir:/root/.bitcoin"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "btc"
|
||||
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
bitcoin_datadir:
|
||||
bitcoin_wallet_datadir:
|
||||
|
||||
exclusive:
|
||||
- bitcoin-node
|
||||
recommended:
|
||||
- "opt-mempoolfullrbf"
|
||||
required:
|
||||
- "nbxplorer"
|
||||
46
docker-compose-generator/docker-fragments/bitcoinknots.yml
Normal file
46
docker-compose-generator/docker-fragments/bitcoinknots.yml
Normal file
@ -0,0 +1,46 @@
|
||||
services:
|
||||
bitcoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoind
|
||||
image: btcpayserver/bitcoinknots:29.3.knots20260508
|
||||
environment:
|
||||
BITCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
CREATE_WALLET: "false"
|
||||
BITCOIN_WALLETDIR: "/walletdata"
|
||||
# rpcport and rpcbind seems duplicates, but they are not
|
||||
# rpcport is using by some tooling to automatically get
|
||||
# the rpcport from the configuration file. Do not remove!
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
rpcbind=0.0.0.0:43782
|
||||
rpcallowip=0.0.0.0/0
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
maxmempool=500
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bitcoin_datadir:/data"
|
||||
- "bitcoin_wallet_datadir:/walletdata"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btc"
|
||||
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
|
||||
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
|
||||
volumes:
|
||||
- "bitcoin_datadir:/root/.bitcoin"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "btc"
|
||||
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
bitcoin_datadir:
|
||||
bitcoin_wallet_datadir:
|
||||
|
||||
exclusive:
|
||||
- bitcoin-node
|
||||
recommended:
|
||||
- "opt-mempoolfullrbf"
|
||||
required:
|
||||
- "nbxplorer"
|
||||
@ -1,35 +1,35 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
bitcoinplusd:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoinplusd
|
||||
image: chekaz/docker-bitcoinplus:2.7.0
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bitcoinplus_datadir:/data"
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcoinplusd
|
||||
image: chekaz/docker-bitcoinplus:2.7.0
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "bitcoinplus_datadir:/data"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "xbc"
|
||||
NBXPLORER_XBCRPCURL: http://bitcoinplusd:43782/
|
||||
NBXPLORER_XBCNODEENDPOINT: bitcoinplusd:39388
|
||||
NBXPLORER_XBCRPCUSER: "NBXPLORER_XBCRPCUSER"
|
||||
NBXPLORER_XBCRPCPASSWORD: "NBXPLORER_XBCRPCPASS"
|
||||
links:
|
||||
- bitcoinplusd
|
||||
volumes:
|
||||
- "bitcoinplus_datadir:/root/.bitcoinplus"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "xbc"
|
||||
NBXPLORER_XBCRPCURL: http://bitcoinplusd:43782/
|
||||
NBXPLORER_XBCNODEENDPOINT: bitcoinplusd:39388
|
||||
NBXPLORER_XBCRPCUSER: "NBXPLORER_XBCRPCUSER"
|
||||
NBXPLORER_XBCRPCPASSWORD: "NBXPLORER_XBCRPCPASS"
|
||||
links:
|
||||
- bitcoinplusd
|
||||
volumes:
|
||||
- "bitcoinplus_datadir:/root/.bitcoinplus"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "xbc"
|
||||
BTCPAY_TZCEXPLORERURL: http://nbxplorer:32838/
|
||||
environment:
|
||||
BTCPAY_CHAINS: "xbc"
|
||||
BTCPAY_TZCEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
bitcoinplus_datadir:
|
||||
required:
|
||||
- "nbxplorer"
|
||||
@ -1,10 +1,8 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
bitcored:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_bitcored
|
||||
image: dalijolijo/docker-bitcore:0.15.2
|
||||
image: dalijolijo/docker-bitcore:0.90.9.10
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
@ -17,18 +15,20 @@ services:
|
||||
volumes:
|
||||
- "bitcore_datadir:/data"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btx"
|
||||
NBXPLORER_BTXRPCURL: http://bitcored:43782/
|
||||
NBXPLORER_BTXNODEENDPOINT: bitcored:39388
|
||||
links:
|
||||
- bitcored
|
||||
volumes:
|
||||
- "bitcore_datadir:/root/.bitcore"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "btx"
|
||||
NBXPLORER_BTXRPCURL: http://bitcored:43782/
|
||||
NBXPLORER_BTXNODEENDPOINT: bitcored:39388
|
||||
links:
|
||||
- bitcored
|
||||
volumes:
|
||||
- "bitcore_datadir:/root/.bitcore"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_BTXEXPLORERURL: http://nbxplorer:32838/
|
||||
BTCPAY_CHAINS: "btx"
|
||||
environment:
|
||||
BTCPAY_BTXEXPLORERURL: http://nbxplorer:32838/
|
||||
BTCPAY_CHAINS: "btx"
|
||||
|
||||
volumes:
|
||||
bitcore_datadir:
|
||||
bitcore_datadir:
|
||||
required:
|
||||
- "nbxplorer"
|
||||
@ -1,5 +1,3 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
|
||||
btcpayserver:
|
||||
@ -9,8 +7,8 @@ services:
|
||||
VIRTUAL_PORT: 49392
|
||||
VIRTUAL_HOST: ${BTCPAY_HOST},${BTCPAY_ADDITIONAL_HOSTS}
|
||||
VIRTUAL_HOST_NAME: "btcpay"
|
||||
SSL_POLICY: Mozilla-Modern
|
||||
SSL_POLICY: Mozilla-Modern
|
||||
|
||||
# Let's encrypt settings
|
||||
LETSENCRYPT_HOST: ${BTCPAY_HOST},${BTCPAY_ADDITIONAL_HOSTS}
|
||||
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
|
||||
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-<no value>}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
btcpayserver:
|
||||
ports:
|
||||
- "80:49392"
|
||||
ports:
|
||||
- "${NOREVERSEPROXY_HTTP_PORT:-80}:49392"
|
||||
|
||||
exclusive:
|
||||
- proxy
|
||||
|
||||
@ -1,15 +1,13 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
|
||||
btcpayserver:
|
||||
restart: unless-stopped
|
||||
image: ${BTCPAY_IMAGE:-btcpayserver/btcpayserver:1.0.3.133}
|
||||
container_name: generated_btcpayserver_1
|
||||
image: ${BTCPAY_IMAGE:-btcpayserver/btcpayserver:2.4.0}
|
||||
expose:
|
||||
- "49392"
|
||||
environment:
|
||||
# BTCPay settings
|
||||
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Application Name=btcpayserver;Database=btcpayserver${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
BTCPAY_BIND: 0.0.0.0:49392
|
||||
BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/}
|
||||
@ -18,12 +16,26 @@ services:
|
||||
BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE}
|
||||
BTCPAY_SSHAUTHORIZEDKEYS: ${BTCPAY_SSHAUTHORIZEDKEYS}
|
||||
BTCPAY_DEBUGLOG: btcpay.log
|
||||
BTCPAY_UPDATEURL: https://api.github.com/repos/btcpayserver/btcpayserver/releases/latest
|
||||
BTCPAY_DOCKERDEPLOYMENT: "true"
|
||||
BTCPAY_NODEFAULTCHAIN: "true"
|
||||
labels:
|
||||
traefik.enable: "true"
|
||||
traefik.http.routers.btcpayserver.rule: Host(`${BTCPAY_HOST}`)
|
||||
# Traefic can not accept list from BTCPAY_ADDITIONAL_HOSTS, see Traefik/README.md
|
||||
links:
|
||||
- postgres
|
||||
volumes:
|
||||
- "btcpay_datadir:/datadir"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
- "$<BTCPAY_HOST_SSHAUTHORIZEDKEYS>?:${BTCPAY_SSHAUTHORIZEDKEYS}"
|
||||
- "btcpay_datadir:/datadir"
|
||||
- "$<BTCPAY_HOST_SSHAUTHORIZEDKEYS>?:${BTCPAY_SSHAUTHORIZEDKEYS}"
|
||||
- "btcpay_pluginsdir:/root/.btcpayserver/Plugins"
|
||||
|
||||
volumes:
|
||||
btcpay_datadir:
|
||||
btcpay_datadir:
|
||||
btcpay_pluginsdir:
|
||||
|
||||
required:
|
||||
- "postgres"
|
||||
- "btcpayserver"
|
||||
recommended:
|
||||
- "opt-add-tor"
|
||||
|
||||
@ -1,31 +1,36 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
dashd:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_dashd
|
||||
image: btcpayserver/dash:0.14.0.1
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=9999
|
||||
rpcport=9998
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "9998"
|
||||
- "9999"
|
||||
volumes:
|
||||
- "dash_datadir:/data"
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_dashd
|
||||
image: btcpayserver/dash:23.1.2
|
||||
environment:
|
||||
# rpcport and rpcbind seems duplicates, but they are not
|
||||
# rpcport is using by some tooling to automatically get
|
||||
# the rpcport from the configuration file. Do not remove!
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=9999
|
||||
rpcport=9998
|
||||
rpcbind=0.0.0.0:9998
|
||||
rpcallowip=0.0.0.0/0
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "9998"
|
||||
- "9999"
|
||||
volumes:
|
||||
- "dash_datadir:/data"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "dash"
|
||||
NBXPLORER_DASHRPCURL: http://dashd:9998/
|
||||
NBXPLORER_DASHNODEENDPOINT: dashd:9999
|
||||
volumes:
|
||||
- "dash_datadir:/root/.dashcore"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "dash"
|
||||
NBXPLORER_DASHRPCURL: http://dashd:9998/
|
||||
NBXPLORER_DASHNODEENDPOINT: dashd:9999
|
||||
volumes:
|
||||
- "dash_datadir:/root/.dashcore"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "dash"
|
||||
BTCPAY_DASHEXPLORERURL: http://nbxplorer:32838/
|
||||
environment:
|
||||
BTCPAY_CHAINS: "dash"
|
||||
BTCPAY_DASHEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
dash_datadir:
|
||||
required:
|
||||
- "nbxplorer"
|
||||
23
docker-compose-generator/docker-fragments/decred.yml
Normal file
23
docker-compose-generator/docker-fragments/decred.yml
Normal file
@ -0,0 +1,23 @@
|
||||
services:
|
||||
dcrwallet:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_dcrwallet
|
||||
image: ghcr.io/bisoncraft/decred:2.1.5
|
||||
command:
|
||||
- dcrwallet
|
||||
- --spv
|
||||
- --username=btcpay
|
||||
- --password=btcpay
|
||||
- --rpclisten=0.0.0.0:9110
|
||||
- --pass=${BTCPAY_DCR_WALLET_PASSPHRASE}
|
||||
expose:
|
||||
- "9110"
|
||||
volumes:
|
||||
- "dcr_wallet:/root/.dcrwallet"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_DCR_WALLET_URI: https://dcrwallet:9110
|
||||
BTCPAY_DCR_RPC_USERNAME: btcpay
|
||||
BTCPAY_DCR_RPC_PASSWORD: btcpay
|
||||
volumes:
|
||||
dcr_wallet:
|
||||
@ -1,41 +1,39 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
dogecoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_dogecoind
|
||||
image: rockstardev/dogecoin:1.10.0
|
||||
environment:
|
||||
DOGECOIN_EXTRA_ARGS: |
|
||||
rpcuser=ceiwHEbqWI83
|
||||
rpcpassword=DwubwWsoo3
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
server=1
|
||||
rpcport=22555
|
||||
port=22556
|
||||
whitelist=0.0.0.0/0
|
||||
# Reducing memory usage of dogecoind. Don't try running this container without at least 2 GB of memory
|
||||
# https://www.reddit.com/r/dogecoin/comments/5wynqe/reducing_memory_usage_of_dogecoind/
|
||||
dbcache=50
|
||||
ports:
|
||||
- "22555:22555"
|
||||
expose:
|
||||
- "22555" # RPC
|
||||
- "22556" # P2P
|
||||
volumes:
|
||||
- "dogecoin_datadir:/data"
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_dogecoind
|
||||
image: btcpayserver/dogecoin:1.14.7
|
||||
environment:
|
||||
DOGECOIN_EXTRA_ARGS: |
|
||||
rpcuser=ceiwHEbqWI83
|
||||
rpcpassword=DwubwWsoo3
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
server=1
|
||||
rpcport=22555
|
||||
port=22556
|
||||
whitelist=0.0.0.0/0
|
||||
# Reducing memory usage of dogecoind. Don't try running this container without at least 2 GB of memory
|
||||
# https://www.reddit.com/r/dogecoin/comments/5wynqe/reducing_memory_usage_of_dogecoind/
|
||||
dbcache=50
|
||||
expose:
|
||||
- "22555" # RPC
|
||||
- "22556" # P2P
|
||||
volumes:
|
||||
- "dogecoin_datadir:/data"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "doge"
|
||||
NBXPLORER_DOGERPCURL: http://dogecoind:22555/
|
||||
NBXPLORER_DOGENODEENDPOINT: dogecoind:22556
|
||||
NBXPLORER_DOGERPCUSER: ceiwHEbqWI83
|
||||
NBXPLORER_DOGERPCPASSWORD: DwubwWsoo3
|
||||
volumes:
|
||||
- "dogecoin_datadir:/root/.dogecoin"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "doge"
|
||||
NBXPLORER_DOGERPCURL: http://dogecoind:22555/
|
||||
NBXPLORER_DOGENODEENDPOINT: dogecoind:22556
|
||||
NBXPLORER_DOGERPCUSER: ceiwHEbqWI83
|
||||
NBXPLORER_DOGERPCPASSWORD: DwubwWsoo3
|
||||
volumes:
|
||||
- "dogecoin_datadir:/root/.dogecoin"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "doge"
|
||||
BTCPAY_DOGEEXPLORERURL: http://nbxplorer:32838/
|
||||
environment:
|
||||
BTCPAY_CHAINS: "doge"
|
||||
BTCPAY_DOGEEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
dogecoin_datadir:
|
||||
required:
|
||||
- "nbxplorer"
|
||||
4
docker-compose-generator/docker-fragments/ethereum.yml
Normal file
4
docker-compose-generator/docker-fragments/ethereum.yml
Normal file
@ -0,0 +1,4 @@
|
||||
services:
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "eth"
|
||||
@ -1,31 +1,31 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
feathercoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_feathercoind
|
||||
image: chekaz/docker-feathercoin:0.16.3
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "feathercoin_datadir:/data"
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_feathercoind
|
||||
image: chekaz/docker-feathercoin:0.16.3
|
||||
environment:
|
||||
BITCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "feathercoin_datadir:/data"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "ftc"
|
||||
NBXPLORER_FTCRPCURL: http://feathercoind:43782/
|
||||
NBXPLORER_FTCNODEENDPOINT: feathercoind:39388
|
||||
volumes:
|
||||
- "feathercoin_datadir:/root/.feathercoin"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "ftc"
|
||||
NBXPLORER_FTCRPCURL: http://feathercoind:43782/
|
||||
NBXPLORER_FTCNODEENDPOINT: feathercoind:39388
|
||||
volumes:
|
||||
- "feathercoin_datadir:/root/.feathercoin"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "ftc"
|
||||
BTCPAY_FTCEXPLORERURL: http://nbxplorer:32838/
|
||||
environment:
|
||||
BTCPAY_CHAINS: "ftc"
|
||||
BTCPAY_FTCEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
feathercoin_datadir:
|
||||
required:
|
||||
- "nbxplorer"
|
||||
@ -1,40 +1,35 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
clightning_groestlcoin:
|
||||
image: groestlcoin/lightning:v0.7.2
|
||||
stop_signal: SIGKILL
|
||||
image: groestlcoin/lightning:v24.08
|
||||
container_name: btcpayserver_clightning_groestlcoin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
LIGHTNINGD_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
LIGHTNINGD_CHAIN: grs
|
||||
LIGHTNINGD_ALIAS: ${LIGHTNING_ALIAS}
|
||||
LIGHTNINGD_ANNOUNCEADDR: ${BTCPAY_ANNOUNCEABLE_HOST}
|
||||
LIGHTNINGD_PORT: 9736
|
||||
LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/"
|
||||
LIGHTNINGD_OPT: |
|
||||
bitcoin-datadir=/etc/groestlcoin
|
||||
bitcoin-rpcconnect=groestlcoind
|
||||
bitcoin-rpcport=43782
|
||||
log-level=debug
|
||||
announce-addr=${BTCPAY_HOST}:9738
|
||||
bind-addr=0.0.0.0:9735
|
||||
network=${NBITCOIN_NETWORK:-regtest}
|
||||
alias=${LIGHTNING_ALIAS}
|
||||
groestlcoin-datadir=/etc/groestlcoin
|
||||
groestlcoin-rpcconnect=groestlcoind
|
||||
volumes:
|
||||
- "clightning_groestlcoin_datadir:/root/.lightning"
|
||||
- "groestlcoin_datadir:/etc/groestlcoin"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
ports:
|
||||
- "9738:9735"
|
||||
- "9736:9736"
|
||||
links:
|
||||
- nbxplorer
|
||||
- groestlcoind
|
||||
clightning_groestlcoin_charge:
|
||||
image: groestlcoin/groestlcoin-lightning-charge:version-0.4.9
|
||||
image: groestlcoin/groestlcoin-lightning-charge:version-0.4.22
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
COOKIE_FILE: /data/.cookie
|
||||
URL: ${BTCPAY_ROOTPATH:-/}lightning-charge/grs/
|
||||
LN_NET_PATH: /etc/lightning
|
||||
LN_NET: /etc/lightning
|
||||
volumes:
|
||||
- "clightning_groestlcoin_datadir:/etc/lightning"
|
||||
- "clightning_groestlcoin_charge:/data"
|
||||
@ -42,6 +37,21 @@ services:
|
||||
- "9112"
|
||||
links:
|
||||
- clightning_groestlcoin
|
||||
|
||||
clightning_groestlcoin_spark:
|
||||
image: groestlcoin/groestlcoin-spark:version-0.2.16
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
SPARK_OPT: --no-tls -C /data/.cookie
|
||||
volumes:
|
||||
- "clightning_groestlcoin_datadir:/etc/lightning"
|
||||
- "clightning_groestlcoin_spark:/data"
|
||||
links:
|
||||
- clightning_groestlcoin
|
||||
expose:
|
||||
- "9736"
|
||||
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_GRSLIGHTNING: "type=clightning;server=unix://etc/clightning_groestlcoin/lightning-rpc"
|
||||
@ -53,20 +63,6 @@ services:
|
||||
- "clightning_groestlcoin_charge:/etc/clightning_groestlcoin_charge"
|
||||
links:
|
||||
- clightning_groestlcoin
|
||||
clightning_groestlcoin_spark:
|
||||
image: groestlcoin/groestlcoin-spark:version-0.2.8
|
||||
stop_signal: SIGKILL
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
SPARK_OPT: --no-tls --port 9739 -C /data/.cookie
|
||||
volumes:
|
||||
- "clightning_groestlcoin_datadir:/etc/lightning"
|
||||
- "clightning_groestlcoin_spark:/data"
|
||||
links:
|
||||
- clightning_groestlcoin
|
||||
expose:
|
||||
- "9739"
|
||||
volumes:
|
||||
clightning_groestlcoin_datadir:
|
||||
clightning_groestlcoin_charge:
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
services:
|
||||
groestlcoind:
|
||||
environment:
|
||||
GROESTLCOIN_EXTRA_ARGS: |
|
||||
rpcauth=eclair:d3a244200d5c946f6bef48e6583ec979$$215049513aef33245dfec8ff3ab5e749458fde51ede931dec04c767c0732d468
|
||||
eclair_groestlcoin:
|
||||
container_name: btcpayserver_eclair_groestlcoin
|
||||
restart: unless-stopped
|
||||
stop_signal: SIGINT
|
||||
image: groestlcoin/eclair:v0.6.0
|
||||
environment:
|
||||
PUBLIC_HOST: ${BTCPAY_HOST}
|
||||
JAVA_OPTS: |
|
||||
-Xmx256m
|
||||
-Declair.printToConsole
|
||||
-Declair.headless
|
||||
-Declair.chain=${NBITCOIN_NETWORK:-regtest}
|
||||
-Declair.server.binding-ip=0.0.0.0
|
||||
-Declair.server.public-ips.0=${BTCPAY_HOST}
|
||||
-Declair.server.port=9736
|
||||
-Declair.api.enabled=true
|
||||
-Declair.api.binding-ip=0.0.0.0
|
||||
-Declair.api.port=8080
|
||||
-Declair.node-alias=${LIGHTNING_ALIAS}
|
||||
-Declair.api.password=DwubwWsoo3
|
||||
-Declair.bitcoind.host=groestlcoind
|
||||
-Declair.bitcoind.rpcport=43782
|
||||
-Declair.bitcoind.rpcuser=eclair
|
||||
-Declair.bitcoind.rpcpassword=sFLjcg99Puh4k3CAZCQkLvC-fcoFUFRyKwKcXQKa7dw=
|
||||
-Declair.bitcoind.zmqblock=tcp://groestlcoind:21441
|
||||
-Declair.bitcoind.zmqtx=tcp://groestlcoind:21441
|
||||
expose:
|
||||
- "9736" # server port
|
||||
- "8080" # api port
|
||||
volumes:
|
||||
- "groestlcoin_datadir:/etc/groestlcoin"
|
||||
- "eclair_groestlcoin_datadir:/data"
|
||||
links:
|
||||
- groestlcoind
|
||||
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_GRSLIGHTNING: "type=eclair;server=http://eclair_groestlcoin:8080;password=DwubwWsoo3"
|
||||
volumes:
|
||||
- "eclair_groestlcoin_datadir:/etc/eclair_groestlcoin"
|
||||
links:
|
||||
- eclair_groestlcoin
|
||||
volumes:
|
||||
eclair_groestlcoin_datadir:
|
||||
|
||||
incompatible:
|
||||
- pruning
|
||||
required:
|
||||
- "opt-add-zmq"
|
||||
- "opt-txindex"
|
||||
@ -0,0 +1,79 @@
|
||||
services:
|
||||
lnd_groestlcoin:
|
||||
image: groestlcoin/lnd:v0.10.0-grs
|
||||
container_name: btcpayserver_lnd_groestlcoin
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
LND_CHAIN: "grs"
|
||||
LND_EXTERNALIP: ${BTCPAY_ANNOUNCEABLE_HOST}
|
||||
LND_PORT: 9736
|
||||
LND_ALIAS: ${LIGHTNING_ALIAS}
|
||||
LND_ENVIRONMENT: "${NBITCOIN_NETWORK:-regtest}"
|
||||
LND_REST_LISTEN_HOST: http://lnd_groestlcoin:8080
|
||||
LND_HOST_FOR_LOOP: 127.0.0.1:10009
|
||||
LND_EXTRA_ARGS: |
|
||||
restlisten=lnd_groestlcoin:8080
|
||||
rpclisten=127.0.0.1:10008
|
||||
rpclisten=lnd_groestlcoin:10009
|
||||
rpclisten=127.0.0.1:10009
|
||||
groestlcoin.node=groestlcoind
|
||||
groestlcoind.rpchost=groestlcoind:43782
|
||||
groestlcoind.rpcuser=lnd
|
||||
groestlcoind.rpcpass=afixedpasswordbecauselndsuckswithcookiefile
|
||||
groestlcoind.zmqpubrawblock=tcp://groestlcoind:21441
|
||||
groestlcoind.zmqpubrawtx=tcp://groestlcoind:21441
|
||||
adminmacaroonpath=/data/admin.macaroon
|
||||
invoicemacaroonpath=/data/invoice.macaroon
|
||||
readonlymacaroonpath=/data/readonly.macaroon
|
||||
tlsextradomain=lnd_groestlcoin
|
||||
no-rest-tls=1
|
||||
protocol.wumbo-channels=1
|
||||
ports:
|
||||
- "9736:9736"
|
||||
expose:
|
||||
- "8080"
|
||||
- "8081"
|
||||
- "9736"
|
||||
volumes:
|
||||
- "lnd_groestlcoin_datadir:/data"
|
||||
- "groestlcoin_datadir:/deps/.groestlcoin"
|
||||
- "nbxplorer_datadir:/root/.nbxplorer"
|
||||
links:
|
||||
- groestlcoind
|
||||
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_GRSLIGHTNING: "type=lnd-rest;server=http://lnd_groestlcoin:8080/;macaroonfilepath=/etc/lnd_groestlcoin/admin.macaroon;allowinsecure=true"
|
||||
BTCPAY_GRSEXTERNALLNDGRPC: "server=/;macaroonfilepath=/etc/lnd_groestlcoin/admin.macaroon;macaroondirectorypath=/etc/lnd_groestlcoin"
|
||||
BTCPAY_GRSEXTERNALLNDREST: "server=/lnd-rest/grs/;macaroonfilepath=/etc/lnd_groestlcoin/admin.macaroon;macaroondirectorypath=/etc/lnd_groestlcoin"
|
||||
BTCPAY_GRSEXTERNALLNDSEEDBACKUP: "/etc/lnd_groestlcoin/data/chain/groestlcoin/${NBITCOIN_NETWORK:-regtest}/walletunlock.json"
|
||||
volumes:
|
||||
- "lnd_groestlcoin_datadir:/etc/lnd_groestlcoin"
|
||||
links:
|
||||
- lnd_groestlcoin
|
||||
|
||||
groestlcoind:
|
||||
environment:
|
||||
GROESTLCOIN_EXTRA_ARGS: |
|
||||
# rpcuser=lnd
|
||||
# rpcpassword=afixedpasswordbecauselndsuckswithcookiefile
|
||||
# We need to use rpcauth because we also need cookieauth. rpcpassword disabled cookie file auth.
|
||||
# Be careful if you copy the line below from the docker-compose.yml! A dollar sign is escaped.
|
||||
rpcauth=lnd:d031f7567c5b02ba95524170e51c77f4$$827ce5412f653d6613c2f480e521eb437c866b999bdeb2ee4f9c41d3b00dff1c
|
||||
|
||||
nginx:
|
||||
links:
|
||||
- "lnd_groestlcoin"
|
||||
volumes:
|
||||
- "lnd_groestlcoin_datadir:/lnd"
|
||||
nginx-gen:
|
||||
links:
|
||||
- "lnd_groestlcoin"
|
||||
volumes:
|
||||
- "lnd_groestlcoin_datadir:/lnd"
|
||||
|
||||
volumes:
|
||||
lnd_groestlcoin_datadir:
|
||||
|
||||
required:
|
||||
- "opt-add-zmq"
|
||||
@ -1,31 +1,39 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
groestlcoind:
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_groestlcoind
|
||||
image: nicolasdorier/docker-groestlcoin:2.17.2
|
||||
environment:
|
||||
GROESTLCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
${NBITCOIN_NETWORK:-regtest}=1
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "groestlcoin_datadir:/data"
|
||||
restart: unless-stopped
|
||||
container_name: btcpayserver_groestlcoind
|
||||
image: btcpayserver/groestlcoin:25.0
|
||||
environment:
|
||||
GROESTLCOIN_NETWORK: ${NBITCOIN_NETWORK:-regtest}
|
||||
GROESTLCOIN_WALLETDIR: "/walletdata"
|
||||
# rpcport and rpcbind seems duplicates, but they are not
|
||||
# rpcport is using by some tooling to automatically get
|
||||
# the rpcport from the configuration file. Do not remove!
|
||||
GROESTLCOIN_EXTRA_ARGS: |
|
||||
rpcport=43782
|
||||
rpcbind=0.0.0.0:43782
|
||||
rpcallowip=0.0.0.0/0
|
||||
port=39388
|
||||
whitelist=0.0.0.0/0
|
||||
expose:
|
||||
- "43782"
|
||||
- "39388"
|
||||
volumes:
|
||||
- "groestlcoin_datadir:/data"
|
||||
- "groestlcoin_wallet_datadir:/walletdata"
|
||||
nbxplorer:
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "grs"
|
||||
NBXPLORER_GRSRPCURL: http://groestlcoind:43782/
|
||||
NBXPLORER_GRSNODEENDPOINT: groestlcoind:39388
|
||||
volumes:
|
||||
- "groestlcoin_datadir:/root/.groestlcoin"
|
||||
environment:
|
||||
NBXPLORER_CHAINS: "grs"
|
||||
NBXPLORER_GRSRPCURL: http://groestlcoind:43782/
|
||||
NBXPLORER_GRSNODEENDPOINT: groestlcoind:39388
|
||||
volumes:
|
||||
- "groestlcoin_datadir:/root/.groestlcoin"
|
||||
btcpayserver:
|
||||
environment:
|
||||
BTCPAY_CHAINS: "grs"
|
||||
BTCPAY_GRSEXPLORERURL: http://nbxplorer:32838/
|
||||
environment:
|
||||
BTCPAY_CHAINS: "grs"
|
||||
BTCPAY_GRSEXPLORERURL: http://nbxplorer:32838/
|
||||
volumes:
|
||||
groestlcoin_datadir:
|
||||
groestlcoin_wallet_datadir:
|
||||
required:
|
||||
- "nbxplorer"
|
||||
@ -0,0 +1,6 @@
|
||||
services:
|
||||
elementsd_liquid:
|
||||
environment:
|
||||
ELEMENTS_EXTRA_ARGS: |
|
||||
prune=5000
|
||||
trim_headers=1
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user