mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-09-21 19:10:12 +00:00
Compare commits
1922 commits
Author | SHA1 | Date | |
---|---|---|---|
|
d2eb4992e2 | ||
|
a1e3fb506b | ||
|
bc1b4f0be7 | ||
|
0fa13c5535 | ||
|
30063c5914 | ||
|
3dd6f65859 | ||
|
03e14e759d | ||
|
196f108823 | ||
|
d6a364dad4 | ||
|
7c37fc6a71 | ||
|
1bd28e7d59 | ||
|
7e303600fb | ||
|
f00545d85b | ||
|
6358294943 | ||
|
ecd1b8393b | ||
|
73204c1bca | ||
|
8776d31794 | ||
|
1de5208a9e | ||
|
f423534ef0 | ||
|
35ddb1d2c8 | ||
|
2b482e34eb | ||
|
ea63533cf2 | ||
|
1d123832da | ||
|
21bf229731 | ||
|
363b462c54 | ||
|
14a9663f1a | ||
|
a1972d57e3 | ||
|
164ffbcab8 | ||
|
d0ee899ab9 | ||
|
123093a186 | ||
|
65a7b387c3 | ||
|
d82abf925d | ||
|
44b836c94c | ||
|
7c04098dde | ||
|
ead287d623 | ||
|
9264b21907 | ||
|
e7176bb998 | ||
|
e24e107f3d | ||
|
3a0d4e9837 | ||
|
e59706c201 | ||
|
91d1d7260b | ||
|
af3bf8a462 | ||
|
8250a9764e | ||
|
5539fea3bb | ||
|
c1a1150888 | ||
|
0111659a1f | ||
|
abf38b405d | ||
|
e10db52e0a | ||
|
17b69c43d5 | ||
|
affdcdb68d | ||
|
360dd34f19 | ||
|
7def11d7c3 | ||
|
20e82c7456 | ||
|
7e91c3a306 | ||
|
9de522ce50 | ||
|
c9b28eaf9a | ||
|
bb0cb06d8a | ||
|
80f3e507d4 | ||
|
b871551d97 | ||
|
7f3600fddd | ||
|
1afcfd4845 | ||
|
5b26c56624 | ||
|
06ce5e3b43 | ||
|
1d0e3b1355 | ||
|
06d6febff9 | ||
|
7eb579c191 | ||
|
bc16f09d7b | ||
|
fc3ea94a1c | ||
|
a887188890 | ||
|
2c916ccd89 | ||
|
25db1a5d67 | ||
|
5f573b4095 | ||
|
e51cd31a57 | ||
|
1797f5958a | ||
|
4d76692db3 | ||
|
fb376ce005 | ||
|
53744bf146 | ||
|
a1951f3af7 | ||
|
7bd0750787 | ||
|
427da7a99a | ||
|
fbcfbde833 | ||
|
92d5f0ac14 | ||
|
6d5ae4d2e9 | ||
|
fecfe8bf89 | ||
|
37397a43be | ||
|
9077d0925b | ||
|
61e4be396f | ||
|
751d63d4bb | ||
|
e3a7c1d906 | ||
|
5a1144208d | ||
|
4ae17c6294 | ||
|
bb235f913f | ||
|
11ee94ae17 | ||
|
e38f5f1a81 | ||
|
5205e846eb | ||
|
094da5d634 | ||
|
012132303f | ||
|
2b39956acb | ||
|
990b2058df | ||
|
e2cdae2c88 | ||
|
16a9b34876 | ||
|
06deacd58e | ||
|
7bcc21ad6f | ||
|
27fcc42171 | ||
|
1c394dd18c | ||
|
4bc6f334f4 | ||
|
ceffb8a891 | ||
|
62856ab18f | ||
|
b5814dc9b3 | ||
|
8d07034608 | ||
|
c17a78c55a | ||
|
d01569822e | ||
|
8ab4dd20df | ||
|
0bf82a1745 | ||
|
7910b235c7 | ||
|
1821ef4f15 | ||
|
1e8b79956e | ||
|
e498d252e4 | ||
|
8a3efa7152 | ||
|
c5ca806aa0 | ||
|
380a6a6df3 | ||
|
2346807ac9 | ||
|
2e9515578a | ||
|
6ae629cfe0 | ||
|
bb2f4a76b3 | ||
|
3dadb9ed08 | ||
|
48a4661885 | ||
|
66e1b40895 | ||
|
60101e240d | ||
|
fc450fdefc | ||
|
3419e2cbdd | ||
|
0804b73c0a | ||
|
44901502ff | ||
|
116fe77b77 | ||
|
0a86d2b3ac | ||
|
ec8db9d4ee | ||
|
bb279c2802 | ||
|
5f6506d864 | ||
|
58f646bcda | ||
|
16c6942df9 | ||
|
9e3fa89243 | ||
|
7b979ac09d | ||
|
914fdc508d | ||
|
030be71307 | ||
|
73c6d7eaeb | ||
|
6ba1b79259 | ||
|
1902323e97 | ||
|
743c4f2f5f | ||
|
99ace19ca9 | ||
|
0f3920f791 | ||
|
39108c5f12 | ||
|
a9aa810d3d | ||
|
649e51b581 | ||
|
5138a4984b | ||
|
e65555e8c5 | ||
|
010edcbcb5 | ||
|
08a444f6c3 | ||
|
12d682c62f | ||
|
1b8141b506 | ||
|
55cc1ba50e | ||
|
2f5a1db56e | ||
|
089fa4d146 | ||
|
190a505ad3 | ||
|
ee26d85578 | ||
|
7537c22b22 | ||
|
917ac89b4f | ||
|
3498662712 | ||
|
c802f3b7f6 | ||
|
855c5a234f | ||
|
071452a5d5 | ||
|
681765669c | ||
|
71ef9f9519 | ||
|
e1333c4fa4 | ||
|
fcf9ad5573 | ||
|
c91fc03e61 | ||
|
3119ed3648 | ||
|
b0e3a86316 | ||
|
8cd8cea3fb | ||
|
3b1e6ac8f0 | ||
|
5174c29d4c | ||
|
b281ad06de | ||
|
648e94b369 | ||
|
ccf476a4c8 | ||
|
2ba5ad8eb5 | ||
|
7388c4b5ca | ||
|
b0c64945c2 | ||
|
8c978727c2 | ||
|
4e7928c985 | ||
|
fe2ed3fbc1 | ||
|
f87aa8b83c | ||
|
c0ca7a4eca | ||
|
488c4b8b98 | ||
|
c29441f30d | ||
|
471f5c81fd | ||
|
aa4f5428d3 | ||
|
d3fbbfb39a | ||
|
b76dfd8146 | ||
|
c116024bba | ||
|
34715b8581 | ||
|
c1c0f0b144 | ||
|
29f7ab7116 | ||
|
6e53e94bda | ||
|
5a134a46f7 | ||
|
d6cc6aff9b | ||
|
a0af6cba09 | ||
|
540e62c5fc | ||
|
72b5974f81 | ||
|
ca934b744f | ||
|
526a57ff9f | ||
|
fcda1b5e2a | ||
|
b25f67372b | ||
|
8f15000c0f | ||
|
d2d07bfe4b | ||
|
9e42c6b6a7 | ||
|
45611ed325 | ||
|
2531785384 | ||
|
6900040fd0 | ||
|
721005b312 | ||
|
c81c663db3 | ||
|
06e8ece4cc | ||
|
351a306d46 | ||
|
9d27a074c1 | ||
|
ad7fe4e95d | ||
|
7d33b53908 | ||
|
a2490ddd9f | ||
|
c284c4e3e6 | ||
|
c0195895d2 | ||
|
0bfe592048 | ||
|
706fc7e1ec | ||
|
a01f0f0f03 | ||
|
9ae9e2fc5c | ||
|
83fcf42c70 | ||
|
30eef434a9 | ||
|
21fee42157 | ||
|
0319d1ad3c | ||
|
f8bdcaa161 | ||
|
16ba2742b7 | ||
|
9cf684d661 | ||
|
52f7033f7a | ||
|
de9194893e | ||
|
b389b85d77 | ||
|
1f986ec713 | ||
|
8f1866e3ad | ||
|
36d469cf02 | ||
|
a5d32aab50 | ||
|
574bc1fa5f | ||
|
2e6ddc4991 | ||
|
f2dc706f6f | ||
|
e6951e7e40 | ||
|
f646b0554f | ||
|
b50261262e | ||
|
d56b889cf1 | ||
|
1d3a92be11 | ||
|
52e9bec156 | ||
|
355b028c23 | ||
|
a90838accf | ||
|
18469f3b1d | ||
|
49f46220ff | ||
|
a6119210b7 | ||
|
1bce582f0d | ||
|
4e24445b50 | ||
|
66649e1dcd | ||
|
05d4989795 | ||
|
c9042763b0 | ||
|
b48fd89a41 | ||
|
8893ad9899 | ||
|
74072622e0 | ||
|
59309a9eff | ||
|
6876761837 | ||
|
21cf321f74 | ||
|
c19d55cabb | ||
|
84b15ac111 | ||
|
775f45cfe2 | ||
|
a964368e31 | ||
|
1b9c887dbb | ||
|
1a482a73c3 | ||
|
700c106680 | ||
|
6598919213 | ||
|
2314ff5981 | ||
|
8c5a68a62e | ||
|
97d488aea3 | ||
|
5a62868106 | ||
|
731f7b87d2 | ||
|
858fd01c01 | ||
|
f32a837afa | ||
|
187897874b | ||
|
e5cbbaf3f0 | ||
|
3f60d7bf64 | ||
|
ece063586b | ||
|
e5a738d465 | ||
|
8f285a787f | ||
|
2ee8f4f062 | ||
|
ff663c0aeb | ||
|
c700c5db43 | ||
|
12f498bc0d | ||
|
3f4f567c9c | ||
|
adb93f7e5d | ||
|
f79a16c062 | ||
|
082319ff48 | ||
|
cbc5e48417 | ||
|
1cccc0fc21 | ||
|
8127e0d8cc | ||
|
4601473aaf | ||
|
d27ad36ce4 | ||
|
f602813d31 | ||
|
7e37882cf7 | ||
|
b1d3348331 | ||
|
3a79f060bb | ||
|
f77911f05b | ||
|
058f8acb58 | ||
|
f9647a86ed | ||
|
cf70656d14 | ||
|
fb654acfad | ||
|
fdeb8616e8 | ||
|
d62a9afed3 | ||
|
b8503f1ad4 | ||
|
e509519db4 | ||
|
e4a6973e0b | ||
|
776b069a04 | ||
|
d44765bc13 | ||
|
304b7f5093 | ||
|
86ae00f9da | ||
|
3f5c9f003b | ||
|
62280a3b9f | ||
|
d3c2180181 | ||
|
1f3ac66844 | ||
|
c45ee5fc82 | ||
|
89d22ac68e | ||
|
6cd3f9042f | ||
|
4544505761 | ||
|
c05cbaa937 | ||
|
f753bd3380 | ||
|
1e0d5934d5 | ||
|
d124d8645e | ||
|
b4c5cc39f6 | ||
|
4cbb59c8f6 | ||
|
683c4f0867 | ||
|
c9203f125c | ||
|
cd535861e2 | ||
|
80e16de3bd | ||
|
30defb1674 | ||
|
52b6dd8bff | ||
|
2f14990c5c | ||
|
2e2caad28d | ||
|
6278af209a | ||
|
1e8d1904e6 | ||
|
0ea63d824e | ||
|
f52b229baa | ||
|
3754713599 | ||
|
680da772e7 | ||
|
2e7258cafd | ||
|
19eeea7c12 | ||
|
b051e68bb0 | ||
|
d790df73f6 | ||
|
03c3c58d74 | ||
|
ef2ada59e0 | ||
|
272aae157e | ||
|
e4ba5777ee | ||
|
9e3633501b | ||
|
2967e5fa44 | ||
|
4b7be135f0 | ||
|
a8ad40dfd2 | ||
|
4d07b82f3e | ||
|
245f924009 | ||
|
ee528296ee | ||
|
7406892940 | ||
|
6c3df79299 | ||
|
ad10750ba2 | ||
|
35d64a8b64 | ||
|
7a4687562a | ||
|
2fe1e96f2b | ||
|
eb419b7ffd | ||
|
3127c5f0af | ||
|
e1981264a3 | ||
|
62d9333eb0 | ||
|
da05e21375 | ||
|
9402789437 | ||
|
b283b686c4 | ||
|
7955cd90e6 | ||
|
fd62969dc4 | ||
|
a008005bdd | ||
|
69482004fc | ||
|
33fa035c31 | ||
|
71c8030e61 | ||
|
436286c93f | ||
|
fb52099a13 | ||
|
6e1aa8aeeb | ||
|
d3cccce9fd | ||
|
ccbbee7963 | ||
|
abbc5b6e48 | ||
|
6d4fb53206 | ||
|
ba88c5078a | ||
|
801a9367d0 | ||
|
01fb4776f8 | ||
|
9e5adf31c0 | ||
|
51a36bc9b8 | ||
|
394cb1e0f5 | ||
|
01ed270dba | ||
|
6e932495dc | ||
|
f0334dce30 | ||
|
9953b0da59 | ||
|
b135fa35a1 | ||
|
a9bea02fe9 | ||
|
634e3d4155 | ||
|
56927ffd22 | ||
|
93eb458c24 | ||
|
47c6f3ddc6 | ||
|
b33b1b7253 | ||
|
73916dbead | ||
|
7d5065819c | ||
|
fee1e17d87 | ||
|
9ef021e2da | ||
|
c765fcbe7e | ||
|
1071632a50 | ||
|
655ac98478 | ||
|
4a881ba366 | ||
|
f00a681cc1 | ||
|
d4563f67e0 | ||
|
e1e099d3bf | ||
|
17d04ccc8b | ||
|
4dfa50f256 | ||
|
9a4cdde5c9 | ||
|
af53efa9e3 | ||
|
ed2976b237 | ||
|
3a8420b141 | ||
|
e0afb2c093 | ||
|
85b81cc933 | ||
|
febf9d2684 | ||
|
c11c35cf8f | ||
|
e43e09a04c | ||
|
e628d00a81 | ||
|
3aed111a42 | ||
|
3c1db78a6e | ||
|
9c67637255 | ||
|
825541b27c | ||
|
e37845cd35 | ||
|
cbf8f8ac0d | ||
|
a734efeff8 | ||
|
41434ffcec | ||
|
6774ff15db | ||
|
cf9a058fae | ||
|
c389ea0f42 | ||
|
ba6afdb44d | ||
|
3d0d2a4513 | ||
|
2180537a2b | ||
|
66ac2e9b81 | ||
|
3e7f05d0b1 | ||
|
8757c5e35a | ||
|
cb91dab75f | ||
|
38e6166d93 | ||
|
1ae5c2b020 | ||
|
4a28b81b59 | ||
|
5c8afbe646 | ||
|
6a9d9da26f | ||
|
a291a6b8c0 | ||
|
603a575766 | ||
|
568819c08a | ||
|
f47a124698 | ||
|
61506f8d93 | ||
|
5313255b1a | ||
|
2fd155fb9b | ||
|
51eeb80822 | ||
|
de80a7e890 | ||
|
f000dab372 | ||
|
8468d78882 | ||
|
c1b84edefc | ||
|
dcc50da400 | ||
|
3211557f74 | ||
|
b1ef6e5e9a | ||
|
86fa0889bc | ||
|
db88bf30d5 | ||
|
07cb89823f | ||
|
0641a1058a | ||
|
84319dbca4 | ||
|
9d67827619 | ||
|
471412ad34 | ||
|
b1c52c3062 | ||
|
a5424c3681 | ||
|
c24e222887 | ||
|
dbf29cbae4 | ||
|
b23b007d00 | ||
|
a4bd89c77e | ||
|
f44987bd0f | ||
|
d98b1c2757 | ||
|
5ed07aba7a | ||
|
6ded017dee | ||
|
b52d772a6e | ||
|
5915062874 | ||
|
49156f0183 | ||
|
bf8b251dc1 | ||
|
858d528cc1 | ||
|
acde8d0e0c | ||
|
cdeeb4dcc5 | ||
|
0302431888 | ||
|
cfc8d7aade | ||
|
ff6f5a417f | ||
|
6feb536e79 | ||
|
f5065eaf99 | ||
|
5f6e477eca | ||
|
c20ac6d1ad | ||
|
b5fcb82bff | ||
|
bc4d6adbec | ||
|
36b440d9be | ||
|
b4332b47d5 | ||
|
14b4bd69a8 | ||
|
65c8763907 | ||
|
c16ef40f13 | ||
|
3b639b467e | ||
|
41d3c14ba5 | ||
|
79c418bcb7 | ||
|
f663135724 | ||
|
6b6a2adb07 | ||
|
6551ca2db7 | ||
|
8743c6c640 | ||
|
a041879eaa | ||
|
1b3c84e241 | ||
|
17ebb2df84 | ||
|
18835bf701 | ||
|
f8ce639e3f | ||
|
42c5f7c74e | ||
|
cc42b50c5b | ||
|
0b864c3696 | ||
|
bef15cde61 | ||
|
335691bae1 | ||
|
8066645f71 | ||
|
f5978da676 | ||
|
3b4be5daa2 | ||
|
25903a4996 | ||
|
8ff0c32903 | ||
|
73d58c22d4 | ||
|
cdde3afb57 | ||
|
bb86a01b9b | ||
|
687ac4a850 | ||
|
38db406ce4 | ||
|
121791882f | ||
|
3316a7ab70 | ||
|
81e44ced0c | ||
|
ba511a30b9 | ||
|
6b8c15a4a1 | ||
|
42150d5581 | ||
|
29eac86dc0 | ||
|
f63e44b8bc | ||
|
0847d9ebaf | ||
|
b1fec8594d | ||
|
c67b41415b | ||
|
fc7ce339ed | ||
|
1c699144d2 | ||
|
07b7a8d697 | ||
|
10b7efa98c | ||
|
10713fa913 | ||
|
cab6372d7a | ||
|
0d092a3d4f | ||
|
02d8ce8f0b | ||
|
64cacc3694 | ||
|
5e963736ce | ||
|
0bddca361d | ||
|
6291bf22bd | ||
|
7258ab1aed | ||
|
f4693dc671 | ||
|
284cd0abe5 | ||
|
f4c0a01f09 | ||
|
e4f1325f78 | ||
|
7798fdc711 | ||
|
8b61d4e3e1 | ||
|
d3e85da0fd | ||
|
37d79b76bb | ||
|
d272eb62cd | ||
|
03d0c5abfb | ||
|
e93ae96e13 | ||
|
6708f154a4 | ||
|
a50c657427 | ||
|
d11ba9e85b | ||
|
ed93af64e1 | ||
|
4325b1aec3 | ||
|
3055c1598b | ||
|
825b4122a5 | ||
|
6757382abe | ||
|
f214c2cdac | ||
|
4d6316b488 | ||
|
ddf103eca0 | ||
|
f4c04e6b2d | ||
|
ec3f3fef77 | ||
|
8b76f56050 | ||
|
08e9d995f8 | ||
|
5e43060128 | ||
|
d35b69d268 | ||
|
d9b82255b9 | ||
|
d4769b076a | ||
|
c3c804b71f | ||
|
03f4b46189 | ||
|
f2b0d5f1d0 | ||
|
807782b7f9 | ||
|
354b700bed | ||
|
3474b42ce3 | ||
|
61a3b79316 | ||
|
895eea5c75 | ||
|
618b77071a | ||
|
19b2637c51 | ||
|
134f3bff67 | ||
|
a566ad56e1 | ||
|
94e4f21589 | ||
|
818712f99f | ||
|
f726e5fbbd | ||
|
05b9805bf9 | ||
|
3f0e9fd474 | ||
|
7566b4a348 | ||
|
53a3176d24 | ||
|
c42527dc2e | ||
|
45b5e6ecd8 | ||
|
b245a5c8c2 | ||
|
50ffbd980e | ||
|
a8e1fc0f6a | ||
|
5f1f574f01 | ||
|
d536d58080 | ||
|
70cabbf6dc | ||
|
d0b18e338b | ||
|
1f2f7e044d | ||
|
7b4e6d4c16 | ||
|
239c9c3f1c | ||
|
20fa400082 | ||
|
2212287b00 | ||
|
275fdb26c1 | ||
|
eafcb7b4ec | ||
|
364f6e1620 | ||
|
29b968ce20 | ||
|
c8e5a1f6b0 | ||
|
84bb854056 | ||
|
91c93ce3cd | ||
|
4491e8c9a3 | ||
|
206ea92837 | ||
|
b15f8b0642 | ||
|
d1b053f3ba | ||
|
7fca598268 | ||
|
36fa0debfe | ||
|
c67506ba68 | ||
|
f5c0295247 | ||
|
f8411a351d | ||
|
226874c9d6 | ||
|
ad26b6d593 | ||
|
e8cd6662eb | ||
|
1b4f1db9b2 | ||
|
dbaab6f54e | ||
|
6ec306d068 | ||
|
6a3a0cc0f5 | ||
|
23881842ae | ||
|
8329ad5214 | ||
|
dd48810186 | ||
|
e142ea400a | ||
|
c139a9f38c | ||
|
b9af017a4c | ||
|
72ec261a69 | ||
|
cc1321ea2e | ||
|
401aca2548 | ||
|
d07d49227f | ||
|
3345ddd2d4 | ||
|
7923ede8ba | ||
|
39525bcec7 | ||
|
e3933a067f | ||
|
933117785f | ||
|
2e76ceb5b4 | ||
|
61e9027131 | ||
|
769773a500 | ||
|
069ce4448c | ||
|
99eab1fa2a | ||
|
9988dc2227 | ||
|
7de657ac45 | ||
|
7f8a9329e5 | ||
|
a9be4907c0 | ||
|
e944b15298 | ||
|
2965ed47bd | ||
|
53ef576739 | ||
|
8da103da57 | ||
|
1261c43a7a | ||
|
c50f0f31f4 | ||
|
1490ff30af | ||
|
bb08a766f4 | ||
|
cd7e2138d1 | ||
|
c954437cc0 | ||
|
16c72d0701 | ||
|
fdc3cbb8cb | ||
|
1bf3ae07b6 | ||
|
6cfb0d7ddb | ||
|
ccceb41bf3 | ||
|
5e7f4f687e | ||
|
818d9f7b63 | ||
|
8eea4f58c7 | ||
|
54c2bab25f | ||
|
9a83301ff8 | ||
|
37c35daba6 | ||
|
9b9a32bf74 | ||
|
19002fd6c1 | ||
|
37de58823f | ||
|
5bbcf5b8b7 | ||
|
c16c023ebf | ||
|
fa66bd95dc | ||
|
5a5a193877 | ||
|
d21aa1a77c | ||
|
f40084e019 | ||
|
df0734fcbf | ||
|
ede414094f | ||
|
b42963a52c | ||
|
750fb25f48 | ||
|
acf73f7e13 | ||
|
06c26bf9c9 | ||
|
b979389958 | ||
|
3cad57bf48 | ||
|
dd03184811 | ||
|
ffa6805c09 | ||
|
637f5bc431 | ||
|
88412daf11 | ||
|
50af909c01 | ||
|
6f6bede900 | ||
|
87b8ac3ce6 | ||
|
71a0373232 | ||
|
a299ddb10e | ||
|
d80e0d6873 | ||
|
4f5c4d79c4 | ||
|
ccc3ac241f | ||
|
9e6cf45906 | ||
|
01a5f839c5 | ||
|
987f44d811 | ||
|
37ec645ff2 | ||
|
462d5aa5cb | ||
|
99cee755d8 | ||
|
40823462e7 | ||
|
7dfd148ff8 | ||
|
741f22bfe0 | ||
|
c25fda34e7 | ||
|
291d531e4c | ||
|
f775a1931b | ||
|
4e8a1b40cb | ||
|
8a14fdbe47 | ||
|
4e37cd85ef | ||
|
040a980277 | ||
|
afae3a94a4 | ||
|
9617189e96 | ||
|
8e37f19883 | ||
|
665947ab2a | ||
|
3cc8414c2e | ||
|
923803a533 | ||
|
ca5766c0a7 | ||
|
357553a64a | ||
|
b822a912ad | ||
|
1413d2e517 | ||
|
7f97fbc1ae | ||
|
0e4e20315b | ||
|
60c4cb21ea | ||
|
918c406a91 | ||
|
2b71f4897f | ||
|
cf0aa1238c | ||
|
4f7f44ced1 | ||
|
a48f5f860e | ||
|
d5b64846ed | ||
|
56e456fb5b | ||
|
caf855cf9c | ||
|
0450da88b6 | ||
|
95bcd5d28f | ||
|
f0cca36e07 | ||
|
0b5bba23ce | ||
|
4ad1d02d7e | ||
|
48c22a67de | ||
|
8b651fab1d | ||
|
bb0b17f4d9 | ||
|
df7a8d4efe | ||
|
72daf522c9 | ||
|
c0c4a9ed0d | ||
|
139057f346 | ||
|
54ff7234b9 | ||
|
961a5dd4cd | ||
|
b7c625db0f | ||
|
47ce33a90d | ||
|
1422082bf2 | ||
|
8298b326a7 | ||
|
0242c1f691 | ||
|
1311f8314e | ||
|
fb1873b6ec | ||
|
2e548c31d4 | ||
|
6ad4acea50 | ||
|
9cfa4e67b1 | ||
|
d415686bb9 | ||
|
acb9e46074 | ||
|
03e54aaba9 | ||
|
bd4d2e1d83 | ||
|
267e20dbcd | ||
|
6144cb43a8 | ||
|
f4e48bc53e | ||
|
00e828b1a0 | ||
|
6af6a9704d | ||
|
c592a0e58d | ||
|
72fc41d891 | ||
|
ac55764599 | ||
|
f0468697cd | ||
|
fb4aa9f725 | ||
|
e149ee6e22 | ||
|
be075a4336 | ||
|
ac977bdb1c | ||
|
7d624c4750 | ||
|
0b9bc4a0d0 | ||
|
7e99d0619d | ||
|
a145d909b5 | ||
|
2c9fed9b73 | ||
|
0fbec6b532 | ||
|
1951d56ed9 | ||
|
c9cd449bba | ||
|
03834454d9 | ||
|
2a4fa4c408 | ||
|
772f8d08cf | ||
|
4648997a10 | ||
|
b91317b9bf | ||
|
202721e80c | ||
|
0c5bec0493 | ||
|
4dd8a1a1ca | ||
|
d3208d2250 | ||
|
f2f455f283 | ||
|
f28dcc9cb7 | ||
|
d19642d7eb | ||
|
802c618885 | ||
|
9138754b0a | ||
|
91c83a82a0 | ||
|
86e6d395d9 | ||
|
6be129ead2 | ||
|
d0f4b2b02f | ||
|
64ad451a7b | ||
|
af9bb77cad | ||
|
1b2f9d4a6d | ||
|
9a4c8e2316 | ||
|
60ba6fd244 | ||
|
3b82864bcc | ||
|
79d69ce72a | ||
|
67c3acde34 | ||
|
769e02d0de | ||
|
cb4d3db8c6 | ||
|
8daf19ec0f | ||
|
991807080b | ||
|
0eca3e38eb | ||
|
0fcdcc2300 | ||
|
72480e7b2f | ||
|
9f2319e50d | ||
|
6b7b443ff9 | ||
|
e957362779 | ||
|
0cc038b67c | ||
|
579561e97b | ||
|
04fc4eddaa | ||
|
0b9990a7e5 | ||
|
0ffeb84f0c | ||
|
a2c686e16c | ||
|
d42b0eb29b | ||
|
bff04da0f3 | ||
|
ac7f2cf105 | ||
|
15621b7284 | ||
|
cccfdde14c | ||
|
7745ee27bc | ||
|
1ed8ae2d8e | ||
|
226e53fdd7 | ||
|
f933d24b02 | ||
|
518a38577b | ||
|
97c4d3bcc9 | ||
|
92992c022d | ||
|
5e8bedcca0 | ||
|
ed2f8e45e9 | ||
|
c6f783c551 | ||
|
3b9d991514 | ||
|
e17441b0ed | ||
|
225afe05b3 | ||
|
b8db67dafa | ||
|
fb7535ff9a | ||
|
9760149886 | ||
|
c39e4dd214 | ||
|
e157fd60ee | ||
|
9d16393d8b | ||
|
f1aeb80518 | ||
|
4d20fbc6d9 | ||
|
fdddba100e | ||
|
324fd08455 | ||
|
d3c6acd2f2 | ||
|
0a6b2c9587 | ||
|
90c9f38f40 | ||
|
9741f045e4 | ||
|
14de8376ad | ||
|
f400224a00 | ||
|
dd916e0b4c | ||
|
b84a33a101 | ||
|
fb6f53fc12 | ||
|
ea26dcd800 | ||
|
85c9397ec7 | ||
|
ef1f301756 | ||
|
dec82a6a36 | ||
|
81c8592d69 | ||
|
1bba02863d | ||
|
cfe7438b2f | ||
|
608466d098 | ||
|
91a70ba552 | ||
|
8476eb1842 | ||
|
88a35b2865 | ||
|
674ae51d6a | ||
|
4a80a285d1 | ||
|
1e76ceacd5 | ||
|
2c8e4f32c6 | ||
|
b1a6102a85 | ||
|
4a9ed4682a | ||
|
b709fc4dfe | ||
|
589456f0ba | ||
|
4227db0871 | ||
|
ac06a47689 | ||
|
da5e0fca4f | ||
|
39241107d9 | ||
|
1fa1a93cd6 | ||
|
41493bd642 | ||
|
a3426fcaf3 | ||
|
b666710574 | ||
|
8cd5279857 | ||
|
378edeaf15 | ||
|
3cb2807244 | ||
|
a266492776 | ||
|
2de84e2e3b | ||
|
4fc177eb46 | ||
|
251c455b91 | ||
|
c9dc881747 | ||
|
6a22a80f9f | ||
|
e53c20b03c | ||
|
e2fc03ec72 | ||
|
082d665160 | ||
|
a3024dd5ac | ||
|
bfe626d578 | ||
|
94838ed941 | ||
|
d92c3d927d | ||
|
db87be126e | ||
|
8d64eedbec | ||
|
456f7cab3e | ||
|
dc912dc590 | ||
|
77bf617c4b | ||
|
a32d6b3aa4 | ||
|
9c8055d4b3 | ||
|
563aebd5ce | ||
|
60d89cb404 | ||
|
26a95e5787 | ||
|
52e18a6249 | ||
|
17f4251b19 | ||
|
8b02c85810 | ||
|
861c8ebfe4 | ||
|
5c193a34a2 | ||
|
b6a1e7fb31 | ||
|
5f5bd64b83 | ||
|
94d7e28cbe | ||
|
5c08153fc5 | ||
|
9f357d88c2 | ||
|
948d5a93a0 | ||
|
2062e126f1 | ||
|
3fbe8ada93 | ||
|
b1659b7755 | ||
|
6fcecbd48b | ||
|
7d7662277c | ||
|
b2ab479488 | ||
|
6e0945354d | ||
|
e834343496 | ||
|
1b40ebfa20 | ||
|
87cf7010fc | ||
|
06b8923d42 | ||
|
28af5e3bd7 | ||
|
5b95abaeea | ||
|
18d38486a5 | ||
|
5c5d9d9b9d | ||
|
a24322fcce | ||
|
a658cf70b9 | ||
|
6bd29956f5 | ||
|
f23c07f43a | ||
|
799891d359 | ||
|
558b421079 | ||
|
acef2a4a40 | ||
|
0de1a7629c | ||
|
626c22961f | ||
|
3a8594e927 | ||
|
138b3cb608 | ||
|
115b2ad638 | ||
|
0dd65246ea | ||
|
5f71928f6b | ||
|
a7fa6f18dc | ||
|
6ce7011a2e | ||
|
65d49ac090 | ||
|
c74c5f479a | ||
|
36355d3ed9 | ||
|
39da451b6d | ||
|
10f3a2833f | ||
|
40feac086f | ||
|
1361856213 | ||
|
bff47479a7 | ||
|
38ebefce9c | ||
|
eb4dd50f53 | ||
|
6df93e61c4 | ||
|
653b14e1c7 | ||
|
8efae57d67 | ||
|
f7b3681eb0 | ||
|
1632a3fec9 | ||
|
d802e65cd3 | ||
|
fff235433e | ||
|
52aadc09e9 | ||
|
0ac010ba3f | ||
|
def088ce52 | ||
|
ab3f03a04a | ||
|
548434f85c | ||
|
951a82f2d7 | ||
|
12b689a81e | ||
|
badd7654fd | ||
|
931fa4cb78 | ||
|
518ddd458c | ||
|
8f0051d739 | ||
|
058fa5471a | ||
|
aee971bd26 | ||
|
06813d4a0e | ||
|
68f421c203 | ||
|
1790400313 | ||
|
06ac829eb4 | ||
|
df31ec0d52 | ||
|
a0518a4ee1 | ||
|
1edfce4322 | ||
|
dcd0102800 | ||
|
cca9d6aeaa | ||
|
2330100371 | ||
|
17877f612e | ||
|
4bb57d4f25 | ||
|
c7eda0b24a | ||
|
029aaf3d74 | ||
|
65ac513776 | ||
|
88042109a3 | ||
|
7f649a7a19 | ||
|
2fbb67add7 | ||
|
ea26add540 | ||
|
38d01ff511 | ||
|
83eece7764 | ||
|
4f07116108 | ||
|
ec5ae83da6 | ||
|
2061a1d917 | ||
|
551e90cd52 | ||
|
f050a75b92 | ||
|
e5120a2703 | ||
|
65dfaa6cb9 | ||
|
09ae0ab24a | ||
|
467a65af90 | ||
|
e3f52ee13f | ||
|
593c7e26d4 | ||
|
559aeb5dd0 | ||
|
8ed506a370 | ||
|
0b7d214211 | ||
|
dc8045d766 | ||
|
b16a01ba9d | ||
|
df1d390a49 | ||
|
2a28377be0 | ||
|
a5f64ffd0c | ||
|
3c65a2899d | ||
|
fa02a1e634 | ||
|
90b442727e | ||
|
81a13b4b9e | ||
|
b39403a48f | ||
|
4c20713ecd | ||
|
355487041a | ||
|
e44f6a2ab3 | ||
|
012ab87605 | ||
|
ad363c62c3 | ||
|
8bd8ee03c2 | ||
|
4cbf11d32c | ||
|
e7c6410192 | ||
|
9b39bc6aa8 | ||
|
c29430b018 | ||
|
12c052551b | ||
|
d3a4f5b7d7 | ||
|
9cc46c5538 | ||
|
d4b889783c | ||
|
379d7fafd5 | ||
|
dcb2b1413b | ||
|
3c30eadd5e | ||
|
7651198508 | ||
|
8bc59e9743 | ||
|
4ca65c6182 | ||
|
6a55b680a3 | ||
|
29158681f9 | ||
|
69e4ebbb8e | ||
|
67a5542a73 | ||
|
32d8e0d496 | ||
|
6af49270a9 | ||
|
fc910f9bb9 | ||
|
8883fa326a | ||
|
c6acd2abb3 | ||
|
63a74f7b6d | ||
|
04366492b2 | ||
|
1b5168ae02 | ||
|
347e5f33c7 | ||
|
0820c23988 | ||
|
d4dd21303a | ||
|
36b3867787 | ||
|
b51ba39dd1 | ||
|
e121e06214 | ||
|
e7d6b835ae | ||
|
f74f5e0a56 | ||
|
50edef5bc1 | ||
|
833117f573 | ||
|
8ac4458630 | ||
|
a6fc97ffec | ||
|
4afe211e50 | ||
|
2950397d47 | ||
|
141702538b | ||
|
7ebca7ecfa | ||
|
77949d4590 | ||
|
f17f92105b | ||
|
3954dfd4f1 | ||
|
39dc6c65ef | ||
|
d519a535e1 | ||
|
aa070c7daf | ||
|
efd50759d5 | ||
|
08ba9a15b2 | ||
|
7f3a83d3ed | ||
|
ddb9e90c40 | ||
|
013f7c4f8f | ||
|
e35fa60d8a | ||
|
3acfdb6f8a | ||
|
1d816222e0 | ||
|
ddc321a094 | ||
|
81ce04990e | ||
|
a6fd251e44 | ||
|
ad0a5deb67 | ||
|
a2708f7fe3 | ||
|
287f2c9719 | ||
|
882267e3ec | ||
|
becb070603 | ||
|
6c9929b809 | ||
|
017e35fbf1 | ||
|
f53197c82a | ||
|
be0cca9afd | ||
|
53db65678d | ||
|
d4c77103d1 | ||
|
f6fee39e42 | ||
|
47e00524f7 | ||
|
1a337dcc18 | ||
|
b273025fd7 | ||
|
e9d2fadd8e | ||
|
e34a975dd9 | ||
|
5f5533b88a | ||
|
5459bbc1ef | ||
|
7a58ddfa48 | ||
|
40f170f0a7 | ||
|
5f51094138 | ||
|
73c4c6d7de | ||
|
9c0040124a | ||
|
5f6966cd9f | ||
|
c4f0a3b570 | ||
|
c6b38441f1 | ||
|
67dd81e825 | ||
|
d472bafec1 | ||
|
603e9f6a92 | ||
|
ea0ec5fbcf | ||
|
6051715a99 | ||
|
9fc6676d8c | ||
|
28e5e65676 | ||
|
5f1d707367 | ||
|
bd50892c25 | ||
|
7e3bbdded5 | ||
|
344c798b4c | ||
|
928bda2e43 | ||
|
4f2fb8dc5e | ||
|
39d3df86c8 | ||
|
56618873af | ||
|
d9fe41a301 | ||
|
1fc53c3077 | ||
|
fb3eb6e0a4 | ||
|
2207fafa91 | ||
|
cd3abe0b4c | ||
|
cbdd134174 | ||
|
45150848fb | ||
|
3c80c86437 | ||
|
107f00d93f | ||
|
9896b64f54 | ||
|
d72d42f9ce | ||
|
bf57fd82bb | ||
|
f43f33e307 | ||
|
99b07c817e | ||
|
e2066994b1 | ||
|
8893a044b3 | ||
|
c1423ddca3 | ||
|
086ba59d03 | ||
|
77bb1bb6c8 | ||
|
f271ea6e43 | ||
|
a0f70cf7d0 | ||
|
c212fc1dcf | ||
|
3fbc80eb58 | ||
|
147b37b893 | ||
|
f5559f3aff | ||
|
453cb6a388 | ||
|
6722b7f395 | ||
|
f07b134add | ||
|
7622a83973 | ||
|
766011544a | ||
|
cb1b52d980 | ||
|
948f01f19a | ||
|
ad6a6aa07b | ||
|
b1ea63b4c6 | ||
|
41f6e8f7f4 | ||
|
08839602bd | ||
|
35090f6eac | ||
|
272271d939 | ||
|
1b22f13488 | ||
|
e635ee8b39 | ||
|
57445e65cb | ||
|
476fd01f8d | ||
|
02acf7c0b3 | ||
|
1458de92f0 | ||
|
935dce9a0b | ||
|
40fa1099bf | ||
|
29d202e1df | ||
|
2c560266e9 | ||
|
cca6c20eb6 | ||
|
a989b793de | ||
|
e7af2addd8 | ||
|
877552c6f8 | ||
|
05352330bb | ||
|
dca41cc4a3 | ||
|
b13820dcd0 | ||
|
190120fd79 | ||
|
00def0875b | ||
|
31a524fb52 | ||
|
da3d1157e5 | ||
|
650edb60dc | ||
|
4ba03aa29b | ||
|
22c4d89dbb | ||
|
8da1fd329d | ||
|
e9d9caa77c | ||
|
7371e72e6c | ||
|
228966e6dd | ||
|
18ab36d70c | ||
|
3c89f3cf15 | ||
|
6c5ebcded5 | ||
|
1d51ae7570 | ||
|
8b4a786266 | ||
|
41c02b3d16 | ||
|
8d4a47bf9e | ||
|
7cf65cfeea | ||
|
600364f4fd | ||
|
e7974afd37 | ||
|
6be3704bc4 | ||
|
e4292c94d8 | ||
|
d62b17eb60 | ||
|
dd0cf0371a | ||
|
54c0510d1f | ||
|
dec524e7da | ||
|
82beb4987a | ||
|
f5a2337b37 | ||
|
6e448ef239 | ||
|
d19f5d18e9 | ||
|
6a738720ec | ||
|
d3822269ca | ||
|
e8e74146e8 | ||
|
50c31cb31b | ||
|
844d0d3147 | ||
|
8c0b1fd1d9 | ||
|
b9f135eaf3 | ||
|
60800c0b2b | ||
|
42c11466cc | ||
|
305c76470f | ||
|
5530c7dca4 | ||
|
5a95847c5d | ||
|
2c10843bc4 | ||
|
3cce929eec | ||
|
90a47ca050 | ||
|
c0a50b7c3e | ||
|
18deea59b4 | ||
|
223c1bac8d | ||
|
0e005acd44 | ||
|
0d83b6d177 | ||
|
06fc196772 | ||
|
6e3267d1bd | ||
|
c068a218ea | ||
|
20b76acc08 | ||
|
e5beab7f16 | ||
|
68f7a79f28 | ||
|
b7ce2cf6a8 | ||
|
075222525c | ||
|
221f18dc33 | ||
|
a7f82ff82e | ||
|
d417f73218 | ||
|
94daa3e8c1 | ||
|
82724f6664 | ||
|
a67fc30d81 | ||
|
0e75315368 | ||
|
ee15939d33 | ||
|
4039106500 | ||
|
1d417d2a36 | ||
|
97cf78f63d | ||
|
1b5964979f | ||
|
ce5acd4158 | ||
|
0d3f1be230 | ||
|
074b31d9ab | ||
|
003d3312fd | ||
|
0818a9136d | ||
|
b70ca7d54e | ||
|
5f74aadaaf | ||
|
ef8a2134bc | ||
|
6a191a91ab | ||
|
2656199dc7 | ||
|
6c10fd22a3 | ||
|
1ad0d94d6f | ||
|
5dce39d17f | ||
|
d99e139c6b | ||
|
eb6be30602 | ||
|
30084b7332 | ||
|
265d8749b1 | ||
|
15a8acbd6c | ||
|
6a6a631c81 | ||
|
bc7fcc2dba | ||
|
cd6adef471 | ||
|
e216603477 | ||
|
1955b3c557 | ||
|
35774d44b2 | ||
|
10525ac7f8 | ||
|
ccc2adee41 | ||
|
da26964d2b | ||
|
b3214be32f | ||
|
03db495e1d | ||
|
ef7bda61ad | ||
|
2b839197a9 | ||
|
4ef56c5b65 | ||
|
9c57f17af3 | ||
|
27df2c0ce6 | ||
|
5a3b81d92e | ||
|
299c548b12 | ||
|
510a7b64f1 | ||
|
4ebfc011fc | ||
|
6513f54f73 | ||
|
2112e8b5e4 | ||
|
906b121a10 | ||
|
be39146ecc | ||
|
cf5ef1d75f | ||
|
8208777b06 | ||
|
7988c62f6d | ||
|
9511212e32 | ||
|
88cc7e6a04 | ||
|
0c6a54b37c | ||
|
06c58bce00 | ||
|
8ac7cc98c1 | ||
|
ca1b18ba2d | ||
|
50c896169c | ||
|
2a58596aef | ||
|
5d3e145dc4 | ||
|
a5aa8ea796 | ||
|
6d708664b5 | ||
|
66f5ae0c5a | ||
|
19519d6c96 | ||
|
3831d31009 | ||
|
4472ab1fe9 | ||
|
5f85067a95 | ||
|
2b6ae571bb | ||
|
bf2d6abaf2 | ||
|
ce42dac331 | ||
|
a4b6e5613f | ||
|
577ade75cf | ||
|
481b6ac0d5 | ||
|
13baba90f6 | ||
|
1db10744f7 | ||
|
66cb3294ed | ||
|
fe776d8b33 | ||
|
752bc168f6 | ||
|
9a063deacc | ||
|
5f19fbc5a9 | ||
|
e902c7168d | ||
|
3d62c71edf | ||
|
59018d73c3 | ||
|
a1a25029da | ||
|
5996bef7cd | ||
|
5208bd8a95 | ||
|
d3f8950588 | ||
|
c1402af293 | ||
|
0c5cc51983 | ||
|
637926dcbb | ||
|
1e9333a9aa | ||
|
a51f3937ee | ||
|
e23672d82f | ||
|
ef6d3dddd4 | ||
|
aef1a88dc6 | ||
|
addc5408ff | ||
|
17524865e5 | ||
|
1810b2f477 | ||
|
0ab853cab8 | ||
|
0f56304f09 | ||
|
cfc01a660a | ||
|
e1bc95ae6e | ||
|
76c070fe86 | ||
|
9fa6531109 | ||
|
a0e08c6ec2 | ||
|
8076deeeb4 | ||
|
11c520607f | ||
|
bf426c53b4 | ||
|
c62696c8e7 | ||
|
6b9a347353 | ||
|
50e7706b26 | ||
|
4c5b45ed73 | ||
|
aaf53d9d77 | ||
|
6f654d534a | ||
|
ad45b06b3f | ||
|
ab894d98f4 | ||
|
e5bd1ee801 | ||
|
93370b870a | ||
|
b6a9d87f16 | ||
|
c6cedbb810 | ||
|
6b8c5e12df | ||
|
6a13c2d180 | ||
|
a2a69709b5 | ||
|
c03852fbc7 | ||
|
5ff3783d01 | ||
|
e3ea311cd5 | ||
|
df0b56576a | ||
|
b748efe66a | ||
|
340c881296 | ||
|
eb33a03d0a | ||
|
3e7d2e29b3 | ||
|
840dd01035 | ||
|
32de0683c4 | ||
|
c13f0a8460 | ||
|
f393a15dd1 | ||
|
8829dcaee4 | ||
|
dcef33f5f0 | ||
|
844d1a14e0 | ||
|
314360e5e3 | ||
|
26f5caebae | ||
|
4cf109d3c4 | ||
|
050227f118 | ||
|
eebc605bc2 | ||
|
949c4f01c6 | ||
|
7f12ad6dcc | ||
|
9572be1e5f | ||
|
2d43067946 | ||
|
a348c2e4dd | ||
|
7d005e8c93 | ||
|
21395aa509 | ||
|
273cda63ad | ||
|
2b5636bf12 | ||
|
14b1b9c9b0 | ||
|
2f6fc6a7ab | ||
|
08608afca5 | ||
|
a8b2f9205d | ||
|
875b46d97d | ||
|
87353e5ad1 | ||
|
8596f92654 | ||
|
8b98a98dfb | ||
|
e349e92a44 | ||
|
479a6f11db | ||
|
e9cd004ba1 | ||
|
163e563733 | ||
|
762794eed9 | ||
|
d244c9d298 | ||
|
9bcec87aba | ||
|
b0a7e795e7 | ||
|
f9697e68c2 | ||
|
79fca39faf | ||
|
4075eecca0 | ||
|
817e308c0d | ||
|
3c8319fe9f | ||
|
cf8e425883 | ||
|
93e4972b50 | ||
|
bee7e41959 | ||
|
74e0a4555f | ||
|
6f11f11519 | ||
|
59326247aa | ||
|
57ef1d1211 | ||
|
36a5578d2b | ||
|
1f19dd76f6 | ||
|
54a9897938 | ||
|
80ab2572a4 | ||
|
db46abce47 | ||
|
5716f88a1d | ||
|
f4ccdfd503 | ||
|
9600973917 | ||
|
cbd1760efa | ||
|
3a8b5d90df | ||
|
c20e90e898 | ||
|
d4fea8b559 | ||
|
6ac19c3999 | ||
|
0d9c443e51 | ||
|
ce5eb31723 | ||
|
cc4badaf60 | ||
|
b022d6635d | ||
|
795736af16 | ||
|
7deda1fa18 | ||
|
31eb3dc245 | ||
|
28ef5ebd3c | ||
|
f966abe4fb | ||
|
385492577d | ||
|
535a5ecad0 | ||
|
a94cf2ad4f | ||
|
1afde067b1 | ||
|
9da4f89b7b | ||
|
3c5ecca377 | ||
|
3d09bc320e | ||
|
1e685c8302 | ||
|
d838d1990b | ||
|
79e46ce73f | ||
|
9effa24f30 | ||
|
b729a8b140 | ||
|
c298e0165c | ||
|
4e355b8595 | ||
|
48b1e9bdc7 | ||
|
17c336de66 | ||
|
d0f7a5c4f5 | ||
|
4099ddb3dc | ||
|
6d48b0f1a9 | ||
|
307692cee8 | ||
|
ca0859b90f | ||
|
0e321698d2 | ||
|
1062185ba0 | ||
|
6a0fd77c48 | ||
|
65ef8f19c5 | ||
|
9f0ad901ed | ||
|
69caedc591 | ||
|
8cc8100120 | ||
|
2c79509453 | ||
|
819fccb7d1 | ||
|
b08cbe76f1 | ||
|
11ce81d4af | ||
|
e5e76ec445 | ||
|
dc4de79d43 | ||
|
ea4225a646 | ||
|
1ab4ab8d38 | ||
|
93ad16cca0 | ||
|
e38207162b | ||
|
1459d64508 | ||
|
ba3aa4f86d | ||
|
0d914e17be | ||
|
d670dbdbd3 | ||
|
ef8a6c539a | ||
|
20d193c91d | ||
|
18a8378beb | ||
|
f50422c380 | ||
|
7eb8abf7bb | ||
|
80ce6482f6 | ||
|
28ff828caa | ||
|
7da6a82dbd | ||
|
624a5ccb2e | ||
|
0c3709173f | ||
|
53f4d6f238 | ||
|
3d79ceb23a | ||
|
8c3363a5e7 | ||
|
10249d1e42 | ||
|
6fbbf80800 | ||
|
2b9cd25cf4 | ||
|
0262916978 | ||
|
a31a4c522f | ||
|
379590d438 | ||
|
8cf231c0d1 | ||
|
6e4de2383f | ||
|
a1621839cc | ||
|
63b9f76782 | ||
|
48e490cd58 | ||
|
bf2b4b9400 | ||
|
043a00991d | ||
|
ae0ca49451 | ||
|
41f2ee69a8 | ||
|
d7e049d5e8 | ||
|
3a67b8f287 | ||
|
9e69adf76f | ||
|
aa4c4ab2a0 | ||
|
8bc51288be | ||
|
4e26fbda08 | ||
|
dd9f8150fc | ||
|
4367579949 | ||
|
8bf8906045 | ||
|
994bfc4c09 | ||
|
a5a354a36e | ||
|
8fa435f370 | ||
|
937fa36ec4 | ||
|
eddfd41c1f | ||
|
fb19f0d844 | ||
|
4392fff212 | ||
|
d5a7079f42 | ||
|
589301ce06 | ||
|
a663b73634 | ||
|
fdb5bec431 | ||
|
d65a8bcd2d | ||
|
4e6ea7cc91 | ||
|
d93b47cf2c | ||
|
6611c6ce4e | ||
|
55dd8ef1c7 | ||
|
22878cf84a | ||
|
10dfa107d5 | ||
|
175ee9e6fe | ||
|
16313af7eb | ||
|
1f4618d64b | ||
|
75900f21f0 | ||
|
1db29f734f | ||
|
b762a7503c | ||
|
1ca1b4b32f | ||
|
fadcd7f1a9 | ||
|
43458cb7a1 | ||
|
63ef1dcedc | ||
|
c665d53295 | ||
|
bcd7ccac11 | ||
|
86b38dd14b | ||
|
2e45be2653 | ||
|
40d40d67a3 | ||
|
cbc5b8cebd | ||
|
e8d3525665 | ||
|
313e68c180 | ||
|
e2a63dadd1 | ||
|
c9cb90ff4f | ||
|
f0e5f0e837 | ||
|
2b8bbb288c | ||
|
d9f031c9da | ||
|
ba988a9abc | ||
|
62322f71e2 | ||
|
ffee478ed0 | ||
|
4dc2d4bf7b | ||
|
a2bbd7c9da | ||
|
a7e7db4a29 | ||
|
f622f82c0e | ||
|
e3110cb34e | ||
|
6e1ea2eafc | ||
|
bed44f9f62 | ||
|
46c799f528 | ||
|
737e45c102 | ||
|
8336519f30 | ||
|
d998a114e2 | ||
|
b3c3bd99c3 | ||
|
da6b4003ac | ||
|
50a20f3bbd | ||
|
9caa0b0be1 | ||
|
da7394f33b | ||
|
43bb2f39db | ||
|
84974efe4c | ||
|
a60dd0d92d | ||
|
843fcca5b4 | ||
|
506a1c98e7 | ||
|
4c91c0d1ba | ||
|
8b390d27dc | ||
|
a1af122499 | ||
|
52368e6702 | ||
|
b6b7de2010 | ||
|
e92eb5f482 | ||
|
31ec5cd35e | ||
|
869f0d24a6 | ||
|
408ea697aa | ||
|
85902ad1ae | ||
|
f970091c6a | ||
|
cd9d6a12ab | ||
|
0d68804aa7 | ||
|
47e66c9500 | ||
|
38bcf6b19e | ||
|
279fd47b48 | ||
|
1fa196d8f7 | ||
|
2c66f584b5 | ||
|
5433742faf | ||
|
819a82da99 | ||
|
6aafa7fe76 | ||
|
505e58d4eb | ||
|
0524e66a05 | ||
|
ce1c0f75cd | ||
|
66327b56e9 | ||
|
b8b15cec9e | ||
|
143676f58c | ||
|
a5066bb078 | ||
|
fb3335ffe2 | ||
|
9363ef53a3 | ||
|
e170fc40dd | ||
|
be5c5118cb | ||
|
163e82bab1 | ||
|
2a07411b0c | ||
|
f50fd9278f | ||
|
f8ef4924ec | ||
|
c0d11da2d8 | ||
|
c63bf6a040 | ||
|
fcd49e3985 | ||
|
238edc30de | ||
|
9dfa1c4be0 | ||
|
8181be89a2 | ||
|
e17265a7a2 | ||
|
2ee483ba41 | ||
|
3962253cf1 | ||
|
606f78f5e5 | ||
|
0903c41645 | ||
|
4fd96b24ae | ||
|
6a3fd8e014 | ||
|
99f157e280 | ||
|
9283c784a3 | ||
|
b6dd194000 | ||
|
6d0ebccdb0 | ||
|
530284e1b9 | ||
|
85bdbb102e | ||
|
cd20d15bb8 | ||
|
675639225a | ||
|
248f914e6e | ||
|
ddf57596be | ||
|
286b9bb66c | ||
|
d5e8345946 | ||
|
d97425d49e | ||
|
18913c4cd8 | ||
|
1a50db36d3 | ||
|
a946917206 | ||
|
3b2d7cc67f | ||
|
47e95fe9f5 | ||
|
9c7b036401 | ||
|
6bd0df1357 | ||
|
c5ffdd0609 | ||
|
2736c3f294 | ||
|
66d23713e9 | ||
|
af38c6104e | ||
|
b2dc9ad9d8 | ||
|
0231a09310 | ||
|
ae8f359f22 | ||
|
30bc37c3ca | ||
|
c1aa83069d | ||
|
e13b331762 | ||
|
50e237759a | ||
|
d91a823836 | ||
|
2148ef5e2f | ||
|
8f0f58e28b | ||
|
7944271c1b | ||
|
3867b52aef | ||
|
cf1ba77b9e | ||
|
23bca0c4b3 | ||
|
b37a90caa3 | ||
|
7997ba0abe | ||
|
e444832bb5 | ||
|
b7a831ca55 | ||
|
686c3e03bd | ||
|
89a40b867d | ||
|
ce16ff7ae8 | ||
|
78a6f56295 | ||
|
e5f36f9f8d | ||
|
17f1b8d133 | ||
|
81e1d6d9d0 | ||
|
6a63dced4a | ||
|
3037d2780c | ||
|
d3b27d45a9 | ||
|
4f7c11b281 | ||
|
c5d946bc92 | ||
|
67d1897c6e | ||
|
10930f7507 | ||
|
6d0cc8fa2a | ||
|
9c53d1fe19 | ||
|
f463b7570e | ||
|
bf9db78426 | ||
|
9a2523a09a | ||
|
353538d16c | ||
|
c3600b6104 | ||
|
83c7415803 | ||
|
9145fd04f2 | ||
|
d18441e9c4 | ||
|
2c2ea16b50 | ||
|
ea07ec51ef | ||
|
f5c6e44731 | ||
|
197647a04e | ||
|
2ae1b802f2 | ||
|
5cc23dc382 | ||
|
0a042979b8 | ||
|
8241eff05b | ||
|
7b42ec5633 | ||
|
141146d1f1 | ||
|
86ee4b72f3 | ||
|
117a53b88e | ||
|
d3f22d24f6 | ||
|
f33e89765a | ||
|
8e072baed0 | ||
|
c00a19f371 | ||
|
5716654d12 | ||
|
8d3b29aaba | ||
|
4b85d1c617 | ||
|
787e30c5fd | ||
|
714bf0cb23 | ||
|
a0ec66ce7e | ||
|
bec4e5ac31 | ||
|
1babd0798f | ||
|
f33401f54b | ||
|
d83f16fe44 | ||
|
98b9c1bcb1 | ||
|
5cfb0578a6 | ||
|
78d1105bff | ||
|
92592c25c2 | ||
|
8a0162cd96 | ||
|
d5d7648789 | ||
|
274b3a0d26 | ||
|
19933a06bf | ||
|
a5509de389 | ||
|
024bb27fc7 | ||
|
bf346cf07c | ||
|
d0b781ab69 | ||
|
7abb248ceb | ||
|
00b39dea5d | ||
|
755279e253 | ||
|
a7079057a9 | ||
|
7138910f30 | ||
|
724bf7c647 | ||
|
50abb54d15 | ||
|
4d3c2fb21b | ||
|
16276c8f87 | ||
|
8583b3721d | ||
|
e412363ff8 | ||
|
55a8aa9787 | ||
|
08132002d2 | ||
|
bc7ec43179 | ||
|
1cf20184ff | ||
|
7467b24730 | ||
|
97f947deaf | ||
|
5af9ce4a01 | ||
|
3b4b84b74c | ||
|
bddcb3ed68 | ||
|
a2766f310c | ||
|
09ed8f4f8a | ||
|
686fef59db | ||
|
2a244b391d | ||
|
fe00fbfd54 | ||
|
5b4962165e | ||
|
51b4513258 | ||
|
2eec3f8207 | ||
|
b3a1cfaa7a | ||
|
72b3ec35f8 | ||
|
a0cdc4cf9e | ||
|
e853cfe7c3 | ||
|
0fe3f749ea | ||
|
10886eeaa2 | ||
|
45646ff52c | ||
|
39e4b788ad | ||
|
bea43aba33 | ||
|
c7dc5ce85c | ||
|
4b66f2b7f1 | ||
|
6e51845d44 | ||
|
2bc6911139 | ||
|
64eef1eae4 | ||
|
179efd9467 | ||
|
7d3e4eaeb9 | ||
|
070fbb89e1 | ||
|
a1b95922c5 | ||
|
46ab97d721 | ||
|
bdd63d2a3a | ||
|
e4ac2a7cd6 | ||
|
b367f22256 | ||
|
6126f203d3 | ||
|
398141da68 | ||
|
5a39866388 | ||
|
6256822afd | ||
|
5ac6763238 | ||
|
102ebb42bd | ||
|
119b2b847b | ||
|
e20f74c71b | ||
|
b150e6f15e | ||
|
84608be87e | ||
|
1e23f527e3 | ||
|
79225d9b0a | ||
|
fd2cfc80d2 | ||
|
3387935e83 | ||
|
d89dc5518b | ||
|
2bc21c6f18 | ||
|
6f2f457751 | ||
|
4f2637acc6 | ||
|
571533ae26 | ||
|
3179ed0921 | ||
|
3412713c5b | ||
|
3a11e79de0 | ||
|
a12f63bc81 | ||
|
a6946048fb | ||
|
0fae71f88d | ||
|
39e596a5b5 | ||
|
7009ef5672 | ||
|
8898b5e927 | ||
|
9c1a930707 | ||
|
e928e307f3 | ||
|
4445421297 | ||
|
0b4fd0d342 | ||
|
e4b7a3f51f | ||
|
cf558208c2 | ||
|
95cb2bb694 | ||
|
c569ad05b3 | ||
|
6beef2d117 | ||
|
40280cc273 | ||
|
a5bb7f9345 | ||
|
005947e9f7 | ||
|
d9ef7e0758 | ||
|
07ccab9766 | ||
|
09a1ae1b6e | ||
|
a67f9da5cc | ||
|
2c7d973af7 | ||
|
410c8cb765 | ||
|
35e9192ced | ||
|
3dedadf192 | ||
|
9f16ca80e0 | ||
|
2b2e409ad7 | ||
|
e35d87ea54 | ||
|
00c48a33ac | ||
|
9beaebd97e | ||
|
38996f551a | ||
|
ea6a6a1287 | ||
|
365024abec | ||
|
0318e9a599 | ||
|
e154ebbf79 | ||
|
6aa9b023f0 | ||
|
f8566e91a6 | ||
|
a26fb6ab48 | ||
|
d3871fa360 | ||
|
27a8f6a8d9 | ||
|
50d3209ce8 | ||
|
c899af1d6a | ||
|
3ed39e3109 | ||
|
21d9091f5e | ||
|
5e097eb91d | ||
|
254f2ea854 | ||
|
98f268e5ec | ||
|
7c1af86f97 | ||
|
44659ecd65 | ||
|
43dfa58ebd | ||
|
fa2a6d5d6b | ||
|
6b74a55274 | ||
|
5846e7d5f6 | ||
|
0ecd6ba35e | ||
|
b354d70e85 | ||
|
5c383ada8a | ||
|
d26aadb743 | ||
|
574db5b988 | ||
|
bbf3bc2228 | ||
|
384f8bfa78 | ||
|
432599311d | ||
|
bd52e2aec7 | ||
|
9423052e92 | ||
|
3a03d9b65f | ||
|
a704d5499c | ||
|
c802c3055e | ||
|
b293c14a1b | ||
|
2b3dfbb42f | ||
|
f15d419062 | ||
|
718e8e1edb |
1229 changed files with 28308 additions and 9148 deletions
9
.dialyzer_ignore.exs
Normal file
9
.dialyzer_ignore.exs
Normal file
|
@ -0,0 +1,9 @@
|
|||
[
|
||||
{"lib/cachex.ex", "Unknown type: Spec.cache/0."},
|
||||
{"lib/pleroma/web/plugs/rate_limiter.ex", "The pattern can never match the type {:commit, _} | {:ignore, _}."},
|
||||
{"lib/pleroma/web/plugs/rate_limiter.ex", "Function get_scale/2 will never be called."},
|
||||
{"lib/pleroma/web/plugs/rate_limiter.ex", "Function initialize_buckets!/1 will never be called."},
|
||||
{"lib/pleroma/workers/receiver_worker.ex", :call},
|
||||
{"lib/pleroma/workers/receiver_worker.ex", :pattern_match},
|
||||
{"lib/pleroma/workers/receiver_worker.ex", :pattern_match_cov},
|
||||
]
|
13
.gitignore
vendored
13
.gitignore
vendored
|
@ -6,7 +6,7 @@
|
|||
/test/instance
|
||||
/test/uploads
|
||||
/.elixir_ls
|
||||
/test/fixtures/DSCN0010_tmp.jpg
|
||||
/test/fixtures/DSCN0010_tmp*
|
||||
/test/fixtures/test_tmp.txt
|
||||
/test/fixtures/image_tmp.jpg
|
||||
/test/tmp/
|
||||
|
@ -57,5 +57,12 @@ pleroma.iml
|
|||
.tool-versions
|
||||
|
||||
# Editor temp files
|
||||
/*~
|
||||
/*#
|
||||
*~
|
||||
*#
|
||||
*.swp
|
||||
|
||||
archive-*
|
||||
.gitlab-ci-local
|
||||
|
||||
# Test files should be named *.exs
|
||||
test/pleroma/**/*.ex
|
||||
|
|
450
.gitlab-ci.yml
450
.gitlab-ci.yml
|
@ -1,28 +1,39 @@
|
|||
image: git.pleroma.social:5050/pleroma/pleroma/ci-base
|
||||
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.14.5-otp-25
|
||||
|
||||
variables: &global_variables
|
||||
# Only used for the release
|
||||
ELIXIR_VER: 1.14.5
|
||||
POSTGRES_DB: pleroma_test
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
DB_HOST: postgres
|
||||
DB_PORT: 5432
|
||||
DB_PORT: "5432"
|
||||
MIX_ENV: test
|
||||
GIT_STRATEGY: fetch
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||
- if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
|
||||
when: never
|
||||
- if: $CI_COMMIT_BRANCH
|
||||
|
||||
cache: &global_cache_policy
|
||||
key:
|
||||
files:
|
||||
- mix.lock
|
||||
key: $CI_JOB_IMAGE-$CI_COMMIT_SHORT_SHA
|
||||
paths:
|
||||
- deps
|
||||
- _build
|
||||
|
||||
stages:
|
||||
- build
|
||||
- lint
|
||||
- test
|
||||
- check-changelog
|
||||
- benchmark
|
||||
- deploy
|
||||
- release
|
||||
- docker
|
||||
- docker-combine
|
||||
|
||||
before_script:
|
||||
- echo $MIX_ENV
|
||||
|
@ -32,32 +43,60 @@ before_script:
|
|||
after_script:
|
||||
- rm -rf _build/*/lib/pleroma
|
||||
|
||||
check-changelog:
|
||||
stage: check-changelog
|
||||
image: alpine
|
||||
rules:
|
||||
- if: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == 'pleroma/pleroma' && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'weblate-extract'
|
||||
when: never
|
||||
- if: $CI_MERGE_REQUEST_SOURCE_PROJECT_PATH == 'pleroma/pleroma' && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'weblate'
|
||||
when: never
|
||||
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"
|
||||
before_script: ''
|
||||
after_script: ''
|
||||
cache: {}
|
||||
script:
|
||||
- apk add git
|
||||
- sh ./tools/check-changelog
|
||||
|
||||
.build_changes_policy:
|
||||
rules:
|
||||
- changes:
|
||||
- ".gitlab-ci.yml"
|
||||
- "**/*.ex"
|
||||
- "**/*.exs"
|
||||
- "mix.lock"
|
||||
|
||||
.using-ci-base:
|
||||
tags:
|
||||
- amd64
|
||||
|
||||
build:
|
||||
build-1.14.5-otp-25:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: build
|
||||
only:
|
||||
changes: &build_changes_policy
|
||||
- ".gitlab-ci.yml"
|
||||
- "**/*.ex"
|
||||
- "**/*.exs"
|
||||
- "mix.lock"
|
||||
script:
|
||||
- mix compile --force
|
||||
|
||||
build-1.17.1-otp-26:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: build
|
||||
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.17.1-otp-26
|
||||
script:
|
||||
- mix compile --force
|
||||
|
||||
spec-build:
|
||||
extends:
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
only:
|
||||
changes:
|
||||
- ".gitlab-ci.yml"
|
||||
- "lib/pleroma/web/api_spec/**/*.ex"
|
||||
- "lib/pleroma/web/api_spec.ex"
|
||||
stage: build
|
||||
rules:
|
||||
- changes:
|
||||
- ".gitlab-ci.yml"
|
||||
- "lib/pleroma/web/api_spec/**/*.ex"
|
||||
- "lib/pleroma/web/api_spec.ex"
|
||||
artifacts:
|
||||
paths:
|
||||
- spec.json
|
||||
|
@ -72,7 +111,7 @@ benchmark:
|
|||
variables:
|
||||
MIX_ENV: benchmark
|
||||
services:
|
||||
- name: postgres:9.6-alpine
|
||||
- name: postgres:11.22-alpine
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
script:
|
||||
|
@ -80,24 +119,22 @@ benchmark:
|
|||
- mix ecto.migrate
|
||||
- mix pleroma.load_testing
|
||||
|
||||
unit-testing:
|
||||
unit-testing-1.14.5-otp-25:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
only:
|
||||
changes: *build_changes_policy
|
||||
cache: &testing_cache_policy
|
||||
<<: *global_cache_policy
|
||||
policy: pull
|
||||
|
||||
services:
|
||||
services: &testing_services
|
||||
- name: postgres:13-alpine
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
script:
|
||||
script: &testing_script
|
||||
- mix ecto.create
|
||||
- mix ecto.migrate
|
||||
- mix test --cover --preload-modules
|
||||
- mix pleroma.test_runner --cover --preload-modules
|
||||
coverage: '/^Line total: ([^ ]*%)$/'
|
||||
artifacts:
|
||||
reports:
|
||||
|
@ -105,68 +142,20 @@ unit-testing:
|
|||
coverage_format: cobertura
|
||||
path: coverage.xml
|
||||
|
||||
unit-testing-erratic:
|
||||
unit-testing-1.17.1-otp-26:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
retry: 2
|
||||
allow_failure: true
|
||||
only:
|
||||
changes: *build_changes_policy
|
||||
cache: &testing_cache_policy
|
||||
<<: *global_cache_policy
|
||||
policy: pull
|
||||
|
||||
services:
|
||||
- name: postgres:13-alpine
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
script:
|
||||
- mix ecto.create
|
||||
- mix ecto.migrate
|
||||
- mix test --only=erratic
|
||||
|
||||
# Removed to fix CI issue. In this early state it wasn't adding much value anyway.
|
||||
# TODO Fix and reinstate federated testing
|
||||
# federated-testing:
|
||||
# stage: test
|
||||
# cache: *testing_cache_policy
|
||||
# services:
|
||||
# - name: minibikini/postgres-with-rum:12
|
||||
# alias: postgres
|
||||
# command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
# script:
|
||||
# - mix deps.get
|
||||
# - mix ecto.create
|
||||
# - mix ecto.migrate
|
||||
# - epmd -daemon
|
||||
# - mix test --trace --only federated
|
||||
|
||||
unit-testing-rum:
|
||||
extends:
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
only:
|
||||
changes: *build_changes_policy
|
||||
image: git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.17.1-otp-26
|
||||
cache: *testing_cache_policy
|
||||
services:
|
||||
- name: minibikini/postgres-with-rum:12
|
||||
alias: postgres
|
||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||
variables:
|
||||
<<: *global_variables
|
||||
RUM_ENABLED: "true"
|
||||
script:
|
||||
- mix ecto.create
|
||||
- mix ecto.migrate
|
||||
- "mix ecto.migrate --migrations-path priv/repo/optional_migrations/rum_indexing/"
|
||||
- mix test --preload-modules
|
||||
services: *testing_services
|
||||
script: *testing_script
|
||||
|
||||
lint:
|
||||
image: ¤t_elixir elixir:1.12-alpine
|
||||
stage: test
|
||||
only:
|
||||
changes: *build_changes_policy
|
||||
formatting-1.15:
|
||||
extends: .build_changes_policy
|
||||
image: &formatting_elixir elixir:1.15-alpine
|
||||
stage: lint
|
||||
cache: *testing_cache_policy
|
||||
before_script: ¤t_bfr_script
|
||||
- apk update
|
||||
|
@ -177,27 +166,38 @@ lint:
|
|||
script:
|
||||
- mix format --check-formatted
|
||||
|
||||
analysis:
|
||||
extends:
|
||||
- .using-ci-base
|
||||
stage: test
|
||||
only:
|
||||
changes: *build_changes_policy
|
||||
cache: *testing_cache_policy
|
||||
script:
|
||||
- mix credo --strict --only=warnings,todo,fixme,consistency,readability
|
||||
|
||||
cycles:
|
||||
image: *current_elixir
|
||||
stage: test
|
||||
only:
|
||||
changes: *build_changes_policy
|
||||
cycles-1.15:
|
||||
extends: .build_changes_policy
|
||||
image: *formatting_elixir
|
||||
stage: lint
|
||||
cache: {}
|
||||
before_script: *current_bfr_script
|
||||
script:
|
||||
- mix compile
|
||||
- mix xref graph --format cycles --label compile | awk '{print $0} END{exit ($0 != "No cycles found")}'
|
||||
|
||||
analysis:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: lint
|
||||
cache: *testing_cache_policy
|
||||
script:
|
||||
- mix credo --strict --only=warnings,todo,fixme,consistency,readability
|
||||
|
||||
dialyzer:
|
||||
extends:
|
||||
- .build_changes_policy
|
||||
- .using-ci-base
|
||||
stage: lint
|
||||
allow_failure: true
|
||||
when: manual
|
||||
cache: *testing_cache_policy
|
||||
tags:
|
||||
- feld
|
||||
script:
|
||||
- mix dialyzer
|
||||
|
||||
docs-deploy:
|
||||
stage: deploy
|
||||
cache: *testing_cache_policy
|
||||
|
@ -208,7 +208,7 @@ docs-deploy:
|
|||
before_script:
|
||||
- apk add curl
|
||||
script:
|
||||
- curl -X POST -F"token=$DOCS_PIPELINE_TRIGGER" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" https://git.pleroma.social/api/v4/projects/673/trigger/pipeline
|
||||
- curl --fail-with-body -X POST -F"token=$CI_JOB_TOKEN" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" https://git.pleroma.social/api/v4/projects/673/trigger/pipeline
|
||||
review_app:
|
||||
image: alpine:3.9
|
||||
stage: deploy
|
||||
|
@ -249,7 +249,7 @@ spec-deploy:
|
|||
before_script:
|
||||
- apk add curl
|
||||
script:
|
||||
- curl -X POST -F"token=$API_DOCS_PIPELINE_TRIGGER" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" -F"variables[JOB_REF]=$CI_JOB_ID" https://git.pleroma.social/api/v4/projects/1130/trigger/pipeline
|
||||
- curl --fail-with-body -X POST -F"token=$CI_JOB_TOKEN" -F'ref=master' -F"variables[BRANCH]=$CI_COMMIT_REF_NAME" -F"variables[JOB_REF]=$CI_JOB_ID" https://git.pleroma.social/api/v4/projects/1130/trigger/pipeline
|
||||
|
||||
|
||||
stop_review_app:
|
||||
|
@ -272,7 +272,7 @@ stop_review_app:
|
|||
|
||||
amd64:
|
||||
stage: release
|
||||
image: elixir:1.11.4
|
||||
image: elixir:$ELIXIR_VER
|
||||
only: &release-only
|
||||
- stable@pleroma/pleroma
|
||||
- develop@pleroma/pleroma
|
||||
|
@ -296,8 +296,9 @@ amd64:
|
|||
- deps
|
||||
variables: &release-variables
|
||||
MIX_ENV: prod
|
||||
VIX_COMPILATION_MODE: PLATFORM_PROVIDED_LIBVIPS
|
||||
before_script: &before-release
|
||||
- apt-get update && apt-get install -y cmake libmagic-dev
|
||||
- apt-get update && apt-get install -y cmake libmagic-dev libvips-dev erlang-dev
|
||||
- echo "import Config" > config/prod.secret.exs
|
||||
- mix local.hex --force
|
||||
- mix local.rebar --force
|
||||
|
@ -312,13 +313,13 @@ amd64-musl:
|
|||
stage: release
|
||||
artifacts: *release-artifacts
|
||||
only: *release-only
|
||||
image: elixir:1.11.4-alpine
|
||||
image: elixir:$ELIXIR_VER-alpine
|
||||
tags:
|
||||
- amd64
|
||||
cache: *release-cache
|
||||
variables: *release-variables
|
||||
before_script: &before-release-musl
|
||||
- apk add git build-base cmake file-dev openssl
|
||||
- apk add git build-base cmake file-dev openssl vips-dev
|
||||
- echo "import Config" > config/prod.secret.exs
|
||||
- mix local.hex --force
|
||||
- mix local.rebar --force
|
||||
|
@ -330,7 +331,7 @@ arm:
|
|||
only: *release-only
|
||||
tags:
|
||||
- arm32-specified
|
||||
image: arm32v7/elixir:1.11.4
|
||||
image: arm32v7/elixir:$ELIXIR_VER
|
||||
cache: *release-cache
|
||||
variables: *release-variables
|
||||
before_script: *before-release
|
||||
|
@ -342,7 +343,7 @@ arm-musl:
|
|||
only: *release-only
|
||||
tags:
|
||||
- arm32-specified
|
||||
image: arm32v7/elixir:1.11.4-alpine
|
||||
image: arm32v7/elixir:$ELIXIR_VER-alpine
|
||||
cache: *release-cache
|
||||
variables: *release-variables
|
||||
before_script: *before-release-musl
|
||||
|
@ -354,7 +355,7 @@ arm64:
|
|||
only: *release-only
|
||||
tags:
|
||||
- arm
|
||||
image: arm64v8/elixir:1.11.4
|
||||
image: arm64v8/elixir:$ELIXIR_VER
|
||||
cache: *release-cache
|
||||
variables: *release-variables
|
||||
before_script: *before-release
|
||||
|
@ -366,110 +367,173 @@ arm64-musl:
|
|||
only: *release-only
|
||||
tags:
|
||||
- arm
|
||||
image: arm64v8/elixir:1.11.4-alpine
|
||||
image: arm64v8/elixir:$ELIXIR_VER-alpine
|
||||
cache: *release-cache
|
||||
variables: *release-variables
|
||||
before_script: *before-release-musl
|
||||
script: *release
|
||||
|
||||
docker:
|
||||
.kaniko:
|
||||
stage: docker
|
||||
image: docker:latest
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:debug
|
||||
entrypoint: [""]
|
||||
cache: {}
|
||||
dependencies: []
|
||||
variables: &docker-variables
|
||||
DOCKER_DRIVER: overlay2
|
||||
DOCKER_HOST: unix:///var/run/docker.sock
|
||||
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
|
||||
IMAGE_TAG_SLUG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
||||
IMAGE_TAG_LATEST: $CI_REGISTRY_IMAGE:latest
|
||||
IMAGE_TAG_LATEST_STABLE: $CI_REGISTRY_IMAGE:latest-stable
|
||||
DOCKER_BUILDX_URL: https://github.com/docker/buildx/releases/download/v0.6.3/buildx-v0.6.3.linux-amd64
|
||||
DOCKER_BUILDX_HASH: 980e6b9655f971991fbbb5fd6cd19f1672386195
|
||||
before_script: &before-docker
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker pull $IMAGE_TAG_SLUG || true
|
||||
before_script: &before-kaniko
|
||||
- export CI_JOB_TIMESTAMP=$(date --utc -Iseconds)
|
||||
- export CI_VCS_REF=$CI_COMMIT_SHORT_SHA
|
||||
allow_failure: true
|
||||
script:
|
||||
- mkdir -p /root/.docker/cli-plugins
|
||||
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
|
||||
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
|
||||
- chmod +x ~/.docker/cli-plugins/docker-buildx
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
- docker buildx create --name mbuilder --driver docker-container --use
|
||||
- docker buildx inspect --bootstrap
|
||||
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST .
|
||||
tags:
|
||||
- dind
|
||||
- export IMAGE_TAG=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:$CI_COMMIT_SHORT_SHA
|
||||
- export IMAGE_TAG_SLUG=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:$CI_COMMIT_REF_SLUG
|
||||
- export IMAGE_TAG_LATEST=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:latest
|
||||
- export IMAGE_TAG_LATEST_STABLE=$CI_REGISTRY_IMAGE/$BUILD_ARCH_IMG_SUFFIX:latest-stable
|
||||
- mkdir -p /kaniko/.docker
|
||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
|
||||
|
||||
.kaniko-latest:
|
||||
extends: .kaniko
|
||||
only:
|
||||
- develop@pleroma/pleroma
|
||||
|
||||
docker-stable:
|
||||
stage: docker
|
||||
image: docker:latest
|
||||
cache: {}
|
||||
dependencies: []
|
||||
variables: *docker-variables
|
||||
before_script: *before-docker
|
||||
allow_failure: true
|
||||
script:
|
||||
- mkdir -p /root/.docker/cli-plugins
|
||||
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
|
||||
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
|
||||
- chmod +x ~/.docker/cli-plugins/docker-buildx
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
- docker buildx create --name mbuilder --driver docker-container --use
|
||||
- docker buildx inspect --bootstrap
|
||||
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG -t $IMAGE_TAG_LATEST_STABLE .
|
||||
tags:
|
||||
- dind
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG --destination $IMAGE_TAG_LATEST
|
||||
|
||||
.kaniko-stable:
|
||||
extends: .kaniko
|
||||
only:
|
||||
- stable@pleroma/pleroma
|
||||
script:
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG --destination $IMAGE_TAG_LATEST_STABLE
|
||||
|
||||
docker-release:
|
||||
stage: docker
|
||||
image: docker:latest
|
||||
cache: {}
|
||||
dependencies: []
|
||||
variables: *docker-variables
|
||||
before_script: *before-docker
|
||||
allow_failure: true
|
||||
script:
|
||||
script:
|
||||
- mkdir -p /root/.docker/cli-plugins
|
||||
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
|
||||
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
|
||||
- chmod +x ~/.docker/cli-plugins/docker-buildx
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
- docker buildx create --name mbuilder --driver docker-container --use
|
||||
- docker buildx inspect --bootstrap
|
||||
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG .
|
||||
tags:
|
||||
- dind
|
||||
.kaniko-release:
|
||||
extends: .kaniko
|
||||
only:
|
||||
- /^release/.*$/@pleroma/pleroma
|
||||
script:
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG
|
||||
|
||||
docker-adhoc:
|
||||
stage: docker
|
||||
image: docker:latest
|
||||
cache: {}
|
||||
dependencies: []
|
||||
variables: *docker-variables
|
||||
before_script: *before-docker
|
||||
allow_failure: true
|
||||
script:
|
||||
script:
|
||||
- mkdir -p /root/.docker/cli-plugins
|
||||
- wget "${DOCKER_BUILDX_URL}" -O ~/.docker/cli-plugins/docker-buildx
|
||||
- echo "${DOCKER_BUILDX_HASH} /root/.docker/cli-plugins/docker-buildx" | sha1sum -c
|
||||
- chmod +x ~/.docker/cli-plugins/docker-buildx
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
||||
- docker buildx create --name mbuilder --driver docker-container --use
|
||||
- docker buildx inspect --bootstrap
|
||||
- docker buildx build --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --push --cache-from $IMAGE_TAG_SLUG --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP -t $IMAGE_TAG -t $IMAGE_TAG_SLUG .
|
||||
tags:
|
||||
- dind
|
||||
.kaniko-adhoc:
|
||||
extends: .kaniko
|
||||
only:
|
||||
- /^build-docker/.*$/@pleroma/pleroma
|
||||
script:
|
||||
- /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --custom-platform=$BUILD_ARCH --build-arg VCS_REF=$CI_VCS_REF --build-arg BUILD_DATE=$CI_JOB_TIMESTAMP --build-arg ELIXIR_IMG=$ELIXIR_IMG --destination $IMAGE_TAG --destination $IMAGE_TAG_SLUG
|
||||
|
||||
.kaniko:linux/amd64:
|
||||
variables:
|
||||
BUILD_ARCH: linux/amd64
|
||||
BUILD_ARCH_IMG_SUFFIX: linux-amd64
|
||||
ELIXIR_IMG: hexpm/elixir
|
||||
tags:
|
||||
- amd64
|
||||
|
||||
.kaniko:linux/arm64:
|
||||
variables:
|
||||
BUILD_ARCH: linux/arm64/v8
|
||||
BUILD_ARCH_IMG_SUFFIX: linux-arm64-v8
|
||||
ELIXIR_IMG: hexpm/elixir
|
||||
tags:
|
||||
- arm
|
||||
|
||||
.kaniko:linux/arm:
|
||||
variables:
|
||||
BUILD_ARCH: linux/arm/v7
|
||||
BUILD_ARCH_IMG_SUFFIX: linux-arm-v7
|
||||
ELIXIR_IMG: git.pleroma.social:5050/pleroma/ci-image/elixir-linux-arm-v7
|
||||
tags:
|
||||
- arm32-specified
|
||||
|
||||
kaniko-latest:linux/amd64:
|
||||
extends:
|
||||
- .kaniko-latest
|
||||
- .kaniko:linux/amd64
|
||||
|
||||
kaniko-latest:linux/arm64:
|
||||
extends:
|
||||
- .kaniko-latest
|
||||
- .kaniko:linux/arm64
|
||||
|
||||
kaniko-latest:linux/arm:
|
||||
extends:
|
||||
- .kaniko-latest
|
||||
- .kaniko:linux/arm
|
||||
|
||||
kaniko-stable:linux/amd64:
|
||||
extends:
|
||||
- .kaniko-stable
|
||||
- .kaniko:linux/amd64
|
||||
|
||||
kaniko-stable:linux/arm64:
|
||||
extends:
|
||||
- .kaniko-stable
|
||||
- .kaniko:linux/arm64
|
||||
|
||||
kaniko-stable:linux/arm:
|
||||
extends:
|
||||
- .kaniko-stable
|
||||
- .kaniko:linux/arm
|
||||
|
||||
kaniko-release:linux/amd64:
|
||||
extends:
|
||||
- .kaniko-release
|
||||
- .kaniko:linux/amd64
|
||||
|
||||
kaniko-release:linux/arm64:
|
||||
extends:
|
||||
- .kaniko-release
|
||||
- .kaniko:linux/arm64
|
||||
|
||||
kaniko-release:linux/arm:
|
||||
extends:
|
||||
- .kaniko-release
|
||||
- .kaniko:linux/arm
|
||||
|
||||
.docker-combine:
|
||||
stage: docker-combine
|
||||
image: docker:cli
|
||||
cache: {}
|
||||
before_script:
|
||||
- 'BUILD_ARCHES="linux-amd64 linux-arm64-v8 linux-arm-v7"'
|
||||
- export IMAGE_TAG=$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
|
||||
- export IMAGE_TAG_SLUG=$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
||||
- export IMAGE_TAG_LATEST=$CI_REGISTRY_IMAGE:latest
|
||||
- export IMAGE_TAG_LATEST_STABLE=$CI_REGISTRY_IMAGE:latest-stable
|
||||
- 'IMAGES=; for arch in $BUILD_ARCHES; do IMAGES="$IMAGES $CI_REGISTRY_IMAGE/$arch:$CI_COMMIT_SHORT_SHA"; done'
|
||||
- 'IMAGES_SLUG=; for arch in $BUILD_ARCHES; do IMAGES_SLUG="$IMAGES_SLUG $CI_REGISTRY_IMAGE/$arch:$CI_COMMIT_REF_SLUG"; done'
|
||||
- 'IMAGES_LATEST=; for arch in $BUILD_ARCHES; do IMAGES_LATEST="$IMAGES_LATEST $CI_REGISTRY_IMAGE/$arch:latest"; done'
|
||||
- 'IMAGES_LATEST_STABLE=; for arch in $BUILD_ARCHES; do IMAGES_LATEST_STABLE="$IMAGES_LATEST_STABLE $CI_REGISTRY_IMAGE/$arch:latest"; done'
|
||||
- mkdir -p ~/.docker
|
||||
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > ~/.docker/config.json
|
||||
|
||||
docker-combine:latest:
|
||||
extends: .docker-combine
|
||||
only:
|
||||
- develop@pleroma/pleroma
|
||||
script:
|
||||
- 'docker manifest create $IMAGE_TAG $IMAGES'
|
||||
- 'docker manifest push $IMAGE_TAG'
|
||||
- 'docker manifest create $IMAGE_TAG_SLUG $IMAGES_SLUG'
|
||||
- 'docker manifest push $IMAGE_TAG_SLUG'
|
||||
- 'docker manifest create $IMAGE_TAG_LATEST $IMAGES_LATEST'
|
||||
- 'docker manifest push $IMAGE_TAG_LATEST'
|
||||
|
||||
docker-combine:stable:
|
||||
extends: .docker-combine
|
||||
only:
|
||||
- stable@pleroma/pleroma
|
||||
script:
|
||||
- 'docker manifest create $IMAGE_TAG $IMAGES'
|
||||
- 'docker manifest push $IMAGE_TAG'
|
||||
- 'docker manifest create $IMAGE_TAG_SLUG $IMAGES_SLUG'
|
||||
- 'docker manifest push $IMAGE_TAG_SLUG'
|
||||
- 'docker manifest create $IMAGE_TAG_LATEST_STABLE $IMAGES_LATEST_STABLE'
|
||||
- 'docker manifest push $IMAGE_TAG_LATEST_STABLE'
|
||||
|
||||
docker-combine:release:
|
||||
extends: .docker-combine
|
||||
only:
|
||||
- /^release/.*$/@pleroma/pleroma
|
||||
script:
|
||||
- 'docker manifest create $IMAGE_TAG $IMAGES'
|
||||
- 'docker manifest push $IMAGE_TAG'
|
||||
- 'docker manifest create $IMAGE_TAG_SLUG $IMAGES_SLUG'
|
||||
- 'docker manifest push $IMAGE_TAG_SLUG'
|
||||
|
|
10
.gitlab/merge_request_templates/Default.md
Normal file
10
.gitlab/merge_request_templates/Default.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
### Checklist
|
||||
- [ ] Adding a changelog: In the `changelog.d` directory, create a file named `<code>.<type>`.
|
||||
|
||||
`<code>` can be anything, but we recommend using a more or less unique identifier to avoid collisions, such as the branch name.
|
||||
|
||||
`<type>` can be `add`, `change`, `remove`, `fix`, `security` or `skip`. `skip` is only used if there is no user-visible change in the MR (for example, only editing comments in the code). Otherwise, choose a type that corresponds to your change.
|
||||
|
||||
In the file, write the changelog entry. For example, if an MR adds group functionality, we can create a file named `group.add` and write `Add group functionality` in it.
|
||||
|
||||
If one changelog entry is not enough, you may add more. But that might mean you can split it into two MRs. Only use more than one changelog entry if you really need to (for example, when one change in the code fix two different bugs, or when refactoring).
|
|
@ -1,6 +1,6 @@
|
|||
### Release checklist
|
||||
* [ ] Bump version in `mix.exs`
|
||||
* [ ] Compile a changelog
|
||||
* [ ] Compile a changelog with the `tools/collect-changelog` script
|
||||
* [ ] Create an MR with an announcement to pleroma.social
|
||||
#### post-merge
|
||||
* [ ] Tag the release on the merge commit
|
||||
|
|
1
.rgignore
Normal file
1
.rgignore
Normal file
|
@ -0,0 +1 @@
|
|||
priv/static
|
233
CHANGELOG.md
233
CHANGELOG.md
|
@ -4,20 +4,239 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
|
||||
## Unreleased
|
||||
## 2.7.0
|
||||
|
||||
### Security
|
||||
- HTTP Security: By default, don't allow unsafe-eval. The setting needs to be changed to allow Flash emulation.
|
||||
- Fix webfinger spoofing.
|
||||
- Use proper workers for fetching pins instead of an ad-hoc task, fixing a potential fetch loop
|
||||
|
||||
### Changed
|
||||
- Update to Phoenix 1.7
|
||||
- Elixir Logger configuration is now longer permitted through AdminFE and ConfigDB
|
||||
- Refactor the user backups code and improve test coverage
|
||||
- Invalid activities delivered to the inbox will be rejected with a 400 Bad Request
|
||||
- Support Bandit as an alternative to Cowboy for the HTTP server.
|
||||
- Update Bandit to 1.5.2
|
||||
- Replace eblurhash with rinpatch_blurhash. This also removes a dependency on ImageMagick.
|
||||
- Elixir 1.13 is the minimum required version.
|
||||
- Document maximum supported version of Erlang & Elixir
|
||||
- Update and extend NetBSD installation docs
|
||||
- Make `/api/v1/pleroma/federation_status` publicly available
|
||||
- Increase outgoing federation parallelism
|
||||
- Change Hackney connection pool timeouts to align with the values Gun uses
|
||||
- Transmogrifier: handle non-validate errors on incoming Delete activities
|
||||
- Remote object fetch failures will prevent the object fetch job from retrying if the object request returns 401, 403, 404, 410, or exceeds the maximum thread depth.
|
||||
- - Change AccountView `last_status_at` from a datetime to a date (as done in Mastodon 3.1.0)
|
||||
- Improve error logging when LDAP authentication fails.
|
||||
- Publisher jobs will not retry if the error received is a 400
|
||||
- PollWorker jobs will not retry if the activity no longer exists.
|
||||
- Improved detecting unrecoverable errors for incoming federation jobs
|
||||
- Changed some jobs to return :cancel on unrecoverable errors that should not be retried
|
||||
- Discard Remote Fetcher jobs which errored due to an MRF rejection.
|
||||
- Oban queues have refactored to simplify the queue design
|
||||
- Ensure all Oban jobs have timeouts defined
|
||||
- Optimistic Inbox reduces the processing overhead of incoming activities without instantly verifiable signatures.
|
||||
- HTTP connection pool adjustments
|
||||
- Disable jit by default for PostgreSQL
|
||||
- Update the documentation for configuring Prometheus metrics.
|
||||
- Change the prometheus library to PromEx.
|
||||
- Publisher jobs now store the the activity id instead of inserting duplicate JSON data in the Oban queue for each delivery.
|
||||
- Activity publishing failures will prevent the job from retrying if the publishing request returns a 403 or 410
|
||||
- Publisher errors will now emit logs indicating the inbox that was not available for delivery.
|
||||
- Reduce the reachability timestamp update to a single upsert query
|
||||
- A 422 error is returned when attempting to reply to a deleted status
|
||||
- Rich Media backfilling is now an Oban job
|
||||
- Refactored Rich Media to cache the content in the database. Fetching operations that could block status rendering have been eliminated.
|
||||
- Set default values on validators for transient objects (attachment, poll options)
|
||||
- User profile refreshes are now asynchronous
|
||||
- Change mediaproxy previews to use vips to generate thumbnails instead of ImageMagick
|
||||
- Render nice web push notifications for polls
|
||||
- Refactor the Mastodon /api/v1/streaming websocket handler to use Phoenix.Socket.Transport
|
||||
|
||||
### Added
|
||||
- Uploader: Add support for uploading attachments using IPFS
|
||||
- Add NSFW-detecting MRF
|
||||
- Add DNSRBL MRF
|
||||
- Add options to the mix prune_objects task
|
||||
- Add Anti-mention Spam MRF backported from Rebased
|
||||
- HTTPSignaturePlug: Add :authorized_fetch_mode_exceptions configuration
|
||||
- Support /authorize-interaction route used by Mastodon
|
||||
- Add an option to reject certain domains when authorized fetch is enabled.
|
||||
- Include following/followers in backups
|
||||
- Allow to group bookmarks in folders
|
||||
- Include image description in status media cards
|
||||
- Implement `/api/v1/accounts/familiar_followers`
|
||||
- Add support for configuring favicon, embed favicon and PWA manifest in server-generated meta
|
||||
- Implement FEP-2c59, add "webfinger" to user actor
|
||||
- Framegrabs with ffmpeg will execute with a 5 second timeout and cache the URLs of failures with a TTL of 15 minutes to prevent excessive retries.
|
||||
- Added a Mix task "pleroma.config fix_mrf_policies" which will remove erroneous MRF policies from ConfigDB.
|
||||
- Add ForceMention MRF
|
||||
- [docs] add frontends management documentation
|
||||
- Implement group actors
|
||||
- Add contact account to InstanceView
|
||||
- Add instance rules
|
||||
- Implement /api/v2/instance route
|
||||
- Verify profile link ownership with rel="me"
|
||||
- Logger metadata is now attached to some logs to help with troubleshooting and analysis
|
||||
- Add new parameters to /api/v2/instance: configuration[accounts][max_pinned_statuses] and configuration[statuses][characters_reserved_per_url]
|
||||
- Add meilisearch, make search engines pluggable
|
||||
- Add missing indexes on foreign key relationships
|
||||
- Startup detection for configured MRF modules that are missing or incorrectly defined
|
||||
- Permit passing --chunk and --step values to the Pleroma.Search.Indexer Mix task
|
||||
- Deleting, Unfavoriting, Unrepeating, or Unreacting will cancel undelivered publishing jobs for the original activity.
|
||||
- Oban jobs can now be viewed in the Live Dashboard
|
||||
- Add media proxy to opengraph rich media cards
|
||||
- Support for Erlang OTP 26
|
||||
- Prioritize mentioned recipients (i.e., those that are not just followers) when federating.
|
||||
- PromEx documentation
|
||||
- Expose nonAnonymous field from Smithereen polls
|
||||
- Add Qdrant/OpenAI embedding search
|
||||
- Adds the capability to add a URL to a scrobble (optional field)
|
||||
- scrubbers/default: Add more formatting elements from HTML4 / GoToSocial (acronym, bdo, big, cite, dfn, ins, kbd, q, samp, s, tt, var, wbr)
|
||||
- Monitoring of search backend health to control the processing of jobs in the search indexing Oban queue
|
||||
- Display reposted replies with exclude_replies: true
|
||||
- Add "status" notification type
|
||||
- Support honk-style attachment summaries as alt-text.
|
||||
|
||||
### Fixed
|
||||
- Fix Emoji object IDs not always being valid
|
||||
- Remove checking ImageMagick's commands for Pleroma.Upload.Filter.AnalyzeMetadata
|
||||
- Ensure that StripLocation actually removes everything resembling GPS data from PNGs
|
||||
- Fix authentication check on account rendering when bio is defined
|
||||
- ap userview: add outbox field.
|
||||
- Fix #strip_report_status_data
|
||||
- Fix federation with Convergence AP Bridge
|
||||
- ChatMessage: Tolerate attachment field set to an empty array
|
||||
- Config: Check the permissions of the linked file instead of the symlink
|
||||
- MediaProxy was setting the content-length header which is not permitted by RFC9112§6.2 when we are chunking the reply as it conflicts with the existence of the transfer-encoding header.
|
||||
- Restore Cowboy's ability to stream MediaProxy responses without Chunked encoding.
|
||||
- Fix the processing of email digest jobs.
|
||||
- Client application data was always missing from the status
|
||||
- Elixir 1.15 compatibility
|
||||
- When downloading remote emojis packs, account for pagination
|
||||
- Make remote emoji packs API use specifically the V1 URL. Akkoma does not understand it without V1, and it works either way with normal pleroma, so no reason to not do this
|
||||
- Following HTTP Redirects when the HTTP Adapter is Finch
|
||||
- Video framegrabs were not working correctly after the change to use Exile to execute ffmpeg
|
||||
- Deactivated groups would still try to repeat a post.
|
||||
- Fix logic error in Gun connection pooling which prevented retries even when the worker was launched with retry = true
|
||||
- Connection pool errors when publishing an activity is a soft-error that will be retried shortly.
|
||||
- Gun Connection Pool was not retrying to acquire a connection if the pool was full and stale connections were reclaimed
|
||||
- TwitterAPI: Return proper error when healthcheck is disabled
|
||||
- Handle cases when users.inbox is nil.
|
||||
- Fix LDAP support
|
||||
- Use correct domain for fqn and InstanceView
|
||||
- The query for marking notifications as read has been simplified
|
||||
- Mastodon API /api/v1/directory: Fix listing directory contents when not authenticated
|
||||
- Ensure MediaProxy HTTP requests obey all the defined connection settings
|
||||
- Fix a memory leak caused by Websocket connections that would not enter a state where a full garbage collection run could be triggered.
|
||||
- Fix OpenGraph and Twitter metadata providers when parsing objects with no content or summary fields.
|
||||
- MRF: Log sensible error for subdomains_regex
|
||||
- MRF.StealEmojiPolicy: Properly add fallback extension to filenames missing one
|
||||
- Federated timeline removal of hashtags via MRF HashtagPolicy
|
||||
- Support objects with a null contentMap (firefish)
|
||||
- Fix notifications query which was not using the index properly
|
||||
- Notifications: improve performance by filtering on users table instead of activities table
|
||||
- Prevent Rich Media backfill jobs from retrying in cases where it is likely they will fail again.
|
||||
- Oban Jobs for refreshing users were not respecting the uniqueness setting
|
||||
- Fix Optimistic Inbox for failed signatures
|
||||
- MediaProxy Preview failures prevented when encountering certain video files
|
||||
- pleroma_ctl: Use realpath(1) instead of readlink(1)
|
||||
- ReceiverWorker: Make sure non-{:ok, _} is returned as {:error, …}
|
||||
- Harden Rich Media parsing against very slow or malicious URLs
|
||||
- Rich Media Preview cache eviction when the activity is updated.
|
||||
- Parsing of RichMedia TTLs for Amazon URLs when query parameters are nil
|
||||
- End of poll notifications were not streamed over websockets or web push
|
||||
- Fix eblurhash and elixir-captcha not using system cflags
|
||||
- Video thumbnails were not being generated due to a negative cache lookup logic error
|
||||
- Fix web push notifications not successfully delivering
|
||||
- Web Push notifications are no longer generated for muted/blocked threads and users.
|
||||
- Fix validate_webfinger when running a different domain for Webfinger
|
||||
|
||||
### Removed
|
||||
- Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint https://github.com/mastodon/mastodon/pull/11213
|
||||
- Removed support for multiple federator modules as we only support ActivityPub
|
||||
|
||||
## 2.5.54
|
||||
## 2.6.2
|
||||
|
||||
### Security
|
||||
- MRF StealEmojiPolicy: Sanitize shortcodes (thanks to Hazel K for the report
|
||||
|
||||
## 2.6.1
|
||||
### Changed
|
||||
- - Document maximum supported version of Erlang & Elixir
|
||||
|
||||
### Added
|
||||
- [docs] add frontends management documentation
|
||||
|
||||
### Fixed
|
||||
- TwitterAPI: Return proper error when healthcheck is disabled
|
||||
- Fix eblurhash and elixir-captcha not using system cflags
|
||||
|
||||
## 2.6.0
|
||||
### Security
|
||||
- Preload: Make generated JSON html-safe. It already was html safe because it only consists of config data that is base64 encoded, but this will keep it safe it that ever changes.
|
||||
- CommonAPI: Prevent users from accessing media of other users by creating a status with reused attachment ID
|
||||
- Disable XML entity resolution completely to fix a dos vulnerability
|
||||
|
||||
### Added
|
||||
- Support for Image activities, namely from Hubzilla
|
||||
- Add OAuth scope descriptions
|
||||
- Allow lang attribute in status text
|
||||
- OnlyMedia Upload Filter
|
||||
- Implement MRF policy to reject or delist according to emojis
|
||||
- (hardening) Add no_new_privs=yes to OpenRC service files
|
||||
- Implement quotes
|
||||
- Add unified streaming endpoint
|
||||
|
||||
### Fixed
|
||||
- rel="me" was missing its cache
|
||||
- MediaProxy responses now return a sandbox CSP header
|
||||
- Filter context activities using Visibility.visible_for_user?
|
||||
- UploadedMedia: Add missing disposition_type to Content-Disposition
|
||||
- fix not being able to fetch flash file from remote instance
|
||||
- Fix abnormal behaviour when refetching a poll
|
||||
- Allow non-HTTP(s) URIs in "url" fields for compatibility with "FEP-fffd: Proxy Objects"
|
||||
- Fix opengraph and twitter card meta tags
|
||||
- ForceMentionsInContent: fix double mentions for Mastodon/Misskey posts
|
||||
- OEmbed HTML tags are now filtered
|
||||
- Restrict attachments to only uploaded files only
|
||||
- Fix error 404 when deleting status of a banned user
|
||||
- Fix config ownership in dockerfile to pass restriction test
|
||||
- Fix user fetch completely broken if featured collection is not in a supported form
|
||||
- Correctly handle the situation when a poll has both "anyOf" and "oneOf" but one of them being empty
|
||||
- Fix handling report from a deactivated user
|
||||
- Prevent using the .json format to bypass authorized fetch mode
|
||||
- Fix mentioning punycode domains when using Markdown
|
||||
- Show more informative errors when profile exceeds char limits
|
||||
|
||||
### Removed
|
||||
- BREAKING: Support for passwords generated with `crypt(3)` (Gnu Social migration artifact)
|
||||
- remove BBS/SSH feature, replaced by an external bridge.
|
||||
- Remove a few unused indexes.
|
||||
- Cleanup OStatus-era user upgrades and ap_enabled indicator
|
||||
- Deprecate Pleroma's audio scrobbling
|
||||
|
||||
## 2.5.4
|
||||
|
||||
## Security
|
||||
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitary files from the server's filesystem
|
||||
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitrary files from the server's filesystem
|
||||
|
||||
## 2.5.3
|
||||
|
||||
### Security
|
||||
- Emoji pack loader sanitizes pack names
|
||||
- Reduced permissions of config files and directories, distros requiring greater permissions like group-read need to pre-create the directories
|
||||
|
||||
## 2.5.5
|
||||
|
||||
## Security
|
||||
- Prevent users from accessing media of other users by creating a status with reused attachment ID
|
||||
|
||||
## 2.5.4
|
||||
|
||||
## Security
|
||||
- Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitrary files from the server's filesystem
|
||||
|
||||
## 2.5.3
|
||||
|
||||
|
@ -57,7 +276,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||
- Fix `block_from_stranger` setting
|
||||
- Fix rel="me"
|
||||
- Docker images will now run properly
|
||||
- Fix inproper content being cached in report content
|
||||
- Fix improper content being cached in report content
|
||||
- Notification filter on object content will not operate on the ones that inherently have no content
|
||||
- ZWNJ and double dots in links are parsed properly for Plain-text posts
|
||||
- OTP releases will work on systems with a newer libcrypt
|
||||
|
@ -723,7 +942,7 @@ switched to a new configuration mechanism, however it was not officially removed
|
|||
- Rate limiter crashes when there is no explicitly specified ip in the config
|
||||
- 500 errors when no `Accept` header is present if Static-FE is enabled
|
||||
- Instance panel not being updated immediately due to wrong `Cache-Control` headers
|
||||
- Statuses posted with BBCode/Markdown having unncessary newlines in Pleroma-FE
|
||||
- Statuses posted with BBCode/Markdown having unnecessary newlines in Pleroma-FE
|
||||
- OTP: Fix some settings not being migrated to in-database config properly
|
||||
- No `Cache-Control` headers on attachment/media proxy requests
|
||||
- Character limit enforcement being off by 1
|
||||
|
@ -1043,10 +1262,10 @@ curl -Lo ./bin/pleroma_ctl 'https://git.pleroma.social/pleroma/pleroma/raw/devel
|
|||
- Reverse Proxy limiting `max_body_length` was incorrectly defined and only checked `Content-Length` headers which may not be sufficient in some circumstances
|
||||
|
||||
### Added
|
||||
- Expiring/ephemeral activites. All activities can have expires_at value set, which controls when they should be deleted automatically.
|
||||
- Expiring/ephemeral activities. All activities can have expires_at value set, which controls when they should be deleted automatically.
|
||||
- Mastodon API: in post_status, the expires_in parameter lets you set the number of seconds until an activity expires. It must be at least one hour.
|
||||
- Mastodon API: all status JSON responses contain a `pleroma.expires_at` item which states when an activity will expire. The value is only shown to the user who created the activity. To everyone else it's empty.
|
||||
- Configuration: `ActivityExpiration.enabled` controls whether expired activites will get deleted at the appropriate time. Enabled by default.
|
||||
- Configuration: `ActivityExpiration.enabled` controls whether expired activities will get deleted at the appropriate time. Enabled by default.
|
||||
- Conversations: Add Pleroma-specific conversation endpoints and status posting extensions. Run the `bump_all_conversations` task again to create the necessary data.
|
||||
- MRF: Support for priming the mediaproxy cache (`Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy`)
|
||||
- MRF: Support for excluding specific domains from Transparency.
|
||||
|
|
17
Dockerfile
17
Dockerfile
|
@ -1,14 +1,17 @@
|
|||
ARG ELIXIR_VER=1.11.4
|
||||
ARG ERLANG_VER=24.2.1
|
||||
ARG ALPINE_VER=3.17.0
|
||||
# https://hub.docker.com/r/hexpm/elixir/tags
|
||||
ARG ELIXIR_IMG=hexpm/elixir
|
||||
ARG ELIXIR_VER=1.14.5
|
||||
ARG ERLANG_VER=25.3.2.14
|
||||
ARG ALPINE_VER=3.17.9
|
||||
|
||||
FROM hexpm/elixir:${ELIXIR_VER}-erlang-${ERLANG_VER}-alpine-${ALPINE_VER} as build
|
||||
FROM ${ELIXIR_IMG}:${ELIXIR_VER}-erlang-${ERLANG_VER}-alpine-${ALPINE_VER} as build
|
||||
|
||||
COPY . .
|
||||
|
||||
ENV MIX_ENV=prod
|
||||
ENV VIX_COMPILATION_MODE=PLATFORM_PROVIDED_LIBVIPS
|
||||
|
||||
RUN apk add git gcc g++ musl-dev make cmake file-dev &&\
|
||||
RUN apk add git gcc g++ musl-dev make cmake file-dev vips-dev &&\
|
||||
echo "import Config" > config/prod.secret.exs &&\
|
||||
mix local.hex --force &&\
|
||||
mix local.rebar --force &&\
|
||||
|
@ -36,7 +39,7 @@ ARG HOME=/opt/pleroma
|
|||
ARG DATA=/var/lib/pleroma
|
||||
|
||||
RUN apk update &&\
|
||||
apk add exiftool ffmpeg imagemagick libmagic ncurses postgresql-client &&\
|
||||
apk add exiftool ffmpeg vips libmagic ncurses postgresql-client &&\
|
||||
adduser --system --shell /bin/false --home ${HOME} pleroma &&\
|
||||
mkdir -p ${DATA}/uploads &&\
|
||||
mkdir -p ${DATA}/static &&\
|
||||
|
@ -48,7 +51,7 @@ USER pleroma
|
|||
|
||||
COPY --from=build --chown=pleroma:0 /release ${HOME}
|
||||
|
||||
COPY ./config/docker.exs /etc/pleroma/config.exs
|
||||
COPY --chown=pleroma --chmod=640 ./config/docker.exs /etc/pleroma/config.exs
|
||||
COPY ./docker-entrypoint.sh ${HOME}
|
||||
|
||||
EXPOSE 4000
|
||||
|
|
|
@ -30,7 +30,8 @@ If your platform is not supported, or you just want to be able to edit the sourc
|
|||
- [OpenBSD (fi)](https://docs-develop.pleroma.social/backend/installation/openbsd_fi/)
|
||||
|
||||
### OS/Distro packages
|
||||
Currently Pleroma is packaged for [YunoHost](https://yunohost.org) and [NixOS](https://nixos.org). If you want to package Pleroma for any OS/Distros, we can guide you through the process on our [community channels](#community-channels). If you want to change default options in your Pleroma package, please **discuss it with us first**.
|
||||
Currently Pleroma is packaged for [YunoHost](https://yunohost.org), [NixOS](https://nixos.org), [Gentoo through GURU](https://gentoo.org/) and [Archlinux through AUR](https://aur.archlinux.org/packages/pleroma). You may find more at <https://repology.org/project/pleroma/versions>.
|
||||
If you want to package Pleroma for any OS/Distros, we can guide you through the process on our [community channels](#community-channels). If you want to change default options in your Pleroma package, please **discuss it with us first**.
|
||||
|
||||
### Docker
|
||||
While we don’t provide docker files, other people have written very good ones. Take a look at <https://github.com/angristan/docker-pleroma> or <https://glitch.sh/sn0w/pleroma-docker>.
|
||||
|
|
|
@ -3,8 +3,20 @@
|
|||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
defmodule Mix.Tasks.Pleroma.Benchmark do
|
||||
import Mix.Pleroma
|
||||
@shortdoc "Benchmarks"
|
||||
@moduledoc """
|
||||
Benchmark tasks available:
|
||||
|
||||
adapters
|
||||
render_timeline
|
||||
search
|
||||
tag
|
||||
|
||||
MIX_ENV=benchmark mix pleroma.benchmark adapters
|
||||
"""
|
||||
|
||||
use Mix.Task
|
||||
import Mix.Pleroma
|
||||
|
||||
def run(["search"]) do
|
||||
start_pleroma()
|
||||
|
@ -63,7 +75,7 @@ defmodule Mix.Tasks.Pleroma.Benchmark do
|
|||
|
||||
Benchee.run(
|
||||
%{
|
||||
"Standart rendering" => fn activities ->
|
||||
"Standard rendering" => fn activities ->
|
||||
Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{
|
||||
activities: activities,
|
||||
for: user,
|
|
@ -1 +0,0 @@
|
|||
MediaProxy responses now return a sandbox CSP header
|
|
@ -1 +0,0 @@
|
|||
Fix abnormal behaviour when refetching a poll
|
|
@ -1 +0,0 @@
|
|||
OEmbed HTML tags are now filtered
|
|
@ -1 +0,0 @@
|
|||
Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitary files from the server's filesystem
|
1
changelog.d/argon2-passwords.add
Normal file
1
changelog.d/argon2-passwords.add
Normal file
|
@ -0,0 +1 @@
|
|||
Added support for argon2 passwords and their conversion for migration from Akkoma fork to upstream.
|
1
changelog.d/bugfix-truncate-remote-user-fields.fix
Normal file
1
changelog.d/bugfix-truncate-remote-user-fields.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Truncate remote user fields, avoids them getting rejected
|
0
changelog.d/ci-git-fetch.skip
Normal file
0
changelog.d/ci-git-fetch.skip
Normal file
0
changelog.d/commonapi.skip
Normal file
0
changelog.d/commonapi.skip
Normal file
1
changelog.d/deprecate-subscribe.change
Normal file
1
changelog.d/deprecate-subscribe.change
Normal file
|
@ -0,0 +1 @@
|
|||
Deprecate `/api/v1/pleroma/accounts/:id/subscribe`/`unsubscribe`
|
0
changelog.d/dialyzer.skip
Normal file
0
changelog.d/dialyzer.skip
Normal file
0
changelog.d/docs-fix.skip
Normal file
0
changelog.d/docs-fix.skip
Normal file
1
changelog.d/drop-unwanted.change
Normal file
1
changelog.d/drop-unwanted.change
Normal file
|
@ -0,0 +1 @@
|
|||
Restrict incoming activities from unknown actors to a subset that does not imply a previous relationship and early rejection of unrecognized activity types.
|
0
changelog.d/elixir-1.14-docker.skip
Normal file
0
changelog.d/elixir-1.14-docker.skip
Normal file
1
changelog.d/elixir.change
Normal file
1
changelog.d/elixir.change
Normal file
|
@ -0,0 +1 @@
|
|||
Elixir 1.14 and Erlang/OTP 23 is now the minimum supported release
|
|
@ -1 +0,0 @@
|
|||
Emoji pack loader sanitizes pack names
|
|
@ -1 +0,0 @@
|
|||
Correctly handle the situation when a poll has both "anyOf" and "oneOf" but one of them being empty
|
1
changelog.d/follow-request.fix
Normal file
1
changelog.d/follow-request.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Fixed malformed follow requests that cause them to appear stuck pending due to the recipient being unable to process them.
|
1
changelog.d/follow-validator.fix
Normal file
1
changelog.d/follow-validator.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Improve the FollowValidator to successfully incoming activities with an errant cc field.
|
1
changelog.d/following-state.fix
Normal file
1
changelog.d/following-state.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Resolved edge case where the API can report you are following a user but the relationship is not fully established.
|
1
changelog.d/get-statuses-param.change
Normal file
1
changelog.d/get-statuses-param.change
Normal file
|
@ -0,0 +1 @@
|
|||
Support `id` param in `GET /api/v1/statuses`
|
1
changelog.d/identity-proofs.remove
Normal file
1
changelog.d/identity-proofs.remove
Normal file
|
@ -0,0 +1 @@
|
|||
Remove stub for /api/v1/accounts/:id/identity_proofs (deprecated by Mastodon 3.5.0)
|
1
changelog.d/ldap-ca.add
Normal file
1
changelog.d/ldap-ca.add
Normal file
|
@ -0,0 +1 @@
|
|||
LDAP configuration now permits overriding the CA root certificate file for TLS validation.
|
1
changelog.d/ldap-refactor.change
Normal file
1
changelog.d/ldap-refactor.change
Normal file
|
@ -0,0 +1 @@
|
|||
LDAP authentication has been refactored to operate as a GenServer process which will maintain an active connection to the LDAP server.
|
1
changelog.d/ldap-tls.fix
Normal file
1
changelog.d/ldap-tls.fix
Normal file
|
@ -0,0 +1 @@
|
|||
STARTTLS certificate and hostname verification for LDAP authentication
|
0
changelog.d/ldap-warning.skip
Normal file
0
changelog.d/ldap-warning.skip
Normal file
1
changelog.d/ldaps.fix
Normal file
1
changelog.d/ldaps.fix
Normal file
|
@ -0,0 +1 @@
|
|||
LDAPS connections (implicit TLS) are now supported.
|
1
changelog.d/list-id-visibility.add
Normal file
1
changelog.d/list-id-visibility.add
Normal file
|
@ -0,0 +1 @@
|
|||
Include list id in StatusView
|
1
changelog.d/mailgun.fix
Normal file
1
changelog.d/mailgun.fix
Normal file
|
@ -0,0 +1 @@
|
|||
The Swoosh email adapter for Mailgun was missing a new dependency on :multipart
|
0
changelog.d/manifest-icon-size.skip
Normal file
0
changelog.d/manifest-icon-size.skip
Normal file
0
changelog.d/mogrify.skip
Normal file
0
changelog.d/mogrify.skip
Normal file
0
changelog.d/mrf-cleanup.skip
Normal file
0
changelog.d/mrf-cleanup.skip
Normal file
1
changelog.d/mrf-fodirectreply.add
Normal file
1
changelog.d/mrf-fodirectreply.add
Normal file
|
@ -0,0 +1 @@
|
|||
Added MRF.FODirectReply which changes replies to followers-only posts to be direct.
|
1
changelog.d/mrf-id_filter.add
Normal file
1
changelog.d/mrf-id_filter.add
Normal file
|
@ -0,0 +1 @@
|
|||
Add `id_filter` to MRF to filter URLs and their domain prior to fetching
|
1
changelog.d/mrf-quietreply.add
Normal file
1
changelog.d/mrf-quietreply.add
Normal file
|
@ -0,0 +1 @@
|
|||
Added MRF.QuietReply which prevents replies to public posts from being published to the timelines
|
1
changelog.d/notifications-group-key.add
Normal file
1
changelog.d/notifications-group-key.add
Normal file
|
@ -0,0 +1 @@
|
|||
Add `group_key` to notifications
|
1
changelog.d/notifications-marker.change
Normal file
1
changelog.d/notifications-marker.change
Normal file
|
@ -0,0 +1 @@
|
|||
Fix 'Setting a marker should mark notifications as read'
|
1
changelog.d/oauth-app-spam.fix
Normal file
1
changelog.d/oauth-app-spam.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Add a rate limiter to the OAuth App creation endpoint and ensure registered apps are assigned to users.
|
1
changelog.d/oban-recevier-improvements.fix
Normal file
1
changelog.d/oban-recevier-improvements.fix
Normal file
|
@ -0,0 +1 @@
|
|||
ReceiverWorker will cancel processing jobs instead of retrying if the user cannot be fetched due to 403, 404, or 410 errors or if the account is disabled locally.
|
1
changelog.d/oban-uniques.change
Normal file
1
changelog.d/oban-uniques.change
Normal file
|
@ -0,0 +1 @@
|
|||
Adjust more Oban workers to enforce unique job constraints.
|
1
changelog.d/oban-update.change
Normal file
1
changelog.d/oban-update.change
Normal file
|
@ -0,0 +1 @@
|
|||
Oban updated to 2.18.3
|
1
changelog.d/oban_gun_snooze.change
Normal file
1
changelog.d/oban_gun_snooze.change
Normal file
|
@ -0,0 +1 @@
|
|||
Publisher behavior improvement when snoozing Oban jobs due to Gun connection pool contention.
|
|
@ -1 +0,0 @@
|
|||
- Reduced permissions of config files and directories, distros requiring greater permissions like group-read need to pre-create the directories
|
1
changelog.d/profile-image-descriptions.add
Normal file
1
changelog.d/profile-image-descriptions.add
Normal file
|
@ -0,0 +1 @@
|
|||
Allow providing avatar/header descriptions
|
1
changelog.d/publisher-reachability.fix
Normal file
1
changelog.d/publisher-reachability.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Address case where instance reachability status couldn't be updated
|
1
changelog.d/remote-object-fetcher.fix
Normal file
1
changelog.d/remote-object-fetcher.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Remote Fetcher Worker recognizes more permanent failure errors
|
1
changelog.d/rich-media-no-heads.change
Normal file
1
changelog.d/rich-media-no-heads.change
Normal file
|
@ -0,0 +1 @@
|
|||
Rich Media preview fetching will skip making an HTTP HEAD request to check a URL for allowed content type and length if the Tesla adapter is Gun or Finch
|
1
changelog.d/scrubbers-allow-mention-hashtag.add
Normal file
1
changelog.d/scrubbers-allow-mention-hashtag.add
Normal file
|
@ -0,0 +1 @@
|
|||
scrubbers/default: Allow "mention hashtag" classes used by Mastodon
|
1
changelog.d/stream-follow-relationships-count.fix
Normal file
1
changelog.d/stream-follow-relationships-count.fix
Normal file
|
@ -0,0 +1 @@
|
|||
StreamerView: Do not leak follows count if hidden
|
1
changelog.d/swoosh-mua.add
Normal file
1
changelog.d/swoosh-mua.add
Normal file
|
@ -0,0 +1 @@
|
|||
Added dependencies for Swoosh's Mua mail adapter
|
0
changelog.d/text-extensions.skip
Normal file
0
changelog.d/text-extensions.skip
Normal file
0
changelog.d/todo-cleanup.skip
Normal file
0
changelog.d/todo-cleanup.skip
Normal file
1
changelog.d/update-oban.change
Normal file
1
changelog.d/update-oban.change
Normal file
|
@ -0,0 +1 @@
|
|||
Update Oban to 2.18
|
0
changelog.d/user-factory.skip
Normal file
0
changelog.d/user-factory.skip
Normal file
1
changelog.d/user-imports.fix
Normal file
1
changelog.d/user-imports.fix
Normal file
|
@ -0,0 +1 @@
|
|||
Imports of blocks, mutes, and follows would retry repeatedly due to incorrect error handling and all work executed in a single job
|
1
changelog.d/well-known.change
Normal file
1
changelog.d/well-known.change
Normal file
|
@ -0,0 +1 @@
|
|||
Accept application/activity+json for requests to .well-known/nodeinfo
|
1
changelog.d/workerhelper.change
Normal file
1
changelog.d/workerhelper.change
Normal file
|
@ -0,0 +1 @@
|
|||
Worker configuration is no longer available. This only affects custom max_retries values for a couple Oban queues.
|
|
@ -1 +0,0 @@
|
|||
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:latest --push .
|
|
@ -1,4 +1,4 @@
|
|||
FROM elixir:1.11.4
|
||||
FROM elixir:1.14.5-otp-25
|
||||
|
||||
# Single RUN statement, otherwise intermediate images are created
|
||||
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
|
1
ci/elixir-1.14.5-otp-25/build_and_push.sh
Executable file
1
ci/elixir-1.14.5-otp-25/build_and_push.sh
Executable file
|
@ -0,0 +1 @@
|
|||
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.14.5-otp-25 --push .
|
8
ci/elixir-1.15.8-otp-26/Dockerfile
Normal file
8
ci/elixir-1.15.8-otp-26/Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
|||
FROM elixir:1.15.8-otp-26
|
||||
|
||||
# Single RUN statement, otherwise intermediate images are created
|
||||
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
|
||||
RUN apt-get update &&\
|
||||
apt-get install -y libmagic-dev cmake libimage-exiftool-perl ffmpeg &&\
|
||||
mix local.hex --force &&\
|
||||
mix local.rebar --force
|
1
ci/elixir-1.15.8-otp-26/build_and_push.sh
Executable file
1
ci/elixir-1.15.8-otp-26/build_and_push.sh
Executable file
|
@ -0,0 +1 @@
|
|||
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.15.8-otp-26 --push .
|
8
ci/elixir-1.16.3-otp-26/Dockerfile
Normal file
8
ci/elixir-1.16.3-otp-26/Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
|||
FROM elixir:1.16.3-otp-26
|
||||
|
||||
# Single RUN statement, otherwise intermediate images are created
|
||||
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
|
||||
RUN apt-get update &&\
|
||||
apt-get install -y libmagic-dev cmake libimage-exiftool-perl ffmpeg &&\
|
||||
mix local.hex --force &&\
|
||||
mix local.rebar --force
|
1
ci/elixir-1.16.3-otp-26/build_and_push.sh
Executable file
1
ci/elixir-1.16.3-otp-26/build_and_push.sh
Executable file
|
@ -0,0 +1 @@
|
|||
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.16.3-otp-26 --push .
|
8
ci/elixir-1.17.1-otp-26/Dockerfile
Normal file
8
ci/elixir-1.17.1-otp-26/Dockerfile
Normal file
|
@ -0,0 +1,8 @@
|
|||
FROM elixir:1.17.1-otp-26
|
||||
|
||||
# Single RUN statement, otherwise intermediate images are created
|
||||
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
|
||||
RUN apt-get update &&\
|
||||
apt-get install -y libmagic-dev cmake libimage-exiftool-perl ffmpeg &&\
|
||||
mix local.hex --force &&\
|
||||
mix local.rebar --force
|
1
ci/elixir-1.17.1-otp-26/build_and_push.sh
Executable file
1
ci/elixir-1.17.1-otp-26/build_and_push.sh
Executable file
|
@ -0,0 +1 @@
|
|||
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/ci-base:elixir-1.17.1-otp-26 --push .
|
3
ci/postgres-with-rum-13/Dockerfile
Normal file
3
ci/postgres-with-rum-13/Dockerfile
Normal file
|
@ -0,0 +1,3 @@
|
|||
FROM postgres:13-bullseye
|
||||
|
||||
RUN apt-get update && apt-get install -y postgresql-13-rum/bullseye-pgdg
|
1
ci/postgres-with-rum-13/build_and_push.sh
Executable file
1
ci/postgres-with-rum-13/build_and_push.sh
Executable file
|
@ -0,0 +1 @@
|
|||
docker buildx build --platform linux/amd64,linux/arm64 -t git.pleroma.social:5050/pleroma/pleroma/postgres-with-rum-13:latest --push .
|
|
@ -14,7 +14,7 @@ config :pleroma, Pleroma.Captcha,
|
|||
method: Pleroma.Captcha.Mock
|
||||
|
||||
# Print only warnings and errors during test
|
||||
config :logger, level: :warn
|
||||
config :logger, level: :warning
|
||||
|
||||
config :pleroma, :auth, oauth_consumer_strategies: []
|
||||
|
||||
|
@ -79,6 +79,10 @@ IO.puts("RUM enabled: #{rum_enabled}")
|
|||
|
||||
config :pleroma, Pleroma.ReverseProxy.Client, Pleroma.ReverseProxy.ClientMock
|
||||
|
||||
config :pleroma, Pleroma.Application,
|
||||
background_migrators: false,
|
||||
streamer_registry: false
|
||||
|
||||
if File.exists?("./config/benchmark.secret.exs") do
|
||||
import_config "benchmark.secret.exs"
|
||||
else
|
||||
|
|
|
@ -82,6 +82,10 @@ config :ex_aws, :s3,
|
|||
# region: "us-east-1", # may be required for Amazon AWS
|
||||
scheme: "https://"
|
||||
|
||||
config :pleroma, Pleroma.Uploaders.IPFS,
|
||||
post_gateway_url: "http://localhost:5001",
|
||||
get_gateway_url: "http://localhost:8080"
|
||||
|
||||
config :pleroma, :emoji,
|
||||
shortcode_globs: ["/emoji/custom/**/*.png"],
|
||||
pack_extensions: [".png", ".gif"],
|
||||
|
@ -110,32 +114,11 @@ config :pleroma, :uri_schemes,
|
|||
"xmpp"
|
||||
]
|
||||
|
||||
websocket_config = [
|
||||
path: "/websocket",
|
||||
serializer: [
|
||||
{Phoenix.Socket.V1.JSONSerializer, "~> 1.0.0"},
|
||||
{Phoenix.Socket.V2.JSONSerializer, "~> 2.0.0"}
|
||||
],
|
||||
timeout: 60_000,
|
||||
transport_log: false,
|
||||
compress: false
|
||||
]
|
||||
|
||||
# Configures the endpoint
|
||||
config :pleroma, Pleroma.Web.Endpoint,
|
||||
url: [host: "localhost"],
|
||||
http: [
|
||||
ip: {127, 0, 0, 1},
|
||||
dispatch: [
|
||||
{:_,
|
||||
[
|
||||
{"/api/v1/streaming", Pleroma.Web.MastodonAPI.WebsocketHandler, []},
|
||||
{"/websocket", Phoenix.Endpoint.CowboyWebSocket,
|
||||
{Phoenix.Transports.WebSocket,
|
||||
{Pleroma.Web.Endpoint, Pleroma.Web.UserSocket, websocket_config}}},
|
||||
{:_, Phoenix.Endpoint.Cowboy2Handler, {Pleroma.Web.Endpoint, []}}
|
||||
]}
|
||||
]
|
||||
ip: {127, 0, 0, 1}
|
||||
],
|
||||
protocol: "https",
|
||||
secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl",
|
||||
|
@ -149,16 +132,18 @@ config :pleroma, Pleroma.Web.Endpoint,
|
|||
]
|
||||
|
||||
# Configures Elixir's Logger
|
||||
config :logger, backends: [:console]
|
||||
|
||||
config :logger, :console,
|
||||
level: :debug,
|
||||
format: "\n$time $metadata[$level] $message\n",
|
||||
metadata: [:request_id]
|
||||
metadata: [:actor, :path, :type, :user]
|
||||
|
||||
config :logger, :ex_syslogger,
|
||||
level: :debug,
|
||||
ident: "pleroma",
|
||||
format: "$metadata[$level] $message",
|
||||
metadata: [:request_id]
|
||||
metadata: [:actor, :path, :type, :user]
|
||||
|
||||
config :mime, :types, %{
|
||||
"application/xml" => ["xml"],
|
||||
|
@ -185,6 +170,7 @@ config :pleroma, :instance,
|
|||
short_description: "",
|
||||
background_image: "/images/city.jpg",
|
||||
instance_thumbnail: "/instance/thumbnail.jpeg",
|
||||
favicon: "/favicon.png",
|
||||
limit: 5_000,
|
||||
description_limit: 5_000,
|
||||
remote_limit: 100_000,
|
||||
|
@ -205,12 +191,10 @@ config :pleroma, :instance,
|
|||
federating: true,
|
||||
federation_incoming_replies_max_depth: 100,
|
||||
federation_reachability_timeout_days: 7,
|
||||
federation_publisher_modules: [
|
||||
Pleroma.Web.ActivityPub.Publisher
|
||||
],
|
||||
allow_relay: true,
|
||||
public: true,
|
||||
quarantined_instances: [],
|
||||
rejected_instances: [],
|
||||
static_dir: "instance/static/",
|
||||
allowed_post_formats: [
|
||||
"text/plain",
|
||||
|
@ -360,6 +344,8 @@ config :pleroma, :manifest,
|
|||
icons: [
|
||||
%{
|
||||
src: "/static/logo.svg",
|
||||
sizes: "512x512",
|
||||
purpose: "any",
|
||||
type: "image/svg+xml"
|
||||
}
|
||||
],
|
||||
|
@ -408,6 +394,12 @@ config :pleroma, :mrf_keyword,
|
|||
federated_timeline_removal: [],
|
||||
replace: []
|
||||
|
||||
config :pleroma, :mrf_emoji,
|
||||
remove_url: [],
|
||||
remove_shortcode: [],
|
||||
federated_timeline_removal_url: [],
|
||||
federated_timeline_removal_shortcode: []
|
||||
|
||||
config :pleroma, :mrf_hashtag,
|
||||
sensitive: ["nsfw"],
|
||||
reject: [],
|
||||
|
@ -421,13 +413,33 @@ config :pleroma, :mrf_vocabulary,
|
|||
accept: [],
|
||||
reject: []
|
||||
|
||||
config :pleroma, :mrf_dnsrbl,
|
||||
nameserver: "127.0.0.1",
|
||||
port: 53,
|
||||
zone: "bl.pleroma.com"
|
||||
|
||||
# threshold of 7 days
|
||||
config :pleroma, :mrf_object_age,
|
||||
threshold: 604_800,
|
||||
actions: [:delist, :strip_followers]
|
||||
|
||||
config :pleroma, :mrf_nsfw_api,
|
||||
url: "http://127.0.0.1:5000/",
|
||||
threshold: 0.7,
|
||||
mark_sensitive: true,
|
||||
unlist: false,
|
||||
reject: false
|
||||
|
||||
config :pleroma, :mrf_follow_bot, follower_nickname: nil
|
||||
|
||||
config :pleroma, :mrf_inline_quote, template: "<bdi>RT:</bdi> {url}"
|
||||
|
||||
config :pleroma, :mrf_force_mention,
|
||||
mention_parent: true,
|
||||
mention_quoted: true
|
||||
|
||||
config :pleroma, :mrf_antimentionspam, user_age_limit: 30_000
|
||||
|
||||
config :pleroma, :rich_media,
|
||||
enabled: true,
|
||||
ignore_hosts: [],
|
||||
|
@ -436,8 +448,12 @@ config :pleroma, :rich_media,
|
|||
Pleroma.Web.RichMedia.Parsers.TwitterCard,
|
||||
Pleroma.Web.RichMedia.Parsers.OEmbed
|
||||
],
|
||||
failure_backoff: 60_000,
|
||||
ttl_setters: [Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl]
|
||||
timeout: 5_000,
|
||||
ttl_setters: [
|
||||
Pleroma.Web.RichMedia.Parser.TTL.AwsSignedUrl,
|
||||
Pleroma.Web.RichMedia.Parser.TTL.Opengraph
|
||||
],
|
||||
max_body: 5_000_000
|
||||
|
||||
config :pleroma, :media_proxy,
|
||||
enabled: false,
|
||||
|
@ -506,7 +522,8 @@ config :pleroma, :http_security,
|
|||
sts: false,
|
||||
sts_max_age: 31_536_000,
|
||||
ct_max_age: 2_592_000,
|
||||
referrer_policy: "same-origin"
|
||||
referrer_policy: "same-origin",
|
||||
allow_unsafe_eval: false
|
||||
|
||||
config :cors_plug,
|
||||
max_age: 86_400,
|
||||
|
@ -563,38 +580,25 @@ config :pleroma, Pleroma.User,
|
|||
],
|
||||
email_blacklist: []
|
||||
|
||||
# The Pruner :max_age must be longer than Worker :unique
|
||||
# value or it cannot enforce uniqueness.
|
||||
config :pleroma, Oban,
|
||||
repo: Pleroma.Repo,
|
||||
log: false,
|
||||
queues: [
|
||||
activity_expiration: 10,
|
||||
token_expiration: 5,
|
||||
filter_expiration: 1,
|
||||
backup: 1,
|
||||
federator_incoming: 5,
|
||||
federator_outgoing: 5,
|
||||
ingestion_queue: 50,
|
||||
federator_outgoing: 25,
|
||||
web_push: 50,
|
||||
mailer: 10,
|
||||
transmogrifier: 20,
|
||||
scheduled_activities: 10,
|
||||
poll_notifications: 10,
|
||||
background: 5,
|
||||
remote_fetcher: 2,
|
||||
attachments_cleanup: 1,
|
||||
new_users_digest: 1,
|
||||
mute_expire: 5
|
||||
background: 20,
|
||||
search_indexing: [limit: 10, paused: true],
|
||||
slow: 5
|
||||
],
|
||||
plugins: [Oban.Plugins.Pruner],
|
||||
plugins: [{Oban.Plugins.Pruner, max_age: 900}],
|
||||
crontab: [
|
||||
{"0 0 * * 0", Pleroma.Workers.Cron.DigestEmailsWorker},
|
||||
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker}
|
||||
]
|
||||
|
||||
config :pleroma, :workers,
|
||||
retries: [
|
||||
federator_incoming: 5,
|
||||
federator_outgoing: 5
|
||||
{"0 0 * * *", Pleroma.Workers.Cron.NewUsersDigestWorker},
|
||||
{"*/10 * * * *", Pleroma.Workers.Cron.AppCleanupWorker}
|
||||
]
|
||||
|
||||
config :pleroma, Pleroma.Formatter,
|
||||
|
@ -608,17 +612,17 @@ config :pleroma, Pleroma.Formatter,
|
|||
|
||||
config :pleroma, :ldap,
|
||||
enabled: System.get_env("LDAP_ENABLED") == "true",
|
||||
host: System.get_env("LDAP_HOST") || "localhost",
|
||||
port: String.to_integer(System.get_env("LDAP_PORT") || "389"),
|
||||
host: System.get_env("LDAP_HOST", "localhost"),
|
||||
port: String.to_integer(System.get_env("LDAP_PORT", "389")),
|
||||
ssl: System.get_env("LDAP_SSL") == "true",
|
||||
sslopts: [],
|
||||
tls: System.get_env("LDAP_TLS") == "true",
|
||||
tlsopts: [],
|
||||
base: System.get_env("LDAP_BASE") || "dc=example,dc=com",
|
||||
uid: System.get_env("LDAP_UID") || "cn"
|
||||
|
||||
config :esshd,
|
||||
enabled: false
|
||||
base: System.get_env("LDAP_BASE", "dc=example,dc=com"),
|
||||
uid: System.get_env("LDAP_UID", "cn"),
|
||||
# defaults to CAStore's Mozilla roots
|
||||
cacertfile: System.get_env("LDAP_CACERTFILE", nil),
|
||||
mail: System.get_env("LDAP_MAIL", "mail")
|
||||
|
||||
oauth_consumer_strategies =
|
||||
System.get_env("OAUTH_CONSUMER_STRATEGIES")
|
||||
|
@ -655,12 +659,26 @@ config :pleroma, Pleroma.Emails.UserEmail,
|
|||
|
||||
config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: false
|
||||
|
||||
config :prometheus, Pleroma.Web.Endpoint.MetricsExporter,
|
||||
enabled: false,
|
||||
auth: false,
|
||||
ip_whitelist: [],
|
||||
path: "/api/pleroma/app_metrics",
|
||||
format: :text
|
||||
config :pleroma, Pleroma.PromEx,
|
||||
disabled: false,
|
||||
manual_metrics_start_delay: :no_delay,
|
||||
drop_metrics_groups: [],
|
||||
grafana: [
|
||||
host: System.get_env("GRAFANA_HOST", "http://localhost:3000"),
|
||||
auth_token: System.get_env("GRAFANA_TOKEN"),
|
||||
upload_dashboards_on_start: false,
|
||||
folder_name: "BEAM",
|
||||
annotate_app_lifecycle: true
|
||||
],
|
||||
metrics_server: [
|
||||
port: 4021,
|
||||
path: "/metrics",
|
||||
protocol: :http,
|
||||
pool_size: 5,
|
||||
cowboy_opts: [],
|
||||
auth_strategy: :none
|
||||
],
|
||||
datasource: "Prometheus"
|
||||
|
||||
config :pleroma, Pleroma.ScheduledActivity,
|
||||
daily_user_limit: 25,
|
||||
|
@ -697,6 +715,7 @@ config :pleroma, :rate_limit,
|
|||
timeline: {500, 3},
|
||||
search: [{1000, 10}, {1000, 30}],
|
||||
app_account_creation: {1_800_000, 25},
|
||||
oauth_app_creation: {900_000, 5},
|
||||
relations_actions: {10_000, 10},
|
||||
relation_id_action: {60_000, 2},
|
||||
statuses_actions: {10_000, 15},
|
||||
|
@ -795,7 +814,7 @@ config :pleroma, :modules, runtime_dir: "instance/modules"
|
|||
config :pleroma, configurable_from_database: false
|
||||
|
||||
config :pleroma, Pleroma.Repo,
|
||||
parameters: [gin_fuzzy_search_limit: "500"],
|
||||
parameters: [gin_fuzzy_search_limit: "500", jit: "off"],
|
||||
prepare: :unnamed
|
||||
|
||||
config :pleroma, :connections_pool,
|
||||
|
@ -809,22 +828,27 @@ config :pleroma, :connections_pool,
|
|||
|
||||
config :pleroma, :pools,
|
||||
federation: [
|
||||
size: 50,
|
||||
max_waiting: 10,
|
||||
size: 75,
|
||||
max_waiting: 20,
|
||||
recv_timeout: 10_000
|
||||
],
|
||||
media: [
|
||||
size: 50,
|
||||
size: 75,
|
||||
max_waiting: 20,
|
||||
recv_timeout: 15_000
|
||||
],
|
||||
rich_media: [
|
||||
size: 25,
|
||||
max_waiting: 20,
|
||||
recv_timeout: 15_000
|
||||
],
|
||||
upload: [
|
||||
size: 25,
|
||||
max_waiting: 5,
|
||||
max_waiting: 20,
|
||||
recv_timeout: 15_000
|
||||
],
|
||||
default: [
|
||||
size: 10,
|
||||
size: 50,
|
||||
max_waiting: 2,
|
||||
recv_timeout: 5_000
|
||||
]
|
||||
|
@ -832,15 +856,19 @@ config :pleroma, :pools,
|
|||
config :pleroma, :hackney_pools,
|
||||
federation: [
|
||||
max_connections: 50,
|
||||
timeout: 150_000
|
||||
timeout: 10_000
|
||||
],
|
||||
media: [
|
||||
max_connections: 50,
|
||||
timeout: 150_000
|
||||
timeout: 15_000
|
||||
],
|
||||
rich_media: [
|
||||
max_connections: 50,
|
||||
timeout: 15_000
|
||||
],
|
||||
upload: [
|
||||
max_connections: 25,
|
||||
timeout: 300_000
|
||||
timeout: 15_000
|
||||
]
|
||||
|
||||
config :pleroma, :majic_pool, size: 2
|
||||
|
@ -855,7 +883,11 @@ config :pleroma, :restrict_unauthenticated,
|
|||
config :pleroma, Pleroma.Web.ApiSpec.CastAndValidate, strict: false
|
||||
|
||||
config :pleroma, :mrf,
|
||||
policies: [Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy, Pleroma.Web.ActivityPub.MRF.TagPolicy],
|
||||
policies: [
|
||||
Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy,
|
||||
Pleroma.Web.ActivityPub.MRF.TagPolicy,
|
||||
Pleroma.Web.ActivityPub.MRF.InlineQuotePolicy
|
||||
],
|
||||
transparency: true,
|
||||
transparency_exclusions: []
|
||||
|
||||
|
@ -874,15 +906,45 @@ config :pleroma, Pleroma.Web.Auth.Authenticator, Pleroma.Web.Auth.PleromaAuthent
|
|||
config :pleroma, Pleroma.User.Backup,
|
||||
purge_after_days: 30,
|
||||
limit_days: 7,
|
||||
dir: nil
|
||||
dir: nil,
|
||||
process_chunk_size: 100,
|
||||
timeout: :timer.minutes(30)
|
||||
|
||||
config :pleroma, ConcurrentLimiter, [
|
||||
{Pleroma.Web.RichMedia.Helpers, [max_running: 5, max_waiting: 5]},
|
||||
{Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy, [max_running: 5, max_waiting: 5]}
|
||||
{Pleroma.Search, [max_running: 30, max_waiting: 50]}
|
||||
]
|
||||
|
||||
config :pleroma, Pleroma.Web.WebFinger, domain: nil, update_nickname_on_user_fetch: true
|
||||
|
||||
config :pleroma, Pleroma.Search, module: Pleroma.Search.DatabaseSearch
|
||||
|
||||
config :pleroma, Pleroma.Search.Meilisearch,
|
||||
url: "http://127.0.0.1:7700/",
|
||||
private_key: nil,
|
||||
initial_indexing_chunk_size: 100_000
|
||||
|
||||
config :pleroma, Pleroma.Application,
|
||||
background_migrators: true,
|
||||
internal_fetch: true,
|
||||
load_custom_modules: true,
|
||||
max_restarts: 3,
|
||||
streamer_registry: true
|
||||
|
||||
config :pleroma, Pleroma.Uploaders.Uploader, timeout: 30_000
|
||||
|
||||
config :pleroma, Pleroma.Search.QdrantSearch,
|
||||
qdrant_url: "http://127.0.0.1:6333/",
|
||||
qdrant_api_key: "",
|
||||
openai_url: "http://127.0.0.1:11345",
|
||||
# The healthcheck url has to be set to nil when used with the real openai
|
||||
# API, as it doesn't have a healthcheck endpoint.
|
||||
openai_healthcheck_url: "http://127.0.0.1:11345/health",
|
||||
openai_model: "snowflake/snowflake-arctic-embed-xs",
|
||||
openai_api_key: "",
|
||||
qdrant_index_configuration: %{
|
||||
vectors: %{size: 384, distance: "Cosine"}
|
||||
}
|
||||
|
||||
# Import environment specific config. This must remain at the bottom
|
||||
# of this file so it overrides the configuration defined above.
|
||||
import_config "#{Mix.env()}.exs"
|
||||
|
|
|
@ -136,6 +136,31 @@ config :pleroma, :config_description, [
|
|||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: Pleroma.Uploaders.IPFS,
|
||||
type: :group,
|
||||
description: "IPFS uploader-related settings",
|
||||
children: [
|
||||
%{
|
||||
key: :get_gateway_url,
|
||||
type: :string,
|
||||
description: "GET Gateway URL",
|
||||
suggestions: [
|
||||
"https://ipfs.mydomain.com/{CID}",
|
||||
"https://{CID}.ipfs.mydomain.com/"
|
||||
]
|
||||
},
|
||||
%{
|
||||
key: :post_gateway_url,
|
||||
type: :string,
|
||||
description: "POST Gateway URL",
|
||||
suggestions: [
|
||||
"http://localhost:5001/"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: Pleroma.Uploaders.S3,
|
||||
|
@ -566,6 +591,20 @@ config :pleroma, :config_description, [
|
|||
"Cool instance"
|
||||
]
|
||||
},
|
||||
%{
|
||||
key: :status_page,
|
||||
type: :string,
|
||||
description: "A page where people can see the status of the server during an outage",
|
||||
suggestions: [
|
||||
"https://status.pleroma.example.org"
|
||||
]
|
||||
},
|
||||
%{
|
||||
key: :contact_username,
|
||||
type: :string,
|
||||
description: "Instance owner username",
|
||||
suggestions: ["admin"]
|
||||
},
|
||||
%{
|
||||
key: :limit,
|
||||
type: :integer,
|
||||
|
@ -735,6 +774,18 @@ config :pleroma, :config_description, [
|
|||
{"*.quarantined.com", "Reason"}
|
||||
]
|
||||
},
|
||||
%{
|
||||
key: :rejected_instances,
|
||||
type: {:list, :tuple},
|
||||
key_placeholder: "instance",
|
||||
value_placeholder: "reason",
|
||||
description:
|
||||
"List of ActivityPub instances to reject requests from if authorized_fetch_mode is enabled",
|
||||
suggestions: [
|
||||
{"rejected.com", "Reason"},
|
||||
{"*.rejected.com", "Reason"}
|
||||
]
|
||||
},
|
||||
%{
|
||||
key: :static_dir,
|
||||
type: :string,
|
||||
|
@ -987,6 +1038,12 @@ config :pleroma, :config_description, [
|
|||
"The instance thumbnail can be any image that represents your instance and is used by some apps or services when they display information about your instance.",
|
||||
suggestions: ["/instance/thumbnail.jpeg"]
|
||||
},
|
||||
%{
|
||||
key: :favicon,
|
||||
type: {:string, :image},
|
||||
description: "Favicon of the instance",
|
||||
suggestions: ["/favicon.png"]
|
||||
},
|
||||
%{
|
||||
key: :show_reactions,
|
||||
type: :boolean,
|
||||
|
@ -1171,79 +1228,6 @@ config :pleroma, :config_description, [
|
|||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :logger,
|
||||
type: :group,
|
||||
description: "Logger-related settings",
|
||||
children: [
|
||||
%{
|
||||
key: :backends,
|
||||
type: [:atom, :tuple, :module],
|
||||
description:
|
||||
"Where logs will be sent, :console - send logs to stdout, { ExSyslogger, :ex_syslogger } - to syslog, Quack.Logger - to Slack.",
|
||||
suggestions: [:console, {ExSyslogger, :ex_syslogger}, Quack.Logger]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :logger,
|
||||
type: :group,
|
||||
key: :ex_syslogger,
|
||||
label: "ExSyslogger",
|
||||
description: "ExSyslogger-related settings",
|
||||
children: [
|
||||
%{
|
||||
key: :level,
|
||||
type: {:dropdown, :atom},
|
||||
description: "Log level",
|
||||
suggestions: [:debug, :info, :warn, :error]
|
||||
},
|
||||
%{
|
||||
key: :ident,
|
||||
type: :string,
|
||||
description:
|
||||
"A string that's prepended to every message, and is typically set to the app name",
|
||||
suggestions: ["pleroma"]
|
||||
},
|
||||
%{
|
||||
key: :format,
|
||||
type: :string,
|
||||
description: "Default: \"$date $time [$level] $levelpad$node $metadata $message\"",
|
||||
suggestions: ["$metadata[$level] $message"]
|
||||
},
|
||||
%{
|
||||
key: :metadata,
|
||||
type: {:list, :atom},
|
||||
suggestions: [:request_id]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :logger,
|
||||
type: :group,
|
||||
key: :console,
|
||||
label: "Console Logger",
|
||||
description: "Console logger settings",
|
||||
children: [
|
||||
%{
|
||||
key: :level,
|
||||
type: {:dropdown, :atom},
|
||||
description: "Log level",
|
||||
suggestions: [:debug, :info, :warn, :error]
|
||||
},
|
||||
%{
|
||||
key: :format,
|
||||
type: :string,
|
||||
description: "Default: \"$date $time [$level] $levelpad$node $metadata $message\"",
|
||||
suggestions: ["$metadata[$level] $message"]
|
||||
},
|
||||
%{
|
||||
key: :metadata,
|
||||
type: {:list, :atom},
|
||||
suggestions: [:request_id]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: :frontend_configurations,
|
||||
|
@ -1438,7 +1422,7 @@ config :pleroma, :config_description, [
|
|||
label: "Subject line behavior",
|
||||
type: :string,
|
||||
description: "Allows changing the default behaviour of subject lines in replies.
|
||||
`email`: copy and preprend re:, as in email,
|
||||
`email`: copy and prepend re:, as in email,
|
||||
`masto`: copy verbatim, as in Mastodon,
|
||||
`noop`: don't copy the subject.",
|
||||
suggestions: ["email", "masto", "noop"]
|
||||
|
@ -1771,6 +1755,12 @@ config :pleroma, :config_description, [
|
|||
type: :boolean,
|
||||
description: "Require HTTP signatures for AP fetches"
|
||||
},
|
||||
%{
|
||||
key: :authorized_fetch_mode_exceptions,
|
||||
type: {:list, :string},
|
||||
description:
|
||||
"List of IPs (CIDR format accepted) to exempt from HTTP Signatures requirement (for example to allow debugging, you shouldn't otherwise need this)"
|
||||
},
|
||||
%{
|
||||
key: :note_replies_output_limit,
|
||||
type: :integer,
|
||||
|
@ -1931,7 +1921,7 @@ config :pleroma, :config_description, [
|
|||
key: :log,
|
||||
type: {:dropdown, :atom},
|
||||
description: "Logs verbose mode",
|
||||
suggestions: [false, :error, :warn, :info, :debug]
|
||||
suggestions: [false, :error, :warning, :info, :debug]
|
||||
},
|
||||
%{
|
||||
key: :queues,
|
||||
|
@ -2023,23 +2013,6 @@ config :pleroma, :config_description, [
|
|||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: :workers,
|
||||
type: :group,
|
||||
description: "Includes custom worker options not interpretable directly by `Oban`",
|
||||
children: [
|
||||
%{
|
||||
key: :retries,
|
||||
type: {:keyword, :integer},
|
||||
description: "Max retry attempts for failed jobs, per `Oban` queue",
|
||||
suggestions: [
|
||||
federator_incoming: 5,
|
||||
federator_outgoing: 5
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: Pleroma.Web.Metadata,
|
||||
|
@ -2111,11 +2084,11 @@ config :pleroma, :config_description, [
|
|||
]
|
||||
},
|
||||
%{
|
||||
key: :failure_backoff,
|
||||
key: :timeout,
|
||||
type: :integer,
|
||||
description:
|
||||
"Amount of milliseconds after request failure, during which the request will not be retried.",
|
||||
suggestions: [60_000]
|
||||
"Amount of milliseconds after which the HTTP request is forcibly terminated.",
|
||||
suggestions: [5_000]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -2268,14 +2241,8 @@ config :pleroma, :config_description, [
|
|||
label: "SSL options",
|
||||
type: :keyword,
|
||||
description: "Additional SSL options",
|
||||
suggestions: [cacertfile: "path/to/file/with/PEM/cacerts", verify: :verify_peer],
|
||||
suggestions: [verify: :verify_peer],
|
||||
children: [
|
||||
%{
|
||||
key: :cacertfile,
|
||||
type: :string,
|
||||
description: "Path to file with PEM encoded cacerts",
|
||||
suggestions: ["path/to/file/with/PEM/cacerts"]
|
||||
},
|
||||
%{
|
||||
key: :verify,
|
||||
type: :atom,
|
||||
|
@ -2295,14 +2262,8 @@ config :pleroma, :config_description, [
|
|||
label: "TLS options",
|
||||
type: :keyword,
|
||||
description: "Additional TLS options",
|
||||
suggestions: [cacertfile: "path/to/file/with/PEM/cacerts", verify: :verify_peer],
|
||||
suggestions: [verify: :verify_peer],
|
||||
children: [
|
||||
%{
|
||||
key: :cacertfile,
|
||||
type: :string,
|
||||
description: "Path to file with PEM encoded cacerts",
|
||||
suggestions: ["path/to/file/with/PEM/cacerts"]
|
||||
},
|
||||
%{
|
||||
key: :verify,
|
||||
type: :atom,
|
||||
|
@ -2319,11 +2280,25 @@ config :pleroma, :config_description, [
|
|||
},
|
||||
%{
|
||||
key: :uid,
|
||||
label: "UID",
|
||||
label: "UID Attribute",
|
||||
type: :string,
|
||||
description:
|
||||
"LDAP attribute name to authenticate the user, e.g. when \"cn\", the filter will be \"cn=username,base\"",
|
||||
suggestions: ["cn"]
|
||||
},
|
||||
%{
|
||||
key: :cacertfile,
|
||||
label: "CACertfile",
|
||||
type: :string,
|
||||
description: "Path to CA certificate file"
|
||||
},
|
||||
%{
|
||||
key: :mail,
|
||||
label: "Mail Attribute",
|
||||
type: :string,
|
||||
description:
|
||||
"LDAP attribute name to use as the email address when automatically registering the user on first login",
|
||||
suggestions: ["mail"]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -2628,45 +2603,6 @@ config :pleroma, :config_description, [
|
|||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :esshd,
|
||||
label: "ESSHD",
|
||||
type: :group,
|
||||
description:
|
||||
"Before enabling this you must add :esshd to mix.exs as one of the extra_applications " <>
|
||||
"and generate host keys in your priv dir with ssh-keygen -m PEM -N \"\" -b 2048 -t rsa -f ssh_host_rsa_key",
|
||||
children: [
|
||||
%{
|
||||
key: :enabled,
|
||||
type: :boolean,
|
||||
description: "Enables SSH"
|
||||
},
|
||||
%{
|
||||
key: :priv_dir,
|
||||
type: :string,
|
||||
description: "Dir with SSH keys",
|
||||
suggestions: ["/some/path/ssh_keys"]
|
||||
},
|
||||
%{
|
||||
key: :handler,
|
||||
type: :string,
|
||||
description: "Handler module",
|
||||
suggestions: ["Pleroma.BBS.Handler"]
|
||||
},
|
||||
%{
|
||||
key: :port,
|
||||
type: :integer,
|
||||
description: "Port to connect",
|
||||
suggestions: [10_022]
|
||||
},
|
||||
%{
|
||||
key: :password_authenticator,
|
||||
type: :string,
|
||||
description: "Authenticator module",
|
||||
suggestions: ["Pleroma.BBS.Authenticator"]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :mime,
|
||||
label: "Mime Types",
|
||||
|
@ -3129,7 +3065,7 @@ config :pleroma, :config_description, [
|
|||
key: :max_waiting,
|
||||
type: :integer,
|
||||
description:
|
||||
"Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errrors when a new request is made",
|
||||
"Maximum number of requests waiting for other requests to finish. After this number is reached, the pool will start returning errors when a new request is made",
|
||||
suggestions: [10]
|
||||
},
|
||||
%{
|
||||
|
@ -3395,7 +3331,7 @@ config :pleroma, :config_description, [
|
|||
%{
|
||||
key: :purge_after_days,
|
||||
type: :integer,
|
||||
description: "Remove backup achives after N days",
|
||||
description: "Remove backup archives after N days",
|
||||
suggestions: [30]
|
||||
},
|
||||
%{
|
||||
|
@ -3403,6 +3339,20 @@ config :pleroma, :config_description, [
|
|||
type: :integer,
|
||||
description: "Limit user to export not more often than once per N days",
|
||||
suggestions: [7]
|
||||
},
|
||||
%{
|
||||
key: :process_chunk_size,
|
||||
type: :integer,
|
||||
label: "Process Chunk Size",
|
||||
description: "The number of activities to fetch in the backup job for each chunk.",
|
||||
suggestions: [100]
|
||||
},
|
||||
%{
|
||||
key: :timeout,
|
||||
type: :integer,
|
||||
label: "Timeout",
|
||||
description: "The amount of time to wait for backup to complete in seconds.",
|
||||
suggestions: [1_800]
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -3490,5 +3440,48 @@ config :pleroma, :config_description, [
|
|||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: Pleroma.Search,
|
||||
type: :group,
|
||||
description: "General search settings.",
|
||||
children: [
|
||||
%{
|
||||
key: :module,
|
||||
type: :keyword,
|
||||
description: "Selected search module.",
|
||||
suggestion: [Pleroma.Search.DatabaseSearch, Pleroma.Search.Meilisearch]
|
||||
}
|
||||
]
|
||||
},
|
||||
%{
|
||||
group: :pleroma,
|
||||
key: Pleroma.Search.Meilisearch,
|
||||
type: :group,
|
||||
description: "Meilisearch settings.",
|
||||
children: [
|
||||
%{
|
||||
key: :url,
|
||||
type: :string,
|
||||
description: "Meilisearch URL.",
|
||||
suggestion: ["http://127.0.0.1:7700/"]
|
||||
},
|
||||
%{
|
||||
key: :private_key,
|
||||
type: :string,
|
||||
description:
|
||||
"Private key for meilisearch authentication, or `nil` to disable private key authentication.",
|
||||
suggestion: [nil]
|
||||
},
|
||||
%{
|
||||
key: :initial_indexing_chunk_size,
|
||||
type: :integer,
|
||||
description:
|
||||
"Amount of posts in a batch when running the initial indexing operation. Should probably not be more than 100000" <>
|
||||
" since there's a limit on maximum insert size",
|
||||
suggestion: [100_000]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -8,8 +8,7 @@ import Config
|
|||
# with brunch.io to recompile .js and .css sources.
|
||||
config :pleroma, Pleroma.Web.Endpoint,
|
||||
http: [
|
||||
port: 4000,
|
||||
protocol_options: [max_request_line_length: 8192, max_header_value_length: 8192]
|
||||
port: 4000
|
||||
],
|
||||
protocol: "http",
|
||||
debug_errors: true,
|
||||
|
@ -36,8 +35,8 @@ config :pleroma, Pleroma.Emails.Mailer, adapter: Swoosh.Adapters.Local
|
|||
# configured to run both http and https servers on
|
||||
# different ports.
|
||||
|
||||
# Do not include metadata nor timestamps in development logs
|
||||
config :logger, :console, format: "[$level] $message\n"
|
||||
# Do not include timestamps in development logs
|
||||
config :logger, Logger.Backends.Console, format: "$metadata[$level] $message\n"
|
||||
|
||||
# Set a higher stacktrace during development. Avoid configuring such
|
||||
# in production as building large stacktraces may be expensive.
|
||||
|
|
|
@ -20,6 +20,7 @@ config :pleroma, Pleroma.Web.Endpoint,
|
|||
config :phoenix, serve_endpoints: true
|
||||
|
||||
# Do not print debug messages in production
|
||||
config :logger, Logger.Backends.Console, level: :info
|
||||
config :logger, :console, level: :info
|
||||
config :logger, :ex_syslogger, level: :info
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ config :pleroma, Pleroma.Captcha,
|
|||
|
||||
# Print only warnings and errors during test
|
||||
config :logger, :console,
|
||||
level: :warn,
|
||||
level: :warning,
|
||||
format: "\n[$level] $message\n"
|
||||
|
||||
config :pleroma, :auth, oauth_consumer_strategies: []
|
||||
|
@ -49,7 +49,8 @@ config :pleroma, Pleroma.Repo,
|
|||
hostname: System.get_env("DB_HOST") || "localhost",
|
||||
port: System.get_env("DB_PORT") || "5432",
|
||||
pool: Ecto.Adapters.SQL.Sandbox,
|
||||
pool_size: 50
|
||||
pool_size: System.schedulers_online() * 2,
|
||||
log: false
|
||||
|
||||
config :pleroma, :dangerzone, override_repo_pool_size: true
|
||||
|
||||
|
@ -61,7 +62,8 @@ config :tesla, adapter: Tesla.Mock
|
|||
config :pleroma, :rich_media,
|
||||
enabled: false,
|
||||
ignore_hosts: [],
|
||||
ignore_tld: ["local", "localdomain", "lan"]
|
||||
ignore_tld: ["local", "localdomain", "lan"],
|
||||
max_body: 2_000_000
|
||||
|
||||
config :pleroma, :instance,
|
||||
multi_factor_authentication: [
|
||||
|
@ -133,10 +135,61 @@ config :pleroma, :side_effects,
|
|||
ap_streamer: Pleroma.Web.ActivityPub.ActivityPubMock,
|
||||
logger: Pleroma.LoggerMock
|
||||
|
||||
config :pleroma, Pleroma.Search, module: Pleroma.Search.DatabaseSearch
|
||||
|
||||
config :pleroma, Pleroma.Search.Meilisearch, url: "http://127.0.0.1:7700/", private_key: nil
|
||||
|
||||
# Reduce recompilation time
|
||||
# https://dashbit.co/blog/speeding-up-re-compilation-of-elixir-projects
|
||||
config :phoenix, :plug_init_mode, :runtime
|
||||
|
||||
config :pleroma, :config_impl, Pleroma.UnstubbedConfigMock
|
||||
|
||||
config :pleroma, Pleroma.PromEx, disabled: true
|
||||
|
||||
# Mox definitions. Only read during compile time.
|
||||
config :pleroma, Pleroma.User.Backup, config_impl: Pleroma.UnstubbedConfigMock
|
||||
config :pleroma, Pleroma.Uploaders.S3, ex_aws_impl: Pleroma.Uploaders.S3.ExAwsMock
|
||||
config :pleroma, Pleroma.Uploaders.S3, config_impl: Pleroma.UnstubbedConfigMock
|
||||
config :pleroma, Pleroma.Upload, config_impl: Pleroma.UnstubbedConfigMock
|
||||
config :pleroma, Pleroma.ScheduledActivity, config_impl: Pleroma.UnstubbedConfigMock
|
||||
config :pleroma, Pleroma.Web.RichMedia.Helpers, config_impl: Pleroma.StaticStubbedConfigMock
|
||||
config :pleroma, Pleroma.Uploaders.IPFS, config_impl: Pleroma.UnstubbedConfigMock
|
||||
config :pleroma, Pleroma.Web.Plugs.HTTPSecurityPlug, config_impl: Pleroma.StaticStubbedConfigMock
|
||||
config :pleroma, Pleroma.Web.Plugs.HTTPSignaturePlug, config_impl: Pleroma.StaticStubbedConfigMock
|
||||
|
||||
config :pleroma, Pleroma.Signature, http_signatures_impl: Pleroma.StubbedHTTPSignaturesMock
|
||||
|
||||
peer_module =
|
||||
if String.to_integer(System.otp_release()) >= 25 do
|
||||
:peer
|
||||
else
|
||||
:slave
|
||||
end
|
||||
|
||||
config :pleroma, Pleroma.Cluster, peer_module: peer_module
|
||||
|
||||
config :pleroma, Pleroma.Application,
|
||||
background_migrators: false,
|
||||
internal_fetch: false,
|
||||
load_custom_modules: false,
|
||||
max_restarts: 100,
|
||||
streamer_registry: false,
|
||||
test_http_pools: true
|
||||
|
||||
config :pleroma, Pleroma.Web.Streaming, sync_streaming: true
|
||||
|
||||
config :pleroma, Pleroma.Uploaders.Uploader, timeout: 1_000
|
||||
|
||||
config :pleroma, Pleroma.Emoji.Loader, test_emoji: true
|
||||
|
||||
config :pleroma, Pleroma.Web.RichMedia.Backfill,
|
||||
stream_out: Pleroma.Web.ActivityPub.ActivityPubMock
|
||||
|
||||
config :pleroma, Pleroma.Web.Plugs.HTTPSecurityPlug, enable: false
|
||||
|
||||
config :pleroma, Pleroma.User.Backup, tempdir: "test/tmp"
|
||||
|
||||
if File.exists?("./config/test.secret.exs") do
|
||||
import_config "test.secret.exs"
|
||||
else
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Transfering the config to/from the database
|
||||
# Transferring the config to/from the database
|
||||
|
||||
{! backend/administration/CLI_tasks/general_cli_task_info.include !}
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
|||
|
||||
Options:
|
||||
|
||||
- `<path>` - where to save migrated config. E.g. `--path=/tmp`. If file saved into non standart folder, you must manually copy file into directory where Pleroma can read it. For OTP install path will be `PLEROMA_CONFIG_PATH` or `/etc/pleroma`. For installation from source - `config` directory in the pleroma folder.
|
||||
- `<path>` - where to save migrated config. E.g. `--path=/tmp`. If file saved into non-standard folder, you must manually copy file into directory where Pleroma can read it. For OTP install path will be `PLEROMA_CONFIG_PATH` or `/etc/pleroma`. For installation from source - `config` directory in the pleroma folder.
|
||||
- `<env>` - environment, for which is migrated config. By default is `prod`.
|
||||
- To delete transferred settings from database optional flag `-d` can be used
|
||||
|
||||
|
@ -154,4 +154,19 @@ This forcibly removes all saved values in the database.
|
|||
|
||||
```sh
|
||||
mix pleroma.config [--force] reset
|
||||
|
||||
```
|
||||
|
||||
## Remove invalid MRF modules from the database
|
||||
|
||||
This forcibly removes any enabled MRF that does not exist and will fix the ability of the instance to start.
|
||||
|
||||
=== "OTP"
|
||||
```sh
|
||||
./bin/pleroma_ctl config fix_mrf_policies
|
||||
```
|
||||
|
||||
=== "From Source"
|
||||
```sh
|
||||
mix pleroma.config fix_mrf_policies
|
||||
```
|
|
@ -21,16 +21,18 @@ Replaces embedded objects with references to them in the `objects` table. Only n
|
|||
mix pleroma.database remove_embedded_objects [option ...]
|
||||
```
|
||||
|
||||
|
||||
### Options
|
||||
- `--vacuum` - run `VACUUM FULL` after the embedded objects are replaced with their references
|
||||
|
||||
## Prune old remote posts from the database
|
||||
|
||||
This will prune remote posts older than 90 days (configurable with [`config :pleroma, :instance, remote_post_retention_days`](../../configuration/cheatsheet.md#instance)) from the database, they will be refetched from source when accessed.
|
||||
This will prune remote posts older than 90 days (configurable with [`config :pleroma, :instance, remote_post_retention_days`](../../configuration/cheatsheet.md#instance)) from the database. Pruned posts may be refetched in some cases.
|
||||
|
||||
!!! note
|
||||
The disk space will only be reclaimed after a proper vacuum. By default Postgresql does this for you on a regular basis, but if your instance has been running for a long time and there are many rows deleted, it may be advantageous to use `VACUUM FULL` (e.g. by using the `--vacuum` option).
|
||||
|
||||
!!! danger
|
||||
The disk space will only be reclaimed after `VACUUM FULL`. You may run out of disk space during the execution of the task or vacuuming if you don't have about 1/3rds of the database size free.
|
||||
You may run out of disk space during the execution of the task or vacuuming if you don't have about 1/3rds of the database size free. Vacuum causes a substantial increase in I/O traffic, and may lead to a degraded experience while it is running.
|
||||
|
||||
=== "OTP"
|
||||
|
||||
|
@ -45,7 +47,11 @@ This will prune remote posts older than 90 days (configurable with [`config :ple
|
|||
```
|
||||
|
||||
### Options
|
||||
- `--vacuum` - run `VACUUM FULL` after the objects are pruned
|
||||
|
||||
- `--keep-threads` - Don't prune posts when they are part of a thread where at least one post has seen local interaction (e.g. one of the posts is a local post, or is favourited by a local user, or has been repeated by a local user...). It also won't delete posts when at least one of the posts in that thread is kept (e.g. because one of the posts has seen recent activity).
|
||||
- `--keep-non-public` - Keep non-public posts like DM's and followers-only, even if they are remote.
|
||||
- `--prune-orphaned-activities` - Also prune orphaned activities afterwards. Activities are things like Like, Create, Announce, Flag (aka reports). They can significantly help reduce the database size. Note: this can take a very long time.
|
||||
- `--vacuum` - Run `VACUUM FULL` after the objects are pruned. This should not be used on a regular basis, but is useful if your instance has been running for a long time before pruning.
|
||||
|
||||
## Create a conversation for all existing DMs
|
||||
|
||||
|
@ -93,6 +99,9 @@ Can be safely re-run
|
|||
|
||||
## Vacuum the database
|
||||
|
||||
!!! note
|
||||
By default Postgresql has an autovacuum deamon running. While the tasks described here can help in some cases, they shouldn't be needed on a regular basis. See [the Postgresql docs on vacuuming](https://www.postgresql.org/docs/current/sql-vacuum.html) for more information on this.
|
||||
|
||||
### Analyze
|
||||
|
||||
Running an `analyze` vacuum job can improve performance by updating statistics used by the query planner. **It is safe to cancel this.**
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
1. Optionally you can remove the users of your instance. This will trigger delete requests for their accounts and posts. Note that this is 'best effort' and doesn't mean that all traces of your instance will be gone from the fediverse.
|
||||
* You can do this from the admin-FE where you can select all local users and delete the accounts using the *Moderate multiple users* dropdown.
|
||||
* You can also list local users and delete them individualy using the CLI tasks for [Managing users](./CLI_tasks/user.md).
|
||||
* You can also list local users and delete them individually using the CLI tasks for [Managing users](./CLI_tasks/user.md).
|
||||
2. Stop the Pleroma service `systemctl stop pleroma`
|
||||
3. Disable pleroma from systemd `systemctl disable pleroma`
|
||||
4. Remove the files and folders you created during installation (see installation guide). This includes the pleroma, nginx and systemd files and folders.
|
||||
|
|
71
docs/administration/frontends-management.md
Normal file
71
docs/administration/frontends-management.md
Normal file
|
@ -0,0 +1,71 @@
|
|||
# Managing installed frontends
|
||||
|
||||
Pleroma lets you install multiple frontends including multiple versions of same frontend. Right now it's only possible to switch which frontend is the default, but in the future it would be possible for user to select which frontend they prefer to use.
|
||||
|
||||
As of 2.6.0 there are two ways of managing frontends - through PleromaFE's Admin Dashboard (preferred, easier method) or through AdminFE (clunky but also works on versions older than 2.6.0).
|
||||
|
||||
!!! note
|
||||
Managing frontends through UI requires [in-database configuration](../configuration/howto_database_config.md) to be enabled (default on newer instances but might be off on older ones).
|
||||
|
||||
## How it works
|
||||
|
||||
When installing frontends, it creates a folder in [static directory](../configuration/static_dir.md) that follows this pattern: `/frontends/${front-end name}/${front-end version}/`, puts contents of the built frontend in there. Then when accessing the server backend checks what front-end name and version are set to be default and serves index.html and assets from appropriate path.
|
||||
|
||||
!!! warning
|
||||
|
||||
If you've been putting your frontend build directly into static dir as an antiquated way of serving custom frontend, this system will not work and will still serve the custom index.html you put in there. You can still serve custom frontend builds if you put your build into `/frontends/$name/$version` instead and set the "default frontend" fields appropriately.
|
||||
|
||||
Currently, there is no backup system, i.e. when installing `master` version it _will_ overwrite installed `master` version, for now if you want to keep previous version you should back it up manually, i.e. running `cp -r ./frontends/pleroma-fe/master ./frontends/pleroma-fe/master_old` in your static dir.
|
||||
|
||||
## Managing front-ends through Admin Dashboard
|
||||
|
||||
Open up Admin Dashboard (gauge icon in top bar, same as where link to AdminFE was),__
|
||||
![location of Admin Dashboard icon](../assets/admin_dash_location.png)
|
||||
switch to "Front-ends" tab.
|
||||
![screenshot of Front-ends tab](../assets/frontends_tab.png)
|
||||
This page is designed to be self-explanatory and easy to use, while avoiding issues and pitfalls of AdminFE, but it's also early in development, everything is subject to change.
|
||||
|
||||
!!! warning
|
||||
This goes without saying, but if you set default frontend to anything except >2.6.0 version of PleromaFE you'll lose the access to Admin Dashboard and will have to use AdminFE to get it back. See below on how to use AdminFE.
|
||||
|
||||
### Limitations
|
||||
|
||||
Currently the list of available for install frontends is essentially hard-coded in backend's configuration, each providing only one version, with exception for PleromaFE which overrides 'pleroma-fe' to also include `develop` version. There is no way to manually install build with a URL (coming soon) nor add more available frontends to the repository (it's broken).
|
||||
|
||||
There is also no way to tell if there is an update available or not, for now you should watch for [announcements](https://pleroma.social/announcements/) of new PleromaFE stable releases to see if there is new stable version. For `develop` version it's up to you whether you want to follow the development process or just reinstall it periodically hoping for new stuff.
|
||||
|
||||
## Using AdminFE to manage frontends
|
||||
|
||||
Access AdminFE either directly by going to `/pleroma/admin` of your instance or by opening Admin Dashboard and clicking the link at the bottom of the window
|
||||
![link to open old AdminFE](../assets/old_adminfe_link.png)
|
||||
|
||||
|
||||
Go to Settings -> Frontend.
|
||||
|
||||
### Installing front-ends
|
||||
|
||||
At the very top of the page there's a list of available frontends and button to install custom front-end
|
||||
|
||||
!!! tip
|
||||
Remember to click "Submit" in bottom right corner to save your changes!
|
||||
|
||||
!!! bug
|
||||
**Available Frontends** section lets you _install_ frontends but **NOT** update/reinstall them. It's only useful for installing a frontend once.
|
||||
|
||||
Due to aforementioned bug, preferred way of installing frontends in AdminFE is by clicking the "Install another frontend"
|
||||
![screenshot of admin-fe with instructions on how to install a frontend](../assets/way_to_install_frontends.png)
|
||||
and filling in the fields. Unfortunately AdminFE does not provide the raw data necessary for you to fill those fields, so your best bet is to see what backend returns in browser's devtools or refer to the [source code](https://git.pleroma.social/pleroma/pleroma/-/blob/develop/config/config.exs?ref_type=heads#L742-791). For the most part, only **Name**, **Ref** (i.e. version) and **Build URL** fields are required, although some frontends might also require **Build Directory** to work.
|
||||
|
||||
For pleroma-fe you can use either `master` or `develop` refs, or potentially any ref in GitLab that has artifacts for `build` job, but that's outside scope of this document.
|
||||
|
||||
### Selecting default frontend
|
||||
|
||||
Scroll page waaaaay down, search for "Frontends" section, subtitled "Installed frontends management", change the name and reference of the "Primary" frontend.
|
||||
![screenshot of admin-fe with instructions on how to install a frontend](../assets/primary_frontend_section.png)
|
||||
|
||||
|
||||
!!! danger
|
||||
If you change "Admin" frontend name/reference you risk losing access to AdminFE as well.
|
||||
|
||||
!!! warning
|
||||
Don't put anything into the "Available" section as it will break the list of available frontends completely, including the "add another frontend" button. If you accidentally put something in there, click the trashbin icon next to "Available" to reset it and restore the frontends list.
|
BIN
docs/assets/admin_dash_location.png
Normal file
BIN
docs/assets/admin_dash_location.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.5 KiB |
BIN
docs/assets/frontends_tab.png
Normal file
BIN
docs/assets/frontends_tab.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 145 KiB |
BIN
docs/assets/old_adminfe_link.png
Normal file
BIN
docs/assets/old_adminfe_link.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
docs/assets/primary_frontend_section.png
Normal file
BIN
docs/assets/primary_frontend_section.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
BIN
docs/assets/way_to_install_frontends.png
Normal file
BIN
docs/assets/way_to_install_frontends.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
|
@ -3,12 +3,6 @@ Note: Additional clients may be working but theses are officially supporting Ple
|
|||
Feel free to contact us to be added to this list!
|
||||
|
||||
## Desktop
|
||||
### Roma for Desktop
|
||||
- Homepage: <https://www.pleroma.com/#desktopApp>
|
||||
- Source Code: <https://github.com/roma-apps/roma-desktop>
|
||||
- Platforms: Windows, Mac, Linux
|
||||
- Features: MastoAPI, Streaming Ready
|
||||
|
||||
### Social
|
||||
- Source Code: <https://gitlab.gnome.org/World/Social>
|
||||
- Contact: [@brainblasted@social.libre.fi](https://social.libre.fi/users/brainblasted)
|
||||
|
@ -19,7 +13,14 @@ Feel free to contact us to be added to this list!
|
|||
### Whalebird
|
||||
- Homepage: <https://whalebird.social/>
|
||||
- Source Code: <https://github.com/h3poteto/whalebird-desktop>
|
||||
- Contact: [@h3poteto@pleroma.io](https://pleroma.io/users/h3poteto)
|
||||
- Contact: [@whalebird@pleroma.io](https://pleroma.io/users/whalebird)
|
||||
- Platforms: Windows, Mac, Linux
|
||||
- Features: MastoAPI, Streaming Ready
|
||||
|
||||
### Fedistar
|
||||
- Homepage: <https://fedistar.net>
|
||||
- Source Code: <https://github.com/h3poteto/fedistar>
|
||||
- Contact: [@fedistar@pleroma.io](https://pleroma.io/users/fedistar)
|
||||
- Platforms: Windows, Mac, Linux
|
||||
- Features: MastoAPI, Streaming Ready
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ To add configuration to your config file, you can copy it from the base config.
|
|||
* `allow_relay`: Permits remote instances to subscribe to all public posts of your instance. This may increase the visibility of your instance.
|
||||
* `public`: Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. Note that there is a dependent setting restricting or allowing unauthenticated access to specific resources, see `restrict_unauthenticated` for more details.
|
||||
* `quarantined_instances`: ActivityPub instances where private (DMs, followers-only) activities will not be send.
|
||||
* `rejected_instances`: ActivityPub instances to reject requests from if authorized_fetch_mode is enabled.
|
||||
* `allowed_post_formats`: MIME-type list of formats allowed to be posted (transformed into HTML).
|
||||
* `extended_nickname_format`: Set to `true` to use extended local nicknames format (allows underscores/dashes). This will break federation with
|
||||
older software for theses nicknames.
|
||||
|
@ -154,12 +155,15 @@ To add configuration to your config file, you can copy it from the base config.
|
|||
* `Pleroma.Web.ActivityPub.MRF.MentionPolicy`: Drops posts mentioning configurable users. (See [`:mrf_mention`](#mrf_mention)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.Workers.PurgeExpiredActivity` to be enabled for processing the scheduled delections.
|
||||
* `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Sets a default expiration on all posts made by users of the local instance. Requires `Pleroma.Workers.PurgeExpiredActivity` to be enabled for processing the scheduled deletions.
|
||||
* `Pleroma.Web.ActivityPub.MRF.ForceBotUnlistedPolicy`: Makes all bot posts to disappear from public timelines.
|
||||
* `Pleroma.Web.ActivityPub.MRF.FollowBotPolicy`: Automatically follows newly discovered users from the specified bot account. Local accounts, locked accounts, and users with "#nobot" in their bio are respected and excluded from being followed.
|
||||
* `Pleroma.Web.ActivityPub.MRF.AntiFollowbotPolicy`: Drops follow requests from followbots. Users can still allow bots to follow them by first following the bot.
|
||||
* `Pleroma.Web.ActivityPub.MRF.KeywordPolicy`: Rejects or removes from the federated timeline or replaces keywords. (See [`:mrf_keyword`](#mrf_keyword)).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ForceMentionsInContent`: Forces every mentioned user to be reflected in the post content.
|
||||
* `Pleroma.Web.ActivityPub.MRF.InlineQuotePolicy`: Forces quote post URLs to be reflected in the message content inline.
|
||||
* `Pleroma.Web.ActivityPub.MRF.QuoteToLinkTagPolicy`: Force a Link tag for posts quoting another post. (may break outgoing federation of quote posts with older Pleroma versions).
|
||||
* `Pleroma.Web.ActivityPub.MRF.ForceMention`: Forces posts to include a mention of the author of parent post or the author of quoted post.
|
||||
* `transparency`: Make the content of your Message Rewrite Facility settings public (via nodeinfo).
|
||||
* `transparency_exclusions`: Exclude specific instance names from MRF transparency. The use of the exclusions feature will be disclosed in nodeinfo as a boolean value.
|
||||
|
||||
|
@ -261,6 +265,18 @@ Notes:
|
|||
|
||||
* `follower_nickname`: The name of the bot account to use for following newly discovered users. Using `followbot` or similar is strongly suggested.
|
||||
|
||||
#### :mrf_emoji
|
||||
* `remove_url`: A list of patterns which result in emoji whose URL matches being removed from the message. This will apply to statuses, emoji reactions, and user profiles. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
|
||||
* `remove_shortcode`: A list of patterns which result in emoji whose shortcode matches being removed from the message. This will apply to statuses, emoji reactions, and user profiles. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
|
||||
* `federated_timeline_removal_url`: A list of patterns which result in message with emojis whose URLs match being removed from federated timelines (a.k.a unlisted). This will apply only to statuses. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
|
||||
* `federated_timeline_removal_shortcode`: A list of patterns which result in message with emojis whose shortcodes match being removed from federated timelines (a.k.a unlisted). This will apply only to statuses. Each pattern can be a string or a [regular expression](https://hexdocs.pm/elixir/Regex.html).
|
||||
|
||||
#### :mrf_inline_quote
|
||||
* `template`: The template to append to the post. `{url}` will be replaced with the actual link to the quoted post. Default: `<bdi>RT:</bdi> {url}`
|
||||
|
||||
#### :mrf_force_mention
|
||||
* `mention_parent`: Whether to append mention of parent post author
|
||||
* `mention_quoted`: Whether to append mention of parent quoted author
|
||||
|
||||
### :activitypub
|
||||
* `unfollow_blocked`: Whether blocks result in people getting unfollowed
|
||||
|
@ -269,6 +285,7 @@ Notes:
|
|||
* `deny_follow_blocked`: Whether to disallow following an account that has blocked the user in question
|
||||
* `sign_object_fetches`: Sign object fetches with HTTP signatures
|
||||
* `authorized_fetch_mode`: Require HTTP signatures for AP fetches
|
||||
* `authorized_fetch_mode_exceptions`: List of IPs (CIDR format accepted) to exempt from HTTP Signatures requirement (for example to allow debugging, you shouldn't otherwise need this)
|
||||
|
||||
## Pleroma.User
|
||||
|
||||
|
@ -419,7 +436,7 @@ config :pleroma, Pleroma.Web.MediaProxy.Invalidation.Http,
|
|||
* `ignore_hosts`: list of hosts which will be ignored by the metadata parser. For example `["accounts.google.com", "xss.website"]`, defaults to `[]`.
|
||||
* `ignore_tld`: list TLDs (top-level domains) which will ignore for parse metadata. default is ["local", "localdomain", "lan"].
|
||||
* `parsers`: list of Rich Media parsers.
|
||||
* `failure_backoff`: Amount of milliseconds after request failure, during which the request will not be retried.
|
||||
* `timeout`: Amount of milliseconds after which the HTTP request is forcibly terminated.
|
||||
|
||||
## HTTP server
|
||||
|
||||
|
@ -457,6 +474,7 @@ This will make Pleroma listen on `127.0.0.1` port `8080` and generate urls start
|
|||
* ``ct_max_age``: The maximum age for the `Expect-CT` header if sent.
|
||||
* ``referrer_policy``: The referrer policy to use, either `"same-origin"` or `"no-referrer"`.
|
||||
* ``report_uri``: Adds the specified url to `report-uri` and `report-to` group in CSP header.
|
||||
* `allow_unsafe_eval`: Adds `wasm-unsafe-eval` to the CSP header. Needed for some non-essential frontend features like Flash emulation.
|
||||
|
||||
### Pleroma.Web.Plugs.RemoteIp
|
||||
|
||||
|
@ -496,7 +514,7 @@ config :pleroma, :rate_limit,
|
|||
Means that:
|
||||
|
||||
1. In 60 seconds, 15 authentication attempts can be performed from the same IP address.
|
||||
2. In 1 second, 10 search requests can be performed from the same IP adress by unauthenticated users, while authenticated users can perform 30 search requests per second.
|
||||
2. In 1 second, 10 search requests can be performed from the same IP address by unauthenticated users, while authenticated users can perform 30 search requests per second.
|
||||
|
||||
Supported rate limiters:
|
||||
|
||||
|
@ -646,6 +664,19 @@ config :ex_aws, :s3,
|
|||
host: "s3.eu-central-1.amazonaws.com"
|
||||
```
|
||||
|
||||
#### Pleroma.Uploaders.IPFS
|
||||
|
||||
* `post_gateway_url`: URL with port of POST Gateway (unauthenticated)
|
||||
* `get_gateway_url`: URL of public GET Gateway
|
||||
|
||||
Example:
|
||||
|
||||
```elixir
|
||||
config :pleroma, Pleroma.Uploaders.IPFS,
|
||||
post_gateway_url: "http://localhost:5001",
|
||||
get_gateway_url: "http://{CID}.ipfs.mydomain.com"
|
||||
```
|
||||
|
||||
### Upload filters
|
||||
|
||||
#### Pleroma.Upload.Filter.AnonymizeFilename
|
||||
|
@ -671,6 +702,12 @@ This filter reads the ImageDescription and iptc:Caption-Abstract fields with Exi
|
|||
|
||||
No specific configuration.
|
||||
|
||||
#### Pleroma.Upload.Filter.OnlyMedia
|
||||
|
||||
This filter rejects uploads that are not identified with Content-Type matching audio/\*, image/\*, or video/\*
|
||||
|
||||
No specific configuration.
|
||||
|
||||
#### Pleroma.Upload.Filter.Mogrify
|
||||
|
||||
* `args`: List of actions for the `mogrify` command like `"strip"` or `["strip", "auto-orient", {"implode", "1"}]`.
|
||||
|
@ -705,6 +742,21 @@ config :pleroma, Pleroma.Emails.Mailer,
|
|||
auth: :always
|
||||
```
|
||||
|
||||
An example for Mua adapter:
|
||||
|
||||
```elixir
|
||||
config :pleroma, Pleroma.Emails.Mailer,
|
||||
enabled: true,
|
||||
adapter: Swoosh.Adapters.Mua,
|
||||
relay: "mail.example.com",
|
||||
port: 465,
|
||||
auth: [
|
||||
username: "YOUR_USERNAME@domain.tld",
|
||||
password: "YOUR_SMTP_PASSWORD"
|
||||
],
|
||||
protocol: :ssl
|
||||
```
|
||||
|
||||
### :email_notifications
|
||||
|
||||
Email notifications settings.
|
||||
|
@ -816,7 +868,7 @@ config :logger,
|
|||
backends: [{ExSyslogger, :ex_syslogger}]
|
||||
|
||||
config :logger, :ex_syslogger,
|
||||
level: :warn
|
||||
level: :warning
|
||||
```
|
||||
|
||||
Another example, keeping console output and adding the pid to syslog output:
|
||||
|
@ -825,7 +877,7 @@ config :logger,
|
|||
backends: [:console, {ExSyslogger, :ex_syslogger}]
|
||||
|
||||
config :logger, :ex_syslogger,
|
||||
level: :warn,
|
||||
level: :warning,
|
||||
option: [:pid, :ndelay]
|
||||
```
|
||||
|
||||
|
@ -873,21 +925,8 @@ This will probably take a long time.
|
|||
|
||||
### BBS / SSH access
|
||||
|
||||
To enable simple command line interface accessible over ssh, add a setting like this to your configuration file:
|
||||
|
||||
```exs
|
||||
app_dir = File.cwd!
|
||||
priv_dir = Path.join([app_dir, "priv/ssh_keys"])
|
||||
|
||||
config :esshd,
|
||||
enabled: true,
|
||||
priv_dir: priv_dir,
|
||||
handler: "Pleroma.BBS.Handler",
|
||||
port: 10_022,
|
||||
password_authenticator: "Pleroma.BBS.Authenticator"
|
||||
```
|
||||
|
||||
Feel free to adjust the priv_dir and port number. Then you will have to create the key for the keys (in the example `priv/ssh_keys`) and create the host keys with `ssh-keygen -m PEM -N "" -b 2048 -t rsa -f ssh_host_rsa_key`. After restarting, you should be able to connect to your Pleroma instance with `ssh username@server -p $PORT`
|
||||
This feature has been removed from Pleroma core.
|
||||
However, a client has been made and is available at https://git.pleroma.social/Duponin/sshocial.
|
||||
|
||||
### :gopher
|
||||
* `enabled`: Enables the gopher interface
|
||||
|
@ -944,12 +983,13 @@ Pleroma account will be created with the same name as the LDAP user name.
|
|||
* `enabled`: enables LDAP authentication
|
||||
* `host`: LDAP server hostname
|
||||
* `port`: LDAP port, e.g. 389 or 636
|
||||
* `ssl`: true to use SSL, usually implies the port 636
|
||||
* `ssl`: true to use implicit SSL/TLS, usually port 636
|
||||
* `sslopts`: additional SSL options
|
||||
* `tls`: true to start TLS, usually implies the port 389
|
||||
* `tls`: true to use explicit TLS (STARTTLS), usually port 389
|
||||
* `tlsopts`: additional TLS options
|
||||
* `base`: LDAP base, e.g. "dc=example,dc=com"
|
||||
* `uid`: LDAP attribute name to authenticate the user, e.g. when "cn", the filter will be "cn=username,base"
|
||||
* `cacertfile`: Path to alternate CA root certificates file
|
||||
|
||||
Note, if your LDAP server is an Active Directory server the correct value is commonly `uid: "cn"`, but if you use an
|
||||
OpenLDAP server the value may be `uid: "uid"`.
|
||||
|
@ -1078,7 +1118,7 @@ config :pleroma, Pleroma.Formatter,
|
|||
|
||||
## :configurable_from_database
|
||||
|
||||
Boolean, enables/disables in-database configuration. Read [Transfering the config to/from the database](../administration/CLI_tasks/config.md) for more information.
|
||||
Boolean, enables/disables in-database configuration. Read [Transferring the config to/from the database](../administration/CLI_tasks/config.md) for more information.
|
||||
|
||||
## :database_config_whitelist
|
||||
|
||||
|
@ -1139,7 +1179,7 @@ Control favicons for instances.
|
|||
!!! note
|
||||
Requires enabled email
|
||||
|
||||
* `:purge_after_days` an integer, remove backup achives after N days.
|
||||
* `:purge_after_days` an integer, remove backup achieves after N days.
|
||||
* `:limit_days` an integer, limit user to export not more often than once per N days.
|
||||
* `:dir` a string with a path to backup temporary directory or `nil` to let Pleroma choose temporary directory in the following order:
|
||||
1. the directory named by the TMPDIR environment variable
|
||||
|
@ -1147,6 +1187,7 @@ Control favicons for instances.
|
|||
3. the directory named by the TMP environment variable
|
||||
4. C:\TMP on Windows or /tmp on Unix-like operating systems
|
||||
5. as a last resort, the current working directory
|
||||
* `:timeout` an integer representing seconds
|
||||
|
||||
## Frontend management
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ foo, /emoji/custom/foo.png
|
|||
|
||||
The files should be PNG (APNG is okay with `.png` for `image/png` Content-type) and under 50kb for compatibility with mastodon.
|
||||
|
||||
Default file extentions and locations for emojis are set in `config.exs`. To use different locations or file-extentions, add the `shortcode_globs` to your secrets file (`prod.secret.exs` or `dev.secret.exs`) and edit it. Note that not all fediverse-software will show emojis with other file extentions:
|
||||
Default file extensions and locations for emojis are set in `config.exs`. To use different locations or file-extensions, add the `shortcode_globs` to your secrets file (`prod.secret.exs` or `dev.secret.exs`) and edit it. Note that not all fediverse-software will show emojis with other file extensions:
|
||||
```elixir
|
||||
config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png", "/emoji/custom/**/*.gif"]
|
||||
```
|
||||
|
|
|
@ -62,6 +62,20 @@ An additional “Expect-CT” header will be sent with the configured `ct_max_ag
|
|||
|
||||
If you click on a link, your browser’s request to the other site will include from where it is coming from. The “Referrer policy” header tells the browser how and if it should send this information. (see [Referrer policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy))
|
||||
|
||||
### Uploaded media and media proxy
|
||||
|
||||
It is STRONGLY RECOMMENDED to serve both the locally-uploaded media and the media proxy from another domain than the domain that Pleroma runs on, if applicable.
|
||||
|
||||
```elixir
|
||||
config :pleroma, :media_proxy,
|
||||
base_url: "https://some.other.domain"
|
||||
|
||||
config :pleroma, Pleroma.Upload,
|
||||
base_url: "https://some.other.domain/media"
|
||||
```
|
||||
|
||||
See `installation/pleroma-mediaproxy.nginx` for examples on how to configure your media proxy.
|
||||
|
||||
## systemd
|
||||
|
||||
A systemd unit example is provided at `installation/pleroma.service`.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# I2P Federation and Accessability
|
||||
# I2P Federation and Accessibility
|
||||
|
||||
This guide is going to focus on the Pleroma federation aspect. The actual installation is neatly explained in the official documentation, and more likely to remain up-to-date.
|
||||
It might be added to this guide if there will be a need for that.
|
||||
|
|
|
@ -29,7 +29,7 @@ HiddenServiceDir /var/lib/tor/pleroma_hidden_service/
|
|||
HiddenServicePort 80 127.0.0.1:8099
|
||||
HiddenServiceVersion 3 # Remove if Tor version is below 0.3 ( tor --version )
|
||||
```
|
||||
Restart Tor to generate an adress:
|
||||
Restart Tor to generate an address:
|
||||
```
|
||||
systemctl restart tor@default.service
|
||||
```
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Optimizing the BEAM
|
||||
|
||||
Pleroma is built upon the Erlang/OTP VM known as BEAM. The BEAM VM is highly optimized for latency, but this has drawbacks in environments without dedicated hardware. One of the tricks used by the BEAM VM is [busy waiting](https://en.wikipedia.org/wiki/Busy_waiting). This allows the application to pretend to be busy working so the OS kernel does not pause the application process and switch to another process waiting for the CPU to execute its workload. It does this by spinning for a period of time which inflates the apparent CPU usage of the application so it is immediately ready to execute another task. This can be observed with utilities like **top(1)** which will show consistently high CPU usage for the process. Switching between procesess is a rather expensive operation and also clears CPU caches further affecting latency and performance. The goal of busy waiting is to avoid this penalty.
|
||||
Pleroma is built upon the Erlang/OTP VM known as BEAM. The BEAM VM is highly optimized for latency, but this has drawbacks in environments without dedicated hardware. One of the tricks used by the BEAM VM is [busy waiting](https://en.wikipedia.org/wiki/Busy_waiting). This allows the application to pretend to be busy working so the OS kernel does not pause the application process and switch to another process waiting for the CPU to execute its workload. It does this by spinning for a period of time which inflates the apparent CPU usage of the application so it is immediately ready to execute another task. This can be observed with utilities like **top(1)** which will show consistently high CPU usage for the process. Switching between processes is a rather expensive operation and also clears CPU caches further affecting latency and performance. The goal of busy waiting is to avoid this penalty.
|
||||
|
||||
This strategy is very successful in making a performant and responsive application, but is not desirable on Virtual Machines or hardware with few CPU cores. Pleroma instances are often deployed on the same server as the required PostgreSQL database which can lead to situations where the Pleroma application is holding the CPU in a busy-wait loop and as a result the database cannot process requests in a timely manner. The fewer CPUs available, the more this problem is exacerbated. The latency is further amplified by the OS being installed on a Virtual Machine as the Hypervisor uses CPU time-slicing to pause the entire OS and switch between other tasks.
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ config :pleroma, Pleroma.Repo,
|
|||
]
|
||||
```
|
||||
|
||||
A more detailed explaination of the issue can be found at <https://blog.soykaf.com/post/postgresql-elixir-troubles/>.
|
||||
A more detailed explanation of the issue can be found at <https://blog.soykaf.com/post/postgresql-elixir-troubles/>.
|
||||
|
||||
## Example configurations
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue