Compare commits
2693 Commits
v1.24.1
...
v2-domain-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83df29d832 | ||
|
|
607afe864a | ||
|
|
a97cee84f3 | ||
|
|
ad64384891 | ||
|
|
f75c73d739 | ||
|
|
418bcddc95 | ||
|
|
61192b998a | ||
|
|
5ea2b09dc3 | ||
|
|
5bfc2c4a9b | ||
|
|
8ec47c3894 | ||
|
|
f4423638a2 | ||
|
|
7b3444308b | ||
|
|
5ec9916817 | ||
|
|
be1a70299f | ||
|
|
8685aa371a | ||
|
|
0224faa184 | ||
|
|
8546e326cf | ||
|
|
9956fd2f04 | ||
|
|
4f669ca82f | ||
|
|
1cd3881aa8 | ||
|
|
e634513f7b | ||
|
|
7b6cde6ae3 | ||
|
|
18146fdf9e | ||
|
|
2c80c35b21 | ||
|
|
54b73769b8 | ||
|
|
f7983ee4d9 | ||
|
|
9eace86aee | ||
|
|
2fbb58eb2b | ||
|
|
187d04e3a1 | ||
|
|
d5d7d73440 | ||
|
|
b747e281b7 | ||
|
|
e024d50476 | ||
|
|
a6ba48c075 | ||
|
|
e19375387d | ||
|
|
a9f68187d4 | ||
|
|
4d754fa78d | ||
|
|
6d07ab2bc5 | ||
|
|
a60b00c440 | ||
|
|
d0f3f303b6 | ||
|
|
4fc8acce8c | ||
|
|
0797a4f99d | ||
|
|
db453c8038 | ||
|
|
c776c34cfd | ||
|
|
170b39fde6 | ||
|
|
fc27a66825 | ||
|
|
06b49c140e | ||
|
|
3ab45c91e1 | ||
|
|
6660161cec | ||
|
|
8c6e207008 | ||
|
|
4180e3c540 | ||
|
|
a218cd0ffb | ||
|
|
31c8de5bbe | ||
|
|
faac7f365f | ||
|
|
8cc4332b10 | ||
|
|
abd30da102 | ||
|
|
f4701ff72a | ||
|
|
393d7885a1 | ||
|
|
b4c6d3c975 | ||
|
|
3ce440a28d | ||
|
|
cb4ab6a99f | ||
|
|
6c39d7b1ee | ||
|
|
840bd52671 | ||
|
|
f3d70c7ea1 | ||
|
|
22b8528ee1 | ||
|
|
900e302df7 | ||
|
|
be03d8e137 | ||
|
|
d338a9639a | ||
|
|
235972f3da | ||
|
|
ae822881e7 | ||
|
|
26f75c71ba | ||
|
|
ad2aa2eff5 | ||
|
|
52689049ae | ||
|
|
1a29541140 | ||
|
|
ece17eecef | ||
|
|
2b353094eb | ||
|
|
70305aa501 | ||
|
|
22dc504ad0 | ||
|
|
ef9402d403 | ||
|
|
f7e29532f7 | ||
|
|
60770683b6 | ||
|
|
051bbbc64f | ||
|
|
206eef964c | ||
|
|
b8b7adff17 | ||
|
|
42c68d362e | ||
|
|
1df3967889 | ||
|
|
dae87e26a3 | ||
|
|
f193341eae | ||
|
|
d21a042ad8 | ||
|
|
b16b9e813d | ||
|
|
a79fe1f350 | ||
|
|
14f99875fb | ||
|
|
2d2890b34f | ||
|
|
66d8cafd76 | ||
|
|
468ccbf2b7 | ||
|
|
6b6668f73b | ||
|
|
5eda05f007 | ||
|
|
1d6a8bd851 | ||
|
|
e500af1ed4 | ||
|
|
7ee39fd4ed | ||
|
|
9ba6c83821 | ||
|
|
4243622414 | ||
|
|
8374a4f5bf | ||
|
|
5d851141cb | ||
|
|
26ac081182 | ||
|
|
64e0d9a4d5 | ||
|
|
269a6cad80 | ||
|
|
806ebdb8a8 | ||
|
|
ed0016fd2b | ||
|
|
a3fb24993d | ||
|
|
9c26598831 | ||
|
|
7634f153b7 | ||
|
|
cabc4da3ac | ||
|
|
6419539305 | ||
|
|
97e1178525 | ||
|
|
04faf12c14 | ||
|
|
e7aa79cc9f | ||
|
|
f862e3f37f | ||
|
|
ce051af5bb | ||
|
|
dcb9f1c840 | ||
|
|
83d0fe9f09 | ||
|
|
7789ba4d36 | ||
|
|
80101b04e2 | ||
|
|
310d4d1b57 | ||
|
|
126c0c6ad6 | ||
|
|
6a43b44087 | ||
|
|
6772b32609 | ||
|
|
db2f0b8c5c | ||
|
|
1376004197 | ||
|
|
1625989c48 | ||
|
|
f7863bd686 | ||
|
|
883565905a | ||
|
|
786780ce9b | ||
|
|
d2e9fed62d | ||
|
|
0e5a4fb098 | ||
|
|
f223f042de | ||
|
|
cd413825ed | ||
|
|
a851c272cd | ||
|
|
412077b418 | ||
|
|
4df6f8a50e | ||
|
|
44bf4b1cc1 | ||
|
|
136e8dd7c5 | ||
|
|
024b2b04a4 | ||
|
|
5bbf210394 | ||
|
|
039c62b09b | ||
|
|
07f0aa45ef | ||
|
|
de11f44309 | ||
|
|
acee96ef17 | ||
|
|
4ed49f9dfa | ||
|
|
f68b585f8f | ||
|
|
13ddc979ec | ||
|
|
b0b7ac3efb | ||
|
|
62f8525dd5 | ||
|
|
1347355cb1 | ||
|
|
f847c4a414 | ||
|
|
776fa924e3 | ||
|
|
8872466968 | ||
|
|
b620038d98 | ||
|
|
a248367b15 | ||
|
|
c159ec4a9a | ||
|
|
5359a7670f | ||
|
|
7e1c7a6de2 | ||
|
|
91e19bbdd3 | ||
|
|
e61daaee2d | ||
|
|
8caab1fd92 | ||
|
|
cd944882c3 | ||
|
|
888d9591fe | ||
|
|
833808c5de | ||
|
|
d731956b06 | ||
|
|
40449ae4de | ||
|
|
44ad61f004 | ||
|
|
74865d53f8 | ||
|
|
373415261e | ||
|
|
d0f653da9a | ||
|
|
cbb8319cfa | ||
|
|
0e467a6024 | ||
|
|
e505916525 | ||
|
|
31f09ab117 | ||
|
|
09e5e0f9b3 | ||
|
|
773cada57a | ||
|
|
403947ed6d | ||
|
|
d9d08a725c | ||
|
|
e2ed75af94 | ||
|
|
dd19afce92 | ||
|
|
5b5deac7d9 | ||
|
|
3f3ee3456e | ||
|
|
3e2f2fc02e | ||
|
|
c5a3003cf7 | ||
|
|
4c6dcddf11 | ||
|
|
b314e500cd | ||
|
|
b83e6ad13f | ||
|
|
fee401cfdf | ||
|
|
fa14f62198 | ||
|
|
5526665494 | ||
|
|
6249af996a | ||
|
|
e51a1b365e | ||
|
|
f53f00d126 | ||
|
|
ab8fbaf21d | ||
|
|
63d8bcf882 | ||
|
|
e4e16bc6a6 | ||
|
|
e4c21c4d5c | ||
|
|
d9e6dbf889 | ||
|
|
5f4469e306 | ||
|
|
16f6365b18 | ||
|
|
cdab54bf51 | ||
|
|
b6fea0c856 | ||
|
|
6f186932cc | ||
|
|
de544ec725 | ||
|
|
a6c0d2c6f1 | ||
|
|
437d956cad | ||
|
|
43ba0b9da6 | ||
|
|
fe1e2c3b62 | ||
|
|
bbe7e5f96d | ||
|
|
2bfad9fc65 | ||
|
|
9f24c18f7f | ||
|
|
a2d1e5ea03 | ||
|
|
b082e4e988 | ||
|
|
45fbce0c2a | ||
|
|
ff7006e232 | ||
|
|
c68fdef0e4 | ||
|
|
4c60e4edc1 | ||
|
|
f2e4e59f8d | ||
|
|
898205b5b1 | ||
|
|
8ec6862861 | ||
|
|
c3ba6322d8 | ||
|
|
e589828425 | ||
|
|
c909aa161b | ||
|
|
5cee7d44f1 | ||
|
|
973b323a99 | ||
|
|
d55954a363 | ||
|
|
adca151e4f | ||
|
|
43513049be | ||
|
|
a5ca41131b | ||
|
|
2ea3810980 | ||
|
|
c9cb54e8b2 | ||
|
|
23dd3db50b | ||
|
|
179c46914d | ||
|
|
ddb18e6c21 | ||
|
|
d2e147ba51 | ||
|
|
b63033f846 | ||
|
|
677e1101e6 | ||
|
|
3abc2ccfbb | ||
|
|
827d28f1cd | ||
|
|
59d12a1bbe | ||
|
|
8134172301 | ||
|
|
8d983aa561 | ||
|
|
bb3085ef84 | ||
|
|
78b1650bdb | ||
|
|
5edc72d475 | ||
|
|
1df32c9dfa | ||
|
|
bedb1ff7f9 | ||
|
|
fbf12f16b5 | ||
|
|
22a5f34e1f | ||
|
|
e1a8b08619 | ||
|
|
466d30fb74 | ||
|
|
7a1c6d2918 | ||
|
|
9fcc0dc8e7 | ||
|
|
286f244caf | ||
|
|
52ebeab90b | ||
|
|
6be7591332 | ||
|
|
73325aaefb | ||
|
|
0adcc6a8d1 | ||
|
|
93fb6acd1d | ||
|
|
77d52b323d | ||
|
|
ca8e8bf6ef | ||
|
|
9acac86ed5 | ||
|
|
ba5007219d | ||
|
|
ec046fd599 | ||
|
|
5452ff1153 | ||
|
|
d03b1e0608 | ||
|
|
53c88ad5af | ||
|
|
21585ca565 | ||
|
|
2fabee647a | ||
|
|
cf4632045c | ||
|
|
ec75afbc44 | ||
|
|
c7b298c46f | ||
|
|
3406bb5a4a | ||
|
|
e9427b4694 | ||
|
|
517a1f1835 | ||
|
|
6e735bbd1e | ||
|
|
5a148aa3b9 | ||
|
|
b4c362da37 | ||
|
|
575ae164c8 | ||
|
|
a9606bfb4e | ||
|
|
b5ec04723d | ||
|
|
51cc08411f | ||
|
|
d75034deae | ||
|
|
4ce23debb6 | ||
|
|
063706a7bf | ||
|
|
eb41a3655f | ||
|
|
a84476187f | ||
|
|
70b603d601 | ||
|
|
c9709f2698 | ||
|
|
be4f479afd | ||
|
|
a251465dbc | ||
|
|
9b7051f2be | ||
|
|
8bfdef79c4 | ||
|
|
f2c2bf81b3 | ||
|
|
8b5247b9bb | ||
|
|
075b1dc0eb | ||
|
|
42e1f0478d | ||
|
|
d4653678b2 | ||
|
|
a4ce752e58 | ||
|
|
f6649398ef | ||
|
|
02859cc270 | ||
|
|
4ed30e082f | ||
|
|
d3985dd129 | ||
|
|
ac70821fea | ||
|
|
38b273a1c9 | ||
|
|
eb5c88fbb2 | ||
|
|
1102952b47 | ||
|
|
5ad6cadcee | ||
|
|
5d236808d6 | ||
|
|
ada9243e84 | ||
|
|
ad4e1c1b5b | ||
|
|
c5105c29b0 | ||
|
|
f689b0f3b2 | ||
|
|
730f614024 | ||
|
|
2e4eb17a48 | ||
|
|
55d2a1f09b | ||
|
|
e3a5bcb907 | ||
|
|
d56567c9de | ||
|
|
d7c381e05d | ||
|
|
1d23dd2426 | ||
|
|
86ce00adf9 | ||
|
|
e1eef013a8 | ||
|
|
d20046c866 | ||
|
|
2df452fe5b | ||
|
|
c31bfd8b94 | ||
|
|
f443675f4f | ||
|
|
a44bd8849d | ||
|
|
274c887140 | ||
|
|
44973ebd00 | ||
|
|
88f74163ff | ||
|
|
6cd57dd426 | ||
|
|
481e866011 | ||
|
|
a78450ba79 | ||
|
|
9fcdeca692 | ||
|
|
8e10c56304 | ||
|
|
591f600b11 | ||
|
|
af03e55a73 | ||
|
|
1462cddd1e | ||
|
|
aac569a925 | ||
|
|
d19ac1fd15 | ||
|
|
410a23751b | ||
|
|
8190507e8c | ||
|
|
645f74f39d | ||
|
|
acdf0912d4 | ||
|
|
32e4e91ab8 | ||
|
|
b59ca329f3 | ||
|
|
beb9099bdc | ||
|
|
a013d95f0f | ||
|
|
9d5daf0015 | ||
|
|
1146307736 | ||
|
|
c25eaadc1d | ||
|
|
50f6e76ab9 | ||
|
|
c3637e731f | ||
|
|
c31eef6b82 | ||
|
|
802683b765 | ||
|
|
335cf93970 | ||
|
|
041954c067 | ||
|
|
2da44c3699 | ||
|
|
65e53092e8 | ||
|
|
0203aa2b6e | ||
|
|
f83fe28a18 | ||
|
|
e487b45898 | ||
|
|
4a94eab393 | ||
|
|
5ff7e6ef0e | ||
|
|
0c99f41bd9 | ||
|
|
bcac810f71 | ||
|
|
feae105426 | ||
|
|
d46b9c54b1 | ||
|
|
d0b7162b6a | ||
|
|
c16660254b | ||
|
|
bbe0d52740 | ||
|
|
65117ebdd7 | ||
|
|
445d55e800 | ||
|
|
dbce751464 | ||
|
|
b8640d903f | ||
|
|
6e7560ee77 | ||
|
|
efa26a067f | ||
|
|
f7cf7c198d | ||
|
|
d32f4fc38e | ||
|
|
0c8b8647f3 | ||
|
|
c38dbbb1d7 | ||
|
|
98cec15625 | ||
|
|
bad9828f47 | ||
|
|
18f91ddffa | ||
|
|
335745d365 | ||
|
|
4204b31398 | ||
|
|
029a568645 | ||
|
|
6b2f1fcd3e | ||
|
|
3bdc610249 | ||
|
|
c03a70fde2 | ||
|
|
c77645e173 | ||
|
|
6531002d61 | ||
|
|
fea808ca5f | ||
|
|
59ba408070 | ||
|
|
3a8931feef | ||
|
|
7ebd8f6bf5 | ||
|
|
73883979c6 | ||
|
|
d8935b46b3 | ||
|
|
1505d04622 | ||
|
|
3b690cc31f | ||
|
|
b3814920bd | ||
|
|
8bf1f828b9 | ||
|
|
911e69e3bc | ||
|
|
77b4a1eaf6 | ||
|
|
2ed12c429e | ||
|
|
e578c52fdf | ||
|
|
5ff4e3c4ea | ||
|
|
1c2e7256c1 | ||
|
|
7a51ca225a | ||
|
|
8d242d8072 | ||
|
|
543b068efa | ||
|
|
eadbd5e821 | ||
|
|
c771f5a13c | ||
|
|
f13b3111c3 | ||
|
|
bb2714ff24 | ||
|
|
54c42b1fc2 | ||
|
|
1f42f933f0 | ||
|
|
6c533d225b | ||
|
|
67a89d1289 | ||
|
|
0b9bef2f38 | ||
|
|
1c4649409d | ||
|
|
e1daaf07ce | ||
|
|
cd21f2d1d7 | ||
|
|
836e41064f | ||
|
|
4658e4c739 | ||
|
|
7993a7cdb0 | ||
|
|
567cb7d737 | ||
|
|
985128b537 | ||
|
|
cd35568e04 | ||
|
|
f612509cac | ||
|
|
f415190483 | ||
|
|
e00733a346 | ||
|
|
aafafa0e73 | ||
|
|
c87c9af12e | ||
|
|
622215715f | ||
|
|
c87250c028 | ||
|
|
d6b6d700a5 | ||
|
|
9d4e2c98a3 | ||
|
|
08094c2660 | ||
|
|
fda82c82b0 | ||
|
|
f0eabd4ea0 | ||
|
|
5a4d812146 | ||
|
|
bf156a13bd | ||
|
|
53d276a8fc | ||
|
|
978fa54518 | ||
|
|
31f82e58b5 | ||
|
|
5967f66e6d | ||
|
|
bea81b54ca | ||
|
|
6fd403bdca | ||
|
|
3d673d9d40 | ||
|
|
cac949de56 | ||
|
|
dffa152698 | ||
|
|
7796298fca | ||
|
|
5291bfe8d4 | ||
|
|
b364313297 | ||
|
|
2bef608e07 | ||
|
|
aee13ad909 | ||
|
|
9d82eba599 | ||
|
|
4852beb390 | ||
|
|
522c2f61c0 | ||
|
|
d331396afe | ||
|
|
c725cee044 | ||
|
|
367ef4ecb2 | ||
|
|
c3a64facd5 | ||
|
|
2671781e1b | ||
|
|
9291fa68aa | ||
|
|
6ebb3659f4 | ||
|
|
109696e965 | ||
|
|
b86bbd370c | ||
|
|
1575a4fb1a | ||
|
|
e2f500be90 | ||
|
|
284b00a826 | ||
|
|
66180e19b5 | ||
|
|
1531462d22 | ||
|
|
e17cd1f298 | ||
|
|
13092e9f80 | ||
|
|
8133b8b9dd | ||
|
|
e25aafac6d | ||
|
|
037c7beb1b | ||
|
|
faac4dfc30 | ||
|
|
469a088a4d | ||
|
|
9c854f727f | ||
|
|
8f6e5bd24b | ||
|
|
992f91cf4c | ||
|
|
0c61d4c978 | ||
|
|
72d32edf9a | ||
|
|
dde39def9e | ||
|
|
6b43007c44 | ||
|
|
876558cf77 | ||
|
|
b35a146edf | ||
|
|
86cf6a9908 | ||
|
|
b0f7288ac0 | ||
|
|
32fcc1a8fb | ||
|
|
eb4d125eaf | ||
|
|
87e5cced3c | ||
|
|
bcd9ee2d48 | ||
|
|
edf3d87458 | ||
|
|
0c0c353ecc | ||
|
|
aaa4c8f899 | ||
|
|
57e3565c11 | ||
|
|
fbcf72d762 | ||
|
|
ca8daa836e | ||
|
|
c2ccdbec9d | ||
|
|
69aee36e75 | ||
|
|
063f5c3b55 | ||
|
|
6d1b8ca65e | ||
|
|
03899d4d9c | ||
|
|
2b84af977d | ||
|
|
e15b180322 | ||
|
|
f070030f6b | ||
|
|
330ac66b38 | ||
|
|
12a9e650af | ||
|
|
1e5ccd811e | ||
|
|
2902ee6ad5 | ||
|
|
90ce4fec2c | ||
|
|
a7ab26d08d | ||
|
|
dcc396afb7 | ||
|
|
3f1722d54d | ||
|
|
c79658afbb | ||
|
|
6f84ebb323 | ||
|
|
54c8d62243 | ||
|
|
83e6476408 | ||
|
|
03f317ffdb | ||
|
|
3f67c7c74a | ||
|
|
b8b4660563 | ||
|
|
3d42bfd479 | ||
|
|
c4ebbaba74 | ||
|
|
2ae193092d | ||
|
|
7e1d52ff00 | ||
|
|
c98f43b984 | ||
|
|
e93f128a7a | ||
|
|
71d8e7edd2 | ||
|
|
48f4298a8d | ||
|
|
1c15beadc7 | ||
|
|
2c1600ddfb | ||
|
|
298f7d9d52 | ||
|
|
105f0bfde2 | ||
|
|
cf3a78e114 | ||
|
|
9cc5f0f889 | ||
|
|
81e588a896 | ||
|
|
e30db9ee77 | ||
|
|
235be757f8 | ||
|
|
e31d26a887 | ||
|
|
2293ba02ea | ||
|
|
7188997dd1 | ||
|
|
31cfb09468 | ||
|
|
b76f2e2008 | ||
|
|
4b90972341 | ||
|
|
f4ff34224c | ||
|
|
877c9c4ff9 | ||
|
|
ac0b7291dd | ||
|
|
491ef6085a | ||
|
|
3cedef4974 | ||
|
|
22ab04bd2b | ||
|
|
e5a080aebe | ||
|
|
c560cc5add | ||
|
|
0d27bc323b | ||
|
|
c71d3cef18 | ||
|
|
4e2d8daa3a | ||
|
|
d0f51da0af | ||
|
|
aeb73bca27 | ||
|
|
f239b03291 | ||
|
|
297c2965f4 | ||
|
|
daddf4d98e | ||
|
|
e05f9bfebf | ||
|
|
ef46aeae6f | ||
|
|
7edb3fd856 | ||
|
|
43b79778ea | ||
|
|
37f1f53b56 | ||
|
|
67bd1cdcd9 | ||
|
|
506385e5a2 | ||
|
|
2d4586b1c4 | ||
|
|
1476b9cb9c | ||
|
|
7bdde68ece | ||
|
|
50f92f55e2 | ||
|
|
370db62bf0 | ||
|
|
65f34f1d31 | ||
|
|
00a3908abb | ||
|
|
32034d590a | ||
|
|
3635fb3910 | ||
|
|
d2ecfe5491 | ||
|
|
1f759dce5b | ||
|
|
ae41c6038b | ||
|
|
f41f7eb2ad | ||
|
|
d04f383161 | ||
|
|
cb989d7489 | ||
|
|
b5cba19d26 | ||
|
|
b7271d7a46 | ||
|
|
768bdc2cc2 | ||
|
|
a0a093e260 | ||
|
|
0b2a7fdc15 | ||
|
|
f1876e20f8 | ||
|
|
7d6a6e53f7 | ||
|
|
6b765a1f77 | ||
|
|
3b3c93dd53 | ||
|
|
521083a309 | ||
|
|
6d35325601 | ||
|
|
3c65f37d84 | ||
|
|
d75dd058d6 | ||
|
|
40475e02ec | ||
|
|
f6ea9c1300 | ||
|
|
902359f24e | ||
|
|
bb4d5f1e93 | ||
|
|
1dec3f000e | ||
|
|
6d89814795 | ||
|
|
f339bc9f7f | ||
|
|
bb80bc0c07 | ||
|
|
96677ff8bf | ||
|
|
c7b6a6df79 | ||
|
|
8bb7e8bfb2 | ||
|
|
02ab343e22 | ||
|
|
4d875a18de | ||
|
|
cff2336923 | ||
|
|
0e96bfdfa3 | ||
|
|
a24ef48ad1 | ||
|
|
fe9c4f3391 | ||
|
|
6cbb0739f8 | ||
|
|
79ebabfcfb | ||
|
|
0c8e3262fe | ||
|
|
c24a040c19 | ||
|
|
4f39cb8dfa | ||
|
|
cdd2816642 | ||
|
|
27b6dfa4d2 | ||
|
|
204cbd0209 | ||
|
|
b7980aad5a | ||
|
|
e175729e2c | ||
|
|
c26ad4c807 | ||
|
|
4372adc703 | ||
|
|
8a0c2b9b13 | ||
|
|
4443a1c030 | ||
|
|
39a02235cf | ||
|
|
db89561480 | ||
|
|
a4cbb11693 | ||
|
|
1ceeacc526 | ||
|
|
b59052cc43 | ||
|
|
b5d8161bc2 | ||
|
|
b497eda26e | ||
|
|
44019e1042 | ||
|
|
fd0e1da4a2 | ||
|
|
f6c67b475a | ||
|
|
ea18a5ad15 | ||
|
|
4d0cd3f497 | ||
|
|
7dbdeaebe0 | ||
|
|
2085bcceb6 | ||
|
|
c09c962cb6 | ||
|
|
9108459ae4 | ||
|
|
992bac0b1f | ||
|
|
ebd6917a1d | ||
|
|
3e079e3b80 | ||
|
|
2ca20be197 | ||
|
|
17f23f3751 | ||
|
|
8e3d699856 | ||
|
|
f1a168fa53 | ||
|
|
3575113655 | ||
|
|
fe9dd7d23f | ||
|
|
9feb9d04b3 | ||
|
|
5419b1439a | ||
|
|
6f8fbe3f09 | ||
|
|
e4489343fe | ||
|
|
d9f4a5793d | ||
|
|
70fcdc9ebb | ||
|
|
78e7a81638 | ||
|
|
58e82d5dbd | ||
|
|
06d15be43a | ||
|
|
e1e7011853 | ||
|
|
eff7645035 | ||
|
|
eb75e52278 | ||
|
|
15e6148272 | ||
|
|
ccd448a675 | ||
|
|
db54c019ad | ||
|
|
b762b4d72c | ||
|
|
2f8faa839d | ||
|
|
831c325c63 | ||
|
|
f4f73078c5 | ||
|
|
f7d43ad5af | ||
|
|
a77c777980 | ||
|
|
a34db7449e | ||
|
|
0283bd2f97 | ||
|
|
a8de2f8ae7 | ||
|
|
d5dee75df3 | ||
|
|
6b7631ed5e | ||
|
|
79cb5c0631 | ||
|
|
7d9901540f | ||
|
|
e979e9c9fb | ||
|
|
de719df6fe | ||
|
|
38d7f91ea0 | ||
|
|
a20a429e8c | ||
|
|
9b63fb4ee2 | ||
|
|
099efdbc1d | ||
|
|
af9120fc7a | ||
|
|
798a48aa96 | ||
|
|
462e22a3b0 | ||
|
|
4e432ed03f | ||
|
|
1b56c0f191 | ||
|
|
94cbeba495 | ||
|
|
dfa74a69f7 | ||
|
|
9e1e4eeec2 | ||
|
|
962f8233b0 | ||
|
|
31923d511e | ||
|
|
fdbb8300d3 | ||
|
|
203d8bca57 | ||
|
|
74c331eaf7 | ||
|
|
54365528a8 | ||
|
|
bc174f7054 | ||
|
|
221e068bac | ||
|
|
1bdceeecf4 | ||
|
|
a6824d9cd0 | ||
|
|
fe03f9942b | ||
|
|
4c196922fb | ||
|
|
2a9a513d85 | ||
|
|
2bcea27ecd | ||
|
|
fb7341f1f7 | ||
|
|
f327daa12d | ||
|
|
2872b9fbf9 | ||
|
|
cedd5c9c96 | ||
|
|
60e6aa9b54 | ||
|
|
541f482518 | ||
|
|
4019b7939a | ||
|
|
013b9c4c7c | ||
|
|
79addfda42 | ||
|
|
8546bda471 | ||
|
|
0770f174a1 | ||
|
|
5f4a89cecc | ||
|
|
cbe0b1c5a6 | ||
|
|
0af193c505 | ||
|
|
fdcfcc77a0 | ||
|
|
06d166d0d7 | ||
|
|
b1b3e39fcd | ||
|
|
5ec025a3b9 | ||
|
|
58b7fbcf75 | ||
|
|
be053d47e4 | ||
|
|
fae1981161 | ||
|
|
fd95549de9 | ||
|
|
ff10bc05ec | ||
|
|
eb8cd53de2 | ||
|
|
3fc863561a | ||
|
|
131cd94495 | ||
|
|
f3a90a63b6 | ||
|
|
2494173aec | ||
|
|
866eb6241b | ||
|
|
86b3df1941 | ||
|
|
e87f6d56f5 | ||
|
|
acc890730f | ||
|
|
b0707739fd | ||
|
|
251dd1fe45 | ||
|
|
b9f3dc65e0 | ||
|
|
238ad7ce51 | ||
|
|
99fd5fca4d | ||
|
|
8eda77b76d | ||
|
|
81ac240ac8 | ||
|
|
6109798fab | ||
|
|
95715a007d | ||
|
|
b33ec201ac | ||
|
|
b53fbaf5b3 | ||
|
|
1e03a2e553 | ||
|
|
fda7c6f67a | ||
|
|
fabb7982ff | ||
|
|
cbf206be60 | ||
|
|
aa0c282205 | ||
|
|
9759365329 | ||
|
|
e3738f6422 | ||
|
|
9746d169f9 | ||
|
|
2e6d03ff00 | ||
|
|
f7b7d3d65e | ||
|
|
4037cf11aa | ||
|
|
02aeb321ce | ||
|
|
0012619257 | ||
|
|
6f3ade0d94 | ||
|
|
cf572f328a | ||
|
|
d1ce36038c | ||
|
|
b382351c7b | ||
|
|
4e5e862f58 | ||
|
|
ab84835362 | ||
|
|
41ce8489dc | ||
|
|
ef3faf5832 | ||
|
|
edf089ec9e | ||
|
|
0ae9a3605c | ||
|
|
7f9c4e52ac | ||
|
|
35947f96a8 | ||
|
|
b0f91f1eea | ||
|
|
13dfca1749 | ||
|
|
9d9cd8a362 | ||
|
|
5e5c41fda5 | ||
|
|
3ebdc52b3e | ||
|
|
af54f48cec | ||
|
|
8656059151 | ||
|
|
a6d38f2458 | ||
|
|
085bdf5cfa | ||
|
|
6883bcacee | ||
|
|
2ecc6e0368 | ||
|
|
8fb5ca2fe1 | ||
|
|
e40345095f | ||
|
|
ffc0c7bb7b | ||
|
|
58fadc8928 | ||
|
|
d96a607c04 | ||
|
|
2ea2c8c05f | ||
|
|
b15f514018 | ||
|
|
05a33a0ec9 | ||
|
|
747d266742 | ||
|
|
522d30545b | ||
|
|
6135a44a8d | ||
|
|
7c7d646792 | ||
|
|
4a36fd2ec3 | ||
|
|
b1bcc287cb | ||
|
|
6f5868a9d7 | ||
|
|
75863441f4 | ||
|
|
9763cb00e5 | ||
|
|
521599ef39 | ||
|
|
1921a64f4b | ||
|
|
6b73f5d555 | ||
|
|
e0408f30ba | ||
|
|
dca44fa093 | ||
|
|
bbacb76581 | ||
|
|
1da8617a53 | ||
|
|
e5967f7e9d | ||
|
|
65d84f9e9d | ||
|
|
93e9498b41 | ||
|
|
95332d5db9 | ||
|
|
9864792bbf | ||
|
|
ca9d1eed7a | ||
|
|
38e867c917 | ||
|
|
1ff6daaa27 | ||
|
|
3ee1dbb8a5 | ||
|
|
b4571d5c98 | ||
|
|
29d49d72f9 | ||
|
|
81de0fc7e4 | ||
|
|
9d5d266d2a | ||
|
|
b97935299f | ||
|
|
32a7ea1c16 | ||
|
|
9fd95e6a1e | ||
|
|
61ba83c775 | ||
|
|
6369fed5fc | ||
|
|
42f4d1477d | ||
|
|
609ac9c9a2 | ||
|
|
79f2367472 | ||
|
|
dfc9362084 | ||
|
|
487b469603 | ||
|
|
19e1df1e5d | ||
|
|
fc55010888 | ||
|
|
56a36aa595 | ||
|
|
0b3158fdd5 | ||
|
|
896cd950e9 | ||
|
|
af5e1b805f | ||
|
|
3f9943270c | ||
|
|
902d246d1a | ||
|
|
785bee2b39 | ||
|
|
4b335db31c | ||
|
|
4bef527ebb | ||
|
|
8273031d7e | ||
|
|
dbf69bcd98 | ||
|
|
24d3096752 | ||
|
|
9a3754fbf8 | ||
|
|
c2a95a13fe | ||
|
|
b46466ac96 | ||
|
|
06991ddb17 | ||
|
|
4b3f4a868a | ||
|
|
014eff3534 | ||
|
|
c01b7ddb59 | ||
|
|
0ff700849f | ||
|
|
5c695dea20 | ||
|
|
c7ee4ca4db | ||
|
|
c3da026b33 | ||
|
|
98da4e1791 | ||
|
|
8626b6d9f2 | ||
|
|
80c5331a5d | ||
|
|
39dc5c8160 | ||
|
|
f3002e4fb6 | ||
|
|
c451823c2b | ||
|
|
b37cffd704 | ||
|
|
2af91dbf2a | ||
|
|
f2551318fc | ||
|
|
22eb84f944 | ||
|
|
1ece0915f1 | ||
|
|
87853a2015 | ||
|
|
46a1b74799 | ||
|
|
0f6e7e5eab | ||
|
|
5dfa9615d2 | ||
|
|
1bde777bee | ||
|
|
fa4f5df3e7 | ||
|
|
8a3c3810e0 | ||
|
|
144532530a | ||
|
|
0f1129e19b | ||
|
|
1f74580f15 | ||
|
|
f93ba9970c | ||
|
|
f87a3d0892 | ||
|
|
c661ad67d0 | ||
|
|
ce4dc9e3fa | ||
|
|
3d2c6e6032 | ||
|
|
6000a0cfe3 | ||
|
|
b80c60997a | ||
|
|
35e45f0df1 | ||
|
|
e65f5b9f78 | ||
|
|
5969f71e67 | ||
|
|
b1307863eb | ||
|
|
9d0abe993b | ||
|
|
c53bb7cf67 | ||
|
|
0cea26c628 | ||
|
|
610c919c72 | ||
|
|
2c35f94f7c | ||
|
|
cd9a3870b3 | ||
|
|
e11373f23a | ||
|
|
f591635fc1 | ||
|
|
474b57ca61 | ||
|
|
8671887abc | ||
|
|
8274d1baa5 | ||
|
|
bde601bfff | ||
|
|
a2e0951042 | ||
|
|
3c9a8a38dd | ||
|
|
4c067fd39f | ||
|
|
5c251ee774 | ||
|
|
ddda691552 | ||
|
|
ba73090d53 | ||
|
|
a080b606ab | ||
|
|
7c0f43c8a3 | ||
|
|
4fad1aee6b | ||
|
|
19aec5bc8d | ||
|
|
33ee60736c | ||
|
|
c1bccb970f | ||
|
|
481cc029fa | ||
|
|
bdaf58a3c4 | ||
|
|
0f64671dc0 | ||
|
|
60f055f293 | ||
|
|
c67a9215e3 | ||
|
|
a0e9df6d6d | ||
|
|
8341749c04 | ||
|
|
66d1886663 | ||
|
|
710e1fc278 | ||
|
|
4cf98584da | ||
|
|
3fb3cee423 | ||
|
|
2d1504a057 | ||
|
|
4fcfd089d8 | ||
|
|
04422a4637 | ||
|
|
37e6548246 | ||
|
|
a761989f3e | ||
|
|
acaa8b1731 | ||
|
|
082f47663d | ||
|
|
92f42154d5 | ||
|
|
fc1084ce33 | ||
|
|
adc3ab7e0a | ||
|
|
dcc8c56969 | ||
|
|
0b3472d227 | ||
|
|
b50121ad0b | ||
|
|
dfddfc3e06 | ||
|
|
34ec6210c6 | ||
|
|
daaef316e9 | ||
|
|
cdac12bb2f | ||
|
|
3ab99647aa | ||
|
|
529482a83e | ||
|
|
29906ec057 | ||
|
|
9296ba7492 | ||
|
|
821c6d807d | ||
|
|
991b741cbe | ||
|
|
2559f0e822 | ||
|
|
8bb1ed3e95 | ||
|
|
56ba3fcb92 | ||
|
|
e99a20a120 | ||
|
|
f1a25b21a6 | ||
|
|
cf9595ce58 | ||
|
|
7feece597a | ||
|
|
fa16c782ca | ||
|
|
a03d0b6a4a | ||
|
|
dff76b8912 | ||
|
|
cffea9a9bc | ||
|
|
43fee42198 | ||
|
|
5cd3968929 | ||
|
|
65dcae79f8 | ||
|
|
2b3b75a4a5 | ||
|
|
26b395110c | ||
|
|
e11b3becfd | ||
|
|
73fa937f5c | ||
|
|
6ebe2e54ac | ||
|
|
fb29a11cc9 | ||
|
|
a9e06cbf92 | ||
|
|
93017c044d | ||
|
|
c223ddbb9a | ||
|
|
f00aeacb8b | ||
|
|
5b49071d6b | ||
|
|
17053a882b | ||
|
|
5e723d31a4 | ||
|
|
3283bd8b75 | ||
|
|
770d3c0015 | ||
|
|
d15dfafd5d | ||
|
|
545c13d55c | ||
|
|
e2099ac9ca | ||
|
|
c937583a50 | ||
|
|
43c7a19849 | ||
|
|
83543487e7 | ||
|
|
434b259525 | ||
|
|
add8efaba8 | ||
|
|
12ed79ca60 | ||
|
|
1e863382d3 | ||
|
|
bad3504d4a | ||
|
|
d94f207162 | ||
|
|
2c4b7781a4 | ||
|
|
4574c6ff07 | ||
|
|
7b5043e87b | ||
|
|
a06f3ac5da | ||
|
|
721346a40a | ||
|
|
f252871fb8 | ||
|
|
107196122c | ||
|
|
563c02d8da | ||
|
|
765934970a | ||
|
|
9cbdfda829 | ||
|
|
c1fbc8cd68 | ||
|
|
a92107cc47 | ||
|
|
3e84e116e8 | ||
|
|
7c0cdd169e | ||
|
|
424fd96615 | ||
|
|
ebfcea88da | ||
|
|
3c7eb2f5e2 | ||
|
|
936167972f | ||
|
|
7f6070c960 | ||
|
|
0aea9c129c | ||
|
|
d20fb7daa8 | ||
|
|
a619f8a2fe | ||
|
|
0acb858d7b | ||
|
|
e459be76fe | ||
|
|
c4c59ccc75 | ||
|
|
c820315409 | ||
|
|
2a19b61b7a | ||
|
|
e1cf64ae16 | ||
|
|
d3c2f8eb43 | ||
|
|
a00453c83a | ||
|
|
2eb0e54909 | ||
|
|
ac87bc57e9 | ||
|
|
2b8ea857f0 | ||
|
|
11c52114b2 | ||
|
|
f55f9b4dd3 | ||
|
|
cdd369ea98 | ||
|
|
f2aab9f476 | ||
|
|
2619dc3556 | ||
|
|
1bbed351ba | ||
|
|
4cfb2644c6 | ||
|
|
5b85c7ad39 | ||
|
|
ab3a3156f2 | ||
|
|
28a582025e | ||
|
|
8451a83a3a | ||
|
|
92c8dcc666 | ||
|
|
da68b02e1e | ||
|
|
2d7729dbe9 | ||
|
|
6467edb843 | ||
|
|
1f01b3a9ff | ||
|
|
8aa1f8926d | ||
|
|
ace363fa35 | ||
|
|
919f70a5fd | ||
|
|
9d6ad771a3 | ||
|
|
bafccb20c6 | ||
|
|
cef30c2af0 | ||
|
|
ca58056a75 | ||
|
|
03e2e99498 | ||
|
|
fba7afc4e9 | ||
|
|
d7dda336ec | ||
|
|
55d4395160 | ||
|
|
f7d5baa6d0 | ||
|
|
6ff509d263 | ||
|
|
57778981a7 | ||
|
|
6ac3bc564f | ||
|
|
82d08e2153 | ||
|
|
6212cd77e8 | ||
|
|
170034f943 | ||
|
|
e639a8f9f1 | ||
|
|
9d10c45dac | ||
|
|
b84159f2f1 | ||
|
|
49f26b4049 | ||
|
|
0e7e44cee2 | ||
|
|
36e769502c | ||
|
|
a4b6580247 | ||
|
|
84fb1c5127 | ||
|
|
ddfd0fb81d | ||
|
|
37edbf5824 | ||
|
|
e15212bf49 | ||
|
|
6a0cc1b1f3 | ||
|
|
0e8339c701 | ||
|
|
5d71a4dbde | ||
|
|
0b78030c59 | ||
|
|
24237c16bf | ||
|
|
c48da5dea7 | ||
|
|
6702ca10a1 | ||
|
|
4b44bd5e61 | ||
|
|
8a55beda92 | ||
|
|
a12b824339 | ||
|
|
c4a743189e | ||
|
|
85f9ef35f6 | ||
|
|
6de220e38a | ||
|
|
0d455d8c2f | ||
|
|
f7b0b44ef6 | ||
|
|
81282a9c88 | ||
|
|
a9b302e38d | ||
|
|
1fe4c367f7 | ||
|
|
2de7583900 | ||
|
|
356703c83e | ||
|
|
1cae709b2b | ||
|
|
46a492248f | ||
|
|
d876ea6711 | ||
|
|
b40b4c3cfd | ||
|
|
44980d6c46 | ||
|
|
442f9647a2 | ||
|
|
a06ef07178 | ||
|
|
0c2ea5da4c | ||
|
|
45814ceb49 | ||
|
|
41f4617e66 | ||
|
|
a463711b03 | ||
|
|
3a147141b1 | ||
|
|
aea1c13bd3 | ||
|
|
9cc4c017ae | ||
|
|
88022747be | ||
|
|
ebb292a2f7 | ||
|
|
818998259d | ||
|
|
36b02c2cec | ||
|
|
e6195ade3e | ||
|
|
231a875bb4 | ||
|
|
378c777a38 | ||
|
|
8ef63916ef | ||
|
|
f32ecdf5f1 | ||
|
|
94739b9b8e | ||
|
|
023db4e04e | ||
|
|
5a4b95f5fe | ||
|
|
b091657b5c | ||
|
|
f7bf5c9328 | ||
|
|
86e521b9aa | ||
|
|
e08cf57b72 | ||
|
|
9e06cb9a83 | ||
|
|
c65e8622b8 | ||
|
|
7795efeb7a | ||
|
|
e725e0020e | ||
|
|
8478ce25f1 | ||
|
|
22cdac6210 | ||
|
|
3422a1a59f | ||
|
|
f807b8cb46 | ||
|
|
e1e510ce1e | ||
|
|
36bc3ff22d | ||
|
|
1db1ffde99 | ||
|
|
7984b625ba | ||
|
|
bb22f062ed | ||
|
|
a3086e6a5b | ||
|
|
1eb9bd34fd | ||
|
|
cff7baaaad | ||
|
|
47af700375 | ||
|
|
eb7f53a1e3 | ||
|
|
d23792fda2 | ||
|
|
b5cbb8e450 | ||
|
|
fc037b4518 | ||
|
|
c04921f42b | ||
|
|
8af3463668 | ||
|
|
094565ccd6 | ||
|
|
07b9769504 | ||
|
|
566b12f5d1 | ||
|
|
a560999d13 | ||
|
|
a818a3d293 | ||
|
|
4d68a174cb | ||
|
|
905219e523 | ||
|
|
c675b87040 | ||
|
|
e2dadfdc40 | ||
|
|
a66f9aa04d | ||
|
|
863e74dd2e | ||
|
|
aebb07c5cc | ||
|
|
677fec0a0b | ||
|
|
61f06faaf5 | ||
|
|
fcf8309c23 | ||
|
|
76b19a4980 | ||
|
|
ed1a9fc7aa | ||
|
|
b71e30755d | ||
|
|
fe196d1b20 | ||
|
|
0b152a3cb8 | ||
|
|
1a0e096ddb | ||
|
|
bf040d4c42 | ||
|
|
3e2101aa5b | ||
|
|
44f11b38e7 | ||
|
|
06f8514bc1 | ||
|
|
d9a9f1c25c | ||
|
|
e77f7244ba | ||
|
|
09779cd1e1 | ||
|
|
11024168db | ||
|
|
304914513e | ||
|
|
03d0efcfc6 | ||
|
|
0c2bdc9146 | ||
|
|
188450b0c0 | ||
|
|
ddf6bbfa46 | ||
|
|
2c7c98a152 | ||
|
|
d31ac75718 | ||
|
|
4b28c659de | ||
|
|
00b937e52a | ||
|
|
68f333fb87 | ||
|
|
085b4d9319 | ||
|
|
b8edd14f39 | ||
|
|
61a19d694b | ||
|
|
aa96859798 | ||
|
|
abf015f485 | ||
|
|
0b9a02afde | ||
|
|
e332ce28f8 | ||
|
|
08e779f9f1 | ||
|
|
a53b6cd28f | ||
|
|
47ebab237b | ||
|
|
5a5af60f97 | ||
|
|
50cc17c7cb | ||
|
|
a1e504c138 | ||
|
|
4cc413047c | ||
|
|
2397097e4d | ||
|
|
c88f959ec9 | ||
|
|
0b2e28b62d | ||
|
|
c7f2ead696 | ||
|
|
b454e02d01 | ||
|
|
47df2ffc3e | ||
|
|
d18e431e2f | ||
|
|
0a147d2db7 | ||
|
|
ccdc933064 | ||
|
|
023f2d4569 | ||
|
|
06a7371d2b | ||
|
|
626f5d3487 | ||
|
|
8cd3b9fe2e | ||
|
|
716c35d52a | ||
|
|
8cc0f3918b | ||
|
|
98b51f0799 | ||
|
|
81d6dad548 | ||
|
|
41bc11cf96 | ||
|
|
721dbe415a | ||
|
|
f5c0b51428 | ||
|
|
892c6ad80c | ||
|
|
a47805e494 | ||
|
|
9dd49054d1 | ||
|
|
f5d1d1a0b7 | ||
|
|
d75fcb7fec | ||
|
|
826be45b6a | ||
|
|
d35d9c17c5 | ||
|
|
f9553e7d44 | ||
|
|
638c9720cf | ||
|
|
08a190882f | ||
|
|
bfa7530a39 | ||
|
|
6c74148c27 | ||
|
|
480cad0fed | ||
|
|
32be489136 | ||
|
|
11801d8e2e | ||
|
|
1b280a2940 | ||
|
|
424890a1e1 | ||
|
|
5f85219495 | ||
|
|
a63d687f1c | ||
|
|
f2d6c3ad83 | ||
|
|
0b6941d5ce | ||
|
|
048696ee93 | ||
|
|
ae51676471 | ||
|
|
27a405fb1d | ||
|
|
e2cf65b591 | ||
|
|
9749fc817d | ||
|
|
e6600f2c43 | ||
|
|
a664931e7a | ||
|
|
a2ba965600 | ||
|
|
65255dbb50 | ||
|
|
a5cb8761a5 | ||
|
|
e3930e0717 | ||
|
|
afd59e9933 | ||
|
|
8087524bef | ||
|
|
605440812f | ||
|
|
b10c6eb615 | ||
|
|
a96264ff6a | ||
|
|
deb3893820 | ||
|
|
9b1d822b5b | ||
|
|
f933fb705c | ||
|
|
5cd61c4c02 | ||
|
|
586fa70eac | ||
|
|
9b420ad33f | ||
|
|
5891290672 | ||
|
|
72a7b51d47 | ||
|
|
2943e0e58d | ||
|
|
5abce916a8 | ||
|
|
89d4be8a0a | ||
|
|
b7113bda23 | ||
|
|
0088929622 | ||
|
|
b3468cf7f2 | ||
|
|
f88c5c8528 | ||
|
|
687fdda7f7 | ||
|
|
aec51e514c | ||
|
|
308d4600ef | ||
|
|
50a5fa15bb | ||
|
|
7d96a57d73 | ||
|
|
162ebfd4e0 | ||
|
|
a586a92d5e | ||
|
|
3df20a924f | ||
|
|
ddcf466e4e | ||
|
|
5d10cbf18d | ||
|
|
918ea59b9a | ||
|
|
8d9afa7592 | ||
|
|
95e05336c2 | ||
|
|
a188385817 | ||
|
|
0a6baf331b | ||
|
|
0e29e052d5 | ||
|
|
d8d255980e | ||
|
|
dc5a5fa543 | ||
|
|
8638fc91ff | ||
|
|
96a0900edc | ||
|
|
abea80e3ab | ||
|
|
42dfe936b7 | ||
|
|
8385bcc2d7 | ||
|
|
9b8f60b64b | ||
|
|
b9dab77c8b | ||
|
|
474114236e | ||
|
|
238b0b421a | ||
|
|
8abe62886a | ||
|
|
78cc9cffe4 | ||
|
|
59a5dd713f | ||
|
|
a39024ff03 | ||
|
|
72bfbd93a8 | ||
|
|
c9a3e3d9d2 | ||
|
|
8387708901 | ||
|
|
b565b4b3b9 | ||
|
|
893dcd4f24 | ||
|
|
d613aa8f3e | ||
|
|
5750bb7067 | ||
|
|
0e07ae6ce8 | ||
|
|
02b6351e13 | ||
|
|
78367af830 | ||
|
|
dc05cd481f | ||
|
|
7daad5477a | ||
|
|
45cdfbfae8 | ||
|
|
4159534a64 | ||
|
|
3fb5c38571 | ||
|
|
59f80ebc47 | ||
|
|
198a97b00c | ||
|
|
3ea4e917e8 | ||
|
|
60ad077172 | ||
|
|
356ad28e41 | ||
|
|
e241141220 | ||
|
|
14bb1b467a | ||
|
|
2bbea6fd3f | ||
|
|
48aef25b3f | ||
|
|
8e50e5dee3 | ||
|
|
d5d54d4d3b | ||
|
|
412e8a32dd | ||
|
|
0f82cf409b | ||
|
|
79df39acab | ||
|
|
d00177a9b6 | ||
|
|
8786bae7dc | ||
|
|
4b3f8ca361 | ||
|
|
03183218f7 | ||
|
|
95b6db57e1 | ||
|
|
bbe0c2457b | ||
|
|
c894c53e69 | ||
|
|
5b3fb7387d | ||
|
|
feac310caf | ||
|
|
d67ec3feb3 | ||
|
|
cf8abb4528 | ||
|
|
d66de26de4 | ||
|
|
e5a7ada3cf | ||
|
|
b76fdd7fe4 | ||
|
|
7edf3f6147 | ||
|
|
2143dff2ae | ||
|
|
32c714d1b6 | ||
|
|
84e699ee24 | ||
|
|
7fdb572b8b | ||
|
|
91ffb0820a | ||
|
|
cfd3b66be9 | ||
|
|
75c4f9dea8 | ||
|
|
a76a32230d | ||
|
|
0730f5ff4f | ||
|
|
c43d0a684c | ||
|
|
66f1eda6cf | ||
|
|
bf4d191c8b | ||
|
|
d76d56fcce | ||
|
|
251b0c58de | ||
|
|
073cca4e8e | ||
|
|
a4ad99f189 | ||
|
|
d37b910889 | ||
|
|
be69244e8d | ||
|
|
617f74a225 | ||
|
|
a2710ddc25 | ||
|
|
70101bfa7a | ||
|
|
203f2984d7 | ||
|
|
1d510e76b8 | ||
|
|
64244af2cc | ||
|
|
35e109882e | ||
|
|
18a32ffb0b | ||
|
|
a5af3ba0cb | ||
|
|
83bd39a9a8 | ||
|
|
cc0657aaa8 | ||
|
|
965dc2cb47 | ||
|
|
9c4cbe17a2 | ||
|
|
835fcfa4ea | ||
|
|
932780c578 | ||
|
|
37f160a452 | ||
|
|
f80b706fc3 | ||
|
|
f78cbed4d8 | ||
|
|
e0b12c78ff | ||
|
|
e7cf814a59 | ||
|
|
865c45593b | ||
|
|
62e6f109c7 | ||
|
|
60be8ed022 | ||
|
|
c157882900 | ||
|
|
a23c211a65 | ||
|
|
293ed6bd7e | ||
|
|
13ddd7c5f9 | ||
|
|
0de015fc8b | ||
|
|
d34fedae01 | ||
|
|
7c623fc467 | ||
|
|
359079c3e6 | ||
|
|
ba72fa3f05 | ||
|
|
23caab5b06 | ||
|
|
b506bd15a5 | ||
|
|
d0d9d68fe6 | ||
|
|
88134ac130 | ||
|
|
3d8a5196a0 | ||
|
|
c4fb138ae8 | ||
|
|
759cfdaabd | ||
|
|
3d9620abb0 | ||
|
|
420b0394a7 | ||
|
|
84bb4c8b07 | ||
|
|
310dbb61ee | ||
|
|
9b536af9e6 | ||
|
|
c2ca1ea1e5 | ||
|
|
ada4b226de | ||
|
|
67f956d4a0 | ||
|
|
f68af7dcf2 | ||
|
|
be1b6f8edc | ||
|
|
1150f62927 | ||
|
|
b4c7a521b4 | ||
|
|
5d083a1536 | ||
|
|
2f5ed3aead | ||
|
|
2951df0cd9 | ||
|
|
ec22070957 | ||
|
|
0e36f03954 | ||
|
|
57309ae3d5 | ||
|
|
7545194f97 | ||
|
|
4bb0918e27 | ||
|
|
64e5449ab3 | ||
|
|
a0eeb17d73 | ||
|
|
c021dd03d3 | ||
|
|
2f1683b26a | ||
|
|
c99939f435 | ||
|
|
efad8bac3c | ||
|
|
eaf68fa463 | ||
|
|
9475f2e56c | ||
|
|
2e0c067cd2 | ||
|
|
59a6043549 | ||
|
|
840a7b7c73 | ||
|
|
61e322678b | ||
|
|
04acd08ad2 | ||
|
|
f3bf4faee0 | ||
|
|
c3603ba220 | ||
|
|
a3a52fd12c | ||
|
|
7c4756da81 | ||
|
|
f4fe03c790 | ||
|
|
a748bb9352 | ||
|
|
d24fb6ed48 | ||
|
|
021dc5b82c | ||
|
|
9339b78f80 | ||
|
|
8449f8580d | ||
|
|
0948c5bc69 | ||
|
|
857589b365 | ||
|
|
c39b1bf823 | ||
|
|
545aa50898 | ||
|
|
298006a4b9 | ||
|
|
903a4131ab | ||
|
|
a0ec0ddb14 | ||
|
|
46eb876f9b | ||
|
|
8374c3941a | ||
|
|
8cec14c2ff | ||
|
|
c716f105bd | ||
|
|
737be1f571 | ||
|
|
6f17c700b8 | ||
|
|
04d79f9117 | ||
|
|
8145808c43 | ||
|
|
86d5626d92 | ||
|
|
071ef281c1 | ||
|
|
70760e4ede | ||
|
|
8a32fd36ad | ||
|
|
2e30fff221 | ||
|
|
667ffa5dff | ||
|
|
d271120c24 | ||
|
|
a03ae5a216 | ||
|
|
0e73fa40bc | ||
|
|
5d6f0d8546 | ||
|
|
41e23fb6a8 | ||
|
|
4e15556e5e | ||
|
|
bf30b7afae | ||
|
|
8801afa586 | ||
|
|
47804353f9 | ||
|
|
be58e3084b | ||
|
|
71d5ab21ed | ||
|
|
993bc7432f | ||
|
|
99ff879d93 | ||
|
|
caa15b4735 | ||
|
|
cc8da0cf13 | ||
|
|
0b6618ff70 | ||
|
|
6f180f534c | ||
|
|
4220ef2a5b | ||
|
|
2acaa66635 | ||
|
|
ee5eecbec1 | ||
|
|
687bb8a237 | ||
|
|
e51123a951 | ||
|
|
92bb12e2e3 | ||
|
|
fd0536bd4b | ||
|
|
57389a79a1 | ||
|
|
6cd7bddc37 | ||
|
|
c3c5006daa | ||
|
|
27a8a57cf5 | ||
|
|
3bded6fdcc | ||
|
|
c7f31337ce | ||
|
|
fd507f2692 | ||
|
|
96a39ef9c3 | ||
|
|
81a8d6c3bf | ||
|
|
d4719208f0 | ||
|
|
c36dce6464 | ||
|
|
2da4474bb1 | ||
|
|
cab11202c7 | ||
|
|
21d7d35bb1 | ||
|
|
0725c663c4 | ||
|
|
ce82239c8b | ||
|
|
2523008cb6 | ||
|
|
69212b9ad1 | ||
|
|
636cb3399b | ||
|
|
86ca35ce33 | ||
|
|
675ab31305 | ||
|
|
83c2d743bc | ||
|
|
2c87b3d906 | ||
|
|
05b6159802 | ||
|
|
c56f48c1e3 | ||
|
|
e18e399ce6 | ||
|
|
d66ade4e47 | ||
|
|
90b045af6d | ||
|
|
5cccb21175 | ||
|
|
1a71969403 | ||
|
|
389a1fbd04 | ||
|
|
ca02ae6183 | ||
|
|
92446cb048 | ||
|
|
954ce4533f | ||
|
|
f7b88f9e3b | ||
|
|
736fe038eb | ||
|
|
abcd257db0 | ||
|
|
c38b5f3cdc | ||
|
|
b649617e04 | ||
|
|
a4e2287101 | ||
|
|
fbb66f3c43 | ||
|
|
fedf90ea78 | ||
|
|
d558d50102 | ||
|
|
656cb89fe8 | ||
|
|
1e6ddd250e | ||
|
|
1de8eee6ea | ||
|
|
425bba67c5 | ||
|
|
8b0daf7200 | ||
|
|
589a373142 | ||
|
|
0cfc71e4bf | ||
|
|
92dabe6276 | ||
|
|
d1b61b6bf9 | ||
|
|
873f2b618b | ||
|
|
4453070060 | ||
|
|
de40be430b | ||
|
|
29a6a992f0 | ||
|
|
0a7d2d6264 | ||
|
|
e09f92f9ee | ||
|
|
9be1ecc8aa | ||
|
|
729b19c8da | ||
|
|
a9fffa5180 | ||
|
|
0069c0e399 | ||
|
|
b6fd38e293 | ||
|
|
36aa7f82b0 | ||
|
|
d01004d530 | ||
|
|
d85a02feeb | ||
|
|
b82e1dcd62 | ||
|
|
74c6a2266f | ||
|
|
9754223f31 | ||
|
|
cfbbac9796 | ||
|
|
fece8955cf | ||
|
|
170b2afb0e | ||
|
|
ee8af18d0a | ||
|
|
27386ea04d | ||
|
|
0d71a8ee50 | ||
|
|
82a72e0b49 | ||
|
|
5035c123f0 | ||
|
|
474b3372d8 | ||
|
|
be87124ada | ||
|
|
aa3032db35 | ||
|
|
a4ead79888 | ||
|
|
98445afd3e | ||
|
|
3eb9671640 | ||
|
|
95fb4e3e8b | ||
|
|
818015d24a | ||
|
|
e11bd3e813 | ||
|
|
2a4d64af95 | ||
|
|
d73cb4be2b | ||
|
|
82752040f8 | ||
|
|
1bde6d8b9c | ||
|
|
be55d36f67 | ||
|
|
f07724372d | ||
|
|
5b8d5dd975 | ||
|
|
e36aa065e9 | ||
|
|
45486ef399 | ||
|
|
4fedf6f452 | ||
|
|
702b80ef75 | ||
|
|
a5c7789dbc | ||
|
|
bddef199ff | ||
|
|
fa6fc07009 | ||
|
|
8d9b44528b | ||
|
|
1d108d775c | ||
|
|
7af111ac57 | ||
|
|
6451f00639 | ||
|
|
31718d1a4a | ||
|
|
832b74b66b | ||
|
|
082802e119 | ||
|
|
efa9c748c5 | ||
|
|
fc8bef5aae | ||
|
|
441b15ed2f | ||
|
|
11d1f6e141 | ||
|
|
0f5b9564c6 | ||
|
|
0c8a84656a | ||
|
|
330f91e15b | ||
|
|
490141a920 | ||
|
|
1e288b14d0 | ||
|
|
81df96bf45 | ||
|
|
d1ab5f74a6 | ||
|
|
e43dd03132 | ||
|
|
2c6d64976f | ||
|
|
065713cdb6 | ||
|
|
746d3c97c3 | ||
|
|
9557fc799e | ||
|
|
8fcabc5e9f | ||
|
|
2b4b15f558 | ||
|
|
057b0b4565 | ||
|
|
70a2402521 | ||
|
|
de34db3394 | ||
|
|
0c2ae792ec | ||
|
|
a4c0b92777 | ||
|
|
b9d78135e0 | ||
|
|
5641c19502 | ||
|
|
0110dfdb70 | ||
|
|
140606744b | ||
|
|
335d175d57 | ||
|
|
779db9da70 | ||
|
|
5d29a08ab7 | ||
|
|
1fe3365e10 | ||
|
|
f0584c88e8 | ||
|
|
c7620dfc48 | ||
|
|
5d6a945763 | ||
|
|
4fe5939d0b | ||
|
|
bcaf54d4cb | ||
|
|
44d43f45cb | ||
|
|
de26ee9383 | ||
|
|
d442462952 | ||
|
|
558fc9f306 | ||
|
|
9f0ee219d0 | ||
|
|
5164116bde | ||
|
|
02404bc97e | ||
|
|
0ebdb037b5 | ||
|
|
a8b60c32b3 | ||
|
|
416621d503 | ||
|
|
b917eb447c | ||
|
|
2ce3c71b88 | ||
|
|
ca13bfa5f8 | ||
|
|
d8812196f3 | ||
|
|
4e750bdbe1 | ||
|
|
f59a37b77c | ||
|
|
ea3db93db9 | ||
|
|
26f2c9fea2 | ||
|
|
290cc0d1bb | ||
|
|
78044c062e | ||
|
|
3a2f653229 | ||
|
|
bbe22e6f36 | ||
|
|
d4474ff0fb | ||
|
|
c7979f1be5 | ||
|
|
ada0b7106e | ||
|
|
c3a5542935 | ||
|
|
2eebb3388a | ||
|
|
287c3688fd | ||
|
|
3948b3993f | ||
|
|
bcacafeb84 | ||
|
|
2193ddfabe | ||
|
|
29ae0b7dca | ||
|
|
904837df12 | ||
|
|
00c2da444f | ||
|
|
13d0dde9f4 | ||
|
|
548f2a960c | ||
|
|
fe4367c580 | ||
|
|
71803f891d | ||
|
|
75a38d95f3 | ||
|
|
c89686a2fd | ||
|
|
398323533a | ||
|
|
a773872cf3 | ||
|
|
2eb0d55f92 | ||
|
|
54bd1ad0fa | ||
|
|
089825d360 | ||
|
|
333629caff | ||
|
|
d715cd1129 | ||
|
|
15d6eaf553 | ||
|
|
ae5dfc3bee | ||
|
|
6ab83b662a | ||
|
|
52ae6902d2 | ||
|
|
c30adb2671 | ||
|
|
e95d29f446 | ||
|
|
c20bb38b06 | ||
|
|
d0213d275d | ||
|
|
9a78dad576 | ||
|
|
880f1aeb66 | ||
|
|
e764eabd97 | ||
|
|
235f9cf854 | ||
|
|
d10795ecd9 | ||
|
|
a7e45dace0 | ||
|
|
7e482f798c | ||
|
|
c085bac5d8 | ||
|
|
653940a0ca | ||
|
|
417d37b199 | ||
|
|
3b2107a4f1 | ||
|
|
7f6d03c02a | ||
|
|
5fc07d4dd4 | ||
|
|
3fb9524cbd | ||
|
|
e79703e49b | ||
|
|
b829bd1341 | ||
|
|
8cbab7525a | ||
|
|
93b37a89c9 | ||
|
|
87620b9072 | ||
|
|
6877b865a7 | ||
|
|
d6b3142a02 | ||
|
|
14cdb54212 | ||
|
|
91e7f45a1c | ||
|
|
709105120c | ||
|
|
865f26d75c | ||
|
|
52a4fd3318 | ||
|
|
e70732c9ac | ||
|
|
c6c269f9e4 | ||
|
|
42ad04cabd | ||
|
|
2a8eeaf240 | ||
|
|
f7dcff5113 | ||
|
|
98a81385a6 | ||
|
|
7bdc277b58 | ||
|
|
f57116d2be | ||
|
|
85c99f7f80 | ||
|
|
75081ceac3 | ||
|
|
65da3ca298 | ||
|
|
94509c64b9 | ||
|
|
4f36d94726 | ||
|
|
05c284b999 | ||
|
|
635b042690 | ||
|
|
1cb4a539cc | ||
|
|
46b87250b2 | ||
|
|
1a05355e54 | ||
|
|
c81c17d17b | ||
|
|
7b4f8d31e8 | ||
|
|
5cef28c5bd | ||
|
|
6e68da7936 | ||
|
|
0c130f9596 | ||
|
|
f156f4cb4e | ||
|
|
fa3bfa2ea8 | ||
|
|
ab5c7bb75a | ||
|
|
81b322cd60 | ||
|
|
e6dd7cd54a | ||
|
|
aa1da7c11a | ||
|
|
3f74d4d9e5 | ||
|
|
297d09c5ad | ||
|
|
07e1dbb4cc | ||
|
|
3c6618b4fc | ||
|
|
54db744282 | ||
|
|
03b751fa13 | ||
|
|
ec342708b2 | ||
|
|
405591c5d0 | ||
|
|
7f5e89d489 | ||
|
|
c504f33b1f | ||
|
|
67af67b92d | ||
|
|
8644348fc4 | ||
|
|
00dc226bd2 | ||
|
|
b6b7c3e2e0 | ||
|
|
246ef348d3 | ||
|
|
3e9ba1a30a | ||
|
|
598cde4865 | ||
|
|
fc4a716b4e | ||
|
|
ed5634ff83 | ||
|
|
884af1ea62 | ||
|
|
01ad62df16 | ||
|
|
512a667e44 | ||
|
|
d0e841f7de | ||
|
|
c04641d835 | ||
|
|
f9128d4d45 | ||
|
|
2026211622 | ||
|
|
9d0f21a9e5 | ||
|
|
26adf7d437 | ||
|
|
d2d6f12218 | ||
|
|
b31c0b6a8d | ||
|
|
472f06c2d1 | ||
|
|
f5ec9870fd | ||
|
|
66fb9e5f49 | ||
|
|
a323f3aa2c | ||
|
|
fe4786e168 | ||
|
|
ed6a18dae7 | ||
|
|
83185c8c50 | ||
|
|
83ae9db02d | ||
|
|
8bf328ca94 | ||
|
|
36993cb6f8 | ||
|
|
c854415319 | ||
|
|
aecc1cd979 | ||
|
|
b2f3b0b584 | ||
|
|
c937f5afc7 | ||
|
|
2d580a26af | ||
|
|
4a00a3cc1b | ||
|
|
d3935219f2 | ||
|
|
040788c793 | ||
|
|
005622307e | ||
|
|
8ebf95a222 | ||
|
|
7f596ed315 | ||
|
|
ffa4de6911 | ||
|
|
cb27d4b490 | ||
|
|
bb4910f4e5 | ||
|
|
89c7f07034 | ||
|
|
b150b2f034 | ||
|
|
45d6347f5b | ||
|
|
67d762b6a5 | ||
|
|
faa28f88f9 | ||
|
|
9c8c7a7812 | ||
|
|
a019956698 | ||
|
|
d70e2b66a3 | ||
|
|
5d568efac3 | ||
|
|
08111f1418 | ||
|
|
45839f227a | ||
|
|
8814ffeda6 | ||
|
|
d224c4c124 | ||
|
|
549525fb37 | ||
|
|
1c8e25beb3 | ||
|
|
eda45c1528 | ||
|
|
53c38cf714 | ||
|
|
0e7578043e | ||
|
|
21f50e0b38 | ||
|
|
515f00c7cd | ||
|
|
8057586dc1 | ||
|
|
b101ac7c7f | ||
|
|
64319937a1 | ||
|
|
1c0cfd6769 | ||
|
|
f8e17d5285 | ||
|
|
d4385ad8a5 | ||
|
|
da07ce419f | ||
|
|
714e0206c4 | ||
|
|
40da82666a | ||
|
|
79f7ec4672 | ||
|
|
0f5c69040b | ||
|
|
c9d1c45d97 | ||
|
|
ea8fdb120c | ||
|
|
f6fa830ffe | ||
|
|
992e50c014 | ||
|
|
bd705d91ba | ||
|
|
2656394195 | ||
|
|
c8df9e698c | ||
|
|
19b78a1d2f | ||
|
|
8039e8baf8 | ||
|
|
9c5142c73c | ||
|
|
8e3dcdde17 | ||
|
|
34023adafb | ||
|
|
79914e8d08 | ||
|
|
454fbda581 | ||
|
|
2c32703e6b | ||
|
|
b561535626 | ||
|
|
1fc684d995 | ||
|
|
7595d9fdfd | ||
|
|
3bf7732a21 | ||
|
|
71b5aaf8ab | ||
|
|
e1e5347476 | ||
|
|
cdcdb6a2d9 | ||
|
|
ec79104ad2 | ||
|
|
ff083ce684 | ||
|
|
0f051e322e | ||
|
|
657a2ae032 | ||
|
|
0db3570026 | ||
|
|
0ae39f160a | ||
|
|
b45977c29a | ||
|
|
b7f5740c57 | ||
|
|
21e23369d3 | ||
|
|
fca598991a | ||
|
|
aa5b909486 | ||
|
|
0a888cf51a | ||
|
|
e5c164065c | ||
|
|
8bc241ca14 | ||
|
|
15beb79631 | ||
|
|
fef1305e41 | ||
|
|
498cf34999 | ||
|
|
7cde1fdc4a | ||
|
|
228fdf0a0d | ||
|
|
fdb5ea0ff4 | ||
|
|
a0e838d1ee | ||
|
|
30ddf5ec41 | ||
|
|
cfd3b7b3ae | ||
|
|
a6cd532035 | ||
|
|
b1db952fcb | ||
|
|
51e8bab352 | ||
|
|
618ec93786 | ||
|
|
a673f9c8ca | ||
|
|
e8c9c2a47d | ||
|
|
aafa5d5f90 | ||
|
|
8b9c47daf1 | ||
|
|
4042577c0b | ||
|
|
6c9f9940e3 | ||
|
|
8f7b3f29ce | ||
|
|
6bca7333c9 | ||
|
|
3dfeeec899 | ||
|
|
138dc286f6 | ||
|
|
07cee2aadf | ||
|
|
1b267813c9 | ||
|
|
96b5981f8c | ||
|
|
a2fd9559c5 | ||
|
|
3f06419d47 | ||
|
|
2aefca3813 | ||
|
|
844c4bf983 | ||
|
|
6aa487269c | ||
|
|
43961c1c18 | ||
|
|
393ea27fa4 | ||
|
|
febe87508c | ||
|
|
30db27980c | ||
|
|
4e768ec50f | ||
|
|
4467e09426 | ||
|
|
66b95d52fd | ||
|
|
1398417829 | ||
|
|
58dd5e2750 | ||
|
|
70210f567a | ||
|
|
49e7dc56e1 | ||
|
|
72cc586f88 | ||
|
|
94fa77fcd2 | ||
|
|
2c0cbdd29e | ||
|
|
68a503796c | ||
|
|
48cf28dd7f | ||
|
|
7e103b7744 | ||
|
|
79d637c9bf | ||
|
|
7c8d551fe1 | ||
|
|
72862c8be8 | ||
|
|
4f1bb48bf7 | ||
|
|
15740a6d8a | ||
|
|
2bc3456400 | ||
|
|
5a607efa9f | ||
|
|
1c8163dd82 | ||
|
|
327a919958 | ||
|
|
a847e66c4f | ||
|
|
0772d3b3fd | ||
|
|
61d6b06c56 | ||
|
|
1534f45236 | ||
|
|
aedc462135 | ||
|
|
7b55337c5e | ||
|
|
87bbf6f140 | ||
|
|
0d8913ea2f | ||
|
|
387bcc5fa4 | ||
|
|
5a20242111 | ||
|
|
196f7d9dc2 | ||
|
|
954b6df360 | ||
|
|
8002a56efc | ||
|
|
7e5ea0cee0 | ||
|
|
7b42d7252e | ||
|
|
3254afc756 | ||
|
|
e3553d4c8c | ||
|
|
7be14ee905 | ||
|
|
fc234314b7 | ||
|
|
cf19363092 | ||
|
|
589b38c75d | ||
|
|
90a8f818bf | ||
|
|
642f57ff6d | ||
|
|
cbccd9e3d0 | ||
|
|
cf7a3e6f70 | ||
|
|
8993687c37 | ||
|
|
ff1d7b115a | ||
|
|
98bd5149e9 | ||
|
|
4efa2e0c6a | ||
|
|
f805036054 | ||
|
|
3c723c4325 | ||
|
|
14a83f6b52 | ||
|
|
ff0686670c | ||
|
|
3198d07553 | ||
|
|
c7e2896326 | ||
|
|
0db5381a8b | ||
|
|
cb86151deb | ||
|
|
d6c7326467 | ||
|
|
92c6c45e77 | ||
|
|
c6fff4950d | ||
|
|
81a8123725 | ||
|
|
d0d3e74d55 | ||
|
|
b54ae272eb | ||
|
|
3af6d96e6e | ||
|
|
f38b33ea39 | ||
|
|
dd2b0a1595 | ||
|
|
c96fcb7afc | ||
|
|
b805a29259 | ||
|
|
5450246f06 | ||
|
|
d9a00eeaf7 | ||
|
|
131ed13df1 | ||
|
|
5f8d70028a | ||
|
|
c222b702c3 | ||
|
|
de43391e4c | ||
|
|
547c0b8399 | ||
|
|
fcbb5e46a1 | ||
|
|
7c5166c8bb | ||
|
|
fab66606b3 | ||
|
|
1d143f7103 | ||
|
|
4955fcd12a | ||
|
|
817e9663fa | ||
|
|
85ca850453 | ||
|
|
3baefb2b60 | ||
|
|
ffea5a0e02 | ||
|
|
be55695691 | ||
|
|
ea27c96362 | ||
|
|
7a73a01999 | ||
|
|
018dee6c38 | ||
|
|
c7cf2e6f16 | ||
|
|
9ab9a6e8b0 | ||
|
|
4aa136189a | ||
|
|
67ccff3e86 | ||
|
|
40c09ce26a | ||
|
|
3e0d4a0bed | ||
|
|
e8a6d38ac6 | ||
|
|
80159ecca8 | ||
|
|
c82bb730b2 | ||
|
|
26dad399d5 | ||
|
|
2689e6d6c0 | ||
|
|
90d1b68bd6 | ||
|
|
c7c4318c11 | ||
|
|
d6a2e4aee9 | ||
|
|
c6488b58f5 | ||
|
|
c66802af2d | ||
|
|
18bfcc24ad | ||
|
|
d8a134fe7e | ||
|
|
989f48c47a | ||
|
|
111a32b5e8 | ||
|
|
993ca754b5 | ||
|
|
381a37fbaa | ||
|
|
0ca61b4d99 | ||
|
|
16748a75d5 | ||
|
|
0e33dfa019 | ||
|
|
4a2f7ebf87 | ||
|
|
e9f18b79ea | ||
|
|
66629a591a | ||
|
|
8f22a358cf | ||
|
|
1f5f1596e5 | ||
|
|
339554bdbf | ||
|
|
9b6b614857 | ||
|
|
e6e99d4239 | ||
|
|
f4ae5125dc | ||
|
|
c3cfbd8474 | ||
|
|
86dd03c917 | ||
|
|
49e65c611f | ||
|
|
6410e34bf3 | ||
|
|
2db7fee745 | ||
|
|
4e8908e715 | ||
|
|
67d8020147 | ||
|
|
b4b9f33b2c | ||
|
|
d091703dc0 | ||
|
|
509b5291c3 | ||
|
|
111a0823e9 | ||
|
|
48bc7a45a9 | ||
|
|
1eb70d4cfd | ||
|
|
eae63b7c57 | ||
|
|
ec0862f99e | ||
|
|
79ca6f4acb | ||
|
|
66a9690dc9 | ||
|
|
01c65578b0 | ||
|
|
dd462989b5 | ||
|
|
da6ac1626b | ||
|
|
a38ff69cbd | ||
|
|
70db327eda | ||
|
|
8c3f86c690 | ||
|
|
b66542cb40 | ||
|
|
873ad871da | ||
|
|
889eaaea92 | ||
|
|
d2ce72e4aa | ||
|
|
bcfac02c96 | ||
|
|
60a2ed48c2 | ||
|
|
087c0b8253 | ||
|
|
a9a0967a6f | ||
|
|
7bbaa3806b | ||
|
|
7f910a13d5 | ||
|
|
6841c2328e | ||
|
|
abf29bc164 | ||
|
|
ae072929df | ||
|
|
5d756eb54b | ||
|
|
9fe5d6655c | ||
|
|
37b5b22713 | ||
|
|
ee731e4759 | ||
|
|
0dbe3133cf | ||
|
|
843219c38b | ||
|
|
810d5f3c1f | ||
|
|
4a5bd0db05 | ||
|
|
0120e4d1f5 | ||
|
|
d199a18a91 | ||
|
|
ffc0981fbc | ||
|
|
27ca9b027b | ||
|
|
b0ff699b31 | ||
|
|
3a0178b294 | ||
|
|
7bd40c94c7 | ||
|
|
d1c497df7f | ||
|
|
e59deb23c2 | ||
|
|
dd3fc90372 | ||
|
|
89686399f9 | ||
|
|
e8b571590e | ||
|
|
19294db942 | ||
|
|
f47e4a78d7 | ||
|
|
c58250e1f0 | ||
|
|
576e60a2b5 | ||
|
|
3f5499be90 | ||
|
|
4dcf6e87bc | ||
|
|
028758c4e0 | ||
|
|
edd6615bcf | ||
|
|
08854e0ab9 | ||
|
|
3c919ee5d1 | ||
|
|
fdc6eef921 | ||
|
|
0c645b6e66 | ||
|
|
1ba1007261 | ||
|
|
575416a16d | ||
|
|
1c33fb4e14 | ||
|
|
cd83a6f209 | ||
|
|
17638f3d3a | ||
|
|
61b14b52d9 | ||
|
|
8dd648f85d | ||
|
|
256e27cd90 | ||
|
|
0c3a812825 | ||
|
|
80f8fd49f1 | ||
|
|
80c500f618 | ||
|
|
3dd0783510 | ||
|
|
77c9a7e2fa | ||
|
|
027c0f41e5 | ||
|
|
f9fc83bfb0 | ||
|
|
372bc2d9d6 | ||
|
|
82606e63c0 | ||
|
|
3feb3f592c | ||
|
|
dfd6857069 | ||
|
|
b8724ac8c3 | ||
|
|
1d8515bce0 | ||
|
|
c747ffee5a | ||
|
|
7d601b45a2 | ||
|
|
8be886daf6 | ||
|
|
d471d2416d | ||
|
|
f4c00ee0b6 | ||
|
|
009c131819 | ||
|
|
b6722897a0 | ||
|
|
1b46278f86 | ||
|
|
1274f56da8 | ||
|
|
0f572f4cb3 | ||
|
|
cbe3498125 | ||
|
|
e6ab0b6864 | ||
|
|
5b3931ecb7 | ||
|
|
ddd70ab8ce | ||
|
|
ba4cc234ae | ||
|
|
3563a4cc36 | ||
|
|
0526734ca1 | ||
|
|
f4f8d45a8e | ||
|
|
b3153eed64 | ||
|
|
ba11febad6 | ||
|
|
0cea8db0f9 | ||
|
|
8b7572a9e5 | ||
|
|
dd20af4ba0 | ||
|
|
222ef2f850 | ||
|
|
fc9ac23725 | ||
|
|
0f426b9c19 | ||
|
|
a7d4710702 | ||
|
|
b1117ed54a | ||
|
|
7ad4b55ee0 | ||
|
|
396dc34a84 | ||
|
|
9b4a31fa6a | ||
|
|
8c7f976ef5 | ||
|
|
01f61d3c73 | ||
|
|
69b4bcbd09 | ||
|
|
bb397fb8d0 | ||
|
|
17ecf05215 | ||
|
|
e340b3e6fa | ||
|
|
4ab8677173 | ||
|
|
343d803d8e | ||
|
|
c643d7edc3 | ||
|
|
a4b37d01ab | ||
|
|
a59eb0c4c7 | ||
|
|
2dcc3206e1 | ||
|
|
dc9040a68e | ||
|
|
5160b9fbd6 | ||
|
|
a2af45e1c7 | ||
|
|
0165ccbaac | ||
|
|
b817cb4a1b | ||
|
|
584378a32b | ||
|
|
6d9ef26eca | ||
|
|
1bc170b069 | ||
|
|
babd5897ae | ||
|
|
63ec5b5519 | ||
|
|
e5e468a463 | ||
|
|
6946279f03 | ||
|
|
ee65c9f47d | ||
|
|
fadb1d35b3 | ||
|
|
f92935d93f | ||
|
|
d282045683 | ||
|
|
129bf53edc | ||
|
|
6113c388b7 | ||
|
|
764326ab16 | ||
|
|
262ad0b51c | ||
|
|
8cc2b64066 | ||
|
|
ceb4b76cdb | ||
|
|
80af1fa9e6 | ||
|
|
844fd4358c | ||
|
|
79b41954f9 | ||
|
|
5a4a7814e1 | ||
|
|
c4630aaf7b | ||
|
|
d35ad50254 | ||
|
|
b1cc6f2a9c | ||
|
|
0d94329940 | ||
|
|
04150e1c0a | ||
|
|
385757b54b | ||
|
|
ccfe922c30 | ||
|
|
b3e0546f78 | ||
|
|
aaaf8d7db3 | ||
|
|
b1b2cd088b | ||
|
|
d1ea61debc | ||
|
|
12cebea29e | ||
|
|
81a3fdbc29 | ||
|
|
fea4669d82 | ||
|
|
241f9ed383 | ||
|
|
3d06ce444c | ||
|
|
06fed944c9 | ||
|
|
5d225c2583 | ||
|
|
e626367a06 | ||
|
|
5c992c3214 | ||
|
|
5575c83970 | ||
|
|
6dabad76ba | ||
|
|
1c656f8b90 | ||
|
|
51b6fed468 | ||
|
|
f92d918a1e | ||
|
|
3e290f057f | ||
|
|
27a9fc32a6 | ||
|
|
13eb0231ac | ||
|
|
6089f0aa8e | ||
|
|
b0c4050567 | ||
|
|
3f9244542d | ||
|
|
70b6098ee5 | ||
|
|
1656e91296 | ||
|
|
5b7df9c175 | ||
|
|
8d8600aaa8 | ||
|
|
54d136cc6a | ||
|
|
661293c189 | ||
|
|
d10d42e206 | ||
|
|
b780eab5f5 | ||
|
|
315e43746b | ||
|
|
526c48450b | ||
|
|
abd2dcf2e8 | ||
|
|
87defa569c | ||
|
|
b4db5518db | ||
|
|
a50b635424 | ||
|
|
40a794f624 | ||
|
|
6876790374 | ||
|
|
586725a15c | ||
|
|
34300a19a6 | ||
|
|
11def7e42a | ||
|
|
4f3fb3766e | ||
|
|
cbc3eb9453 | ||
|
|
c31bc0266a | ||
|
|
b6176d7629 | ||
|
|
bc2e78db39 | ||
|
|
fdda8985de | ||
|
|
be2f0aa435 | ||
|
|
513a5b49c1 | ||
|
|
0c50ede129 | ||
|
|
d5a17f9e6a | ||
|
|
4b09a0a27f | ||
|
|
cba38f6e12 | ||
|
|
a672043e2e | ||
|
|
e1c6d8a2d0 | ||
|
|
9041602cfd | ||
|
|
bcbefaaa35 | ||
|
|
925edef0a5 | ||
|
|
90c54fd9e0 | ||
|
|
95df56cc5c | ||
|
|
ebced940d4 | ||
|
|
b21db8da6b | ||
|
|
55c76cb89c | ||
|
|
11d0daa59a | ||
|
|
22764abd38 | ||
|
|
a7414047ee | ||
|
|
c4164c66e2 | ||
|
|
a90d1e68ee | ||
|
|
7aac1460c3 | ||
|
|
1cc1d1c03c | ||
|
|
b421798a1b | ||
|
|
f876ac99b0 | ||
|
|
7008a408ca | ||
|
|
4075be7849 | ||
|
|
98ef9aa479 | ||
|
|
25689efc99 | ||
|
|
a8a45d7f75 | ||
|
|
a3ef3fb5cf | ||
|
|
b928bb46c7 | ||
|
|
d782655cb4 | ||
|
|
f126f9f932 | ||
|
|
5b148b7ed9 | ||
|
|
de62abf0e7 | ||
|
|
f9e29ef041 | ||
|
|
11255a1ecf | ||
|
|
3a78cb9929 | ||
|
|
b2f8ee3836 | ||
|
|
3681d89a61 | ||
|
|
4ea3edd59e | ||
|
|
1291e98e82 | ||
|
|
09847ce074 | ||
|
|
18ee87daff | ||
|
|
2b89fba7eb | ||
|
|
41d9c3ac83 | ||
|
|
a705182b85 | ||
|
|
f8b99b81a2 | ||
|
|
ffeede38af | ||
|
|
18c9c4a166 | ||
|
|
3db216f515 | ||
|
|
4a7018ac26 | ||
|
|
0e859d32ee | ||
|
|
5840247f3e | ||
|
|
74a1873e58 | ||
|
|
f984472257 | ||
|
|
e9a4b26595 | ||
|
|
617cc13e29 | ||
|
|
3e0aabcd85 | ||
|
|
027991b253 | ||
|
|
4bda5b2167 | ||
|
|
c1e3e2ee1f | ||
|
|
e8b5fcf3ee | ||
|
|
88478c1482 | ||
|
|
eb937737c2 | ||
|
|
e646f01c2a | ||
|
|
bfd31e8490 | ||
|
|
41b5e57d39 | ||
|
|
f36b6e3824 | ||
|
|
32e5a671c1 | ||
|
|
de4cd0a73d | ||
|
|
c2d43fed4b | ||
|
|
1f4f15757d | ||
|
|
d6b91b38f0 | ||
|
|
62854978bf | ||
|
|
12116a89f4 | ||
|
|
682cb6b71c | ||
|
|
06c1e0929b | ||
|
|
0cfce29847 | ||
|
|
20308345f2 | ||
|
|
d6fb26d060 | ||
|
|
4b66af7cd9 | ||
|
|
6024f1dc4a | ||
|
|
0b86de401f | ||
|
|
57d8d48046 | ||
|
|
03ed8edbd3 | ||
|
|
17d88900a1 | ||
|
|
da2936bab6 | ||
|
|
4b4c4651ba | ||
|
|
6e2ac1c089 | ||
|
|
304ef494fd | ||
|
|
c46a2a9a39 | ||
|
|
84fd3b250d | ||
|
|
7d9183d022 | ||
|
|
d32a3d01b9 | ||
|
|
fc42ade63f | ||
|
|
310ef2be7e | ||
|
|
04f0245a95 | ||
|
|
a5ea74d035 | ||
|
|
99678c1635 | ||
|
|
77f163144f | ||
|
|
5dde5bd3f7 | ||
|
|
64c4933645 | ||
|
|
7eebfb35ce | ||
|
|
1c6028abcf | ||
|
|
28bb4856be | ||
|
|
41ad0aea2b | ||
|
|
02fe704769 | ||
|
|
e85b441f60 | ||
|
|
3f83e7463c | ||
|
|
4220ec11e7 | ||
|
|
7879e2d12d | ||
|
|
d16730f0cf | ||
|
|
35f01fc0c8 | ||
|
|
36b26ae9f5 | ||
|
|
3ec6adfc0d | ||
|
|
96717d3dbc | ||
|
|
bd4d6b930c | ||
|
|
f15c411282 | ||
|
|
1f0742ef9f | ||
|
|
cf92db7ed1 | ||
|
|
6ea5f04bae | ||
|
|
d3a1626776 | ||
|
|
4264d38843 | ||
|
|
8851870400 | ||
|
|
94fca0b554 | ||
|
|
43b8a0ac94 | ||
|
|
e96a83a528 | ||
|
|
fbddd7ead8 | ||
|
|
762a2058d3 | ||
|
|
2bc0a4bd14 | ||
|
|
e052e304bd | ||
|
|
50c56d134e | ||
|
|
4caa2fad9d | ||
|
|
49fa01f209 | ||
|
|
07043aff0c | ||
|
|
e8b617b80c | ||
|
|
417971d15d | ||
|
|
ccfe72a0d9 | ||
|
|
6f8fe62087 | ||
|
|
5601bc4ab2 | ||
|
|
67ba17286c | ||
|
|
a10b8aa042 | ||
|
|
273ab6139f | ||
|
|
9b68009eb3 | ||
|
|
aec2448406 | ||
|
|
4343fb1b30 | ||
|
|
64e6c74bb6 | ||
|
|
73962536d5 | ||
|
|
38be8d84b2 | ||
|
|
8ab632c97c | ||
|
|
903edf12df | ||
|
|
66f9b08fcf | ||
|
|
fcaf891a90 | ||
|
|
3b1f3e8a3f | ||
|
|
d8d9f9b99c | ||
|
|
126e548510 | ||
|
|
91fc1cd735 | ||
|
|
4244569211 | ||
|
|
f23c4af2ad | ||
|
|
809bde9d20 | ||
|
|
52bf8a1bb6 | ||
|
|
614ce97898 | ||
|
|
5aacd18320 | ||
|
|
daf575e7c3 | ||
|
|
70ce2b96e3 | ||
|
|
0b5b3b7444 | ||
|
|
46b8108229 | ||
|
|
cc38f3eb29 | ||
|
|
cfd4bc740a | ||
|
|
443f3e7f10 | ||
|
|
49395e8cb6 | ||
|
|
480ce2d812 | ||
|
|
ecf9a52573 | ||
|
|
b5e1179a39 | ||
|
|
8176469e3e | ||
|
|
a6fb15f81b | ||
|
|
50173aa265 | ||
|
|
79f8e5bf47 | ||
|
|
e9a285bd29 | ||
|
|
6754d5a3d6 | ||
|
|
68e5ea1cad | ||
|
|
0e4b72c65d | ||
|
|
81fac736f9 | ||
|
|
a954ab7ede | ||
|
|
99387ee32b | ||
|
|
e85c47744c | ||
|
|
56711c6040 | ||
|
|
7ad5bcffb5 | ||
|
|
88d745e290 | ||
|
|
2a3ca9f552 | ||
|
|
5649f708e3 | ||
|
|
cbd6abb29d | ||
|
|
0a9ec06fe7 | ||
|
|
2ba94d03aa | ||
|
|
5d15d71da8 | ||
|
|
592791d135 | ||
|
|
c5e58770d1 | ||
|
|
77cc3c4a5c | ||
|
|
8f79107d2b | ||
|
|
1b4ba04a23 | ||
|
|
722557fd14 | ||
|
|
1d48dcc004 | ||
|
|
f0b2a61246 | ||
|
|
afd278e609 | ||
|
|
42bde235d3 | ||
|
|
b5d8935159 | ||
|
|
9498d189e4 | ||
|
|
01b79bbeaf | ||
|
|
f3d35084ed | ||
|
|
0c8e83e125 | ||
|
|
67adddd23e | ||
|
|
4b400bbfde | ||
|
|
854053e961 | ||
|
|
11a9fe9014 | ||
|
|
ce9a9862f1 | ||
|
|
0584b3672b | ||
|
|
a21889080d | ||
|
|
4e502a171c | ||
|
|
f66e6412af | ||
|
|
a4e2cc54e6 | ||
|
|
a13203fb3f | ||
|
|
4053e72782 | ||
|
|
c9d18f6d8a | ||
|
|
aeed24e87d | ||
|
|
ff9b7a5e80 | ||
|
|
afa8155fda | ||
|
|
388cb60cbb | ||
|
|
4d9fb9f69f | ||
|
|
3ef0541cc8 | ||
|
|
93fc8dc665 | ||
|
|
2ecf1cce5b | ||
|
|
551311d3a0 | ||
|
|
b09acfb4dc | ||
|
|
f8f3e8b43f | ||
|
|
f2f56adfd7 | ||
|
|
19a2d74eed | ||
|
|
af582a489d | ||
|
|
f548fe7011 | ||
|
|
17a9beb514 | ||
|
|
8d42273665 | ||
|
|
251e450fab | ||
|
|
d3ba3254f1 | ||
|
|
196f9c5fa8 | ||
|
|
d00f7ee010 | ||
|
|
345571cdff | ||
|
|
1bdf7cf439 | ||
|
|
9c253e8c49 | ||
|
|
1c0b040eb0 | ||
|
|
939b8d4aa9 | ||
|
|
eec9e2e742 | ||
|
|
62f5b18022 | ||
|
|
a7ecda9b36 | ||
|
|
aec753a3f8 | ||
|
|
9225eeee44 | ||
|
|
d5608c6dab | ||
|
|
d668032310 | ||
|
|
f46db508c7 | ||
|
|
bf024bdda8 | ||
|
|
7532a96085 | ||
|
|
8e32156aa0 | ||
|
|
75ccae3f6b | ||
|
|
8d493b7a89 | ||
|
|
c6412674fa | ||
|
|
feb3fc6eb5 | ||
|
|
0874c03882 | ||
|
|
15f44e64f7 | ||
|
|
51f29d6093 | ||
|
|
7ee9d915fb | ||
|
|
d91026dc4f | ||
|
|
df88a936a5 | ||
|
|
1939c214cf | ||
|
|
5668a3e222 | ||
|
|
47fa419803 | ||
|
|
4fcaab5feb | ||
|
|
5aa06f5b07 | ||
|
|
9d9c021819 | ||
|
|
21c09c93b3 | ||
|
|
3dc2750d64 | ||
|
|
76e86ea283 | ||
|
|
a00e96b63b | ||
|
|
d047234d98 | ||
|
|
3f21a49988 | ||
|
|
6a02de35ce | ||
|
|
65363b2713 | ||
|
|
ec8c06da9b | ||
|
|
d0cb0e324e | ||
|
|
be13390b3a | ||
|
|
e9fda44bf0 | ||
|
|
27f6cf24dd | ||
|
|
6ab627ed5a | ||
|
|
a350b51cf8 | ||
|
|
bbb032344b | ||
|
|
fe9d443100 | ||
|
|
3220b87457 | ||
|
|
ec1015295e | ||
|
|
a943a41d2e | ||
|
|
2d86fa254c | ||
|
|
03ce69dbfb | ||
|
|
653d8d43a8 | ||
|
|
ae816e614c | ||
|
|
3460d3ddca | ||
|
|
f5b423c351 | ||
|
|
a4652ce7ba | ||
|
|
7417188d36 | ||
|
|
c2650d308c | ||
|
|
a616101ad0 | ||
|
|
9fdb560528 | ||
|
|
0f0ddb9c59 | ||
|
|
50e027ca80 | ||
|
|
37aa7f5dfc | ||
|
|
9c3709106b | ||
|
|
66fb689ac5 | ||
|
|
8e01360a22 | ||
|
|
3bbf8f4a03 | ||
|
|
c7f7910fa9 | ||
|
|
211548fd53 | ||
|
|
4d4c77129f | ||
|
|
7500fb3b1c | ||
|
|
1906c310f5 | ||
|
|
59695cee88 | ||
|
|
36975b37e3 | ||
|
|
5724c04bc3 | ||
|
|
2e22f69bde | ||
|
|
298c2c8bc7 | ||
|
|
86e291c5a3 | ||
|
|
f9a3ac2cb1 | ||
|
|
8ecc2f9446 | ||
|
|
8de56feeb7 | ||
|
|
10ff783982 | ||
|
|
c46b2c3cb7 | ||
|
|
9a3ff8ad1a | ||
|
|
92aa4a6d63 | ||
|
|
154f627f2a | ||
|
|
a624a3f065 | ||
|
|
361e8fe7ae | ||
|
|
3d9c3ecb3e | ||
|
|
f9ff9191a1 | ||
|
|
e85b4da2e3 | ||
|
|
ab53c601bf | ||
|
|
8e03e8463f | ||
|
|
81d6c0ebdf | ||
|
|
e0466409d0 | ||
|
|
e86756e4c6 | ||
|
|
bdc0227c08 | ||
|
|
0451fa7573 | ||
|
|
3dec43d8d4 | ||
|
|
8b8039f42b | ||
|
|
df55299e6f | ||
|
|
9c773aaa05 | ||
|
|
4e4bbee8c2 | ||
|
|
d331fea477 | ||
|
|
9de77b327d | ||
|
|
ab41eea7a9 | ||
|
|
22ef28f633 | ||
|
|
a8da658a97 | ||
|
|
e5a5d0a607 | ||
|
|
60ea9106f1 | ||
|
|
7549b9443f | ||
|
|
5021a2081e | ||
|
|
ce3426368b | ||
|
|
7aa3d8e5d9 | ||
|
|
4c37ec3222 | ||
|
|
830de90317 | ||
|
|
d5956072f0 | ||
|
|
2309b07d85 | ||
|
|
3a6e067ea3 | ||
|
|
bb8f0bed6d | ||
|
|
6fee28c9e9 | ||
|
|
5ab2943c3a | ||
|
|
b6e3b96d56 | ||
|
|
ecd83ee136 | ||
|
|
8ed16b3ea2 | ||
|
|
5b0f5f75d0 | ||
|
|
6e8b0eeca9 | ||
|
|
a89fe4702d | ||
|
|
664bd863e5 | ||
|
|
e0241686dc | ||
|
|
9092f05985 | ||
|
|
eb1ab0992f | ||
|
|
f22ff2296c | ||
|
|
6fe2d2c328 | ||
|
|
20f5865bb9 | ||
|
|
2b224c712f | ||
|
|
c446e24f1a | ||
|
|
2623f45a3b | ||
|
|
52e7208e8f | ||
|
|
d1498a7160 | ||
|
|
5c270b6b9d | ||
|
|
18718f6a25 | ||
|
|
653f409d91 | ||
|
|
0f0af2f309 | ||
|
|
7908ab79da | ||
|
|
ae3daa9bcf | ||
|
|
48238d929e | ||
|
|
01df4d0f1d | ||
|
|
25ff6906c6 | ||
|
|
695548eade | ||
|
|
6221a4e464 | ||
|
|
115b819c66 | ||
|
|
bceb8cce0d | ||
|
|
8d2cf2095c | ||
|
|
1b1a1a5bc2 | ||
|
|
935ebe022a | ||
|
|
ff356571c8 | ||
|
|
76fb2141e4 | ||
|
|
b220500f40 | ||
|
|
1cbf70fb6a | ||
|
|
52ec48656d | ||
|
|
fddf3a0f68 | ||
|
|
98520a1213 | ||
|
|
d65d94b784 | ||
|
|
00f1e0da59 | ||
|
|
65ef685729 | ||
|
|
6e344140c6 | ||
|
|
97a01b6f6d | ||
|
|
c49ccbde93 | ||
|
|
fc73d9d615 | ||
|
|
1133d6b0f7 | ||
|
|
b80210f24b | ||
|
|
3bad0b2685 | ||
|
|
af388ec39f | ||
|
|
8d7c2c8e29 | ||
|
|
8088cd6d58 | ||
|
|
590ce9642e | ||
|
|
99302b8ff2 | ||
|
|
14b108f09e | ||
|
|
0669835d4e | ||
|
|
fbeaed2035 | ||
|
|
ecad7f58c1 | ||
|
|
1dd9a8d4d3 | ||
|
|
bd73a163cd | ||
|
|
1e9b5638aa | ||
|
|
71ac8aae4a | ||
|
|
d5bfcdb6de | ||
|
|
1480efb43d | ||
|
|
1c17b41e16 | ||
|
|
192d9dc7e3 | ||
|
|
d0d3c2b588 | ||
|
|
b8a8f20448 | ||
|
|
28a32aed7d | ||
|
|
ff46771d8d | ||
|
|
87a2673e8c | ||
|
|
c59cab1aae | ||
|
|
6314e8d7eb | ||
|
|
5ade12d700 | ||
|
|
ceb210b1b7 | ||
|
|
5e084db038 | ||
|
|
d0c4dfca97 | ||
|
|
f4a11ed328 | ||
|
|
b2971cf5fb | ||
|
|
f97827ec76 | ||
|
|
f230a2a94d |
11
.editorconfig
Normal file
@@ -0,0 +1,11 @@
|
||||
#
|
||||
# http://editorconfig.org
|
||||
#
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
5
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: greper
|
||||
buy_me_a_coffee: greper
|
||||
custom: ['https://afdian.com/a/greper']
|
||||
36
.github/ISSUE_TEMPLATE/1plugin.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: Plugin Apply
|
||||
about: 部署插件申请支持
|
||||
title: "[Plugin] "
|
||||
labels: feature
|
||||
---
|
||||
|
||||
> > 感谢您支持certd,请按如下规范提交issue
|
||||
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
|
||||
|
||||
# 新部署插件申请支持
|
||||
|
||||
## 1. 需求描述
|
||||
`请在此处简要描述你的需求`
|
||||
|
||||
|
||||
## 2. 要部署证书应用的信息
|
||||
|
||||
1. 应用名称:
|
||||
|
||||
|
||||
2. 应用网址/项目地址/官方网站:
|
||||
|
||||
|
||||
3. 管理证书界面截图(或者手动部署证书方式介绍及截图):
|
||||
|
||||
|
||||
4. 是否有API接口,接口地址:
|
||||
|
||||
|
||||
5. 如果没有API接口,网页登录是否需要验证码:
|
||||
|
||||
|
||||
6. 是否可以提供测试账号?(如果可以请留下联系方式或者加作者好友)
|
||||
|
||||
|
||||
36
.github/ISSUE_TEMPLATE/2dns.md
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: DNS Provider Apply
|
||||
about: 域名提供商申请支持
|
||||
title: "[DNS] "
|
||||
labels: feature
|
||||
---
|
||||
|
||||
|
||||
> 感谢您支持certd,请按如下规范提交issue
|
||||
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
|
||||
|
||||
# 新域名提供商支持申请
|
||||
|
||||
## 1. 基本信息
|
||||
请填写如下内容:
|
||||
|
||||
1. 域名提供商名称:
|
||||
|
||||
|
||||
2. 管理页面地址:
|
||||
|
||||
|
||||
3. 是否有API接口,接口地址:
|
||||
|
||||
|
||||
4. 如果没有API接口,网页登录是否有验证码:
|
||||
|
||||
|
||||
5. 是否可以提供测试账号?(如果可以请留下联系方式或者加作者好友)
|
||||
|
||||
|
||||
|
||||
## 2. 截图
|
||||
|
||||
`域名管理页面截图`
|
||||
|
||||
@@ -1,21 +1,28 @@
|
||||
> 感谢您支持certd,请按如下规范提交issue
|
||||
---
|
||||
name: Bug Report
|
||||
about: 错误或问题报告
|
||||
title: "[BUG] "
|
||||
labels: bug
|
||||
---
|
||||
|
||||
|
||||
> 感谢您支持certd,请按如下规范提交issue
|
||||
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
|
||||
|
||||
|
||||
## 一、问题描述
|
||||
# bug提交
|
||||
## 1、问题描述
|
||||
`请在此处简要描述你所遇到的问题,必要时请贴出相关截图辅助理解和定位`
|
||||
|
||||
### 复现步骤
|
||||
### 2、复现步骤
|
||||
`请描述复现问题的详细步骤`
|
||||
`如果非示例页面的问题,最好能提供最小复现示例的代码、或者仓库链接`
|
||||
|
||||
|
||||
### 报错截图
|
||||
### 3.报错截图
|
||||
`请贴出报错日志截图`
|
||||
|
||||
### 效果截图
|
||||
### 4、效果截图
|
||||
`请贴出效果截图`
|
||||
#### 1. 期望效果
|
||||
|
||||
#### 2. 实际效果
|
||||
#### 4.1. 期望效果
|
||||
|
||||
#### 4.2. 实际效果
|
||||
24
.github/ISSUE_TEMPLATE/4feature.md
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: 新需求、新特性申请支持
|
||||
title: "[Feature] "
|
||||
labels: feature
|
||||
---
|
||||
|
||||
> > 感谢您支持certd,请按如下规范提交issue
|
||||
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
|
||||
|
||||
|
||||
# 新特性申请
|
||||
>注意:这里仅供如果是要申请新的部署插件,请提交插件申请
|
||||
|
||||
## 1. 需求描述,需求背景
|
||||
`请在此处简要描述你所遇到的问题,必要时请贴出相关截图辅助理解`
|
||||
|
||||
|
||||
## 2. 期望效果
|
||||
`必要时可以截图描述你的期望效果`
|
||||
|
||||
|
||||
## 3. 你的解决方案
|
||||
`如果你有解决方案,请描述你的方案`
|
||||
20
.github/workflows/build-image.yml
vendored
@@ -1,15 +1,16 @@
|
||||
name: build-image
|
||||
on:
|
||||
push:
|
||||
branches: ['v2']
|
||||
branches: ['v2-dev']
|
||||
paths:
|
||||
- "build.trigger"
|
||||
- "trigger/build.trigger"
|
||||
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
build-certd-image:
|
||||
@@ -17,6 +18,9 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
|
||||
- name: get_certd_version
|
||||
id: get_certd_version
|
||||
@@ -58,20 +62,24 @@ jobs:
|
||||
username: ${{ secrets.aliyun_cs_username }}
|
||||
password: ${{ secrets.aliyun_cs_password }}
|
||||
|
||||
- name: Login to GitHub Packages
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.dockerhub_username }}
|
||||
password: ${{ secrets.dockerhub_password }}
|
||||
|
||||
- name: Build and push
|
||||
- name: Build default platforms
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
context: ./packages/ui/
|
||||
tags: |
|
||||
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
|
||||
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}
|
||||
greper/certd:latest
|
||||
greper/certd:${{steps.get_certd_version.outputs.result}}
|
||||
|
||||
17
.github/workflows/deploy-demo.yml
vendored
@@ -1,14 +1,15 @@
|
||||
name: deploy-demo
|
||||
on:
|
||||
push:
|
||||
branches: ['v2']
|
||||
branches: ['v2-dev']
|
||||
paths:
|
||||
- "deploy.trigger"
|
||||
- "trigger/deploy.trigger"
|
||||
workflow_run:
|
||||
workflows: [ "build-image" ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
@@ -18,9 +19,13 @@ permissions:
|
||||
jobs:
|
||||
deploy-certd-demo:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: v2-dev
|
||||
- name: get_certd_version
|
||||
id: get_certd_version
|
||||
uses: actions/github-script@v6
|
||||
@@ -37,11 +42,11 @@ jobs:
|
||||
- uses: GuillaumeFalourd/wait-sleep-action@v1
|
||||
with:
|
||||
time: '10' # for 60 seconds
|
||||
- name: Send HTTP request
|
||||
id: request
|
||||
- name: deploy-certd-demo
|
||||
uses: tyrrrz/action-http-request@master
|
||||
with:
|
||||
url: http://flow-openapi.aliyun.com/pipeline/webhook/lzCzlGrLCOHQaTMMt0mG
|
||||
# 通过webhook 触发 certd-demo来部署
|
||||
url: ${{ secrets.WEBHOOK_CERTD_DEMO }}
|
||||
method: POST
|
||||
headers: |
|
||||
Content-Type: application/json
|
||||
@@ -51,5 +56,3 @@ jobs:
|
||||
}
|
||||
retry-count: 3
|
||||
retry-delay: 5000
|
||||
|
||||
|
||||
|
||||
61
.github/workflows/publish-atom.yaml
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
name: publish-atomgit
|
||||
on:
|
||||
push:
|
||||
branches: ['v2-dev']
|
||||
paths:
|
||||
- "trigger/publish.trigger"
|
||||
workflow_run:
|
||||
workflows: [ "build-image-for-release" ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
publish-atomgit:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
- name: get_certd_version
|
||||
id: get_certd_version
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const pnpmWorkspace = "./pnpm-workspace.yaml";
|
||||
fs.unlinkSync(pnpmWorkspace)
|
||||
const jsonFilePath = "./packages/ui/certd-server/package.json";
|
||||
const jsonContent = fs.readFileSync(jsonFilePath, 'utf-8');
|
||||
const pkg = JSON.parse(jsonContent)
|
||||
console.log("certd_version:",pkg.version);
|
||||
return pkg.version
|
||||
- run: |
|
||||
npm install -g pnpm
|
||||
pnpm install
|
||||
npm run build
|
||||
working-directory: ./packages/ui/certd-client
|
||||
|
||||
- name: publish_to_atomgit
|
||||
id: publish_to_atomgit
|
||||
run: |
|
||||
rootDir=$(pwd)
|
||||
rm -rf ./packages/ui/certd-client/dist/**/*.gz
|
||||
cd ./packages/ui/certd-client/dist && zip -r ../ui.zip .
|
||||
cd $rootDir
|
||||
export ATOMGIT_TOKEN=${{ secrets.ATOMGIT_TOKEN }}
|
||||
pnpm install
|
||||
npm run publish_to_atomgit
|
||||
working-directory: ./
|
||||
|
||||
39
.github/workflows/publish-gitee.yaml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
name: publish-gitee
|
||||
on:
|
||||
push:
|
||||
branches: ['v2-dev']
|
||||
paths:
|
||||
- "trigger/publish.trigger"
|
||||
workflow_run:
|
||||
workflows: [ "build-image-for-release" ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
publish-gitee:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
|
||||
- name: publish_to_gitee
|
||||
id: publish_to_gitee
|
||||
run: |
|
||||
export GITEE_TOKEN=${{ secrets.GITEE_TOKEN }}
|
||||
rm -rf ./pnpm*.yaml
|
||||
npm install -g pnpm
|
||||
pnpm install
|
||||
npm run publish_to_gitee
|
||||
working-directory: ./
|
||||
|
||||
39
.github/workflows/publish-github.yaml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
name: publish-github
|
||||
on:
|
||||
push:
|
||||
branches: ['v2-dev']
|
||||
paths:
|
||||
- "trigger/publish.trigger"
|
||||
workflow_run:
|
||||
workflows: [ "build-image-for-release" ]
|
||||
types:
|
||||
- completed
|
||||
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
publish-github:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
|
||||
- name: publish_to_github
|
||||
id: publish_to_github
|
||||
run: |
|
||||
export GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
|
||||
rm -rf ./pnpm*.yaml
|
||||
npm install -g pnpm
|
||||
pnpm install
|
||||
npm run publish_to_github
|
||||
working-directory: ./
|
||||
|
||||
133
.github/workflows/release-image.yml
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
name: build-image-for-release
|
||||
on:
|
||||
push:
|
||||
branches: ['v2-dev']
|
||||
paths:
|
||||
- "trigger/release.trigger"
|
||||
# workflow_run:
|
||||
# workflows: [ "deploy-demo" ]
|
||||
# types:
|
||||
# - completed
|
||||
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
jobs:
|
||||
build-certd-image:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
|
||||
- name: get_certd_version
|
||||
id: get_certd_version
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
result-encoding: string
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const pnpmWorkspace = "./pnpm-workspace.yaml";
|
||||
fs.unlinkSync(pnpmWorkspace)
|
||||
const jsonFilePath = "./packages/ui/certd-server/package.json";
|
||||
const jsonContent = fs.readFileSync(jsonFilePath, 'utf-8');
|
||||
const pkg = JSON.parse(jsonContent)
|
||||
console.log("certd_version:",pkg.version);
|
||||
return pkg.version
|
||||
# - name: Use Node.js
|
||||
# uses: actions/setup-node@v4
|
||||
# with:
|
||||
# node-version: 18
|
||||
# cache: 'npm'
|
||||
# working-directory: ./packages/ui/certd-client
|
||||
- run: |
|
||||
npm install -g pnpm
|
||||
pnpm install
|
||||
npm run build
|
||||
working-directory: ./packages/ui/certd-client
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Login to aliyun container Registry
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: registry.cn-shenzhen.aliyuncs.com
|
||||
username: ${{ secrets.aliyun_cs_username }}
|
||||
password: ${{ secrets.aliyun_cs_password }}
|
||||
|
||||
- name: Login to GitHub Packages
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.dockerhub_username }}
|
||||
password: ${{ secrets.dockerhub_password }}
|
||||
|
||||
- name: Build default platforms
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
context: ./packages/ui/
|
||||
tags: |
|
||||
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
|
||||
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}
|
||||
greper/certd:latest
|
||||
greper/certd:${{steps.get_certd_version.outputs.result}}
|
||||
ghcr.io/${{ github.repository }}:latest
|
||||
ghcr.io/${{ github.repository }}:${{steps.get_certd_version.outputs.result}}
|
||||
- name: Build armv7
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
platforms: linux/arm/v7
|
||||
push: true
|
||||
context: ./packages/ui/
|
||||
tags: |
|
||||
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7
|
||||
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}-armv7
|
||||
greper/certd:armv7
|
||||
greper/certd:${{steps.get_certd_version.outputs.result}}-armv7
|
||||
ghcr.io/${{ github.repository }}:armv7
|
||||
ghcr.io/${{ github.repository }}:${{steps.get_certd_version.outputs.result}}-armv7
|
||||
|
||||
# - name: Build agent
|
||||
# uses: docker/build-push-action@v6
|
||||
# with:
|
||||
# platforms: linux/amd64,linux/arm64
|
||||
# push: true
|
||||
# context: ./packages/ui/agent/
|
||||
# tags: |
|
||||
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:latest
|
||||
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:${{steps.get_certd_version.outputs.result}}
|
||||
# greper/certd-agent:latest
|
||||
# greper/certd-agent:${{steps.get_certd_version.outputs.result}}
|
||||
- name: deploy-certd-doc
|
||||
uses: tyrrrz/action-http-request@master
|
||||
with:
|
||||
url: ${{ secrets.WEBHOOK_CERTD_DOC }}
|
||||
method: POST
|
||||
body: |
|
||||
{
|
||||
"CERTD_VERSION": "1.0.0"
|
||||
}
|
||||
headers: |
|
||||
Content-Type: application/json
|
||||
retry-count: 3
|
||||
retry-delay: 5000
|
||||
|
||||
34
.github/workflows/sync-to-atomgit-dev.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: sync-to-atomgit-dev
|
||||
on:
|
||||
push:
|
||||
branches: ['v2-dev']
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout work repo # 1. 检出当前仓库(certd-sync-work)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
- name: Set git user # 2. 给git命令设置用户名和邮箱,↙↙↙ 改成你的name和email
|
||||
run: |
|
||||
git config --global user.name "xiaojunnuo"
|
||||
git config --global user.email "xiaojunnuo@qq.com"
|
||||
|
||||
- name: Set git token # 3. 给git命令设置token,用于push到目标仓库
|
||||
uses: de-vri-es/setup-git-credentials@v2
|
||||
with: # token 格式为: username:password
|
||||
credentials: https://greper:${{secrets.ATOMGIT_TOKEN}}@atomgit.com
|
||||
|
||||
- name: push to atomgit # 4. 执行同步
|
||||
run: |
|
||||
git remote add upstream https://atomgit.com/certd/certd
|
||||
git push --set-upstream upstream v2-dev
|
||||
|
||||
34
.github/workflows/sync-to-atomgit.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: sync-to-atomgit
|
||||
on:
|
||||
push:
|
||||
branches: ['v2']
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout work repo # 1. 检出当前仓库(certd-sync-work)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
- name: Set git user # 2. 给git命令设置用户名和邮箱,↙↙↙ 改成你的name和email
|
||||
run: |
|
||||
git config --global user.name "xiaojunnuo"
|
||||
git config --global user.email "xiaojunnuo@qq.com"
|
||||
|
||||
- name: Set git token # 3. 给git命令设置token,用于push到目标仓库
|
||||
uses: de-vri-es/setup-git-credentials@v2
|
||||
with: # token 格式为: username:password
|
||||
credentials: https://greper:${{secrets.ATOMGIT_TOKEN}}@atomgit.com
|
||||
|
||||
- name: push to atomgit # 4. 执行同步
|
||||
run: |
|
||||
git remote add upstream https://atomgit.com/certd/certd
|
||||
git push --set-upstream upstream v2
|
||||
|
||||
34
.github/workflows/sync-to-gitee-dev.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: sync-to-gitee-dev
|
||||
on:
|
||||
push:
|
||||
branches: ['v2-dev']
|
||||
# schedule:
|
||||
# - # 国际时间 19:17 执行,北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
|
||||
# - cron: '17 19 * * *'
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
sync:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout work repo # 1. 检出当前仓库(certd-sync-work)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
- name: Set git user # 2. 给git命令设置用户名和邮箱,↙↙↙ 改成你的name和email
|
||||
run: |
|
||||
git config --global user.name "xiaojunnuo"
|
||||
git config --global user.email "xiaojunnuo@qq.com"
|
||||
|
||||
- name: Set git token # 3. 给git命令设置token,用于push到目标仓库
|
||||
uses: de-vri-es/setup-git-credentials@v2
|
||||
with: # token 格式为: username:password
|
||||
credentials: https://${{secrets.PUSH_TOKEN_GITEE}}@gitee.com
|
||||
|
||||
- name: push to gitee # 4. 执行同步
|
||||
run: |
|
||||
git remote add upstream https://gitee.com/certd/certd
|
||||
git push --set-upstream upstream v2-dev
|
||||
|
||||
3
.github/workflows/sync-to-gitee.yml
vendored
@@ -13,9 +13,10 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout work repo # 1. 检出当前仓库(certd-sync-work)
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
lfs: true
|
||||
- name: Set git user # 2. 给git命令设置用户名和邮箱,↙↙↙ 改成你的name和email
|
||||
run: |
|
||||
git config --global user.name "xiaojunnuo"
|
||||
|
||||
19
.gitignore
vendored
@@ -1,6 +1,5 @@
|
||||
./packages/core/lego
|
||||
# IntelliJ project files
|
||||
.vscode/
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
@@ -17,26 +16,18 @@ gen
|
||||
/test/*.private.*
|
||||
|
||||
/*.log
|
||||
nohup.out
|
||||
|
||||
/packages/ui/*/.idea
|
||||
|
||||
/packages/ui/*/node_modules
|
||||
|
||||
/packages/*/node_modules
|
||||
/packages/ui/certd-server/tmp/
|
||||
/packages/ui/certd-ui/dist/
|
||||
/other
|
||||
/dev-sidecar-test
|
||||
/packages/core/certd/yarn.lock
|
||||
/packages/test
|
||||
/test/own
|
||||
/pnpm-lock.yaml
|
||||
#/pnpm-lock.yaml
|
||||
|
||||
docker/image/workspace
|
||||
/packages/core/lego
|
||||
|
||||
tsconfig.tsbuildinfo
|
||||
test/**/*.js
|
||||
/packages/ui/certd-server/data/db.sqlite
|
||||
/packages/ui/certd-server/data/keys.yaml
|
||||
/packages/pro/
|
||||
/packages/pro/
|
||||
test.js
|
||||
.history
|
||||
6
.npmrc
@@ -1,2 +1,6 @@
|
||||
link-workspace-packages=true
|
||||
link-workspace-packages=deep
|
||||
prefer-workspace-packages=true
|
||||
better_sqlite3_binary_host=https://registry.npmmirror.com/-/binary/better-sqlite3
|
||||
better_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3
|
||||
better-sqlite3_binary_host=https://registry.npmmirror.com/-/binary/better-sqlite3
|
||||
better-sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3
|
||||
83
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
// 使用 IntelliSense 了解相关属性。
|
||||
// 悬停以查看现有属性的描述。
|
||||
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
{
|
||||
"name": "client",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-client",
|
||||
"runtimeExecutable": "pnpm",
|
||||
"runtimeArgs": ["dev"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
},
|
||||
{
|
||||
"name": "server",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-server",
|
||||
"runtimeExecutable": "pnpm",
|
||||
"runtimeArgs": ["dev"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
},
|
||||
{
|
||||
"name": "server-mysql",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-server",
|
||||
"runtimeExecutable": "pnpm",
|
||||
"runtimeArgs": ["dev-mysql"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
},
|
||||
{
|
||||
"name": "server-pg",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-server",
|
||||
"runtimeExecutable": "pnpm",
|
||||
"runtimeArgs": ["dev-pg"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
},
|
||||
{
|
||||
"name": "server-pgpl",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-server",
|
||||
"runtimeExecutable": "pnpm",
|
||||
"runtimeArgs": ["dev-pgpl"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
},
|
||||
{
|
||||
"name": "server-common",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-server",
|
||||
"runtimeExecutable": "pnpm",
|
||||
"runtimeArgs": ["dev-commpro"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
},
|
||||
{
|
||||
"name": "server-local-plus",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-server",
|
||||
"runtimeExecutable": "npm",
|
||||
"runtimeArgs": ["run", "dev-localplus"],
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen",
|
||||
"env": {
|
||||
"plus_use_prod": "false",
|
||||
"PLUS_SERVER_BASE_URL": "http://127.0.0.1:11007"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
17
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"eslint.debug": false,
|
||||
"eslint.format.enable": true,
|
||||
"typescript.tsc.autoDetect": "watch",
|
||||
"git.scanRepositories": [
|
||||
"./packages/pro"
|
||||
],
|
||||
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
},
|
||||
"editor.tabSize": 2,
|
||||
"explorer.autoReveal": false,
|
||||
"[javascript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
}
|
||||
}
|
||||
52
.vscode/tasks.json
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "启动Client",
|
||||
"type": "shell",
|
||||
"command": "npm",
|
||||
"args": ["run", "dev"],
|
||||
"options": {
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-client"
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "启动Server",
|
||||
"type": "shell",
|
||||
"command": "npm",
|
||||
"args": ["run", "dev"],
|
||||
"options": {
|
||||
"cwd": "${workspaceFolder}/packages/ui/certd-server"
|
||||
},
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
"focus": false,
|
||||
"panel": "shared"
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "同时启动Client和Server",
|
||||
"dependsOn": ["启动Client", "启动Server"],
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": []
|
||||
}
|
||||
]
|
||||
}
|
||||
1786
CHANGELOG.md
@@ -1,4 +1,6 @@
|
||||
# Certd Open Source License
|
||||
|
||||
Certd Open Source License
|
||||
|
||||
|
||||
- This project is licensed under the **GNU Affero General Public License (AGPL)** with the following additional terms.
|
||||
- 本项目遵循 GNU Affero General Public License(AGPL),并附加以下条款。
|
||||
|
||||
316
README.md
@@ -1,231 +1,215 @@
|
||||
# Certd
|
||||
|
||||
Certd 是一个免费全自动申请和自动部署更新SSL证书的工具。
|
||||
后缀d取自linux守护进程的命名风格,意为证书守护进程。
|
||||
中文 | [English](./README_en.md)
|
||||
|
||||
关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签
|
||||
Certd® 是一个免费的全自动证书管理系统,让你的网站证书永不过期。
|
||||
后缀d取自linux守护进程的命名风格,意为证书守护进程
|
||||
|
||||
|
||||
************************
|
||||
支持开源,为爱发电,我已入驻爱发电
|
||||
https://afdian.com/a/greper
|
||||
>首创流水线申请部署证书模式,已被多个项目“借鉴”,被抄也是一种成功。
|
||||
|
||||
发电权益:
|
||||
1. 可加入发电专属群,可以获得作者一对一技术支持
|
||||
2. 您的需求我们将优先实现,并且将作为专业版功能提供
|
||||
3. 一年期专业版激活码
|
||||
4. 赠送国外免费服务器部署方案(0成本使用Certd,不过该服务器需要翻墙)
|
||||
> 关于证书续期:
|
||||
>* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
|
||||
>* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
|
||||
>* 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少
|
||||
|
||||
|
||||
> 流水线数量现已调整为无限制,欢迎大家使用
|
||||
|
||||
|
||||
|官方开源地址: | |
|
||||
| ---- | ---- |
|
||||
| [Github](https://github.com/certd/certd)|  |
|
||||
| [Gitee](https://gitee.com/certd/certd) |  |
|
||||
| [AtomGit](https://atomgit.com/certd/certd) | |
|
||||
|
||||
专业版特权
|
||||
1. 证书流水线条数无限制(免费版限制10条)
|
||||
2. 免配置发邮件功能
|
||||
3. 更多功能增加中...
|
||||
************************
|
||||
|
||||
## 一、特性
|
||||
本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。
|
||||
|
||||
* 全自动申请证书(支持阿里云、腾讯云、华为云、Cloudflare等各种途径注册的域名)
|
||||
* 全自动部署更新证书(目前支持部署到主机、部署到阿里云、腾讯云等)
|
||||
* 支持通配符域名/泛域名,支持多个域名打到一个证书上
|
||||
* 邮件通知
|
||||
* 私有化部署,保障安全
|
||||
* 免费、免费、免费([阿里云单个通配符域名证书最便宜也要1800/年](https://yundun.console.aliyun.com/?p=cas#/certExtend/buy/cn-hangzhou))
|
||||
* **全自动申请证书**: 支持所有注册商注册的域名,支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式
|
||||
* **全自动部署更新证书**: 目前支持部署到主机、阿里云、腾讯云等110+部署插件
|
||||
* **多种证书格式**: 支持pem、pfx、der、jks、p7b
|
||||
* **免费通配符域名/泛域名证书**: 支持多个域名打到一个证书上
|
||||
* **多种通知方式**: 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式
|
||||
* **私有化部署**: 数据保存本地,安装简单快捷,镜像由Github Actions构建,过程公开透明
|
||||
* **多重安全保障**: 授权加密,站点隐藏,2FA,密码防爆破等多重安全保障
|
||||
* **多数据库支持**:支持SQLite、PostgreSQL、MySQL
|
||||
* **开放接口支持**: 提供RESTful API接口,方便集成到其他系统
|
||||
* **站点证书监控**: 定时监控网站证书的过期时间
|
||||
* **多用户管理**: 用户可以管理自己的证书流水线
|
||||
* **多语言支持**: 中英双语切换
|
||||
* **一键无忧升级**: 版本向下兼容
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
## 二、在线体验
|
||||
|
||||
官方Demo地址,自助注册后体验
|
||||
|
||||
https://certd.handsfree.work/
|
||||
https://certd.handfree.work/
|
||||
|
||||
> 注意数据将不定期清理,不定期停止定时任务,生产使用请自行部署
|
||||
> 包含敏感信息,务必自己本地部署进行生产使用
|
||||
|
||||
## 三、使用教程
|
||||
本案例演示,如何配置自动申请证书,并部署到阿里云CDN,然后快要到期前自动更新证书并重新部署
|
||||

|
||||
|
||||
## 三、使用教程
|
||||
|
||||
仅需3步,让你的证书永不过期
|
||||
|
||||
### 1. 创建证书流水线
|
||||

|
||||
|
||||
> 添加成功后,就可以直接运行流水线申请证书了
|
||||
|
||||
### 2. 添加部署任务
|
||||
当然我们一般需要把证书部署到应用上,certd支持海量的部署插件,您可以根据自身实际情况进行选择,比如部署到Nginx、阿里云、腾讯云、K8S、CDN、宝塔、1Panel等等
|
||||
|
||||
此处演示部署证书到主机的nginx上
|
||||

|
||||
|
||||
如果目前的部署插件都无法满足,您也可以手动下载,然后自行部署
|
||||

|
||||
|
||||
### 3. 定时运行
|
||||

|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
|
||||
-------> [点我查看详细使用步骤演示](./step.md) <--------
|
||||
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
|
||||
|
||||
更多教程请访问官方文档 [certd.docmirror.cn](https://certd.docmirror.cn/guide/)
|
||||
|
||||
|
||||
|
||||
## 四、私有化部署
|
||||
|
||||
由于证书、授权信息等属于高度敏感数据,请务必私有化部署,保障数据安全
|
||||
由于证书、授权信息等属于高度敏感数据,请务必私有化部署,保障数据安全
|
||||
|
||||
### 1. 安装docker、docker-compose
|
||||
您可以根据实际情况从如下方式中选择一种方式进行私有化部署:
|
||||
|
||||
1.1 准备一台云服务器
|
||||
* 【阿里云】云服务器2核2G,新老用户同享,99元/年,续费同价!【 [立即购买](https://www.aliyun.com/benefit?scm=20140722.M_10244282._.V_1&source=5176.11533457&userCode=qya11txb )】
|
||||
* 【腾讯云】云服务器2核2G,新老用户同享,99元/年,续费同价!【 [立即购买](https://cloud.tencent.com/act/cps/redirect?redirect=6094&cps_key=b3ef73330335d7a6efa4a4bbeeb6b2c9&from=console)】
|
||||
|
||||
1. 【推荐】[Docker方式部署 ](https://certd.docmirror.cn/guide/install/docker/)
|
||||
2. 【推荐】[宝塔面板方式部署 ](https://certd.docmirror.cn/guide/install/docker/)
|
||||
3. 【推荐】[1Panel面板方式部署](https://certd.docmirror.cn/guide/install/1panel/)
|
||||
4. 【推荐】[雨云一键部署](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2) : 首充翻倍,每月仅需2.2元
|
||||
[<img src="https://rainyun-apps.cn-nb1.rains3.com/materials/deploy-on-rainyun-cn.svg">](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2)
|
||||
5. 【不推荐】[源码方式部署 ](https://certd.docmirror.cn/guide/install/source/)
|
||||
|
||||
1.2 安装docker
|
||||
|
||||
https://docs.docker.com/engine/install/
|
||||
选择对应的操作系统,按照官方文档执行命令即可
|
||||
|
||||
### 2. 运行certd
|
||||
|
||||
[docker-compose.yaml 下载](https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml)
|
||||
|
||||
当前版本号: 
|
||||
|
||||
```bash
|
||||
# 随便创建一个目录
|
||||
mkdir certd
|
||||
# 进入目录
|
||||
cd certd
|
||||
# 下载docker-compose.yaml文件,或者手动下载放到certd目录下
|
||||
wget https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
|
||||
|
||||
# 可以根据需要修改里面的配置
|
||||
# 1.修改镜像版本号【可选】
|
||||
# 2.配置数据保存路径【可选】
|
||||
# 3.修改端口号【可选】
|
||||
vi docker-compose.yaml # 【可选】
|
||||
|
||||
# 启动certd
|
||||
docker compose up -d
|
||||
|
||||
```
|
||||
> 如果提示 没有compose命令,请安装docker-compose
|
||||
> https://docs.docker.com/compose/install/linux/
|
||||
|
||||
#### 镜像说明:
|
||||
#### Docker镜像说明:
|
||||
* 国内镜像地址:
|
||||
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest`
|
||||
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7`、`[version]-armv7`
|
||||
* DockerHub地址:
|
||||
* `https://hub.docker.com/r/greper/certd`
|
||||
* `docker pull greper/certd:latest`
|
||||
* `greper/certd:latest`
|
||||
* `greper/certd:armv7`、`greper/certd:[version]-armv7`
|
||||
* GitHub Packages地址:
|
||||
* `ghcr.io/certd/certd:latest`
|
||||
* `ghcr.io/certd/certd:armv7`、`ghcr.io/certd/certd:[version]-armv7`
|
||||
|
||||
* 镜像构建通过`Actions`自动执行,过程公开透明,请放心使用
|
||||
* [点我查看镜像构建日志](https://github.com/certd/certd/actions/workflows/build-image.yml)
|
||||
|
||||

|
||||

|
||||
|
||||
> 注意:
|
||||
> * 本应用存储的证书、授权信息等属于高度敏感数据,请做好安全防护
|
||||
> * 请务必使用HTTPS协议访问本应用,避免被中间人攻击
|
||||
> * 请务必使用web应用防火墙防护本应用,防止XSS、SQL注入等攻击
|
||||
> * 请务必做好服务器本身的安全防护,防止数据库泄露
|
||||
> * 请务必做好数据备份,避免数据丢失
|
||||
> * [更多安全生产建议点我](https://certd.docmirror.cn/guide/feature/safe/)
|
||||
|
||||
|
||||
### 3. 访问
|
||||
## 五、生态
|
||||
|
||||
### 1. 客户端工具 SSL-Assistant
|
||||
`SSL Assistant` 是一个运行于主机上的证书部署管理助手客户端。
|
||||
支持自动扫描主机`Nginx`配置,然后从`Certd`拉取证书并部署。
|
||||
在不想暴露ssh主机密码情况下,该工具非常好用。
|
||||
|
||||
http://your_server_ip:7001
|
||||
默认账号密码:admin/123456
|
||||
记得修改密码
|
||||
开源地址: https://github.com/Youngxj/SSL-Assistant
|
||||
|
||||
|
||||
## 五、 升级
|
||||
如果使用固定版本号
|
||||
1. 修改`docker-compose.yaml`中的镜像版本号
|
||||
2. 运行`docker compose up -d` 即可
|
||||
## 六、更多帮助
|
||||
请访问官方文档:[https://certd.docmirror.cn/](https://certd.docmirror.cn/guide/)
|
||||
|
||||
如果使用`latest`版本
|
||||
```shell
|
||||
#重新拉取镜像
|
||||
docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
|
||||
# 重新启动容器
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
> 数据默认存在`/data/certd`目录下,不用担心数据丢失
|
||||
* 升级方法:[升级方法](https://certd.docmirror.cn/guide/install/upgrade/)
|
||||
* 常见问题:[忘记密码](https://certd.docmirror.cn/guide/use/forgotpasswd/)
|
||||
* 多数据库:[多数据库配置](https://certd.docmirror.cn/guide/install/database/)
|
||||
* 站点安全:[站点安全特性](https://certd.docmirror.cn/guide/feature/safe/)
|
||||
* 更新日志:[CHANGELOG](./CHANGELOG.md)
|
||||
|
||||
|
||||
更新日志: [CHANGELOG](./CHANGELOG.md)
|
||||
|
||||
|
||||
## 六、一些说明
|
||||
* 本项目ssl证书提供商为letencrypt
|
||||
* 申请过程遵循acme协议
|
||||
* 需要验证域名所有权,一般有两种方式(目前本项目仅支持dns-01)
|
||||
* http-01: 在网站根目录下放置一份txt文件
|
||||
* dns-01: 需要给域名添加txt解析记录,通配符域名只能用这种方式
|
||||
* 证书续期:
|
||||
* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
|
||||
* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
|
||||
* 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少
|
||||
* 设置每天自动运行,当证书过期前20天,会自动重新申请证书并部署
|
||||
|
||||
|
||||
## 七、不同平台的设置说明
|
||||
|
||||
* [Cloudflare](./doc/cf/cf.md)
|
||||
* [腾讯云](./doc/tencent/tencent.md)
|
||||
* [windows主机](./doc/host/host.md)
|
||||
* [google证书](./doc/google/google.md)
|
||||
|
||||
|
||||
## 八、问题处理
|
||||
### 7.1 忘记管理员密码
|
||||
解决方法如下:
|
||||
1. 修改docker-compose.yaml文件,将环境变量`certd_system_resetAdminPassword`改为`true`
|
||||
```yaml
|
||||
services:
|
||||
certd:
|
||||
environment: # 环境变量
|
||||
- certd_system_resetAdminPassword=false
|
||||
```
|
||||
2. 重启容器
|
||||
```shell
|
||||
docker compose up -d
|
||||
docker logs -f --tail 500 certd
|
||||
# 观察日志,当日志中输出“重置1号管理员用户的密码完成”,即可操作下一步
|
||||
```
|
||||
3. 修改docker-compose.yaml,将`certd_system_resetAdminPassword`改回`false`
|
||||
4. 再次重启容器
|
||||
```shell
|
||||
docker compose up -d
|
||||
```
|
||||
5. 使用`admin/123456`登录系统,请及时修改管理员密码
|
||||
|
||||
## 九、联系作者
|
||||
## 七、联系作者
|
||||
如有疑问,欢迎加入群聊(请备注certd)
|
||||
* QQ群:141236433
|
||||
* 微信群:
|
||||

|
||||
|
||||
| 加群 | 微信群 | QQ群 |
|
||||
|---------|-------|-------|
|
||||
| 二维码 | <img height="230" src="./docs/guide/contact/images/wx.png"> | <img height="230" src="./docs/guide/contact/images/qq.png"> |
|
||||
|
||||
也可以加作者好友
|
||||
|
||||
| 加作者好友 | 微信 QQ |
|
||||
|---------|-------------------------------------------------------------|
|
||||
| 二维码 | <img height="230" src="./docs/guide/contact/images/me.png"> |
|
||||
|
||||
|
||||
加作者好友
|
||||
<p align="center">
|
||||
<img height="230" src="./doc/images/me.png">
|
||||
</p>
|
||||
## 八、赞助捐赠
|
||||
|
||||
## 十、捐赠
|
||||
支持开源,为爱发电,我已入驻爱发电
|
||||
https://afdian.com/a/greper
|
||||
开源为什么要做专业版收费?
|
||||
1. 纯靠为爱发电不可持续(比如:我的[dev-sidecar项目](https://github.com/docmirror/dev-sidecar)即便是拥有20K+star,也差点凉凉,幸亏有另外大佬接手用爱发电)
|
||||
2. 没有赞助的项目,作者会比较任性,不会用心倾听用户的心声,不顾用户体验(比如:下意识拒绝需求、频繁破坏性变更升级、全盘推倒重来之类的)
|
||||
3. 没有赞助的项目,交流群的戾气有时候比较重,容易起冲突
|
||||
|
||||
发电权益:
|
||||
1. 可加入发电专属群(先加我好友,发送发电截图,我拉你进群)
|
||||
2. 你的需求优先实现
|
||||
3. 可以获得作者一对一技术支持
|
||||
4. 更多权益陆续增加中...
|
||||
赞助权益:
|
||||
1. 可加入专属VIP群,可以获得作者一对一技术支持,必要时可以远程协助
|
||||
2. 您的需求我们将优先实现,并且可能将作为专业版功能提供
|
||||
3. 获得专业版功能
|
||||
|
||||
[50元专业版优惠券限时领取](https://app.handfree.work/subject/#/app/certd/product)
|
||||
|
||||
专业版特权对比
|
||||
|
||||
| 功能 | 免费版 | 专业版 |
|
||||
|---------|---------------------------------------|--------------------------------|
|
||||
| 免费证书申请 | 免费无限制 | 免费无限制 |
|
||||
| 证书域名数量 | 无限制 | 无限制 |
|
||||
| 证书流水线条数 | 无限制 | 无限制 |
|
||||
| 自动部署插件 | 阿里云CDN、腾讯云、七牛CDN、主机部署、宝塔、1Panel等大部分插件 | 群晖、威联通、proxmox等 |
|
||||
| 通知 | 邮件通知、自定义webhook | 邮件免配置、企微、钉钉、飞书、anpush、server酱等 |
|
||||
| 站点监控 | 限制1条 | 无限制 |
|
||||
| 批量操作 | 无 | 流水线模版,流水线复制,批量运行,批量设置通知、定时等 |
|
||||
| VIP群 | 无 | 可加,一对一技术支持,必要时可申请远程协助 |
|
||||
|
||||
|
||||
## 十一、贡献代码
|
||||
## 九、贡献代码
|
||||
|
||||
1. [贡献插件教程](./plugin.md)
|
||||
1. 本地开发请参考 [贡献插件向导](https://certd.docmirror.cn/guide/development/)
|
||||
2. 作为贡献者,代表您同意您贡献的代码如下许可:
|
||||
1. 可以调整开源协议以使其更严格或更宽松。
|
||||
2. 可以用于商业用途。
|
||||
|
||||
## 十二、 开源许可
|
||||
感谢以下贡献者做出的贡献。
|
||||
|
||||
<a href="https://github.com/certd/certd/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=certd/certd" />
|
||||
</a>
|
||||
|
||||
## 十、 开源许可
|
||||
* 本项目遵循 GNU Affero General Public License(AGPL)开源协议。
|
||||
* 允许个人和公司使用、复制、修改和分发本项目,禁止任何形式的商业用途
|
||||
* 允许个人和公司内部自由使用、复制、修改和分发本项目,未获得商业授权情况下禁止任何形式的商业用途
|
||||
* 未获得商业授权情况下,禁止任何对logo、版权信息及授权许可相关代码的修改。
|
||||
* 如需商业授权,请联系作者。
|
||||
|
||||
## 十三、我的其他项目(求Star)
|
||||
* [袖手GPT](https://ai.handsfree.work/) ChatGPT,国内可用,无需FQ,每日免费额度
|
||||
* [fast-crud](https://gitee.com/fast-crud/fast-crud/) 基于vue3的crud快速开发框架
|
||||
* [dev-sidecar](https://github.com/docmirror/dev-sidecar/) 直连访问github工具,无需FQ,解决github无法访问的问题
|
||||
|
||||
|
||||
|
||||
## 十四、更新日志
|
||||
|
||||
更新日志:[CHANGELOG](./CHANGELOG.md)
|
||||
|
||||
## 十一、我的其他项目(求Star)
|
||||
|
||||
| 项目名称 | stars | 项目描述 |
|
||||
| --------- |--------- |----------- |
|
||||
| [fast-crud](https://gitee.com/fast-crud/fast-crud/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/fast-crud/fast-crud?logo=github"/> | 基于vue3的crud快速开发框架 |
|
||||
| [dev-sidecar](https://github.com/docmirror/dev-sidecar/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/docmirror/dev-sidecar?logo=github"/> | 直连访问github工具,无需FQ,解决github无法访问的问题 |
|
||||
|
||||
194
README_en.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# Certd
|
||||
|
||||
[中文](./README.md) | English
|
||||
|
||||
Certd® is a free, fully automated certificate management system that ensures your website certificates never expire. The suffix 'd' is inspired by the naming convention of Linux daemons, representing a certificate daemon.
|
||||
|
||||
> We pioneered the pipeline-based certificate application and deployment model, which has been "referenced" by multiple projects. Being copied is also a form of success.
|
||||
|
||||
> Regarding certificate renewal:
|
||||
>* In fact, it's impossible to renew or reissue a certificate without modifying the certificate file itself.
|
||||
>* What we refer to as renewal is essentially applying for a new certificate following the full process and redeploying it.
|
||||
>* Free certificates expire in 90 days, which may be shortened in the future. Therefore, automated deployment is essential.
|
||||
|
||||
> The number of pipelines is now unlimited. Welcome to use it.
|
||||
|
||||
|
||||
Official Open Source Address:
|
||||
|
||||
[Github](https://github.com/certd/certd) 
|
||||
[Gitee](https://gitee.com/certd/certd) 
|
||||
[AtomGit](https://atomgit.com/certd/certd) 
|
||||
|
||||
|
||||
|
||||
## 1. Features
|
||||
This project not only supports automated certificate application but also automated certificate deployment and updates, ensuring your certificates never expire.
|
||||
|
||||
* Fully automated certificate application (supports domains registered with all registrars and multiple domain verification methods such as DNS-01, HTTP-01, and CNAME proxy).
|
||||
* Fully automated certificate deployment and updates (currently supports deployment to over 70 plugins, including hosts, Alibaba Cloud, Tencent Cloud, etc.).
|
||||
* Supports wildcard domains/pan-domains, allows multiple domains in a single certificate, and supports various certificate formats such as pem, pfx, der, and jks.
|
||||
* Multiple notification methods, including email, webhook, WeChat Work, DingTalk, Lark, and anpush.
|
||||
* On-premises deployment, local data storage, simple and quick installation. Images are built by Github Actions, with a transparent process.
|
||||
* Multiple security measures, including authorization encryption, site hiding, 2FA, and password brute-force protection.
|
||||
* Supports multiple databases such as SQLite, PostgreSQL, and MySQL.
|
||||
* Open API support.
|
||||
* Site certificate monitoring.
|
||||
* Multi-user management.
|
||||
* Multi-language support (Chinese and English switching).
|
||||
* Downward compatibility across all versions, with one-click worry-free upgrades.
|
||||
|
||||

|
||||
|
||||
## 2. Online Experience
|
||||
Visit the official demo site and register to experience it.
|
||||
|
||||
https://certd.handfree.work/
|
||||
|
||||
> Note: Data will be cleaned up irregularly, and scheduled tasks may be stopped. For production use, please deploy it yourself.
|
||||
> The content contains sensitive information. Make sure to deploy it locally for production use.
|
||||
|
||||

|
||||
|
||||
## 3. Usage Tutorial
|
||||
Just 3 steps to ensure your certificates never expire.
|
||||
|
||||
### 1. Create a Certificate Pipeline
|
||||

|
||||
|
||||
> After successful addition, you can directly run the pipeline to apply for a certificate.
|
||||
|
||||
### 2. Add a Deployment Task
|
||||
Normally, we need to deploy certificates to applications. Certd supports a wide range of deployment plugins. You can choose based on your needs, such as deploying to Nginx, Alibaba Cloud, Tencent Cloud, K8S, CDN, Baota, 1Panel, etc.
|
||||
|
||||
Here's a demonstration of deploying certificates to a host's Nginx:
|
||||

|
||||
|
||||
If the current deployment plugins don't meet your needs, you can also download them manually and deploy them yourself.
|
||||

|
||||
|
||||
### 3. Run Scheduled Tasks
|
||||

|
||||
|
||||
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
|
||||
-------> [Click here to view detailed usage steps](./step.md) <--------
|
||||
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
|
||||
|
||||
For more tutorials, please visit the official documentation [certd.docmirror.cn](https://certd.docmirror.cn/guide/).
|
||||
|
||||
## 4. On-Premises Deployment
|
||||
Since certificates, authorization information, and other data are highly sensitive, please make sure to deploy them on-premises to ensure data security.
|
||||
|
||||
You can choose one of the following deployment methods based on your needs:
|
||||
|
||||
1. 【Recommended】[Docker Deployment](https://certd.docmirror.cn/guide/install/docker/)
|
||||
2. 【Recommended】[BT Panel Deployment](https://certd.docmirror.cn/guide/install/docker/)
|
||||
3. 【Recommended】[1Panel Deployment](https://certd.docmirror.cn/guide/install/1panel/)
|
||||
4. 【Recommended】[Rainyun One-Click Deployment](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2_): Double your first recharge, only $2.2 per month.
|
||||
[<img src="https://rainyun-apps.cn-nb1.rains3.com/materials/deploy-on-rainyun-cn.svg">](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2_)
|
||||
5. 【Not Recommended】[Source Code Deployment](https://certd.docmirror.cn/guide/install/source/)
|
||||
|
||||
#### Docker Image Information:
|
||||
* Domestic Image Addresses:
|
||||
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest`
|
||||
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7`, `[version]-armv7`
|
||||
* DockerHub Addresses:
|
||||
* `https://hub.docker.com/r/greper/certd`
|
||||
* `greper/certd:latest`
|
||||
* `greper/certd:armv7`, `greper/certd:[version]-armv7`
|
||||
* GitHub Packages Addresses:
|
||||
* `ghcr.io/certd/certd:latest`
|
||||
* `ghcr.io/certd/certd:armv7`, `ghcr.io/certd/certd:[version]-armv7`
|
||||
|
||||
* Images are built automatically by `Actions`, with a transparent process. Please use them with confidence.
|
||||
* [Click here to view image build logs](https://github.com/certd/certd/actions/workflows/build-image.yml)
|
||||
|
||||

|
||||
|
||||
> Note:
|
||||
> * The certificates, authorization information, and other data stored in this application are highly sensitive. Please take appropriate security measures.
|
||||
> * Make sure to use the HTTPS protocol to access this application to avoid man-in-the-middle attacks.
|
||||
> * Make sure to use a web application firewall to protect this application from attacks such as XSS and SQL injection.
|
||||
> * Make sure to secure the server itself to prevent database leakage.
|
||||
> * Make sure to back up your data to avoid data loss.
|
||||
> * [Click here for more production safety suggestions](https://certd.docmirror.cn/guide/feature/safe/)
|
||||
|
||||
## 5. Ecosystem
|
||||
|
||||
### 1. Client Tool: SSL-Assistant
|
||||
`SSL Assistant` is a certificate deployment and management assistant client that runs on hosts. It supports automatic scanning of the host's `Nginx` configuration and pulling certificates from `Certd` for deployment. This tool is very useful when you don't want to expose your SSH host password.
|
||||
|
||||
Open-source Address: https://github.com/Youngxj/SSL-Assistant
|
||||
|
||||
## 6. More Help
|
||||
Please visit the official documentation: [https://certd.docmirror.cn/](https://certd.docmirror.cn/guide/).
|
||||
|
||||
* Upgrade Method: [Upgrade Guide](https://certd.docmirror.cn/guide/install/upgrade/)
|
||||
* Common Issues: [Forgot Password](https://certd.docmirror.cn/guide/use/forgotpasswd/)
|
||||
* Multi-Database: [Multi-Database Configuration](https://certd.docmirror.cn/guide/install/database/)
|
||||
* Site Security: [Site Security Features](https://certd.docmirror.cn/guide/feature/safe/)
|
||||
* Changelog: [CHANGELOG](./CHANGELOG.md)
|
||||
|
||||
## 7. Contact the Author
|
||||
If you have any questions, feel free to join the group chat (please mention 'certd' in your message).
|
||||
|
||||
| Join Group | WeChat Group | QQ Group |
|
||||
|---------|-------|-------|
|
||||
| QR Code | <img height="230" src="./docs/guide/contact/images/wx.png"> | <img height="230" src="./docs/guide/contact/images/qq.png"> |
|
||||
|
||||
You can also add the author as a friend.
|
||||
|
||||
| Add Author as Friend | WeChat QQ |
|
||||
|---------|-------|-------|
|
||||
| QR Code | <img height="230" src="./docs/guide/contact/images/me.png"> |
|
||||
|
||||
## 8. Donation
|
||||
************************
|
||||
[](https://github.com/sponsors/greper)
|
||||
************************
|
||||
Support open-source projects and contribute with love. I've joined Afdian.
|
||||
https://afdian.com/a/greper
|
||||
|
||||
Benefits of Contribution:
|
||||
1. Join the exclusive contributor group and get one-on-one technical support from the author.
|
||||
2. Your requests will be prioritized and implemented as professional edition features.
|
||||
3. Receive a one-year professional edition activation code.
|
||||
|
||||
Comparison of Professional Edition Privileges:
|
||||
|
||||
| Feature | Free Edition | Professional Edition |
|
||||
|---------|---------------------------------------|--------------------------------|
|
||||
| Free Certificate Application | Unlimited for free | Unlimited for free |
|
||||
| Number of Domains | Unlimited | Unlimited |
|
||||
| Number of Certificate Pipelines | Unlimited | Unlimited |
|
||||
| Site Certificate Monitoring | Limited to 1 | Unlimited |
|
||||
| Automatic Deployment Plugins | Most plugins such as Alibaba Cloud CDN, Tencent Cloud, QiNiu CDN, Host Deployment, Baota, 1Panel | Synology |
|
||||
| Notifications | Email, Custom Webhook | Email without configuration, WeChat Work, DingTalk, Lark, anpush, ServerChan, etc. |
|
||||
|
||||
************************
|
||||
|
||||
## 9. Contribute Code
|
||||
|
||||
1. For local development, please refer to the [Plugin Contribution Guide](https://certd.docmirror.cn/guide/development/).
|
||||
2. As a contributor, you agree that your contributed code is subject to the following license:
|
||||
1. The open-source license can be adjusted to be more or less restrictive.
|
||||
2. It can be used for commercial purposes.
|
||||
|
||||
Thank you to the following contributors.
|
||||
|
||||
<a href="https://github.com/certd/certd/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=certd/certd" />
|
||||
</a>
|
||||
|
||||
## 10. Open-Source License
|
||||
* This project follows the GNU Affero General Public License (AGPL).
|
||||
* Individuals and companies are allowed to use, copy, modify, and distribute this project freely for internal use. Any form of commercial use is prohibited without obtaining commercial authorization.
|
||||
* Without commercial authorization, any modification of the logo, copyright information, and license-related code is prohibited.
|
||||
* For commercial authorization, please contact the author.
|
||||
|
||||
## 11. My Other Projects (Please Star)
|
||||
|
||||
| Project Name | Stars | Project Description |
|
||||
|----------------|---------------|--------------|
|
||||
| [fast-crud](https://gitee.com/fast-crud/fast-crud/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/fast-crud/fast-crud?logo=github"/> | A fast CRUD development framework based on Vue3. |
|
||||
| [dev-sidecar](https://github.com/docmirror/dev-sidecar/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/docmirror/dev-sidecar?logo=github"/> | A tool to access GitHub directly without a VPN, solving the problem of inaccessible GitHub. |
|
||||
@@ -1 +0,0 @@
|
||||
1
|
||||
@@ -1,37 +0,0 @@
|
||||
# google证书申请教程
|
||||
|
||||
## 1、启用API
|
||||
打开如下链接,启用 API
|
||||
|
||||
https://console.cloud.google.com/apis/library/publicca.googleapis.com
|
||||
|
||||
打开该链接后点击“启用”,随后等待右侧出现“API已启用”则可以关闭该页。
|
||||
|
||||
## 2、 申请Key
|
||||
随后打开“Google Cloud Shell”(在右上角点击激活CloudShell图标)。
|
||||
|
||||
等待分配完成后在 Shell 窗口内输入如下命令:
|
||||
|
||||
```shell
|
||||
gcloud beta publicca external-account-keys create
|
||||
```
|
||||
此时会弹出“为 Cloud Shell 提供授权”,点击授权即可。
|
||||
|
||||
执行完成后会返回类似如下输出;注意不要在没有收到 Google 的邮件时执行该命令,会返回命令不存在。
|
||||
|
||||
```shell
|
||||
Created an external account key
|
||||
[b64MacKey: xxxxxxxxxxxxx
|
||||
keyId: xxxxxxxxx]
|
||||
```
|
||||
记录以上信息备用
|
||||
|
||||
|
||||
## 3、 创建证书流水线
|
||||
选择证书提供商为google, 开启使用代理
|
||||
|
||||
## 4、 将key信息作为EAB授权信息
|
||||
google证书需要EAB授权, 使用第二步中的 keyId 和 b64MacKey 信息创建一条EAB授权记录
|
||||
|
||||
## 5、 其他就跟正常申请证书一样了
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
# 远程主机
|
||||
|
||||
远程主机基于ssh协议,通过ssh连接远程主机,执行命令。
|
||||
|
||||
## windows开启OpenSSH Server
|
||||
1. 安装OpenSSH Server
|
||||
请前往Microsoft官方文档查看如何开启openSSH
|
||||
https://learn.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse?tabs=gui#install-openssh-for-windows
|
||||
|
||||
2. 启动OpenSSH Server服务
|
||||
```
|
||||
win+R 弹出运行对话框,输入 services.msc 打开服务管理器
|
||||
找到 OpenSSH SSH Server
|
||||
启动ssh server服务,并且设置为自动启动
|
||||
```
|
||||
|
||||
3. 测试ssh登录
|
||||
使用你常用的ssh客户端,连接你的windows主机,进行测试
|
||||
|
||||
```cmd
|
||||
# 如何确定你用户名
|
||||
C:\Users\xiaoj>
|
||||
↑↑↑↑---------这个就是windows ssh的登录用户名
|
||||
```
|
||||
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 169 KiB |
@@ -1,16 +0,0 @@
|
||||
# 腾讯云
|
||||
|
||||
|
||||
## DNSPOD 授权设置
|
||||
目前腾讯云管理的域名的dns暂时只支持从DNSPOD进行设置
|
||||
打开 https://console.dnspod.cn/account/token/apikey
|
||||
然后按如下方式获取DNSPOD的授权
|
||||

|
||||
|
||||
|
||||
## 腾讯云API密钥设置
|
||||
|
||||
腾讯云其他部署需要API密钥,需要在腾讯云控制台进行设置
|
||||
打开 https://console.cloud.tencent.com/cam/capi
|
||||
然后按如下方式获取腾讯云的API密钥
|
||||

|
||||
@@ -1,14 +0,0 @@
|
||||
version: '3.3'
|
||||
services:
|
||||
ftp:
|
||||
# 镜像 # ↓↓↓↓↓ --- 1、 镜像版本号,建议改成固定版本号【可选】
|
||||
image: gists/pure-ftpd
|
||||
container_name: ftp # 容器名
|
||||
restart: unless-stopped # 自动重启
|
||||
volumes:
|
||||
- /data/ftp2/:/home/ftpuser
|
||||
ports: # 端口映射
|
||||
- "21:21"
|
||||
- "30000-30009:30000-30009"
|
||||
environment: # 环境变量
|
||||
- TZ=Asia/Shanghai
|
||||
@@ -1,34 +1,95 @@
|
||||
version: '3.3'
|
||||
version: '3.3' # 兼容旧版docker-compose
|
||||
services:
|
||||
certd:
|
||||
# 镜像 # ↓↓↓↓↓ --- 1、 镜像版本号,建议改成固定版本号【可选】
|
||||
# 镜像 # ↓↓↓↓↓ ---- 镜像版本号,建议改成固定版本号,例如:certd:1.29.0
|
||||
image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
|
||||
# image: ghcr.io/certd/certd:latest # --------- 如果 报镜像not found,可以尝试其他镜像源
|
||||
# image: greper/certd:latest
|
||||
container_name: certd # 容器名
|
||||
restart: unless-stopped # 自动重启
|
||||
volumes:
|
||||
# ↓↓↓↓↓ ------------------------------------------------------- 2、 数据库以及证书存储路径,默认存在宿主机的/data/certd/目录下【可选】
|
||||
- /data/certd:/app/data
|
||||
# ↓↓↓↓↓ -------------------------------------------------------- 数据库以及证书存储路径,默认存在宿主机的/data/certd/目录下,【您需要定时备份此目录,以保障数据容灾】
|
||||
- /data/certd:/app/data # 只要修改冒号前面的,冒号后面的/app/data切记切记不要动
|
||||
#- /volume1/docker/certd:/app/data:delegated #群晖使用这个配置
|
||||
# ↓↓↓↓↓ -------------------------------------------------------- 如果走时不准,考虑挂载localtime文件
|
||||
#- /etc/localtime:/etc/localtime
|
||||
#- /etc/timezone:/etc/timezone
|
||||
ports: # 端口映射
|
||||
# ↓↓↓↓ ----------------------------------------------------------3、如果端口有冲突,可以修改第一个7001为其他不冲突的端口号【可选】
|
||||
# ↓↓↓↓ ---------------------------------------------------------- 如果端口有冲突,可以修改第一个7001为其他不冲突的端口号,第二个7001不要动
|
||||
- "7001:7001"
|
||||
dns:
|
||||
# 如果出现getaddrinfo ENOTFOUND等错误,可以尝试修改或注释dns配置
|
||||
- 223.5.5.5
|
||||
- 223.6.6.6
|
||||
# ↓↓↓↓ ----------------------------------------------------------如果你服务器部署在国外,可以用8.8.8.8替换上面的dns【可选】
|
||||
# - 8.8.8.8
|
||||
# ↓↓↓↓ ---------------------------------------------------------- https端口,可以根据实际情况,是否暴露该端口
|
||||
- "7002:7002"
|
||||
#↓↓↓↓ -------------------------------------------------------------- 如果出现getaddrinfo EAI_AGAIN 或 getaddrinfo ENOTFOUND 错误,可以尝试设置dns
|
||||
# dns:
|
||||
# - 223.5.5.5 # 阿里云公共dns
|
||||
# - 223.6.6.6
|
||||
# # ↓↓↓↓ --------------------------------------------------------- 如果你服务器在腾讯云,可以用这个替换上面阿里云的公共dns
|
||||
# - 119.29.29.29 # 腾讯云公共dns
|
||||
# - 182.254.116.116
|
||||
# # ↓↓↓↓ --------------------------------------------------------- 如果你服务器部署在国外,可以用这个替换上面阿里云的公共dns
|
||||
# - 8.8.8.8 # 谷歌公共dns
|
||||
# - 8.8.4.4
|
||||
environment: # 环境变量
|
||||
# extra_hosts:
|
||||
# # ↓↓↓↓ -------------------------------------------------------- 这里可以配置自定义hosts,外网域名可以指向本地局域网ip地址
|
||||
# - "localdomain.com:192.168.1.3"
|
||||
# # ↓↓↓↓ ------------------------------------------------ 直接使用主机的网络,如果网络问题实在找不到原因,可以尝试打开此参数
|
||||
# network_mode: host
|
||||
labels:
|
||||
com.centurylinklabs.watchtower.enable: "true"
|
||||
# ↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络,还需要把下面networks的注释放开
|
||||
# networks:
|
||||
# - ip6net
|
||||
environment:
|
||||
# ↓↓↓↓ ----------------------------------------------------- 使用上海东八时区
|
||||
- TZ=Asia/Shanghai
|
||||
# 设置环境变量即可自定义certd配置
|
||||
# 配置项见: packages/ui/certd-server/src/config/config.default.ts
|
||||
# 配置规则: certd_ + 配置项, 点号用_代替
|
||||
# #↓↓↓↓ ----------------------------- 如果忘记管理员密码,可以设置为true,docker compose up -d 重建容器之后,管理员密码将改成123456,然后请及时修改回false
|
||||
- certd_system_resetAdminPasswd=false
|
||||
# ↑↑↑↑↑---------------------------4、如果忘记管理员密码,可以设置为true,重启之后,管理员密码将改成123456,然后请及时修改回false【可选】
|
||||
- certd_cron_immediateTriggerOnce=false
|
||||
# ↑↑↑↑↑---------------------------5、如果设置为true,启动后所有配置了cron的流水线任务都将被立即触发一次【可选】
|
||||
- VITE_APP_ICP_NO=
|
||||
# ↑↑↑↑↑ -----------------------------------------6、这里可以设置备案号【可选】
|
||||
# 设置环境变量即可自定义certd配置
|
||||
# 服务端配置项见: packages/ui/certd-server/src/config/config.default.ts
|
||||
# 服务端配置规则: certd_ + 配置项, 点号用_代替
|
||||
# ↓↓↓ 要使用ipv6,将此配置修改为::
|
||||
- certd_koa_hostname=0.0.0.0
|
||||
|
||||
# 客户端配置项见: packages/ui/certd-client/.env
|
||||
# 按实际名称配置环境变量即可,如: VITE_APP_API=http://localhost:7001
|
||||
# 默认使用sqlite文件数据库,如果需要使用其他数据库,请设置以下环境变量
|
||||
# 注意: 选定使用一种数据库之后,不支持更换数据库。
|
||||
# 数据库迁移方法:1、使用新数据库重新部署一套,然后将旧数据同步过去,注意flyway_history表的数据不要同步
|
||||
# #↓↓↓↓ ----------------------------- 使用postgresql数据库,需要提前创建数据库
|
||||
# - certd_flyway_scriptDir=./db/migration-pg # 升级脚本目录
|
||||
# - certd_typeorm_dataSource_default_type=postgres # 数据库类型
|
||||
# - certd_typeorm_dataSource_default_host=localhost # 数据库地址
|
||||
# - certd_typeorm_dataSource_default_port=5433 # 数据库端口
|
||||
# - certd_typeorm_dataSource_default_username=postgres # 用户名
|
||||
# - certd_typeorm_dataSource_default_password=yourpasswd # 密码
|
||||
# - certd_typeorm_dataSource_default_database=certd # 数据库名
|
||||
|
||||
# #↓↓↓↓ ----------------------------- 使用mysql数据库,需要提前创建数据库 charset=utf8mb4, collation=utf8mb4_bin
|
||||
# - certd_flyway_scriptDir=./db/migration-mysql # 升级脚本目录
|
||||
# - certd_typeorm_dataSource_default_type=mysql # 数据库类型, 或者 mariadb
|
||||
# - certd_typeorm_dataSource_default_host=localhost # 数据库地址
|
||||
# - certd_typeorm_dataSource_default_port=3306 # 数据库端口
|
||||
# - certd_typeorm_dataSource_default_username=root # 用户名
|
||||
# - certd_typeorm_dataSource_default_password=yourpasswd # 密码
|
||||
# - certd_typeorm_dataSource_default_database=certd # 数据库名
|
||||
|
||||
# ↓↓↓↓ --------------------------------------------------------- 自动升级,上面certd的版本号要保持为latest
|
||||
# certd-updater: # 添加 Watchtower 服务
|
||||
# image: containrrr/watchtower:latest
|
||||
# container_name: certd-updater
|
||||
# restart: unless-stopped
|
||||
# volumes:
|
||||
# - /var/run/docker.sock:/var/run/docker.sock
|
||||
# # 配置 自动更新
|
||||
# environment:
|
||||
# - WATCHTOWER_CLEANUP=true # 自动清理旧版本容器
|
||||
# - WATCHTOWER_INCLUDE_STOPPED=false # 不更新已停止的容器
|
||||
# - WATCHTOWER_LABEL_ENABLE=true # 根据容器标签进行更新
|
||||
# - WATCHTOWER_POLL_INTERVAL=600 # 每 10 分钟检查一次更新
|
||||
|
||||
|
||||
# ↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络,还需要把上面networks的注释放开
|
||||
#networks:
|
||||
# ip6net:
|
||||
# enable_ipv6: true
|
||||
# ipam:
|
||||
# config:
|
||||
# - subnet: 2001:db8::/64
|
||||
|
||||
2
docs/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
.vitepress/cache
|
||||
dist
|
||||
159
docs/.vitepress/config.ts
Normal file
@@ -0,0 +1,159 @@
|
||||
import {defineConfig} from "vitepress";
|
||||
// Import lightbox plugin
|
||||
import lightbox from "vitepress-plugin-lightbox";
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
title: "Certd",
|
||||
titleTemplate: "开源SSL证书管理工具,证书自动化申请部署,让你的网站证书永不过期",
|
||||
description: "Certd帮助文档,Certd是一款开源免费的全自动SSL证书管理工具;证书自动化申请部署流水线;自动证书申请、更新、续期;通配符证书,泛域名证书申请;证书自动化部署到阿里云、腾讯云、主机、群晖、宝塔。",
|
||||
markdown: {
|
||||
config: (md) => {
|
||||
// Use lightbox plugin
|
||||
md.use(lightbox, {});
|
||||
}
|
||||
},
|
||||
sitemap: {
|
||||
hostname: 'https://certd.docmirror.cn'
|
||||
},
|
||||
head: [
|
||||
// [
|
||||
// 'meta',
|
||||
// {
|
||||
// name: 'viewport',
|
||||
// content:
|
||||
// 'width=device-width,initial-scale=1,minimfast-cum-scale=1.0,maximum-scale=1.0,user-scalable=no',
|
||||
// },
|
||||
// ],
|
||||
["meta", {
|
||||
name: "keywords",
|
||||
content: "证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具、Certd、SSL证书自动部署、证书自动化,https证书,pfx证书,der证书,TLS证书,nginx证书自动续签自动部署,SSL平台,证书管理平台,证书流水线"
|
||||
}],
|
||||
// ["meta", { name: "google-site-verification",content: "V5XLTSnXoT15uQotwpxJoQolUo2d5UbSL-TacsyOsC0"}],
|
||||
//<meta name="baidu-site-verification" content="codeva-MiWN8Y07Ua" />
|
||||
// ["meta", {name: "baidu-site-verification",content: "codeva-MiWN8Y07Ua"}],
|
||||
["link", {rel: "icon", href: "/static/logo/logo.svg"}]
|
||||
],
|
||||
themeConfig: {
|
||||
logo: "/static/logo/logo.svg",
|
||||
search: {
|
||||
provider: "local",
|
||||
options: {
|
||||
detailedView: true,
|
||||
translations: {
|
||||
button: {
|
||||
buttonText: "搜索文档",
|
||||
buttonAriaLabel: "搜索文档"
|
||||
},
|
||||
modal: {
|
||||
noResultsText: "无法找到相关结果",
|
||||
resetButtonTitle: "清除查询条件",
|
||||
footer: {
|
||||
selectText: "选择",
|
||||
closeText: "关闭",
|
||||
navigateText: "切换"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// https://vitepress.dev/reference/default-theme-config
|
||||
nav: [
|
||||
{text: "首页", link: "/"},
|
||||
{text: "指南", link: "/guide/"},
|
||||
{text: "Demo体验", link: "https://certd.handfree.work"}
|
||||
],
|
||||
sidebar: {
|
||||
"/guide/": [
|
||||
{
|
||||
text: "入门",
|
||||
items: [
|
||||
{text: "简介", link: "/guide/"},
|
||||
{text: "快速开始", link: "/guide/start.md"},
|
||||
{
|
||||
text: "私有化部署",
|
||||
items: [
|
||||
{text: "docker部署", link: "/guide/install/docker/"},
|
||||
{text: "宝塔面板部署", link: "/guide/install/baota/"},
|
||||
{text: "1Panel部署", link: "/guide/install/1panel/"},
|
||||
{text: "群晖部署", link: "/guide/use/synology/"},
|
||||
{text: "源码部署", link: "/guide/install/source/"}
|
||||
]
|
||||
},
|
||||
{text: "演示教程", link: "/guide/tutorial.md"},
|
||||
{text: "版本升级", link: "/guide/install/upgrade.md"},
|
||||
{text: "赞助专业版", link: "/guide/donate/"},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: "特性",
|
||||
items: [
|
||||
{text: "CNAME代理校验", link: "/guide/feature/cname/index.md"},
|
||||
{text: "多数据库支持", link: "/guide/install/database.md"},
|
||||
{text: "开放接口", link: "/guide/open/index.md"},
|
||||
{
|
||||
text: "站点安全", link: "/guide/feature/safe/"
|
||||
},
|
||||
{
|
||||
text: "插件列表", items: [
|
||||
{text: "DNS提供商", link: "/guide/plugins/dns-provider.md"},
|
||||
{text: "任务插件", link: "/guide/plugins/deploy.md"},
|
||||
{text: "通知插件", link: "/guide/plugins/notification.md"},
|
||||
{text: "授权提供商", link: "/guide/plugins/access.md"},
|
||||
]
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: "常见问题",
|
||||
items: [
|
||||
{text: "QA", link: "/guide/qa/use.md"},
|
||||
{text: "忘记密码/无法登录", link: "/guide/use/forgotpasswd/"},
|
||||
{text: "群晖证书部署", link: "/guide/use/synology/"},
|
||||
{text: "腾讯云密钥获取", link: "/guide/use/tencent/"},
|
||||
{text: "连接windows主机", link: "/guide/use/host/windows.md"},
|
||||
{text: "Google EAB获取", link: "/guide/use/google/"},
|
||||
{text: "阿里云相关", link: "/guide/use/aliyun/"},
|
||||
{text: "数据备份", link: "/guide/use/backup/"},
|
||||
{text: "Certd本身的证书更新", link: "/guide/use/https/index.md"},
|
||||
{text: "js脚本插件使用", link: "/guide/use/custom-script/index.md"},
|
||||
{text: "邮箱配置", link: "/guide/use/email/index.md"},
|
||||
{text: "IPv6支持", link: "/guide/use/setting/ipv6.md"},
|
||||
{text: "ESXi", link: "/guide/use/ESXi/index.md"},
|
||||
{text: "宝塔动态IP白名单", link: "/guide/use/baota/white_list.md"},
|
||||
{text: "子域名托管", link: "/guide/use/cert/subdomain.md"},
|
||||
{text: "流水线有效期", link: "/guide/use/pipeline/valid.md"},
|
||||
{text: "IP证书申请", link: "/guide/use/cert/ip.md"},
|
||||
{text: "插件开发", link: "/guide/use/dev/plugin.md"},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: "商业版配置", link: "/guide/use/comm/", items: [
|
||||
{text: "支付宝配置", link: "/guide/use/comm/payments/alipay.md"},
|
||||
{text: "微信支付配置", link: "/guide/use/comm/payments/wxpay.md"},
|
||||
{text: "彩虹易支付配置", link: "/guide/use/comm/payments/yizhifu.md"},
|
||||
]
|
||||
},
|
||||
{
|
||||
text: "其他",
|
||||
items: [
|
||||
{text: "贡献代码", link: "/guide/development/index.md"},
|
||||
{text: "更新日志", link: "/guide/changelogs/CHANGELOG.md"},
|
||||
{text: "镜像说明", link: "/guide/image.md"},
|
||||
{text: "联系我们", link: "/guide/contact/"},
|
||||
{text: "开源协议", link: "/guide/license/"},
|
||||
{text: "我的其他开源项目", link: "/guide/link/"},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
|
||||
socialLinks: [
|
||||
{icon: "github", link: "https://github.com/certd/certd"}
|
||||
],
|
||||
footer: {
|
||||
message: "Certd帮助文档 | <a href='https://beian.miit.gov.cn/' target='_blank'>粤ICP备14088435号</a> ",
|
||||
copyright: "Copyright © 2021-present <a href='https://handfree.work/' target='_blank'>handfree.work</a> "
|
||||
}
|
||||
}
|
||||
});
|
||||
37
docs/.vitepress/theme/Layout.vue
Normal file
@@ -0,0 +1,37 @@
|
||||
<script setup>
|
||||
import DefaultTheme from "vitepress/theme";
|
||||
import { onMounted } from "vue";
|
||||
import { useRouter } from "vitepress";
|
||||
import mediumZoom from "medium-zoom";
|
||||
|
||||
const { Layout } = DefaultTheme;
|
||||
const router = useRouter();
|
||||
|
||||
// Setup medium zoom with the desired options
|
||||
const setupMediumZoom = () => {
|
||||
mediumZoom("[data-zoomable]", {
|
||||
background: "transparent",
|
||||
});
|
||||
};
|
||||
|
||||
// Apply medium zoom on load
|
||||
onMounted(setupMediumZoom);
|
||||
|
||||
// Subscribe to route changes to re-apply medium zoom effect
|
||||
router.onAfterRouteChanged = setupMediumZoom;
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Layout />
|
||||
</template>
|
||||
|
||||
<style>
|
||||
.medium-zoom-overlay {
|
||||
backdrop-filter: blur(5rem);
|
||||
}
|
||||
|
||||
.medium-zoom-overlay,
|
||||
.medium-zoom-image--opened {
|
||||
z-index: 999;
|
||||
}
|
||||
</style>
|
||||
35
docs/.vitepress/theme/index.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
// https://vitepress.dev/guide/custom-theme
|
||||
// import { h } from 'vue'
|
||||
import type { Theme } from 'vitepress'
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import './style.css'
|
||||
import Layout from './Layout.vue'
|
||||
|
||||
import { registerAnalytics, siteIds, trackPageview } from './plugins/baidutongji'
|
||||
import { inBrowser } from "vitepress";
|
||||
|
||||
|
||||
export default {
|
||||
extends: DefaultTheme,
|
||||
Layout,
|
||||
// Layout: () => {
|
||||
// return h(DefaultTheme.Layout, null, {
|
||||
// // https://vitepress.dev/guide/extending-default-theme#layout-slots
|
||||
// })
|
||||
// },
|
||||
enhanceApp({ app, router, siteData }) {
|
||||
// ...
|
||||
if (inBrowser) {
|
||||
registerAnalytics(siteIds)
|
||||
|
||||
window.addEventListener('hashchange', () => {
|
||||
const { href: url } = window.location
|
||||
trackPageview(siteIds, url)
|
||||
})
|
||||
|
||||
router.onAfterRouteChanged = (to) => {
|
||||
trackPageview(siteIds, to)
|
||||
}
|
||||
}
|
||||
}
|
||||
} satisfies Theme
|
||||
49
docs/.vitepress/theme/plugins/baidutongji.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { inBrowser } from 'vitepress'
|
||||
|
||||
/**
|
||||
* 统计站点的 ID 列表
|
||||
*/
|
||||
export const siteIds = 'a6ce877a899ae44292e4f854a53d688e'
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
_hmt: any
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册统计
|
||||
*/
|
||||
export function registerAnalytics(siteId: string) {
|
||||
if (!inBrowser)
|
||||
return
|
||||
if (document.querySelector(`#analytics-plugin-${siteId}`))
|
||||
return
|
||||
window._hmt = window._hmt ? window._hmt : []
|
||||
const script = document.createElement('script')
|
||||
script.id = `analytics-${siteId}`
|
||||
script.async = true
|
||||
script.src = `https://hm.baidu.com/hm.js?${siteId}`
|
||||
document.querySelector('head')?.appendChild(script)
|
||||
}
|
||||
|
||||
/**
|
||||
* 上报 PV 数据
|
||||
* @param siteId - 站点 ID
|
||||
* @param pageUrl - 页面 URL
|
||||
*/
|
||||
export function trackPageview(siteId: string, pageUrl: string) {
|
||||
if (!inBrowser)
|
||||
return
|
||||
if (!pageUrl || typeof pageUrl !== 'string')
|
||||
pageUrl = '/'
|
||||
|
||||
if (pageUrl.startsWith('http')) {
|
||||
const urlFragment = pageUrl.split('/')
|
||||
const origin = `${urlFragment[0]}//${urlFragment[2]}`
|
||||
pageUrl = pageUrl.replace(origin, '')
|
||||
}
|
||||
|
||||
window._hmt.push(['_setAccount', siteId])
|
||||
window._hmt.push(['_trackPageview', pageUrl])
|
||||
}
|
||||
139
docs/.vitepress/theme/style.css
Normal file
@@ -0,0 +1,139 @@
|
||||
/**
|
||||
* Customize default theme styling by overriding CSS variables:
|
||||
* https://github.com/vuejs/vitepress/blob/main/src/client/theme-default/styles/vars.css
|
||||
*/
|
||||
|
||||
/**
|
||||
* Colors
|
||||
*
|
||||
* Each colors have exact same color scale system with 3 levels of solid
|
||||
* colors with different brightness, and 1 soft color.
|
||||
*
|
||||
* - `XXX-1`: The most solid color used mainly for colored text. It must
|
||||
* satisfy the contrast ratio against when used on top of `XXX-soft`.
|
||||
*
|
||||
* - `XXX-2`: The color used mainly for hover state of the button.
|
||||
*
|
||||
* - `XXX-3`: The color for solid background, such as bg color of the button.
|
||||
* It must satisfy the contrast ratio with pure white (#ffffff) text on
|
||||
* top of it.
|
||||
*
|
||||
* - `XXX-soft`: The color used for subtle background such as custom container
|
||||
* or badges. It must satisfy the contrast ratio when putting `XXX-1` colors
|
||||
* on top of it.
|
||||
*
|
||||
* The soft color must be semi transparent alpha channel. This is crucial
|
||||
* because it allows adding multiple "soft" colors on top of each other
|
||||
* to create a accent, such as when having inline code block inside
|
||||
* custom containers.
|
||||
*
|
||||
* - `default`: The color used purely for subtle indication without any
|
||||
* special meanings attached to it such as bg color for menu hover state.
|
||||
*
|
||||
* - `brand`: Used for primary brand colors, such as link text, button with
|
||||
* brand theme, etc.
|
||||
*
|
||||
* - `tip`: Used to indicate useful information. The default theme uses the
|
||||
* brand color for this by default.
|
||||
*
|
||||
* - `warning`: Used to indicate warning to the users. Used in custom
|
||||
* container, badges, etc.
|
||||
*
|
||||
* - `danger`: Used to show error, or dangerous message to the users. Used
|
||||
* in custom container, badges, etc.
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-c-default-1: var(--vp-c-gray-1);
|
||||
--vp-c-default-2: var(--vp-c-gray-2);
|
||||
--vp-c-default-3: var(--vp-c-gray-3);
|
||||
--vp-c-default-soft: var(--vp-c-gray-soft);
|
||||
|
||||
--vp-c-brand-1: var(--vp-c-indigo-1);
|
||||
--vp-c-brand-2: var(--vp-c-indigo-2);
|
||||
--vp-c-brand-3: var(--vp-c-indigo-3);
|
||||
--vp-c-brand-soft: var(--vp-c-indigo-soft);
|
||||
|
||||
--vp-c-tip-1: var(--vp-c-brand-1);
|
||||
--vp-c-tip-2: var(--vp-c-brand-2);
|
||||
--vp-c-tip-3: var(--vp-c-brand-3);
|
||||
--vp-c-tip-soft: var(--vp-c-brand-soft);
|
||||
|
||||
--vp-c-warning-1: var(--vp-c-yellow-1);
|
||||
--vp-c-warning-2: var(--vp-c-yellow-2);
|
||||
--vp-c-warning-3: var(--vp-c-yellow-3);
|
||||
--vp-c-warning-soft: var(--vp-c-yellow-soft);
|
||||
|
||||
--vp-c-danger-1: var(--vp-c-red-1);
|
||||
--vp-c-danger-2: var(--vp-c-red-2);
|
||||
--vp-c-danger-3: var(--vp-c-red-3);
|
||||
--vp-c-danger-soft: var(--vp-c-red-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Button
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-button-brand-border: transparent;
|
||||
--vp-button-brand-text: var(--vp-c-white);
|
||||
--vp-button-brand-bg: var(--vp-c-brand-3);
|
||||
--vp-button-brand-hover-border: transparent;
|
||||
--vp-button-brand-hover-text: var(--vp-c-white);
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-2);
|
||||
--vp-button-brand-active-border: transparent;
|
||||
--vp-button-brand-active-text: var(--vp-c-white);
|
||||
--vp-button-brand-active-bg: var(--vp-c-brand-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Home
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-home-hero-name-color: transparent;
|
||||
--vp-home-hero-name-background: -webkit-linear-gradient(
|
||||
120deg,
|
||||
#bd34fe 30%,
|
||||
#41d1ff
|
||||
);
|
||||
|
||||
--vp-home-hero-image-background-image: linear-gradient(
|
||||
-45deg,
|
||||
#bd34fe 50%,
|
||||
#47caff 50%
|
||||
);
|
||||
--vp-home-hero-image-filter: blur(44px);
|
||||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(56px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(68px);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Custom Block
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
:root {
|
||||
--vp-custom-block-tip-border: transparent;
|
||||
--vp-custom-block-tip-text: var(--vp-c-text-1);
|
||||
--vp-custom-block-tip-bg: var(--vp-c-brand-soft);
|
||||
--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);
|
||||
}
|
||||
|
||||
/**
|
||||
* Component: Algolia
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
.DocSearch {
|
||||
--docsearch-primary-color: var(--vp-c-brand-1) !important;
|
||||
}
|
||||
|
||||
2145
docs/guide/changelogs/CHANGELOG.md
Normal file
|
Before Width: | Height: | Size: 374 KiB After Width: | Height: | Size: 374 KiB |
BIN
docs/guide/contact/images/qq.png
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
docs/guide/contact/images/wx.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
15
docs/guide/contact/index.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 联系我们
|
||||
|
||||
## 1. 交流群
|
||||
如有疑问,欢迎加入群聊(请备注certd)
|
||||
如有疑问,欢迎加入群聊(请备注certd)
|
||||
|
||||
| 加群 | 微信群 | QQ群 |
|
||||
|---------|-------|-------|
|
||||
| 二维码 | <img height="230" src="./images/wx.png"> | <img height="230" src="./images/qq.png"> |
|
||||
|
||||
## 2. 加作者好友
|
||||
|
||||
| 加作者好友 | 微信 QQ |
|
||||
|---------|-------------------------------------------------------------|
|
||||
| 二维码 | <img height="230" src="./images/me.png"> |
|
||||
88
docs/guide/development/demo/access.md
Normal file
@@ -0,0 +1,88 @@
|
||||
|
||||
# 授权插件Demo
|
||||
|
||||
```ts
|
||||
import { AccessInput, BaseAccess, IsAccess } from '@certd/pipeline';
|
||||
import { isDev } from '../../utils/env.js';
|
||||
|
||||
/**
|
||||
* 这个注解将注册一个授权配置
|
||||
* 在certd的后台管理系统中,用户可以选择添加此类型的授权
|
||||
*/
|
||||
@IsAccess({
|
||||
name: 'demo',
|
||||
title: '授权插件示例',
|
||||
icon: 'clarity:plugin-line',
|
||||
desc: '',
|
||||
})
|
||||
export class DemoAccess extends BaseAccess {
|
||||
/**
|
||||
* 授权属性配置
|
||||
*/
|
||||
@AccessInput({
|
||||
title: '密钥Id',
|
||||
component: {
|
||||
placeholder: 'demoKeyId',
|
||||
},
|
||||
required: true,
|
||||
})
|
||||
demoKeyId = '';
|
||||
|
||||
/**
|
||||
* 授权属性配置
|
||||
*/
|
||||
@AccessInput({
|
||||
//标题
|
||||
title: '密钥串',
|
||||
component: {
|
||||
//input组件的placeholder
|
||||
placeholder: 'demoKeySecret',
|
||||
},
|
||||
//是否必填
|
||||
required: true,
|
||||
//改属性是否需要加密
|
||||
encrypt: true,
|
||||
})
|
||||
//属性名称
|
||||
demoKeySecret = '';
|
||||
}
|
||||
new DemoAccess();
|
||||
```
|
||||
|
||||
|
||||
# 阿里云授权
|
||||
```ts
|
||||
|
||||
import { IsAccess, AccessInput, BaseAccess } from "@certd/pipeline";
|
||||
|
||||
@IsAccess({
|
||||
name: "aliyun",
|
||||
title: "阿里云授权",
|
||||
desc: "",
|
||||
icon: "ant-design:aliyun-outlined",
|
||||
order: 0,
|
||||
})
|
||||
export class AliyunAccess extends BaseAccess {
|
||||
@AccessInput({
|
||||
title: "accessKeyId",
|
||||
component: {
|
||||
placeholder: "accessKeyId",
|
||||
},
|
||||
helper: "登录阿里云控制台->AccessKey管理页面获取。",
|
||||
required: true,
|
||||
})
|
||||
accessKeyId = "";
|
||||
@AccessInput({
|
||||
title: "accessKeySecret",
|
||||
component: {
|
||||
placeholder: "accessKeySecret",
|
||||
},
|
||||
required: true,
|
||||
encrypt: true,
|
||||
helper: "注意:证书申请需要dns解析权限;其他阿里云插件,需要对应的权限,比如证书上传需要证书管理权限;嫌麻烦就用主账号的全量权限的accessKey",
|
||||
})
|
||||
accessKeySecret = "";
|
||||
}
|
||||
|
||||
new AliyunAccess();
|
||||
```
|
||||
@@ -1,40 +1,60 @@
|
||||
# 贡献插件
|
||||
# 本地开发
|
||||
欢迎贡献插件
|
||||
|
||||
## 1.本地调试运行
|
||||
建议nodejs版本 `20.x` 及以上
|
||||
|
||||
安装依赖包:
|
||||
## 一、本地调试运行
|
||||
|
||||
### 克隆代码
|
||||
```shell
|
||||
|
||||
# 克隆代码
|
||||
git clone https://github.com/certd/certd
|
||||
git clone https://github.com/certd/certd --depth=1
|
||||
|
||||
#进入项目目录
|
||||
cd certd
|
||||
|
||||
```
|
||||
|
||||
### 修改pnpm-workspace.yaml文件
|
||||
重要:否则无法正确加载专业版的access和plugin
|
||||
```yaml
|
||||
# pnpm-workspace.yaml
|
||||
packages:
|
||||
- 'packages/**' # <--------------注释掉这一行,PR时不要提交此修改
|
||||
- 'packages/ui/**'
|
||||
```
|
||||
|
||||
### 安装依赖和初始化:
|
||||
```shell
|
||||
# 安装pnpm,如果提示npm命令不存在,就需要先安装nodejs
|
||||
npm install -g pnpm--registry=https://registry.npmmirror.com
|
||||
|
||||
# 使用国内镜像源,如果有代理,就不需要
|
||||
pnpm config set registry https://registry.npmmirror.com
|
||||
# 安装依赖
|
||||
npm install -g pnpm@8.15.7
|
||||
pnpm install
|
||||
|
||||
# 初始化构建
|
||||
lerna run build
|
||||
pnpm init
|
||||
```
|
||||
|
||||
启动 server:
|
||||
### 启动 server:
|
||||
```shell
|
||||
cd packages/ui/certd-server
|
||||
npm run dev
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
启动 client:
|
||||
### 启动 client:
|
||||
```shell
|
||||
cd packages/ui/certd-client
|
||||
npm run dev
|
||||
pnpm dev
|
||||
|
||||
# 会自动打开浏览器,确认正常运行
|
||||
|
||||
```
|
||||
|
||||
## 开发插件
|
||||
## 二、开发插件
|
||||
进入 `packages/ui/certd-server/src/plugins`
|
||||
|
||||
### 1.复制`plugin-demo`目录作为你的插件目录
|
||||
@@ -47,7 +67,7 @@ npm run dev
|
||||
这样用户就可以在`certd`后台中创建这种授权凭证了
|
||||
|
||||
### 3. dns-provider
|
||||
如果域名是这个平台进行解析的,那么你需要实现dns-provider
|
||||
如果域名是这个平台进行解析的,那么你需要实现dns-provider,(申请证书需要)
|
||||
参考`plugin-cloudflare/dns-provider.ts` 修改为你要做的平台的`dns-provider`
|
||||
|
||||
### 4. plugin-deploy
|
||||
@@ -65,11 +85,25 @@ export * from './plugins/plugin-deploy-to-xx'
|
||||
在`./src/plugins/index.ts`中增加`import`
|
||||
|
||||
```ts
|
||||
export * from "./plugin-cloudflare"
|
||||
export * from "./plugin-cloudflare.js"
|
||||
```
|
||||
|
||||
## 重启服务进行调试
|
||||
刷新浏览器,检查你的插件是否工作正常, 确保能够正常进行证书申请和部署
|
||||
### 6. 重启服务进行调试
|
||||
刷新浏览器,检查你的插件是否工作正常, 确保能够正常进行证书申请和部署
|
||||
|
||||
## 提交PR
|
||||
## 三、提交PR
|
||||
我们将尽快审核PR
|
||||
|
||||
## 四、 注意事项
|
||||
### 1. 如何让任务报错停止
|
||||
|
||||
```js
|
||||
// 抛出异常即可使任务停止,否则会判定为成功
|
||||
throw new Error("错误信息")
|
||||
```
|
||||
|
||||
|
||||
## 五、贡献插件送激活码
|
||||
|
||||
- PR要求,插件功能完整,代码规范
|
||||
- PR通过后,联系我们,送您一个半年期专业版激活码
|
||||
BIN
docs/guide/donate/images/fapiao.jpg
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/guide/donate/images/plus.png
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
docs/guide/donate/images/transfer.png
Normal file
|
After Width: | Height: | Size: 305 KiB |
BIN
docs/guide/donate/images/update.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
65
docs/guide/donate/index.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# 专业版赞助
|
||||
|
||||
## 开源为什么要做专业版收费?
|
||||
1. 纯靠为爱发电不可持续,容易烂尾(比如:我的dev-sidecar项目即便是拥有20K+star,也差点凉凉,幸亏有另外大佬接手用爱发电)
|
||||
2. 没有赞助的项目,作者会比较任性,不会用心倾听用户的心声,不顾用户体验(比如:下意识拒绝需求、频繁破坏性变更升级、全盘推倒重来之类的)
|
||||
3. 没有赞助的项目,交流群的戾气有时候比较重,容易起冲突
|
||||
|
||||
## 赞助权益:
|
||||
1. 可加入专属VIP群,可以获得作者一对一技术支持,必要时可以远程协助
|
||||
# 专业版赞助
|
||||
|
||||
## 开源为什么要做专业版收费?
|
||||
1. 纯靠为爱发电不可持续,容易烂尾(比如:我的[dev-sidecar项目](https://github.com/docmirror/dev-sidecar)即便是拥有20K+star,也差点凉凉,幸亏有另外大佬接手用爱发电)
|
||||
2. 没有赞助的项目,作者会比较任性,不会用心倾听用户的心声,不顾用户体验(比如:下意识拒绝需求、频繁破坏性变更升级、全盘推倒重来之类的)
|
||||
3. 没有赞助的项目,交流群的戾气有时候比较重,容易起冲突
|
||||
|
||||
## 赞助权益:
|
||||
1. 可加入专属VIP群,可以获得作者一对一技术支持,必要时可以远程协助
|
||||
2. 您的需求我们将优先实现,并且将作为专业版功能提供
|
||||
3. 获得专业版功能
|
||||
|
||||
****------------------****
|
||||
> [限时¥50永久专业版优惠券,点我立刻领取](https://app.handfree.work/subject/#/app/certd/product)
|
||||
|
||||
****------------------****
|
||||
## 专业版特权对比
|
||||
|
||||
| 功能 | 免费版 | 专业版 |
|
||||
|---------|---------------------------------------|--------------------------------|
|
||||
| 证书申请 | 无限制 | 无限制 |
|
||||
| 证书域名数量 | 无限制 | 无限制 |
|
||||
| 证书流水线条数 | 无限制 | 无限制 |
|
||||
| 自动部署插件 | 阿里云CDN、腾讯云、七牛CDN、主机部署、宝塔、1Panel等大部分插件 | 群晖、威联通、proxmox等 |
|
||||
| 通知 | 邮件通知、自定义webhook | 邮件免配置、企微、钉钉、飞书、anpush、server酱等 |
|
||||
| 站点监控 | 限制1条 | 无限制 |
|
||||
| 批量操作 | 无 | 流水线模版,流水线复制,批量运行,批量设置通知、定时等 |
|
||||
| VIP群 | 无 | 可加,一对一技术支持,必要时可申请远程协助 |
|
||||
|
||||
|
||||
## 专业版激活方式
|
||||
|
||||

|
||||
|
||||
|
||||
## 相关问题
|
||||
|
||||
### 1. 购买后VIP状态或时长未更新
|
||||
系统管理-->账号绑定页面,打开一下即可自动更新VIP最新状态(如果未登录袖手账号需要先登录)
|
||||
|
||||

|
||||
|
||||
|
||||
### 2. 开发票
|
||||
联系我们(微信:xiaojunnuo),并提供支付金额
|
||||
|
||||
### 3. VIP是否可以迁移换绑服务器?
|
||||
可以的。
|
||||
* 方式1. 直接将备份数据在新服务器上还原即可(首次访问会提示您是否绑定新url,点击是即可)
|
||||
* 方式2. 如果旧站点数据丢失,您也可以部署一个新站点,然后在系统管理-->账号绑定页面,转移VIP即可
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
BIN
docs/guide/feature/cname/images/cname1.png
Normal file
|
After Width: | Height: | Size: 172 KiB |
BIN
docs/guide/feature/cname/images/cname2.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
docs/guide/feature/cname/images/cname3.png
Normal file
|
After Width: | Height: | Size: 200 KiB |
BIN
docs/guide/feature/cname/images/cname4.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
41
docs/guide/feature/cname/index.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# CNAME代理校验方式
|
||||
|
||||
通过CNAME代理校验方式,可以给`Certd`不支持的域名服务商的域名申请证书。
|
||||
|
||||
## 1. 前言
|
||||
* 申请证书是需要`校验域名所有权`的。
|
||||
* `DNS校验方式`需要开发适配DNS服务商的接口
|
||||
* 目前`Certd`已实现`主流域名注册商`的接口(阿里云、腾讯云、华为云、Cloudflare、西数)
|
||||
* 如果域名不在这几家,`DNS校验方式`就行不通
|
||||
* 那么就只能通过`CNAME代理校验方式`来实现`证书自动申请`
|
||||
|
||||
## 2. 原理
|
||||
* 假设你要申请证书的域名叫:`cert.com` ,它是在`Certd`不支持的服务商注册的
|
||||
* 假设我们还有另外一个域名叫:`proxy.com`,它是在`Certd`支持的服务商注册的。
|
||||
* 当我们按照如下进行配置时
|
||||
```
|
||||
CNAME记录(手动、固定) TXT记录(自动、随机)
|
||||
_acme-challenge.cert.com ---> xxxxx.cname.proxy.com ----> txt-record-abcdefg
|
||||
|
||||
```
|
||||
* 证书颁发机构就可以从`_acme-challenge.cert.com`查到TXT记录 `txt-record-abcdefg`,从而完成域名所有权校验。
|
||||
* 以上可以看出 `xxxxx.cname.proxy.com ----> txt-record-abcdefg` 这一段`Certd` 是可以自动添加的。
|
||||
* 剩下的只需要在你的`cert.com`域名中手动添加一条固定的`CNAME解析`即可
|
||||
|
||||
|
||||
## 3. Certd CNAME使用步骤
|
||||
|
||||
|
||||
1. 创建证书流水线,输入你要申请证书的域名,假设就是`cert.com`,然后选择`CNAME`校验方式
|
||||
2. 此时需要配置验证计划,Certd会生成一个随机的CNAME记录模版,例如:`_acme-challenge`->`xxxxxx.cname.proxy.com`
|
||||

|
||||
3. 您需要手动在你的`cert.com`域名中添加CNAME解析,点击验证,校验成功后就可以开始申请证书了 (此操作每个域名只需要做一次,后续可以重复使用,注意不要删除添加的CNAME记录)
|
||||

|
||||

|
||||
4. 申请过程中,Certd会在`xxxxxx.cname.proxy.com`下自动添加TXT记录。
|
||||
5. 到此即可自动化申请证书了
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BIN
docs/guide/feature/safe/hidden/images/hidden1.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
docs/guide/feature/safe/hidden/images/hidden2.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
27
docs/guide/feature/safe/hidden/index.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# 站点隐藏
|
||||
|
||||
* 一般来说Certd设置好之后,很少需要访问。
|
||||
* 所以我们`平时`可以把`站点访问关闭`,需要的时候再打开,减少站点被攻击的风险
|
||||
|
||||
## 1、开启站点隐藏
|
||||
`系统管理->系统设置->安全设置->站点隐藏 `
|
||||
|
||||
|
||||

|
||||
|
||||
:::warning
|
||||
|
||||
注意保存好`解除地址`和`解除密码`
|
||||
|
||||
:::
|
||||
|
||||
## 2、临时关闭站点隐藏
|
||||
|
||||
访问上面的`解除地址`,输入`解除密码`,`临时解除`站点隐藏
|
||||
|
||||

|
||||
|
||||
## 3、忘记解除地址和解除密码怎么办
|
||||
登录服务器,在数据库平级的目录下创建`.unhidden`命名的空白文件,即可临时解除站点隐藏
|
||||
临时解除后会自动删除`.unhidden`文件,请尽快设置好新的`解除地址`和`解除密码`,并记住
|
||||
|
||||
BIN
docs/guide/feature/safe/images/2fa.png
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
docs/guide/feature/safe/images/access.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
docs/guide/feature/safe/images/hidden.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/guide/feature/safe/images/login.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
49
docs/guide/feature/safe/index.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 安全特性
|
||||
|
||||
Certd 存储了证书以及授权等敏感数据,所以需要严格保障安全。
|
||||
我们提供了以下安全特性,以及安全生产建议(请遵照建议进行生产部署以保障数据安全)
|
||||
|
||||
## 一、站点安全特性
|
||||
|
||||
### 1、 授权数据加密存储【默认开启】
|
||||
* 所有的授权敏感字段会加密后存储
|
||||
* 每个用户独立维护授权数据,连管理员都无权查看
|
||||
|
||||

|
||||
星号部分为加密数据
|
||||
|
||||
### 2、 密码防爆破【默认开启】
|
||||
* 登录失败次数过多,账号将被锁定,最高24小时(重启服务可解除锁定)
|
||||
* 用户登录密码加密hash后存储,无法计算出密码明文
|
||||

|
||||
|
||||
### 3、站点隐藏【建议开启】
|
||||
* 一般来说Certd设置好之后,后续很少需要访问修改。
|
||||
* 所以我们平时可以把站点访问关闭,需要的时候再打开,减少站点被攻击的风险
|
||||
* 请前往 `系统管理->系统设置->安全设置->开启站点隐藏`
|
||||

|
||||
|
||||
点击查看 [站点隐藏功能详细使用说明](./hidden/)
|
||||
|
||||
|
||||
### 4、登录双重验证
|
||||
|
||||
支持2FA双重认证
|
||||
|
||||

|
||||
|
||||
### 5、数据库自动备份【建议开启】
|
||||
* [自动备份设置说明](../../use/backup/)
|
||||
|
||||
|
||||
## 二、安全生产建议
|
||||
|
||||
尽管`Cert`本身实现了很多安全特性,但`外部环境的安全`仍需要您来确保。
|
||||
请`务必`遵循如下建议做好安全防护
|
||||
|
||||
* 请`务必`使用`HTTPS协议`访问本应用,避免被中间人攻击
|
||||
* 请`务必`使用`web应用防火墙`防护本应用,防止XSS、SQL注入等攻击
|
||||
* 请`务必`做好`服务器本身`的安全防护,防止数据库泄露
|
||||
* 请`务必`做好[`数据备份`](../../use/backup/),避免数据丢失
|
||||
* 请`务必`修改管理员账号用户名,且建议将admin注册为普通用户,且设置为禁用。
|
||||
* 建议开启[`站点隐藏`](./hidden/)功能
|
||||
20
docs/guide/image.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# 镜像说明
|
||||
## 国内镜像地址:
|
||||
|
||||
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest`
|
||||
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7`、`[version]-armv7`
|
||||
|
||||
## DockerHub地址:
|
||||
* `https://hub.docker.com/r/greper/certd`
|
||||
* `greper/certd:latest`
|
||||
* `greper/certd:armv7`、`greper/certd:[version]-armv7`
|
||||
|
||||
## GitHub Packages地址:
|
||||
* `ghcr.io/certd/certd:latest`
|
||||
* `ghcr.io/certd/certd:armv7`、`ghcr.io/certd/certd:[version]-armv7`
|
||||
*
|
||||
## 镜像构建公开
|
||||
镜像构建通过`Actions`自动执行,过程公开透明,请放心使用
|
||||
* [点我查看镜像构建日志](https://github.com/certd/certd/actions/workflows/build-image.yml)
|
||||
|
||||

|
||||
42
docs/guide/index.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Certd
|
||||
|
||||
Certd 是一款开源、免费、全自动申请和部署更新SSL证书的工具。
|
||||
后缀d取自linux守护进程的命名风格,意为证书守护进程。
|
||||
|
||||
关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具
|
||||
|
||||
|
||||
| 官方开源地址: | |
|
||||
| ---- | ---- |
|
||||
| [Github](https://github.com/certd/certd)|  |
|
||||
| [Gitee](https://gitee.com/certd/certd) |  |
|
||||
| [AtomGit](https://atomgit.com/certd/certd) | |
|
||||
|
||||
|
||||

|
||||
|
||||
## 1、关于证书续期
|
||||
>* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
|
||||
>* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
|
||||
>* 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少
|
||||
|
||||
|
||||
## 2、项目特性
|
||||
本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。
|
||||
|
||||
* 全自动申请证书(支持所有注册商注册的域名,支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式)
|
||||
* 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等100+部署插件)
|
||||
* 支持通配符域名/泛域名,支持多个域名打到一个证书上,支持pem、pfx、der、jks等多种证书格式
|
||||
* 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式
|
||||
* 私有化部署,数据保存本地,安装升级非常简单快捷
|
||||
* 镜像由Github Actions构建,过程公开透明
|
||||
* 授权加密,站点隐藏,2FA,密码防爆破等多重安全保障
|
||||
* 支持SQLite,PostgreSQL、MySQL多种数据库
|
||||
* 开放接口支持
|
||||
* 站点证书监控
|
||||
* 多用户管理
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
BIN
docs/guide/install/1panel/images/1.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
docs/guide/install/1panel/images/2.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
docs/guide/install/1panel/images/edit1.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/guide/install/1panel/images/edit2.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
docs/guide/install/1panel/images/store-1.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/guide/install/1panel/images/store-2.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
docs/guide/install/1panel/images/store-3.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
docs/guide/install/1panel/images/upgrade-1.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
docs/guide/install/1panel/images/upgrade-2.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
78
docs/guide/install/1panel/index.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# 部署到1Panel面板
|
||||
|
||||
|
||||
## 一、安装1Panel
|
||||
|
||||
https://1panel.cn/docs/installation/online_installation/
|
||||
|
||||
## 二、部署certd
|
||||
|
||||
有两种安装方式
|
||||
|
||||
### 1. 应用商店方式安装【推荐】
|
||||
|
||||
#### 1.1 安装
|
||||
打开`1Panel->应用商店`,更新远程应用,搜索`certd`,点击安装
|
||||
|
||||

|
||||
|
||||
|
||||

|
||||
|
||||
#### 1.2 访问测试:
|
||||
http://ip:7001
|
||||
https://ip:7002
|
||||
默认账号密码
|
||||
admin/123456
|
||||
登录后请及时修改密码
|
||||
|
||||
#### 1.3 备份
|
||||

|
||||
|
||||
#### 1.4 恢复
|
||||
安装新Certd后,点击导入备份按钮,选择上面备份的文件即可
|
||||
|
||||
|
||||
|
||||
### 2. docker-compose方式安装
|
||||
|
||||
#### 2.1 安装
|
||||
1. 打开`docker-compose.yaml`,整个内容复制下来
|
||||
https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
|
||||
|
||||
|
||||
2. 然后到 `1Panel->容器->编排->新建编排`
|
||||
输入名称,粘贴`docker-compose.yaml`原文内容
|
||||

|
||||
|
||||
3. 点击确定,启动容器
|
||||

|
||||
|
||||
> 默认使用sqlite数据库,数据保存在`/data/certd`目录下,您可以手动备份该目录
|
||||
> certd还支持`mysql`和`postgresql`数据库,[点我了解如何切换其他数据库](../database)
|
||||
|
||||
#### 2.2 访问测试
|
||||
|
||||
http://ip:7001
|
||||
https://ip:7002
|
||||
默认账号密码
|
||||
admin/123456
|
||||
登录后请及时修改密码
|
||||
|
||||
#### 2.3 升级
|
||||
|
||||
1. 找到容器,点击更多->升级
|
||||

|
||||
|
||||
2. 选择强制拉取镜像,点击确认即可
|
||||

|
||||
|
||||
|
||||
#### 2.4 备份
|
||||
|
||||
> 默认数据保存在`/data/certd`目录下,可以手动备份
|
||||
> 建议配置一条 [数据库备份流水线](../../use/backup/),自动备份
|
||||
|
||||
#### 2.5 恢复
|
||||
|
||||
将备份的`db.sqlite`及同目录下的其他文件一起覆盖到原来的位置,重启certd即可
|
||||
BIN
docs/guide/install/baota/images/1.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
docs/guide/install/baota/images/2.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
docs/guide/install/baota/images/app.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
docs/guide/install/baota/images/db_path.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/guide/install/baota/images/network.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
docs/guide/install/baota/images/upgrade.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
87
docs/guide/install/baota/index.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# 部署到宝塔面板
|
||||
|
||||
|
||||
## 一、安装
|
||||
宝塔面板支持两种方式安装Certd,请选择其中一种方式
|
||||
|
||||
### 1、安装宝塔面板
|
||||
|
||||
* 安装宝塔面板,前往 [宝塔面板](https://www.bt.cn/u/CL3JHS) 官网,选择`9.2.0`以上正式版的脚本下载安装
|
||||
* 登录宝塔面板,在菜单栏中点击 Docker,首次进入会提示安装Docker服务,点击立即安装,按提示完成安装
|
||||
|
||||
### 2、部署certd
|
||||
以下两种方式任选一种:
|
||||
|
||||
#### 2.1 应用商店方式一键部署【推荐】
|
||||
|
||||
* 在宝塔Docker应用商店中找到`certd`(要先点右上角更新应用)
|
||||
* 点击安装,配置域名等基本信息即可完成安装
|
||||
|
||||
> 需要宝塔9.2.0及以上版本才支持
|
||||
|
||||
#### 2.2 容器编排方式部署
|
||||
|
||||
1. 打开`docker-compose.yaml`,整个内容复制下来
|
||||
https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
|
||||
|
||||
|
||||
然后到宝塔里面进到docker->容器编排->添加容器编排
|
||||

|
||||
点击确定,等待启动完成
|
||||

|
||||
|
||||
> certd默认使用sqlite数据库,另外支持`mysql`和`postgresql`数据库,[点我了解如何切换其他数据库](../database)
|
||||
|
||||
|
||||
## 二、访问应用
|
||||
|
||||
http://ip:7001
|
||||
https://ip:7002
|
||||
默认账号密码
|
||||
admin/123456
|
||||
登录后请及时修改密码
|
||||
|
||||
## 三、如何升级
|
||||
宝塔升级certd非常简单
|
||||
|
||||
打开容器页面: `docker`->`容器编排`->`左侧选择Certd`->`更新镜像`
|
||||
|
||||

|
||||
|
||||
|
||||
## 四、数据备份
|
||||
|
||||
部署方式不同,数据保存位置不同
|
||||
|
||||
### 4.1 应用商店部署方式
|
||||
点击进入安装路径,数据保存在`./data`目录下,可以手动备份
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 4.2 容器编排部署方式
|
||||
|
||||
数据默认保存在`/data/certd`目录下,可以手动备份
|
||||
|
||||
|
||||
### 4.3 自动备份
|
||||
|
||||
> 建议配置一条 [数据库备份流水线](../../use/backup/),自动备份
|
||||
|
||||
## 五、备份恢复
|
||||
|
||||
将备份的`db.sqlite`及同目录下的其他文件一起覆盖到原来的位置,重启certd即可
|
||||
|
||||
|
||||
## 六、宝塔部署相关问题排查
|
||||
|
||||
### 1. 无法访问Certd
|
||||
1. 确认服务器的安全规则,是否放开了对应端口
|
||||
2. 确认宝塔防火墙是否放开对应端口
|
||||
3. 尝试将Certd容器加入宝塔的`bridge`网络
|
||||

|
||||
|
||||
### 2. 动态IP无法加白名单问题
|
||||
[Nginx代理解决方案](../../use/baota/white_list.md)
|
||||
118
docs/guide/install/database.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# 切换数据库
|
||||
|
||||
certd支持如下几种数据库:
|
||||
1. sqlite3 (默认)
|
||||
2. mysql
|
||||
3. postgresql
|
||||
|
||||
您可以按如下两种方式切换数据库
|
||||
|
||||
|
||||
## 一、全新安装
|
||||
::: tip
|
||||
以下按照`docker-compose`安装方式介绍如何使用mysql或postgresql数据库
|
||||
如果您使用其他方式部署,请自行修改对应的环境变量即可。
|
||||
:::
|
||||
|
||||
### 1.1、使用mysql数据库
|
||||
|
||||
1. 安装mysql,创建数据库 `(注意:charset=utf8mb4, collation=utf8mb4_bin)`
|
||||
2. 下载最新的docker-compose.yaml
|
||||
3. 修改环境变量配置
|
||||
```yaml
|
||||
services:
|
||||
certd:
|
||||
environment:
|
||||
# 使用mysql数据库,需要提前创建数据库 charset=utf8mb4, collation=utf8mb4_bin
|
||||
- certd_flyway_scriptDir=./db/migration-mysql # 升级脚本目录 【照抄】
|
||||
- certd_typeorm_dataSource_default_type=mysql # 数据库类型, 或者 mariadb
|
||||
- certd_typeorm_dataSource_default_host=localhost # 数据库地址
|
||||
- certd_typeorm_dataSource_default_port=3306 # 数据库端口
|
||||
- certd_typeorm_dataSource_default_username=root # 用户名
|
||||
- certd_typeorm_dataSource_default_password=yourpasswd # 密码
|
||||
- certd_typeorm_dataSource_default_database=certd # 数据库名
|
||||
|
||||
```
|
||||
4. 启动certd
|
||||
```shell
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
|
||||
### 1.2、使用Postgresql数据库
|
||||
|
||||
1. 安装postgresql,创建数据库
|
||||
2. 下载最新的docker-compose.yaml
|
||||
3. 修改环境变量配置
|
||||
```yaml
|
||||
services:
|
||||
certd:
|
||||
environment:
|
||||
# 使用postgresql数据库,需要提前创建数据库
|
||||
- certd_flyway_scriptDir=./db/migration-pg # 升级脚本目录 【照抄】
|
||||
- certd_typeorm_dataSource_default_type=postgres # 数据库类型 【照抄】
|
||||
- certd_typeorm_dataSource_default_host=localhost # 数据库地址
|
||||
- certd_typeorm_dataSource_default_port=5433 # 数据库端口
|
||||
- certd_typeorm_dataSource_default_username=postgres # 用户名
|
||||
- certd_typeorm_dataSource_default_password=yourpasswd # 密码
|
||||
- certd_typeorm_dataSource_default_database=certd # 数据库名
|
||||
|
||||
```
|
||||
4. 启动certd
|
||||
```shell
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 二、从旧版的sqlite切换数据库
|
||||
|
||||
从旧版`sqlite`迁移到`mysql`或`postgresql`数据库
|
||||
|
||||
下面以 `SQLite` 转 `MySQL` 为例进行演示
|
||||
|
||||

|
||||
|
||||
#### 0.前提条件:
|
||||
1. SQLite版Certd站点已经`升级到最新版` (`建议:备份sqlite数据库` )
|
||||
2. `全新安装`MySQL版本Certd(`确保是全新的,因为里面的数据会被清空覆盖`)
|
||||
3. 两套Certd站点版本一致
|
||||
|
||||
#### 1. 安装DBeaver工具
|
||||
|
||||
[https://dbeaver.io/download/](https://dbeaver.io/download/)
|
||||
|
||||

|
||||
|
||||
#### 2. 连接到sqlite数据库
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
#### 3. 连接到mysql或postgresql数据库
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
#### 4. 开始同步数据
|
||||
|
||||
选择mysql数据库,选择所有的表(`flyway_history除外`),右键导入数据
|
||||
|
||||
> 切记flyway_history数据表不要导入
|
||||
|
||||

|
||||

|
||||

|
||||
下一步、下一步,直到数据加载设置,勾选`在加载前截断目标表`(此选项很重要,并且会清空mysql certd数据库中的数据)
|
||||

|
||||
|
||||
#### 5. 导入完成
|
||||
|
||||

|
||||
|
||||
#### 6. 重启MySQL版本Certd
|
||||
|
||||
访问MySQL版本测试,数据已成功迁移
|
||||
|
||||
确认没有问题之后,删除旧版certd
|
||||
85
docs/guide/install/docker/index.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# Docker方式部署
|
||||
|
||||
## 一、安装
|
||||
|
||||
### 1. 环境准备
|
||||
|
||||
1.1 准备一台云服务器
|
||||
|
||||
* 【阿里云】云服务器2核2G,新老用户同享,99元/年,续费同价!【 [立即购买](https://www.aliyun.com/benefit?scm=20140722.M_10244282._.V_1&source=5176.11533457&userCode=qya11txb )】
|
||||
* 【腾讯云】云服务器2核2G,新老用户同享,99元/年,续费同价!【 [立即购买](https://cloud.tencent.com/act/cps/redirect?redirect=6094&cps_key=b3ef73330335d7a6efa4a4bbeeb6b2c9&from=console)】
|
||||
|
||||
1.2 安装docker、docker-compose
|
||||
|
||||
https://docs.docker.com/engine/install/
|
||||
|
||||
选择对应的操作系统,按照官方文档执行命令即可
|
||||
|
||||
### 2. 部署certd容器
|
||||
|
||||
```bash
|
||||
# 随便创建一个目录
|
||||
mkdir certd
|
||||
# 进入目录
|
||||
cd certd
|
||||
# 下载docker-compose.yaml文件,或者手动下载放到certd目录下
|
||||
wget https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
|
||||
|
||||
# 可以根据需要修改里面的配置
|
||||
# 1.修改镜像版本号【可选】
|
||||
# 2.配置数据保存路径【可选】
|
||||
# 3.修改端口号【可选】
|
||||
vi docker-compose.yaml # 【可选】
|
||||
|
||||
# 启动certd
|
||||
docker compose up -d
|
||||
|
||||
```
|
||||
|
||||
> [手动下载docker-compose.yaml ](https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml)
|
||||
> 当前版本号: 
|
||||
|
||||
> 如果提示 没有docker compose命令,请安装docker-compose
|
||||
> https://docs.docker.com/compose/install/linux/
|
||||
|
||||
> certd默认使用sqlite数据库,另外还支持`mysql`和`postgresql`数据库,[点我了解如何切换其他数据库](../database)
|
||||
|
||||
|
||||
### 3. 访问测试
|
||||
|
||||
http://your_server_ip:7001
|
||||
https://your_server_ip:7002
|
||||
默认账号密码:admin/123456
|
||||
记得修改密码
|
||||
|
||||
|
||||
## 二、升级
|
||||
|
||||
::: warning
|
||||
如果您是第一次升级certd版本,切记切记先备份一下数据
|
||||
```
|
||||
# docker-compose.yaml配置
|
||||
- /data/certd:/app/data # 请务必确保 /app/data 这个路径没有改动,固定写死
|
||||
```
|
||||
:::
|
||||
|
||||
|
||||
### 如果使用固定版本号
|
||||
1. 修改`docker-compose.yaml`中的镜像版本号
|
||||
2. 运行`docker compose up -d` 即可
|
||||
|
||||
### 如果使用`latest`版本
|
||||
```shell
|
||||
#重新拉取镜像
|
||||
docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
|
||||
# 重新启动容器
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
```
|
||||
## 三、数据备份
|
||||
> 数据默认存在`/data/certd`目录下,不用担心数据丢失
|
||||
> 建议配置一条[数据库备份流水线](../../use/backup/) 自动备份
|
||||
|
||||
## 四、备份恢复
|
||||
|
||||
将备份的`db.sqlite`及同目录下的其他文件一起覆盖到原来的位置,重启certd即可
|
||||
BIN
docs/guide/install/images/db-0.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
docs/guide/install/images/db-1.png
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
docs/guide/install/images/db-mysql-1.png
Normal file
|
After Width: | Height: | Size: 145 KiB |