mirror of
https://framagit.org/hubzilla/core.git
synced 2026-06-21 17:07:39 -04:00
Compare commits
1395 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
761afd029d | ||
|
|
93565ea768 | ||
|
|
c076e72cbf | ||
|
|
26139ee06f | ||
|
|
bd394ba6dc | ||
|
|
1f0e603992 | ||
|
|
69f9842ec9 | ||
|
|
ff3aa6c663 | ||
|
|
c3e2505b66 | ||
|
|
c7cc595906 | ||
|
|
2dd9e27a44 | ||
|
|
26ed0b0f34 | ||
|
|
374aadc97e | ||
|
|
35fd21531a | ||
|
|
ca00ae2e23 | ||
|
|
b8655dd3bc | ||
|
|
9e6f43e3ff | ||
|
|
9ec258b74d | ||
|
|
d860dd753e | ||
|
|
b4ccc62596 | ||
|
|
5b0a17359d | ||
|
|
1ad90b8662 | ||
|
|
54ceef0ba1 | ||
|
|
c38edfcb32 | ||
|
|
5b9afd7555 | ||
|
|
e665afcc2a | ||
|
|
b0ec0e9eac | ||
|
|
49e4016ba2 | ||
|
|
9ee7d60afe | ||
|
|
1964fa05e1 | ||
|
|
caf3a69d99 | ||
|
|
769ad4a836 | ||
|
|
062c03c9f7 | ||
|
|
2cf4ac26fd | ||
|
|
405725875d | ||
|
|
5f61f57b2c | ||
|
|
fbeb33479b | ||
|
|
ffd4557447 | ||
|
|
cf5df259e5 | ||
|
|
3d6359f2e7 | ||
|
|
5a229234e7 | ||
|
|
b1a77b2235 | ||
|
|
6db6fef29f | ||
|
|
31fbd19c86 | ||
|
|
a085f4df7f | ||
|
|
cd2c6779b7 | ||
|
|
d39cd088a1 | ||
|
|
e98fcf68f0 | ||
|
|
7d5e066056 | ||
|
|
ba920260b8 | ||
|
|
2988d96cf0 | ||
|
|
36717e5f32 | ||
|
|
4dff54bcb8 | ||
|
|
7a9fe0907a | ||
|
|
bc5a675cdf | ||
|
|
f23e8f8d41 | ||
|
|
61fa97baab | ||
|
|
047163b884 | ||
|
|
6409237b29 | ||
|
|
598a428c6b | ||
|
|
1cfb83f003 | ||
|
|
2aad4c2cf9 | ||
|
|
e2692a4baa | ||
|
|
474a1267d7 | ||
|
|
ed5ca9e4cc | ||
|
|
8d61efa0e8 | ||
|
|
b816a575eb | ||
|
|
a99d28dea9 | ||
|
|
628e565a6c | ||
|
|
84bf705811 | ||
|
|
a721f39945 | ||
|
|
1b9722c65a | ||
|
|
62a60e5542 | ||
|
|
539d06f02d | ||
|
|
9c23fe5ab6 | ||
|
|
f78e9001f3 | ||
|
|
dee1841394 | ||
|
|
a5201a90e8 | ||
|
|
5f5e4ee6b9 | ||
|
|
cf6519da99 | ||
|
|
63eaf643a8 | ||
|
|
a57a3c709e | ||
|
|
bcebd1d5b9 | ||
|
|
4cacfe59bd | ||
|
|
f3ad7b9a16 | ||
|
|
b909c878b1 | ||
|
|
b155f2260f | ||
|
|
63256bc9b2 | ||
|
|
87519e107a | ||
|
|
a38710aa4e | ||
|
|
020fea3031 | ||
|
|
b4102489aa | ||
|
|
871ee0f571 | ||
|
|
f0d90005ea | ||
|
|
933e105f32 | ||
|
|
9b4e6e1ec0 | ||
|
|
46e4d2d573 | ||
|
|
2aa3acae6b | ||
|
|
8514789da9 | ||
|
|
20dcf37976 | ||
|
|
38d513181d | ||
|
|
f121b74bec | ||
|
|
cb8cccc537 | ||
|
|
2924b9182e | ||
|
|
5a59cd9b8c | ||
|
|
ba463afbdc | ||
|
|
6f2a5117dc | ||
|
|
b13241564b | ||
|
|
76816de3aa | ||
|
|
49108c230b | ||
|
|
b32bba47c8 | ||
|
|
3b1ab5e79c | ||
|
|
dcf7946673 | ||
|
|
fdd2da905a | ||
|
|
2cceca49e9 | ||
|
|
bb0e4044bf | ||
|
|
7244dfce1d | ||
|
|
fb5ac37ca2 | ||
|
|
f0a588547d | ||
|
|
04d3ac9aaf | ||
|
|
565126a888 | ||
|
|
395268da22 | ||
|
|
ac3075bef7 | ||
|
|
1f4c596841 | ||
|
|
6613275cc2 | ||
|
|
e7d9863432 | ||
|
|
b9af0645c2 | ||
|
|
9fb7a12849 | ||
|
|
4633273279 | ||
|
|
d0482133a5 | ||
|
|
4ff31d0a41 | ||
|
|
f73c82632f | ||
|
|
8389d8677d | ||
|
|
7fa944ed95 | ||
|
|
2340092008 | ||
|
|
6cd3296c08 | ||
|
|
d86bc0b6cf | ||
|
|
e01d4f289b | ||
|
|
8e1e301764 | ||
|
|
bd37f59829 | ||
|
|
72edc9cd6c | ||
|
|
93123e1fa8 | ||
|
|
4b6dcbb057 | ||
|
|
47f7165b07 | ||
|
|
ae2c0e6552 | ||
|
|
200eabe052 | ||
|
|
5042200492 | ||
|
|
2e73e6bfb6 | ||
|
|
c1d10bbbcb | ||
|
|
746acc21f7 | ||
|
|
f5226a748f | ||
|
|
6a3995014e | ||
|
|
534a537319 | ||
|
|
10eefc4eed | ||
|
|
3d4b3b6a92 | ||
|
|
0f4ceedbb4 | ||
|
|
656e5fd052 | ||
|
|
5735cad457 | ||
|
|
648f972cf0 | ||
|
|
baab9b6fbc | ||
|
|
60b0f9af90 | ||
|
|
9d04406f9a | ||
|
|
29ac533cc9 | ||
|
|
79340c5147 | ||
|
|
b9f5076cfc | ||
|
|
241607e7d7 | ||
|
|
bd7d851758 | ||
|
|
5de1a1ce10 | ||
|
|
8b974f8f74 | ||
|
|
96d94551f9 | ||
|
|
ba8d9c0f0b | ||
|
|
68cbebe1a5 | ||
|
|
0174cb10ae | ||
|
|
293df6308c | ||
|
|
af29822f04 | ||
|
|
0df4f9c114 | ||
|
|
69c9f4588c | ||
|
|
53627c89a7 | ||
|
|
f7f0d2b265 | ||
|
|
2d799f2c11 | ||
|
|
aa5b7eb98a | ||
|
|
1c22e8ae7e | ||
|
|
4d301bc5a6 | ||
|
|
4ccd9ae6da | ||
|
|
c8c9916b59 | ||
|
|
5490919557 | ||
|
|
3f920da413 | ||
|
|
2393db3943 | ||
|
|
a88ec1b1af | ||
|
|
553b3a5c6c | ||
|
|
a6cb25020b | ||
|
|
26c465ad0c | ||
|
|
f2d7083183 | ||
|
|
ef09a29854 | ||
|
|
c23ce16caf | ||
|
|
78a70fed2f | ||
|
|
9dfe5dee64 | ||
|
|
36ef1d1bc6 | ||
|
|
10db51e6c2 | ||
|
|
61aa33af1d | ||
|
|
d8dc055dce | ||
|
|
ce686d2c06 | ||
|
|
7119976199 | ||
|
|
dd7edc8ced | ||
|
|
4428f70ea2 | ||
|
|
0bb7589418 | ||
|
|
8a9d743f6f | ||
|
|
4cab74c18c | ||
|
|
615c97132d | ||
|
|
4b707db4b3 | ||
|
|
70c5f347c4 | ||
|
|
5217d89543 | ||
|
|
ca55bbdaed | ||
|
|
366e735ad8 | ||
|
|
c363fc71eb | ||
|
|
9f3ea71d5d | ||
|
|
75058e54b8 | ||
|
|
ed5405d4f7 | ||
|
|
8dd4270a6a | ||
|
|
c29f622b90 | ||
|
|
bc0e415926 | ||
|
|
c48965ea2f | ||
|
|
bb995f1bb6 | ||
|
|
857e13e9b8 | ||
|
|
593423434c | ||
|
|
25caeee854 | ||
|
|
20ce7a2d9f | ||
|
|
1ba74d824b | ||
|
|
be7b706486 | ||
|
|
78e18fcdcf | ||
|
|
706598313e | ||
|
|
b96f09bb3a | ||
|
|
4b191fb558 | ||
|
|
de1abf9981 | ||
|
|
c69f6ca1f4 | ||
|
|
d4b04d22ed | ||
|
|
b1f4b9759b | ||
|
|
650f882265 | ||
|
|
a2747403f2 | ||
|
|
3f9412add2 | ||
|
|
29877963be | ||
|
|
302c5afdee | ||
|
|
9f90806027 | ||
|
|
519862115c | ||
|
|
4d97ea106c | ||
|
|
d3aa50c9c3 | ||
|
|
1708769d42 | ||
|
|
4e223f816a | ||
|
|
8cf6b4064f | ||
|
|
17907f11a3 | ||
|
|
cb7df797e1 | ||
|
|
7db86a4e05 | ||
|
|
122d7281f7 | ||
|
|
4bfd34b479 | ||
|
|
962d9f36d0 | ||
|
|
216d41cd64 | ||
|
|
4af104384b | ||
|
|
aa78d51521 | ||
|
|
16e7ec7bfe | ||
|
|
fce1dc083b | ||
|
|
bcfa72ed31 | ||
|
|
b92cc852d1 | ||
|
|
6762af4158 | ||
|
|
f691e8981a | ||
|
|
6875a540ec | ||
|
|
e569f5d6eb | ||
|
|
61a5e81bc6 | ||
|
|
ee153f64d4 | ||
|
|
4c4db6f73c | ||
|
|
fa5a382c4b | ||
|
|
a73c385831 | ||
|
|
91b35c5349 | ||
|
|
056db37c66 | ||
|
|
5cb71fa5da | ||
|
|
55d00243fb | ||
|
|
8a269823d2 | ||
|
|
5ec5b127d0 | ||
|
|
0cf9e498b9 | ||
|
|
c407e72dcc | ||
|
|
8e3b796a2f | ||
|
|
17e7b276f6 | ||
|
|
306ce3819e | ||
|
|
f80aff4a65 | ||
|
|
c7cbd41c16 | ||
|
|
41542e6886 | ||
|
|
a039869ba0 | ||
|
|
192e85ffa4 | ||
|
|
b334201797 | ||
|
|
3ea84d7eab | ||
|
|
a80c45940e | ||
|
|
ab71e33d83 | ||
|
|
fe57e7059b | ||
|
|
2de65ab39f | ||
|
|
0559db9cf8 | ||
|
|
bae7b034e6 | ||
|
|
74a40adece | ||
|
|
1767a07f4d | ||
|
|
af7549d2f6 | ||
|
|
e785b723aa | ||
|
|
f520cd92d0 | ||
|
|
eb6fd311df | ||
|
|
5a12944b39 | ||
|
|
987619130b | ||
|
|
2b2723cb74 | ||
|
|
e485ecb3b4 | ||
|
|
8c5203f7e1 | ||
|
|
dfaf1a1075 | ||
|
|
bf5c0e0b0d | ||
|
|
167e754a1b | ||
|
|
34b804e9dc | ||
|
|
7338649fa5 | ||
|
|
ae1103c5a3 | ||
|
|
a7e4553ea7 | ||
|
|
6f27e8db38 | ||
|
|
292b02b58c | ||
|
|
e60f527cb0 | ||
|
|
b5a5a91b13 | ||
|
|
4c84a2ce61 | ||
|
|
18e0e4b597 | ||
|
|
74b574d0b1 | ||
|
|
9ba1b8d720 | ||
|
|
d726c921eb | ||
|
|
bd45bb3ad3 | ||
|
|
fee8503093 | ||
|
|
fabf7081d3 | ||
|
|
6083cd2559 | ||
|
|
d11e80e1b3 | ||
|
|
6942c715d0 | ||
|
|
427652e9bd | ||
|
|
106b4fdd2d | ||
|
|
f164ddf155 | ||
|
|
d9ddf7561f | ||
|
|
37368bda65 | ||
|
|
de1b3d5113 | ||
|
|
830b01bd2a | ||
|
|
90187eae37 | ||
|
|
7399f7a087 | ||
|
|
a3e47d26f6 | ||
|
|
d3bef2adc3 | ||
|
|
7b459ec355 | ||
|
|
301072a86c | ||
|
|
3b7b3ef2bb | ||
|
|
b6e4611a91 | ||
|
|
2929bb672a | ||
|
|
a4765bf954 | ||
|
|
0c2045beff | ||
|
|
22f6687f44 | ||
|
|
e56633d5b0 | ||
|
|
a44795e6c3 | ||
|
|
5805a54097 | ||
|
|
350519d429 | ||
|
|
8f94c721bf | ||
|
|
c7652fc29c | ||
|
|
e537d53389 | ||
|
|
a890ee6864 | ||
|
|
4f81d64517 | ||
|
|
b5875c3af9 | ||
|
|
ed87dbc141 | ||
|
|
059886a1e4 | ||
|
|
ba52af786e | ||
|
|
929f524e77 | ||
|
|
cd49ec92e3 | ||
|
|
ee39e3cf72 | ||
|
|
a17f280f7d | ||
|
|
7b4cfffc03 | ||
|
|
db9c2992e3 | ||
|
|
b23284cba2 | ||
|
|
0c163c4d03 | ||
|
|
e4145deeb7 | ||
|
|
33258803ea | ||
|
|
179730e485 | ||
|
|
106b3257e4 | ||
|
|
312cc415ce | ||
|
|
1f2a408be0 | ||
|
|
0d232c612b | ||
|
|
68da4d90dc | ||
|
|
545dc5cf65 | ||
|
|
a089064588 | ||
|
|
a06f7fbe2e | ||
|
|
7c4d9519c8 | ||
|
|
6fa0807550 | ||
|
|
c545ada746 | ||
|
|
868a0d8a90 | ||
|
|
5079dff338 | ||
|
|
9e3d130ad9 | ||
|
|
b531486dab | ||
|
|
6df98f080b | ||
|
|
69487389d3 | ||
|
|
0cb5f009b4 | ||
|
|
c7b2ec8bba | ||
|
|
12b0a9f35f | ||
|
|
fff30b1c3d | ||
|
|
6ad35e3d84 | ||
|
|
3d80073a0e | ||
|
|
959c3ba89d | ||
|
|
1029939f56 | ||
|
|
fd5d1416d9 | ||
|
|
def5edf93c | ||
|
|
6bdde985ce | ||
|
|
dba38821bc | ||
|
|
9d6a4c1d05 | ||
|
|
94bef08f15 | ||
|
|
0178840c19 | ||
|
|
d04c73ae00 | ||
|
|
495f21c08c | ||
|
|
d238cbea19 | ||
|
|
5d0646c9e1 | ||
|
|
93e5449c08 | ||
|
|
4872a30e2b | ||
|
|
f5fcdf1de4 | ||
|
|
888bf76e4b | ||
|
|
22a650ade8 | ||
|
|
391807b46c | ||
|
|
921a2e0dc4 | ||
|
|
5afe8e5aa1 | ||
|
|
ba84d6ff7c | ||
|
|
d786502f19 | ||
|
|
63063450b3 | ||
|
|
90463ee67d | ||
|
|
6e04dd96a1 | ||
|
|
f7c837aad0 | ||
|
|
bd3d323849 | ||
|
|
e26b558e53 | ||
|
|
85e5cd7f98 | ||
|
|
1d8cac6e73 | ||
|
|
52f6bd03b7 | ||
|
|
75c10eaff5 | ||
|
|
f94a8698dd | ||
|
|
ffb8059c24 | ||
|
|
bc7c0ed844 | ||
|
|
ac9250fc4a | ||
|
|
f1492945ec | ||
|
|
10ccdbacba | ||
|
|
d683573402 | ||
|
|
ddce0412ac | ||
|
|
609e42cdd8 | ||
|
|
7235c20854 | ||
|
|
e7bedf4433 | ||
|
|
23d30ab2c5 | ||
|
|
741afeea41 | ||
|
|
cd989977b8 | ||
|
|
1216508dc2 | ||
|
|
5c7dfcfe43 | ||
|
|
cff866172a | ||
|
|
31a612aa89 | ||
|
|
b782c46e51 | ||
|
|
eaa47760bc | ||
|
|
7ec6879887 | ||
|
|
c4a3487f0c | ||
|
|
e6de9bfa4e | ||
|
|
c0260ff701 | ||
|
|
fba2603304 | ||
|
|
7d5acef20a | ||
|
|
cda8fb3380 | ||
|
|
862a310075 | ||
|
|
98146eae07 | ||
|
|
c277039fb4 | ||
|
|
92577ddaed | ||
|
|
b99b6b5ae9 | ||
|
|
cda81e35db | ||
|
|
271a41b7dd | ||
|
|
69aeddd185 | ||
|
|
99bd69adfe | ||
|
|
115a53225e | ||
|
|
36c196e18c | ||
|
|
0c8219e683 | ||
|
|
de9c44fc56 | ||
|
|
d1dbc50a1c | ||
|
|
0fbea73581 | ||
|
|
10f7199c63 | ||
|
|
49d6605377 | ||
|
|
11c8cabf28 | ||
|
|
00132cd977 | ||
|
|
5e1b61eb02 | ||
|
|
dfb49558f4 | ||
|
|
4e1c308162 | ||
|
|
5c2692a8ea | ||
|
|
9c240de303 | ||
|
|
2536dc39b5 | ||
|
|
cf0bff8582 | ||
|
|
9c12ba5708 | ||
|
|
8639eda70f | ||
|
|
1874346c46 | ||
|
|
16040063dc | ||
|
|
2b0b03eebc | ||
|
|
df2b687a95 | ||
|
|
44fa4d1081 | ||
|
|
ce4bb8e5ec | ||
|
|
8154453803 | ||
|
|
b29fe50f70 | ||
|
|
cce46722d8 | ||
|
|
85ae07e7c8 | ||
|
|
e3da813360 | ||
|
|
9a42d63516 | ||
|
|
4620eb32d2 | ||
|
|
1c8f63f1e5 | ||
|
|
c40f6060da | ||
|
|
5776af30e8 | ||
|
|
30d083ac3c | ||
|
|
4ca0c2cfd1 | ||
|
|
12db46dcad | ||
|
|
9e6547a887 | ||
|
|
017ea0d624 | ||
|
|
a29b8b369e | ||
|
|
6b26b4e3b8 | ||
|
|
7df92ba62c | ||
|
|
9cad4c11fe | ||
|
|
5b42edb42a | ||
|
|
a26d8609a9 | ||
|
|
001e4276d3 | ||
|
|
94437a8fcd | ||
|
|
91f751d105 | ||
|
|
0db5a8673d | ||
|
|
91f2e05d5d | ||
|
|
58fe4f5cb3 | ||
|
|
2ebd9a2774 | ||
|
|
8db428458a | ||
|
|
f8b612a2c0 | ||
|
|
76043d97bd | ||
|
|
07bd396837 | ||
|
|
f7468ab473 | ||
|
|
1213893a71 | ||
|
|
5f1ccc25b6 | ||
|
|
42c0f83ec5 | ||
|
|
5dfaeaf526 | ||
|
|
1214469311 | ||
|
|
f4a9529968 | ||
|
|
3d55134953 | ||
|
|
1c0fe89368 | ||
|
|
73bef17365 | ||
|
|
9398e49eb7 | ||
|
|
50cf095c00 | ||
|
|
5d64fb5946 | ||
|
|
bf55a8e98c | ||
|
|
59e0a0fd7c | ||
|
|
d15be53034 | ||
|
|
b6b2420ff7 | ||
|
|
4bd0e083d1 | ||
|
|
d9c7b39b88 | ||
|
|
583f7df9c8 | ||
|
|
8377aa72a8 | ||
|
|
c57926d799 | ||
|
|
380e3e64cb | ||
|
|
77a03e376c | ||
|
|
5dade2b608 | ||
|
|
877b3361c8 | ||
|
|
2fbfc2a8f1 | ||
|
|
e09b49288f | ||
|
|
6aa98a1e91 | ||
|
|
14b74069f8 | ||
|
|
c1cfcc78fe | ||
|
|
2c299a9f37 | ||
|
|
288697cda2 | ||
|
|
9fa771f9fe | ||
|
|
d1aa672388 | ||
|
|
b21f6fd619 | ||
|
|
39245238fd | ||
|
|
43d8090182 | ||
|
|
d13dae6b06 | ||
|
|
0998ef0c4e | ||
|
|
543bf51eff | ||
|
|
5513feb15b | ||
|
|
e03faaeb8f | ||
|
|
966dd03195 | ||
|
|
5041774fd3 | ||
|
|
c5453d476d | ||
|
|
54eae7830e | ||
|
|
4e74c7e3b1 | ||
|
|
fe52400b75 | ||
|
|
18feef0753 | ||
|
|
6ec021aafa | ||
|
|
954957bd8a | ||
|
|
14e92f53f1 | ||
|
|
d3183467e0 | ||
|
|
b62614bbd4 | ||
|
|
618155e6ab | ||
|
|
bd75d32c1b | ||
|
|
5acfef8edb | ||
|
|
7ce3ebc46d | ||
|
|
0353b0e04f | ||
|
|
ca81ab784a | ||
|
|
3262d819de | ||
|
|
a8cdbd44e8 | ||
|
|
04820ba09e | ||
|
|
52120b367a | ||
|
|
d6d96e8c89 | ||
|
|
2b34dd7373 | ||
|
|
7a87343c71 | ||
|
|
5f80121637 | ||
|
|
5920a96da7 | ||
|
|
0acaa839b9 | ||
|
|
f8b767ed32 | ||
|
|
d0b0d0ec72 | ||
|
|
e0463f5a74 | ||
|
|
1b30210120 | ||
|
|
a1e28bb669 | ||
|
|
dc4bd531a4 | ||
|
|
c5aedb14a9 | ||
|
|
ec28dee728 | ||
|
|
3e459ed434 | ||
|
|
d66be62516 | ||
|
|
98fd919647 | ||
|
|
0a9b2b6b15 | ||
|
|
bb469deb85 | ||
|
|
96402a2354 | ||
|
|
4fec7aa991 | ||
|
|
b5dfc54be3 | ||
|
|
848e3f6c5d | ||
|
|
1f5818cec8 | ||
|
|
06ec5424c7 | ||
|
|
b9551862b4 | ||
|
|
e0a75f68d5 | ||
|
|
a5f1fa3168 | ||
|
|
1375ed6aea | ||
|
|
f1a3b281d4 | ||
|
|
59da3dfe03 | ||
|
|
52f06cabd2 | ||
|
|
612efe56f1 | ||
|
|
07c0bc7b04 | ||
|
|
f5774bba6f | ||
|
|
714832bb49 | ||
|
|
3bc8d4d0eb | ||
|
|
8083a86581 | ||
|
|
b3528c314a | ||
|
|
65587be737 | ||
|
|
9c24e1ccfb | ||
|
|
0147186565 | ||
|
|
8924cb0960 | ||
|
|
869735e4b5 | ||
|
|
605381f83d | ||
|
|
71f70b4377 | ||
|
|
c6daf4d41c | ||
|
|
3f1dc22c0e | ||
|
|
02527552fd | ||
|
|
ac5b9f2382 | ||
|
|
a2931cd17d | ||
|
|
fc65496d1d | ||
|
|
be98466b0d | ||
|
|
0fd60d1e80 | ||
|
|
35857931ef | ||
|
|
6cb7afcbc0 | ||
|
|
32a0f5b04a | ||
|
|
3bc6190bdd | ||
|
|
4fb9571136 | ||
|
|
e70bb371d9 | ||
|
|
2099ac0615 | ||
|
|
5e28b1216e | ||
|
|
e858ee811b | ||
|
|
a498fc8e72 | ||
|
|
7063b6cb6d | ||
|
|
917d0ced4a | ||
|
|
969418ce73 | ||
|
|
7f3df847a2 | ||
|
|
e0424fe6cc | ||
|
|
b67397861c | ||
|
|
de15a2ace1 | ||
|
|
4369ee2ca7 | ||
|
|
a1163b70a6 | ||
|
|
2030aea175 | ||
|
|
969b66b315 | ||
|
|
4442da306a | ||
|
|
911fd6c654 | ||
|
|
9cee3dda1f | ||
|
|
cc0f026cec | ||
|
|
f1b5c333ff | ||
|
|
123fe58c26 | ||
|
|
fd1e163bf4 | ||
|
|
ab8b4d5c36 | ||
|
|
4a044351a9 | ||
|
|
e0a2268b0e | ||
|
|
3432771150 | ||
|
|
768615f2f1 | ||
|
|
9ae215291f | ||
|
|
1cf206d764 | ||
|
|
4c406ec9c0 | ||
|
|
500b896d50 | ||
|
|
18a239e808 | ||
|
|
5aa07bda7c | ||
|
|
379fd33484 | ||
|
|
ed6629002f | ||
|
|
bcb4ac7aae | ||
|
|
5395b173aa | ||
|
|
735f9c7a45 | ||
|
|
9cbca24f7a | ||
|
|
6f8d29ad80 | ||
|
|
eb947acebe | ||
|
|
01e84edd0a | ||
|
|
b7538b6ada | ||
|
|
232742a5e6 | ||
|
|
a33ddf373b | ||
|
|
b57e735199 | ||
|
|
38816d7e41 | ||
|
|
3a89bb0db2 | ||
|
|
865c38995d | ||
|
|
beae28f2db | ||
|
|
81b2c5ac68 | ||
|
|
35b5f60f99 | ||
|
|
13d0db5f9a | ||
|
|
96f23758b4 | ||
|
|
f7601756e9 | ||
|
|
54059b2f15 | ||
|
|
f00887ea42 | ||
|
|
08a5884c9f | ||
|
|
0f3b7dd6e9 | ||
|
|
bab73edcef | ||
|
|
42d26f01d6 | ||
|
|
8aadc2837c | ||
|
|
ea37882b95 | ||
|
|
599a0c66b2 | ||
|
|
57e0bfc5a9 | ||
|
|
9f424bb208 | ||
|
|
4e5b813aa8 | ||
|
|
6a2c32bd23 | ||
|
|
febcb90ece | ||
|
|
4b300f8274 | ||
|
|
8da8e02dc8 | ||
|
|
3e9b6a330d | ||
|
|
b54c4df74d | ||
|
|
f0a33c00bc | ||
|
|
8631b28130 | ||
|
|
9b3662e5ad | ||
|
|
3fb690a0f6 | ||
|
|
76d41fc250 | ||
|
|
15fa300e04 | ||
|
|
47c86828c6 | ||
|
|
6eaf35a142 | ||
|
|
ea8364eba5 | ||
|
|
fc4b1693f9 | ||
|
|
52f3d6722d | ||
|
|
126628546b | ||
|
|
2540ecc0ac | ||
|
|
b49972a623 | ||
|
|
b82a9a6594 | ||
|
|
be701677d6 | ||
|
|
1e8fc8b062 | ||
|
|
b6c765c9dc | ||
|
|
1d2797dc1f | ||
|
|
4b984f9819 | ||
|
|
e8882a5167 | ||
|
|
4f0490f26f | ||
|
|
7fe6bc52d0 | ||
|
|
b7408fa39e | ||
|
|
7ca5b5c928 | ||
|
|
6f5f613d9f | ||
|
|
52f2509280 | ||
|
|
c07f694a07 | ||
|
|
c49198fd71 | ||
|
|
864bad0ebb | ||
|
|
051858300e | ||
|
|
75d16e4852 | ||
|
|
a756c0b182 | ||
|
|
550cab41fb | ||
|
|
45bd81fe8c | ||
|
|
3f7ee613fc | ||
|
|
93f061f78a | ||
|
|
7517c76ae4 | ||
|
|
e26f771cbe | ||
|
|
bf5a1f662a | ||
|
|
d9753989bf | ||
|
|
391b98f72c | ||
|
|
d40a087ec2 | ||
|
|
138c14d43f | ||
|
|
dc6a594277 | ||
|
|
9f5c61b1fd | ||
|
|
3bca640521 | ||
|
|
73082a338b | ||
|
|
1593ebec1f | ||
|
|
2413968021 | ||
|
|
44b542814a | ||
|
|
2848f5dab4 | ||
|
|
f0f5a8f2b5 | ||
|
|
0563ce93a1 | ||
|
|
6a927be76c | ||
|
|
c8e3ea955d | ||
|
|
b33a9a71f6 | ||
|
|
dc80431438 | ||
|
|
8af3dc140e | ||
|
|
3c7d2d4cea | ||
|
|
de697a4267 | ||
|
|
ca35db76b8 | ||
|
|
b6eded1119 | ||
|
|
c8d8ae89d7 | ||
|
|
b2d949ce9a | ||
|
|
f12ebffa39 | ||
|
|
9b4d32b68c | ||
|
|
f4e708a02f | ||
|
|
b4e83b6537 | ||
|
|
c7637a0c53 | ||
|
|
9b1195c896 | ||
|
|
732c6134dd | ||
|
|
e98c871781 | ||
|
|
d616099de6 | ||
|
|
e3070eb170 | ||
|
|
319b02a757 | ||
|
|
64cdbb8e3b | ||
|
|
edeba4ca34 | ||
|
|
7e03f612b3 | ||
|
|
578f1b8ece | ||
|
|
e2a15d0ec9 | ||
|
|
3c74aec973 | ||
|
|
61e3ef2552 | ||
|
|
136e5fdf95 | ||
|
|
75fe9f9cc4 | ||
|
|
73dad85867 | ||
|
|
91895c52ca | ||
|
|
fc28af8518 | ||
|
|
3545626950 | ||
|
|
6a7079a594 | ||
|
|
42db2bc93d | ||
|
|
a2f5b55d10 | ||
|
|
8e7e9b7040 | ||
|
|
43eefb5929 | ||
|
|
dcdcba9f1f | ||
|
|
dec37b3dbe | ||
|
|
9431112f77 | ||
|
|
7bdd5c9e0d | ||
|
|
c963aa98e8 | ||
|
|
0f6e1c1c05 | ||
|
|
ce8d49a47d | ||
|
|
70dc305f12 | ||
|
|
df45374041 | ||
|
|
22a5a91bd5 | ||
|
|
d5788ba53a | ||
|
|
4d8a1c67c3 | ||
|
|
ea34e4bad8 | ||
|
|
258e2d197a | ||
|
|
e75e09dae8 | ||
|
|
4aee8ba27f | ||
|
|
90c6276fe2 | ||
|
|
1cae3baaea | ||
|
|
209882d5a9 | ||
|
|
2999096221 | ||
|
|
d076255c98 | ||
|
|
b2f2deffe6 | ||
|
|
b31aa4aacb | ||
|
|
85962a3eb1 | ||
|
|
a9696abdce | ||
|
|
e22448fb5c | ||
|
|
db0a102703 | ||
|
|
9034765790 | ||
|
|
3377b29957 | ||
|
|
5390594f40 | ||
|
|
e95753b184 | ||
|
|
6bd0d57c1e | ||
|
|
192b5a41f0 | ||
|
|
c76da2e77d | ||
|
|
8bf45536d3 | ||
|
|
e1fca2a1ab | ||
|
|
f5fe37ab09 | ||
|
|
08813f1650 | ||
|
|
8f7dd2f858 | ||
|
|
05050381d3 | ||
|
|
95d6d2644f | ||
|
|
dbd981939c | ||
|
|
2e45b41902 | ||
|
|
7776c56c6c | ||
|
|
4decceea76 | ||
|
|
26b97722c6 | ||
|
|
38fe928d06 | ||
|
|
c229223e01 | ||
|
|
ab59e41e1a | ||
|
|
392ee70fd5 | ||
|
|
7abad2ff99 | ||
|
|
d337cc6618 | ||
|
|
3a8bff228e | ||
|
|
5ba39fef9a | ||
|
|
c7160e3d25 | ||
|
|
6171d164d7 | ||
|
|
b1e0018b74 | ||
|
|
9b8aa8d09e | ||
|
|
3bed94f4ad | ||
|
|
a895a0d79e | ||
|
|
1da3828a09 | ||
|
|
982ff8733f | ||
|
|
ebe374d572 | ||
|
|
dd45e7b4eb | ||
|
|
63eb0e3a38 | ||
|
|
f472071f6f | ||
|
|
7b695aa684 | ||
|
|
de4b5978c3 | ||
|
|
f23f8f7f5d | ||
|
|
f64acadd58 | ||
|
|
68ea1d0289 | ||
|
|
1574043a9e | ||
|
|
a2a5580e68 | ||
|
|
2696cf9b9e | ||
|
|
d9f962ee6f | ||
|
|
7468d8a000 | ||
|
|
270bb4e2d9 | ||
|
|
d3d9b06eb7 | ||
|
|
e7131bc8f8 | ||
|
|
1df1c15e48 | ||
|
|
986244eeea | ||
|
|
526bc36b40 | ||
|
|
9bdb7bef5d | ||
|
|
54e7d5d260 | ||
|
|
5265c190d4 | ||
|
|
4b7c052ed8 | ||
|
|
b62e7e7d8b | ||
|
|
fd290882fd | ||
|
|
09015f8924 | ||
|
|
b5f382f0ea | ||
|
|
ccd13dd643 | ||
|
|
d66715648a | ||
|
|
e07ff7d3fb | ||
|
|
0d60789f69 | ||
|
|
e769fbaffb | ||
|
|
5721f9f3a9 | ||
|
|
cca9f2392e | ||
|
|
928fa44154 | ||
|
|
a795f03c48 | ||
|
|
8f7b869c08 | ||
|
|
c5294f994e | ||
|
|
34f52e47eb | ||
|
|
f950d27b3d | ||
|
|
2a2da48d18 | ||
|
|
0b1cd826b0 | ||
|
|
b3525b8657 | ||
|
|
8d5556764c | ||
|
|
f965209eee | ||
|
|
5c526995d8 | ||
|
|
50ee82e8bd | ||
|
|
8a3c909c74 | ||
|
|
3a8e1e0484 | ||
|
|
3b53cd56ef | ||
|
|
30e88a4f6b | ||
|
|
e5f47cd14b | ||
|
|
6368b09337 | ||
|
|
b97102da01 | ||
|
|
dbeae16dc1 | ||
|
|
edbcba6f11 | ||
|
|
ed876a9c52 | ||
|
|
67fe8fc4a7 | ||
|
|
55b530f0fd | ||
|
|
3a2c3ea8fa | ||
|
|
aae51a9b23 | ||
|
|
cd2b811555 | ||
|
|
15d1a6c937 | ||
|
|
9ab335626c | ||
|
|
451db7dd98 | ||
|
|
d6293730fc | ||
|
|
8e410f14b1 | ||
|
|
49000dadda | ||
|
|
9bde18492a | ||
|
|
b22fa9f7f4 | ||
|
|
a7b2d23e9b | ||
|
|
ba94f824b9 | ||
|
|
8aec437c23 | ||
|
|
98f656cfcb | ||
|
|
e558ddae3f | ||
|
|
2c665e5e4c | ||
|
|
2fe3d16bbe | ||
|
|
2844f276b9 | ||
|
|
414b5ea6f3 | ||
|
|
c42dcd5ac9 | ||
|
|
b9723aa85b | ||
|
|
03fb13e749 | ||
|
|
e04f04ef0f | ||
|
|
0f3c2c4b24 | ||
|
|
8a94a4938f | ||
|
|
b553ffd55d | ||
|
|
e45958b967 | ||
|
|
0bfdb45b41 | ||
|
|
8cbccb20ef | ||
|
|
f506f73d3f | ||
|
|
7734bbfe4d | ||
|
|
d35c5bcb2f | ||
|
|
c699d3a17a | ||
|
|
d16ac62a51 | ||
|
|
2fa5b8c0a2 | ||
|
|
15feeb7bfe | ||
|
|
02ecc93998 | ||
|
|
34291d5938 | ||
|
|
e726adc27b | ||
|
|
642f460dca | ||
|
|
1d7d9818fa | ||
|
|
c2dcc68803 | ||
|
|
d7c9f2ccba | ||
|
|
7dd61c05dc | ||
|
|
1c1155513a | ||
|
|
f84151e1fe | ||
|
|
4b13f0e025 | ||
|
|
2869ccfe39 | ||
|
|
8ead4745f8 | ||
|
|
15b241cc3e | ||
|
|
2b07a69b93 | ||
|
|
5068ce0569 | ||
|
|
0b1b11ea53 | ||
|
|
ea9f169a6c | ||
|
|
cbd7f89066 | ||
|
|
146ff6f703 | ||
|
|
326ae5ff6b | ||
|
|
8c16f12d7a | ||
|
|
477228d4ff | ||
|
|
9baaa6fa56 | ||
|
|
7834274bff | ||
|
|
d2565d0f61 | ||
|
|
4fde0bf62e | ||
|
|
a679081993 | ||
|
|
177292de13 | ||
|
|
efcb4abfd0 | ||
|
|
1501d1c570 | ||
|
|
59a56ac77f | ||
|
|
35f09f4f74 | ||
|
|
421dfce599 | ||
|
|
b240c15014 | ||
|
|
9de8df496a | ||
|
|
4f65066572 | ||
|
|
c38687725d | ||
|
|
099f236f45 | ||
|
|
996cd7e2ab | ||
|
|
77df590f65 | ||
|
|
ce064188c6 | ||
|
|
5d6f59a598 | ||
|
|
f4a4cf1402 | ||
|
|
032ef0ca34 | ||
|
|
5a7e8d8520 | ||
|
|
63146821d7 | ||
|
|
9ed8eac8c6 | ||
|
|
40bb1699a5 | ||
|
|
74827133b2 | ||
|
|
7c8706757d | ||
|
|
3dc066a143 | ||
|
|
43251ed8ce | ||
|
|
1a16822987 | ||
|
|
fdd4c1b9d1 | ||
|
|
1bd1050160 | ||
|
|
525a0478b0 | ||
|
|
ce28760c2a | ||
|
|
438cb1d7e0 | ||
|
|
87c8cf4892 | ||
|
|
f2fefb91d5 | ||
|
|
4d05d477f8 | ||
|
|
cc95c3e9c8 | ||
|
|
f0a7a6a1e2 | ||
|
|
4090843fef | ||
|
|
c6c18261a0 | ||
|
|
d9e83eb53a | ||
|
|
1cf404177d | ||
|
|
ed9ffec5ba | ||
|
|
582607c0f0 | ||
|
|
6cd5826d21 | ||
|
|
b7e953f50e | ||
|
|
9f630b6653 | ||
|
|
3017dbc8c1 | ||
|
|
5d33b34be7 | ||
|
|
f2104b0a5a | ||
|
|
84b004399e | ||
|
|
e8a01f0916 | ||
|
|
4f1d579ba1 | ||
|
|
c34d8286a3 | ||
|
|
4eb389f2d9 | ||
|
|
999ac60a87 | ||
|
|
30af694e30 | ||
|
|
fa76da1dab | ||
|
|
1500691cc2 | ||
|
|
fae5ea749a | ||
|
|
c2dac55edb | ||
|
|
4c5a74284b | ||
|
|
d0a3cfe765 | ||
|
|
580f1f1213 | ||
|
|
b87d164f2f | ||
|
|
f3c8f342ff | ||
|
|
63a1d8d0db | ||
|
|
93f5cc1e60 | ||
|
|
68a503049b | ||
|
|
fae43010c5 | ||
|
|
30351f5ade | ||
|
|
325a5b4af4 | ||
|
|
021c81cb62 | ||
|
|
7099e09a5c | ||
|
|
97b990c9bf | ||
|
|
db3d99f7c7 | ||
|
|
8fb4f37670 | ||
|
|
dfd4115f7a | ||
|
|
e58ad35fb0 | ||
|
|
31db5078c1 | ||
|
|
40c78d23e6 | ||
|
|
ec1d6d537e | ||
|
|
06bfd2b502 | ||
|
|
fd708b28b8 | ||
|
|
03e3281beb | ||
|
|
f247b9ce20 | ||
|
|
67909b55fc | ||
|
|
43ba690eda | ||
|
|
3425267368 | ||
|
|
0c3d9af333 | ||
|
|
67c2b309d1 | ||
|
|
df0fa9883c | ||
|
|
9821a39549 | ||
|
|
692e117c8a | ||
|
|
d96ca61f2b | ||
|
|
fc58b8cc0d | ||
|
|
c8503daf5a | ||
|
|
45e1f93e56 | ||
|
|
77807d439e | ||
|
|
e062c4e6b5 | ||
|
|
755edd2110 | ||
|
|
f51124397f | ||
|
|
e42111545b | ||
|
|
5112b4b963 | ||
|
|
99c5c7ab28 | ||
|
|
edb1473f13 | ||
|
|
f2171173fe | ||
|
|
7f30863df2 | ||
|
|
a6a2c02b6a | ||
|
|
d3ee99d677 | ||
|
|
4abfd4053a | ||
|
|
05e0ed5173 | ||
|
|
00b480527a | ||
|
|
e4231efd20 | ||
|
|
922d2165b3 | ||
|
|
9cee52c668 | ||
|
|
50e32c3d8a | ||
|
|
5e576bff63 | ||
|
|
e1338f5a7f | ||
|
|
672143d3a2 | ||
|
|
2d94a038a5 | ||
|
|
174d55cf3d | ||
|
|
f2889d24e6 | ||
|
|
db58b62235 | ||
|
|
f3b560b453 | ||
|
|
43e064749c | ||
|
|
4af339da63 | ||
|
|
4cd6e7ec91 | ||
|
|
197b5de9da | ||
|
|
cdfddc0fc5 | ||
|
|
f4d3ec908d | ||
|
|
918aaa64e2 | ||
|
|
2417396a93 | ||
|
|
0a051ff2cd | ||
|
|
d702133ded | ||
|
|
2aaee311f3 | ||
|
|
e8d431c2f6 | ||
|
|
0f4c012321 | ||
|
|
f13a8f725c | ||
|
|
e6690c818d | ||
|
|
5d32aa94d9 | ||
|
|
d413b6eba8 | ||
|
|
f0847e6f32 | ||
|
|
50d7554ccd | ||
|
|
b28d3015fe | ||
|
|
75d521d42a | ||
|
|
1ebaacfd5e | ||
|
|
52cd8652bb | ||
|
|
c6bdf7e891 | ||
|
|
11e19a06b7 | ||
|
|
880ca35681 | ||
|
|
650e98b2a9 | ||
|
|
f84946c135 | ||
|
|
508969a183 | ||
|
|
c39e3613a8 | ||
|
|
4eec9a2fba | ||
|
|
6d1b64065a | ||
|
|
5751437c93 | ||
|
|
9fa0490c44 | ||
|
|
6711ceb662 | ||
|
|
dc7677f5fa | ||
|
|
78fb6f55ed | ||
|
|
c5981cbc9a | ||
|
|
2f52b6c164 | ||
|
|
5d59462e49 | ||
|
|
1b09c64856 | ||
|
|
24b90b475b | ||
|
|
2312f03eac | ||
|
|
1d09e4b620 | ||
|
|
6ea1cf71b5 | ||
|
|
302fe94705 | ||
|
|
38ea8d1d86 | ||
|
|
67ed7e40be | ||
|
|
20f211b70a | ||
|
|
ebb07def7e | ||
|
|
55ab968edf | ||
|
|
3f6d6745de | ||
|
|
d1daae1b59 | ||
|
|
350ea2bf28 | ||
|
|
2f73d24ab1 | ||
|
|
1a05696a84 | ||
|
|
fc804751a2 | ||
|
|
938ef930d4 | ||
|
|
ee21d87d1b | ||
|
|
b1888afa10 | ||
|
|
856cc7d6b8 | ||
|
|
d79e81a069 | ||
|
|
f7d9523c7d | ||
|
|
d93e1c84ac | ||
|
|
2a7ff3018b | ||
|
|
c83da012ff | ||
|
|
46e9c4299e | ||
|
|
e1af81ea55 | ||
|
|
99848ab3bb | ||
|
|
90d48d60d8 | ||
|
|
48c0efd20e | ||
|
|
adfc748bfa | ||
|
|
5cef672f9a | ||
|
|
015c7243b9 | ||
|
|
d1480d9f56 | ||
|
|
f3cb17ac3b | ||
|
|
fb2d2c5585 | ||
|
|
945ba5d788 | ||
|
|
3e7edf504d | ||
|
|
3285c71995 | ||
|
|
669e111118 | ||
|
|
360fda15e9 | ||
|
|
2018b88093 | ||
|
|
837b9224cc | ||
|
|
c22da3da1c | ||
|
|
470915a55b | ||
|
|
d9a67d64b1 | ||
|
|
2a26c898ca | ||
|
|
69fc10d5ad | ||
|
|
3647b74d33 | ||
|
|
441946b9d3 | ||
|
|
d376d2a590 | ||
|
|
9328edfdcd | ||
|
|
d105f324af | ||
|
|
23213a91ed | ||
|
|
184c544a24 | ||
|
|
6cc60ba477 | ||
|
|
c5578d7964 | ||
|
|
95cf1aafa0 | ||
|
|
f72a3113f5 | ||
|
|
3c29b46c42 | ||
|
|
f2397c942c | ||
|
|
eb2df761d5 | ||
|
|
1ce8ce896b | ||
|
|
85daf26eb1 | ||
|
|
286be43963 | ||
|
|
d951534d8f | ||
|
|
515f3bf111 | ||
|
|
3852b5ce7f | ||
|
|
d753ae4cf1 | ||
|
|
2ce1e3678a | ||
|
|
365d690d7d | ||
|
|
e75616517d | ||
|
|
5cb2fa5981 | ||
|
|
e854562803 | ||
|
|
fad9594b31 | ||
|
|
1447499776 | ||
|
|
4fe3b5c6a6 | ||
|
|
417da13353 | ||
|
|
69dc1b03c3 | ||
|
|
d7089ab471 | ||
|
|
039f56f390 | ||
|
|
d7cae1ce2a | ||
|
|
d7cf7316be | ||
|
|
b4cbb3aeb1 | ||
|
|
de3012ccf1 | ||
|
|
53a0920f20 | ||
|
|
5fe9021375 | ||
|
|
fd28550ad2 | ||
|
|
c0cb21a07c | ||
|
|
c865f17dc0 | ||
|
|
e23f86faa9 | ||
|
|
7ba1217a13 | ||
|
|
60ac0cef5c | ||
|
|
a42b236587 | ||
|
|
8db5d3ba5c | ||
|
|
d05fd9632e | ||
|
|
ca0bc2bb7b | ||
|
|
3fbb955cf2 | ||
|
|
04b4897dd8 | ||
|
|
c2bc6a04ab | ||
|
|
96c61fc5f2 | ||
|
|
1b82fb7349 | ||
|
|
7b28c42693 | ||
|
|
58ffa31e91 | ||
|
|
0b5bad4aa7 | ||
|
|
2bce61d18b | ||
|
|
9cebd24987 | ||
|
|
0d2c90cc2e | ||
|
|
54c88dfae9 | ||
|
|
d1c23477df | ||
|
|
8fb1356623 | ||
|
|
d2fec56456 | ||
|
|
bd2d99aced | ||
|
|
71308fe8c1 | ||
|
|
da649e397e | ||
|
|
1dbcfaa2c6 | ||
|
|
2d471e39dc | ||
|
|
e5dec8671e | ||
|
|
5fa2aa6d48 | ||
|
|
0edac8810b | ||
|
|
b085a3243c | ||
|
|
d256e8e9f2 | ||
|
|
250d286f1d | ||
|
|
eac9c8a7e6 | ||
|
|
a67213627c | ||
|
|
852d19f209 | ||
|
|
b1f091e4d7 | ||
|
|
8cd583fd8c | ||
|
|
bf190be5b4 | ||
|
|
092e7378cd | ||
|
|
2a59392ba8 | ||
|
|
feabaedd83 | ||
|
|
c9b8f404e0 | ||
|
|
39df2a475e | ||
|
|
957abf1c1b | ||
|
|
7c34911b1c | ||
|
|
7688bf3f21 | ||
|
|
242cb047d4 | ||
|
|
43fbbfe0df | ||
|
|
72bdca009c | ||
|
|
fef93af0a6 | ||
|
|
3e7a76cc64 | ||
|
|
49c4aa1a54 | ||
|
|
afbbc9cd72 | ||
|
|
05bec13bdc | ||
|
|
8fc321ca62 | ||
|
|
6590ca02de | ||
|
|
20fc4ee021 | ||
|
|
a322254f2a | ||
|
|
fd7b668a16 | ||
|
|
5786fd2221 | ||
|
|
419b4ecfde | ||
|
|
69920fb717 | ||
|
|
863a979754 | ||
|
|
8d66fbccfa | ||
|
|
a4caaefd32 | ||
|
|
e50e687191 | ||
|
|
c96f121d41 | ||
|
|
72b7b19937 | ||
|
|
4e3d295c90 | ||
|
|
3b1554db2e | ||
|
|
37d07a7d2a | ||
|
|
75fbf21e6b | ||
|
|
27b61b1456 | ||
|
|
9f4f967ead | ||
|
|
9763c46b7e | ||
|
|
f682325924 | ||
|
|
abe362bdd4 | ||
|
|
ea331b043c | ||
|
|
1a4a921528 | ||
|
|
1982fc807f | ||
|
|
30fd17c58d | ||
|
|
4ebee195cc | ||
|
|
98eeff7538 | ||
|
|
f2fdc91ad5 | ||
|
|
d88c25c982 | ||
|
|
f70fd95361 | ||
|
|
be3a272a80 | ||
|
|
631eb4b2c2 | ||
|
|
6a1d1867f0 | ||
|
|
b3b566c907 | ||
|
|
dd5023e494 | ||
|
|
18bc12c21c | ||
|
|
1d4dc7e27c | ||
|
|
0d84c77c6c | ||
|
|
400eb748eb | ||
|
|
73b30de9cb | ||
|
|
7a8d0a03f6 | ||
|
|
d140620008 | ||
|
|
50a1e0c618 | ||
|
|
ef73880459 | ||
|
|
98f3242e73 | ||
|
|
0b7365e2db | ||
|
|
f88dc84091 | ||
|
|
3099562a21 | ||
|
|
588d22974c | ||
|
|
4c2bbe3c41 | ||
|
|
b634c08d0e | ||
|
|
2d9d4dfeb3 | ||
|
|
d882b3274b | ||
|
|
1aa48ddfaa | ||
|
|
ad02d5589d | ||
|
|
0e8991fec2 | ||
|
|
b651604e8b | ||
|
|
1932e72603 | ||
|
|
be4eb4eeb8 | ||
|
|
89fa36ce2a | ||
|
|
80df97e734 | ||
|
|
8dd7fab38d | ||
|
|
400d5790f3 | ||
|
|
c8e83d6edc | ||
|
|
c8b8c6cb14 | ||
|
|
44dcbeaaa4 | ||
|
|
0c23843b61 | ||
|
|
0a34b96e11 | ||
|
|
f30d2b489a | ||
|
|
81c740178d | ||
|
|
36b5f6acfe | ||
|
|
eae88b0815 | ||
|
|
58c9f516b3 | ||
|
|
8ce4814835 | ||
|
|
2656aeaf9c | ||
|
|
bf3ea2cd47 | ||
|
|
07cd0c870f | ||
|
|
2b1e672316 | ||
|
|
5adb41a0ed | ||
|
|
98fa996b3f | ||
|
|
07e890a79a | ||
|
|
3f9e39a9e3 | ||
|
|
b51bcba263 | ||
|
|
17d004d52b | ||
|
|
d94e61a7b6 |
@@ -28,3 +28,4 @@ AddType audio/ogg .oga
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*)$ index.php?q=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
|
||||
</IfModule>
|
||||
|
||||
|
||||
94
.openshift/README.md
Normal file
94
.openshift/README.md
Normal file
@@ -0,0 +1,94 @@
|
||||
#Hubzilla on OpenShift
|
||||
You will notice a new .openshift folder when you fetch from upstream, i.e. from https://github.com/redmatrix/hubzilla.git , which contains a deploy script to set up Hubzilla on OpenShift.
|
||||
|
||||
Create an account on OpenShift, then use the registration e-mail and password to create your first Hubzilla instance. Install git and RedHat's command line tools - rhc - if you have not already done so.
|
||||
|
||||
```
|
||||
rhc app-create your_app_name php-5.4 mysql-5.5 cron phpmyadmin --namespace your_domain --from-code https://github.com/redmatrix/hubzilla.git -l your@email.address -p your_account_password
|
||||
```
|
||||
|
||||
Make a note of the database username and password OpenShift creates for your instance, and use these at https://your_app_name-your_domain.rhcloud.com/ to complete the setup.
|
||||
|
||||
NOTE: PostgreSQL is NOT supported by the deploy script yet.
|
||||
|
||||
Update
|
||||
To update, consider your own workflow first. I have forked Hubzilla code into my GitHub account to be able to try things out, this remote repo is called origin. Here is how I fetch new code from upstream, merge into my local repo, then push the updated code both into origin and the remote repo called openshift.
|
||||
|
||||
```
|
||||
git fetch upstream;git checkout master;git merge upstream/master;git push origin;git push openshift HEAD
|
||||
```
|
||||
|
||||
##Administration
|
||||
Symptoms of need for MySQL database administration are:
|
||||
- you can visit your domain and see the Hubzilla frontpage, but trying to login throws you back to login. This can mean your session table is marked as crashed.
|
||||
- you can login, but your channel posts are not visible. This can mean your item table is marked as crashed.
|
||||
- you can login and you can see your channel posts, but apparently nobody is getting your posts, comments, likes and so on. This can mean your outq table is marked as crashed.
|
||||
|
||||
You can check your OpenShift logs by doing
|
||||
|
||||
```
|
||||
rhc tail -a your_app_name -n your_domain -l your@email.address -p your_account_password
|
||||
```
|
||||
|
||||
and you might be able to confirm the above suspicions about crashed tables, or other problems you need to fix.
|
||||
|
||||
###How to fix crashed tables in MySQL
|
||||
Using MySQL and the MyISAM database engine can result in table indexes coming out of sync, and you have at least two options for fixing tables marked as crashed.
|
||||
- Use the database username and password OpenShift creates for your instance at https://your_app_name-your_domain.rhcloud.com/phpmyadmin/ to login via the web into your phpMyAdmin web interface, click your database in the left column, in the right column scroll down to the bottom of the list of tables and click the checkbox for marking all tables, then select Check tables from the drop down menu. This will check the tables for problems, and you can then checkmark only those tables with problems, and select Repair table from the same drop down menu at the bottom.
|
||||
- You can login to your instance with SSH - see OpenShift for details - then
|
||||
|
||||
```
|
||||
cd mysql/data/your_database
|
||||
myisamchk -r *.MYI
|
||||
```
|
||||
|
||||
or if you get
|
||||
|
||||
```
|
||||
Can't create new tempfile
|
||||
```
|
||||
|
||||
check your OpenShift's gear quota with
|
||||
|
||||
```
|
||||
quota -gus
|
||||
```
|
||||
|
||||
and if you are short on space, then locally (not SSH) do
|
||||
|
||||
```
|
||||
rhc app-tidy your_app_name -l your_login -p your_password
|
||||
```
|
||||
|
||||
to have rhc delete temporary files and OpenShift logs to free space first, then check the size of your local repo dir and execute
|
||||
|
||||
```
|
||||
git gc
|
||||
```
|
||||
|
||||
against it and check the size again, and then to minimize your remote repo connect via SSH to your application gear and execute the same command against it by changing to the remote repo directory - your repo should be in
|
||||
|
||||
```
|
||||
~/git/your_app_name.git
|
||||
```
|
||||
|
||||
(if not, do find -size +1M to find it), then do
|
||||
|
||||
```
|
||||
cd ~/mysql/data/yourdatabase
|
||||
myisamchk -r -v -f*.MYI
|
||||
```
|
||||
|
||||
and hopefully your database tables are now okay.
|
||||
|
||||
##NOTES
|
||||
Note 1: definitely DO turn off feeds and discovery by default if you are on the Free or Bronze plan on OpenShift with a single 1Gb gear by visiting https://your-app-name.rhcloud.com/admin/site when logged in as administrator of your Hubzilla site.
|
||||
Note 2: DO add the above defaults into the deploy script.
|
||||
Note 3: DO add git gc to the deploy script to clean up git.
|
||||
Note 4: MAYBE DO add myisamchk - only checking? to the end of the deploy script.
|
||||
|
||||
The OpenShift `php` cartridge documentation can be found at:
|
||||
http://openshift.github.io/documentation/oo_cartridge_guide.html#php
|
||||
|
||||
For information about .openshift directory, consult the documentation:
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory
|
||||
3
.openshift/action_hooks/README.md
Normal file
3
.openshift/action_hooks/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
For information about action hooks, consult the documentation:
|
||||
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#action-hooks
|
||||
210
.openshift/action_hooks/deploy
Executable file
210
.openshift/action_hooks/deploy
Executable file
@@ -0,0 +1,210 @@
|
||||
#!/bin/bash
|
||||
# This deploy hook gets executed after dependencies are resolved and the
|
||||
# build hook has been run but before the application has been started back
|
||||
# up again. This script gets executed directly, so it could be python, php,
|
||||
# ruby, etc.
|
||||
|
||||
# Bash help: http://www.panix.com/~elflord/unix/bash-tute.html
|
||||
|
||||
# For information about action hooks supported by OpenShift, consult the documentation:
|
||||
# http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory
|
||||
|
||||
####
|
||||
|
||||
# Hubzilla specific deploy script
|
||||
|
||||
# Place this file in /.openshift/action_hooks/ (The .openshift folder will be in the root of your repo)
|
||||
# The file name should be "deploy" such that you have:
|
||||
# .openshift/action_hooks/deploy
|
||||
|
||||
# Conventions: Vars in curley braces have the slash after implied so no need to add it.
|
||||
# e.g. ${OPENSHIFT_REPO_DIR}php/foobar = /repo/php/foobar
|
||||
# See all OpenShift vars here:
|
||||
# https://www.openshift.com/developers/openshift-environment-variables
|
||||
|
||||
# HME - NOTE - leftover from original openshift-drupal-deploy
|
||||
# In config.php you can leverage the enviroment variables like this:
|
||||
# // Define env vars.
|
||||
# if (array_key_exists('OPENSHIFT_APP_NAME', $_SERVER)) {
|
||||
# $src = $_SERVER;
|
||||
# } else {
|
||||
# $src = $_ENV;
|
||||
# }
|
||||
#
|
||||
# $conf["file_private_path"] = $src['OPENSHIFT_DATA_DIR'] . "private";
|
||||
# $conf["file_temporary_path"] = $src['OPENSHIFT_DATA_DIR'] . "tmp";
|
||||
|
||||
|
||||
####
|
||||
|
||||
# Start Deploy
|
||||
|
||||
echo "Starting Deploy..."
|
||||
|
||||
# Let's create the Hubzilla files directory in the Openshift data folder ($OPENSHIFT_DATA_DIR).
|
||||
|
||||
echo "Check for the files directory called store, if not created - create it"
|
||||
|
||||
if [ ! -d ${OPENSHIFT_DATA_DIR}store ]; then
|
||||
mkdir -p ${OPENSHIFT_DATA_DIR}"store/[data]/smarty3"
|
||||
echo "Done creating files directory"
|
||||
|
||||
else
|
||||
|
||||
echo "The files directory called store already exists"
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# Set permissions on the files directory.
|
||||
|
||||
echo "Now chmod 777 -R files"
|
||||
|
||||
chmod -R 777 ${OPENSHIFT_DATA_DIR}store
|
||||
|
||||
echo "chmod done, permissions set to 777"
|
||||
|
||||
####
|
||||
|
||||
# Symlink our files folder to the repo.
|
||||
|
||||
# Note the "php" directory below seems to be the best way to serve OpenShift files.
|
||||
# This is good as that allows us for directories one level above such as tmp and private
|
||||
|
||||
echo "Create sym links for writeable directories"
|
||||
|
||||
ln -sf ${OPENSHIFT_DATA_DIR}store ${OPENSHIFT_REPO_DIR}store
|
||||
|
||||
echo "Files sym links created"
|
||||
|
||||
####
|
||||
|
||||
# Copy .htconfig.php from the repo, rename it and place it in the data directory.
|
||||
# if it's there already, skip it.
|
||||
|
||||
if [ ! -f ${OPENSHIFT_DATA_DIR}.htconfig.php ];
|
||||
|
||||
then
|
||||
|
||||
cp ${OPENSHIFT_REPO_DIR}.htconfig.php ${OPENSHIFT_DATA_DIR}.htconfig.php
|
||||
|
||||
echo ".htconfig.php copied."
|
||||
|
||||
else
|
||||
|
||||
echo "Looks like the .htconfig.php file is already there, we won't overwrite it."
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# symlink the .htconfig.php file.
|
||||
|
||||
echo "Create sym link for .htconfig.php"
|
||||
|
||||
ln -sf ${OPENSHIFT_DATA_DIR}.htconfig.php ${OPENSHIFT_REPO_DIR}.htconfig.php
|
||||
|
||||
echo ".htconfig.php symlink created"
|
||||
|
||||
####
|
||||
# Copy .htaccess from the repo, rename it and place it in the data directory.
|
||||
# if it's there already, skip it.
|
||||
|
||||
if [ ! -f ${OPENSHIFT_DATA_DIR}.htaccess ];
|
||||
|
||||
then
|
||||
|
||||
cp ${OPENSHIFT_REPO_DIR}.htaccess ${OPENSHIFT_DATA_DIR}.htaccess
|
||||
|
||||
echo ".htaccess copied."
|
||||
|
||||
else
|
||||
|
||||
echo "Looks like the .htaccess file is already there, we won't overwrite it."
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# symlink the .htaccess file.
|
||||
|
||||
echo "Create sym link for .htaccess"
|
||||
|
||||
ln -sf ${OPENSHIFT_DATA_DIR}.htaccess ${OPENSHIFT_REPO_DIR}.htaccess
|
||||
|
||||
echo ".htaccess symlink created"
|
||||
|
||||
####
|
||||
|
||||
echo "Check for the poller at .openshift/cron/minutely/poller , if not created - create it"
|
||||
|
||||
if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller ]; then
|
||||
printf '%s\n' '#!/bin/bash' 'if [ ! -f $OPENSHIFT_DATA_DIR/last_run ]; then' ' touch $OPENSHIFT_DATA_DIR/last_run' 'fi' 'if [[ $(find $OPENSHIFT_DATA_DIR/last_run -mmin +9) ]]; then #run every 10 mins' ' rm -f $OPENSHIFT_DATA_DIR/last_run' ' touch $OPENSHIFT_DATA_DIR/last_run' ' # The command(s) that you want to run every 10 minutes' 'cd /var/lib/openshift/${OPENSHIFT_APP_UUID}/app-root/repo; /opt/rh/php54/root/usr/bin/php include/poller.php' 'fi' >${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller
|
||||
echo "Done creating file .openshift/cron/minutely/poller"
|
||||
|
||||
else
|
||||
|
||||
echo "The poller already exists"
|
||||
|
||||
fi
|
||||
|
||||
####
|
||||
|
||||
# Set permissions on the poller script to make it executable.
|
||||
|
||||
echo "Now chmod 777 -R poller"
|
||||
|
||||
chmod -R 777 ${OPENSHIFT_REPO_DIR}.openshift/cron/minutely/poller
|
||||
|
||||
echo "chmod done, permissions set to 777 on poller script."
|
||||
|
||||
####
|
||||
|
||||
### echo "Check for the hot deploy marker at .openshift/markers/hot_deploy , if not created - create it"
|
||||
|
||||
### if [ ! -f ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy ]; then
|
||||
|
||||
### touch ${OPENSHIFT_REPO_DIR}.openshift/markers/hot_deploy
|
||||
|
||||
### echo "Done creating file .openshift/markers/hot_deploy"
|
||||
|
||||
### else
|
||||
|
||||
### echo "The hot deploy marker already exists"
|
||||
|
||||
### fi
|
||||
|
||||
####
|
||||
|
||||
# Hubzilla configuration - changes to default settings
|
||||
# to make Hubzilla on OpenShift a more pleasant experience
|
||||
echo "Changing default configuration to conserve space"
|
||||
cd ${OPENSHIFT_REPO_DIR}
|
||||
util/config system expire_delivery_reports 3
|
||||
util/config system feed_contacts 0
|
||||
util/config system diaspora_enabled 0
|
||||
util/config system disable_discover_tab 1
|
||||
util/config directory safemode 0
|
||||
util/config directory globaldir 1
|
||||
util/config directory pubforums 0
|
||||
|
||||
# Hubzill addons
|
||||
echo "Try to add or update Hubzilla addons"
|
||||
cd ${OPENSHIFT_REPO_DIR}
|
||||
util/add_addon_repo https://github.com/redmatrix/hubzilla-addons.git HubzillaAddons
|
||||
|
||||
# Hubzilla themes
|
||||
echo "Try to add or update Hubzilla themes"
|
||||
cd ${OPENSHIFT_REPO_DIR}
|
||||
util/add_theme_repo https://github.com/DeadSuperHero/redmatrix-themes.git DeadSuperHeroThemes
|
||||
|
||||
# Hubzilla ownMapp
|
||||
echo "Try to add or update Hubzilla ownMapp"
|
||||
cd ${OPENSHIFT_REPO_DIR}
|
||||
util/add_addon_repo https://gitlab.com/zot/ownmapp.git ownMapp
|
||||
|
||||
# Hubzilla Chess
|
||||
echo "Try to add or update Hubzilla chess to Hubzilla on OpenShift"
|
||||
cd ${OPENSHIFT_REPO_DIR}
|
||||
util/add_addon_repo https://gitlab.com/zot/hubzilla-chess.git Chess
|
||||
27
.openshift/cron/README.cron
Normal file
27
.openshift/cron/README.cron
Normal file
@@ -0,0 +1,27 @@
|
||||
Run scripts or jobs on a periodic basis
|
||||
=======================================
|
||||
Any scripts or jobs added to the minutely, hourly, daily, weekly or monthly
|
||||
directories will be run on a scheduled basis (frequency is as indicated by the
|
||||
name of the directory) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved}
|
||||
|
||||
The presence of two specially named files jobs.deny and jobs.allow controls
|
||||
how run-parts executes your scripts/jobs.
|
||||
jobs.deny ===> Prevents specific scripts or jobs from being executed.
|
||||
jobs.allow ===> Only execute the named scripts or jobs (all other/non-named
|
||||
scripts that exist in this directory are ignored).
|
||||
|
||||
The principles of jobs.deny and jobs.allow are the same as those of cron.deny
|
||||
and cron.allow and are described in detail at:
|
||||
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-Automating_System_Tasks.html#s2-autotasks-cron-access
|
||||
|
||||
See: man crontab or above link for more details and see the the weekly/
|
||||
directory for an example.
|
||||
|
||||
PLEASE NOTE: The Cron cartridge must be installed in order to run the configured jobs.
|
||||
|
||||
For more information about cron, consult the documentation:
|
||||
http://openshift.github.io/documentation/oo_cartridge_guide.html#cron
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#cron
|
||||
0
.openshift/cron/daily/.gitignore
vendored
Normal file
0
.openshift/cron/daily/.gitignore
vendored
Normal file
0
.openshift/cron/hourly/.gitignore
vendored
Normal file
0
.openshift/cron/hourly/.gitignore
vendored
Normal file
0
.openshift/cron/minutely/.gitignore
vendored
Normal file
0
.openshift/cron/minutely/.gitignore
vendored
Normal file
0
.openshift/cron/monthly/.gitignore
vendored
Normal file
0
.openshift/cron/monthly/.gitignore
vendored
Normal file
16
.openshift/cron/weekly/README
Normal file
16
.openshift/cron/weekly/README
Normal file
@@ -0,0 +1,16 @@
|
||||
Run scripts or jobs on a weekly basis
|
||||
=====================================
|
||||
Any scripts or jobs added to this directory will be run on a scheduled basis
|
||||
(weekly) using run-parts.
|
||||
|
||||
run-parts ignores any files that are hidden or dotfiles (.*) or backup
|
||||
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles
|
||||
the files named jobs.deny and jobs.allow specially.
|
||||
|
||||
In this specific example, the chronograph script is the only script or job file
|
||||
executed on a weekly basis (due to white-listing it in jobs.allow). And the
|
||||
README and chrono.dat file are ignored either as a result of being black-listed
|
||||
in jobs.deny or because they are NOT white-listed in the jobs.allow file.
|
||||
|
||||
For more details, please see ../README.cron file.
|
||||
|
||||
1
.openshift/cron/weekly/chrono.dat
Normal file
1
.openshift/cron/weekly/chrono.dat
Normal file
@@ -0,0 +1 @@
|
||||
Time And Relative D...n In Execution (Open)Shift!
|
||||
3
.openshift/cron/weekly/chronograph
Executable file
3
.openshift/cron/weekly/chronograph
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "`date`: `cat $(dirname \"$0\")/chrono.dat`"
|
||||
12
.openshift/cron/weekly/jobs.allow
Normal file
12
.openshift/cron/weekly/jobs.allow
Normal file
@@ -0,0 +1,12 @@
|
||||
#
|
||||
# Script or job files listed in here (one entry per line) will be
|
||||
# executed on a weekly-basis.
|
||||
#
|
||||
# Example: The chronograph script will be executed weekly but the README
|
||||
# and chrono.dat files in this directory will be ignored.
|
||||
#
|
||||
# The README file is actually ignored due to the entry in the
|
||||
# jobs.deny which is checked before jobs.allow (this file).
|
||||
#
|
||||
chronograph
|
||||
|
||||
7
.openshift/cron/weekly/jobs.deny
Normal file
7
.openshift/cron/weekly/jobs.deny
Normal file
@@ -0,0 +1,7 @@
|
||||
#
|
||||
# Any script or job files listed in here (one entry per line) will NOT be
|
||||
# executed (read as ignored by run-parts).
|
||||
#
|
||||
|
||||
README
|
||||
|
||||
4
.openshift/markers/README.md
Normal file
4
.openshift/markers/README.md
Normal file
@@ -0,0 +1,4 @@
|
||||
For information about markers, consult the documentation:
|
||||
|
||||
http://openshift.github.io/documentation/oo_user_guide.html#markers
|
||||
http://openshift.github.io/documentation/oo_cartridge_guide.html#php-markers
|
||||
0
.openshift/pear.txt
Normal file
0
.openshift/pear.txt
Normal file
46
.travis.yml
Normal file
46
.travis.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
# see http://about.travis-ci.org/docs/user/languages/php/ for more hints
|
||||
language: php
|
||||
|
||||
# list any PHP version you want to test against
|
||||
php:
|
||||
# using major version aliases
|
||||
|
||||
# aliased to a recent 5.4.x version
|
||||
- 5.4
|
||||
# aliased to a recent 5.5.x version
|
||||
- 5.5
|
||||
# aliased to a recent 5.6.x version
|
||||
- 5.6
|
||||
# aliased to a recent 7.x version
|
||||
- 7.0
|
||||
# aliased to a recent hhvm version
|
||||
- hhvm
|
||||
|
||||
# optionally specify a list of environments, for example to test different RDBMS
|
||||
#env:
|
||||
# - DB=mysql
|
||||
# - DB=pgsql
|
||||
|
||||
# optionally set up exclutions and allowed failures in the matrix
|
||||
matrix:
|
||||
# exclude:
|
||||
# - php: hhvm
|
||||
# env: DB=pgsql # PDO driver for pgsql is unsupported by HHVM (3rd party install for support)
|
||||
allow_failures:
|
||||
- php: 7.0
|
||||
- php: hhvm
|
||||
|
||||
# execute any number of scripts before the test run, custom env's are available as variables
|
||||
#before_script:
|
||||
# - if [[ "$DB" == "pgsql" ]]; then psql -c "DROP DATABASE IF EXISTS hello_world_test;" -U postgres; fi
|
||||
# - if [[ "$DB" == "pgsql" ]]; then psql -c "create database hello_world_test;" -U postgres; fi
|
||||
# - if [[ "$DB" == "mysql" ]]; then mysql -e "create database IF NOT EXISTS hello_world_test;" -uroot; fi
|
||||
|
||||
# omitting "script:" will default to phpunit
|
||||
# use the $DB env variable to determine the phpunit.xml to use
|
||||
script: phpunit tests/*php
|
||||
|
||||
# configure notifications (email, IRC, campfire etc)
|
||||
notifications:
|
||||
# irc: "irc.freenode.org#yourfavouriteroomfortravis"
|
||||
# a plugin/script to post to a hubzilla channel would be neat here
|
||||
2
LICENSE
2
LICENSE
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2010-2015 Hubzilla
|
||||
Copyright (c) 2010-2016 Hubzilla
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
|
||||
14
README.md
14
README.md
@@ -1,11 +1,12 @@
|
||||

|
||||
|
||||
Hubzilla
|
||||
========
|
||||
Hubzilla - Community Server
|
||||
===========================
|
||||
|
||||
###Websites. Redefined.
|
||||
Help us redefine the web - using integrated and united community websites.
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
|
||||

|
||||
[](https://travis-ci.org/redmatrix/hubzilla)
|
||||
|
||||
**What are Hubs?**
|
||||
|
||||
@@ -37,6 +38,3 @@ Possible website applications include
|
||||
* dating websites
|
||||
* pretty much anything you can do on a traditional blog or community website, but that you could do better if you could easily connect it with other websites or privately share things across website boundaries.
|
||||
|
||||
|
||||
|
||||
This project is under development and is not yet available for general use.
|
||||
18
Zotlabs/Identity/BasicId.php
Normal file
18
Zotlabs/Identity/BasicId.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Identity\BasicId;
|
||||
|
||||
class BasicId {
|
||||
|
||||
private $name;
|
||||
private $profile_photo;
|
||||
private $profile_url;
|
||||
private $address;
|
||||
private $protocol;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
16
Zotlabs/Identity/ProfilePhoto.php
Normal file
16
Zotlabs/Identity/ProfilePhoto.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
namespace Zotlabs\Identity\ProfilePhoto;
|
||||
|
||||
class ProfilePhoto {
|
||||
|
||||
private $photo_large_url;
|
||||
private $photo_medium_url;
|
||||
private $photo_small_url;
|
||||
private $photo_mimetype;
|
||||
private $photo_updated;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
345
Zotlabs/Zot/Auth.php
Normal file
345
Zotlabs/Zot/Auth.php
Normal file
@@ -0,0 +1,345 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Zot;
|
||||
|
||||
class Auth {
|
||||
|
||||
protected $test;
|
||||
protected $test_results;
|
||||
protected $debug_msg;
|
||||
|
||||
protected $address;
|
||||
protected $desturl;
|
||||
protected $sec;
|
||||
protected $version;
|
||||
protected $delegate;
|
||||
protected $success;
|
||||
protected $delegate_success;
|
||||
|
||||
protected $remote;
|
||||
protected $remote_service_class;
|
||||
protected $remote_level;
|
||||
protected $remote_hub;
|
||||
protected $dnt;
|
||||
|
||||
function __construct($req) {
|
||||
|
||||
|
||||
$this->test = ((array_key_exists('test',$req)) ? intval($req['test']) : 0);
|
||||
$this->test_results = array('success' => false);
|
||||
$this->debug_msg = '';
|
||||
|
||||
$this->success = false;
|
||||
$this->address = $req['auth'];
|
||||
$this->desturl = $req['dest'];
|
||||
$this->sec = $req['sec'];
|
||||
$this->version = $req['version'];
|
||||
$this->delegate = $req['delegate'];
|
||||
|
||||
$c = get_sys_channel();
|
||||
if(! $c) {
|
||||
logger('unable to obtain response (sys) channel');
|
||||
$this->Debug('no local channels found.');
|
||||
$this->Finalise();
|
||||
}
|
||||
|
||||
$x = $this->GetHublocs($this->address);
|
||||
|
||||
if($x) {
|
||||
foreach($x as $xx) {
|
||||
if($this->Verify($c,$xx))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @FIXME we really want to save the return_url in the session before we
|
||||
* visit rmagic. This does however prevent a recursion if you visit
|
||||
* rmagic directly, as it would otherwise send you back here again.
|
||||
* But z_root() probably isn't where you really want to go.
|
||||
*/
|
||||
|
||||
if(strstr($this->desturl,z_root() . '/rmagic'))
|
||||
goaway(z_root());
|
||||
|
||||
$this->Finalise();
|
||||
|
||||
}
|
||||
|
||||
function GetHublocs($address) {
|
||||
|
||||
// Try and find a hubloc for the person attempting to auth.
|
||||
// Since we're matching by address, we have to return all entries
|
||||
// some of which may be from re-installed hubs; and we'll need to
|
||||
// try each sequentially to see if one can pass the test
|
||||
|
||||
$x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash
|
||||
where hubloc_addr = '%s' order by hubloc_id desc",
|
||||
dbesc($address)
|
||||
);
|
||||
|
||||
if(! $x) {
|
||||
// finger them if they can't be found.
|
||||
$ret = zot_finger($address, null);
|
||||
if ($ret['success']) {
|
||||
$j = json_decode($ret['body'], true);
|
||||
if($j)
|
||||
import_xchan($j);
|
||||
$x = q("select * from hubloc left join xchan on xchan_hash = hubloc_hash
|
||||
where hubloc_addr = '%s' order by hubloc_id desc",
|
||||
dbesc($address)
|
||||
);
|
||||
}
|
||||
}
|
||||
if(! $x) {
|
||||
logger('mod_zot: auth: unable to finger ' . $address);
|
||||
$this->Debug('no hubloc found for ' . $address . ' and probing failed.');
|
||||
$this->Finalise();
|
||||
}
|
||||
|
||||
return $x;
|
||||
}
|
||||
|
||||
|
||||
function Verify($channel,$hubloc) {
|
||||
|
||||
logger('auth request received from ' . $hubloc['hubloc_addr'] );
|
||||
|
||||
$this->remote = remote_channel();
|
||||
$this->remote_service_class = '';
|
||||
$this->remote_level = 0;
|
||||
$this->remote_hub = $hubloc['hubloc_url'];
|
||||
$this->dnt = 0;
|
||||
|
||||
// check credentials and access
|
||||
|
||||
// If they are already authenticated and haven't changed credentials,
|
||||
// we can save an expensive network round trip and improve performance.
|
||||
|
||||
// Also check that they are coming from the same site as they authenticated with originally.
|
||||
|
||||
$already_authed = (((remote_channel()) && ($hubloc['hubloc_hash'] == remote_channel())
|
||||
&& ($hubloc['hubloc_url'] === $_SESSION['remote_hub'])) ? true : false);
|
||||
|
||||
if($this->delegate && $this->delegate !== $_SESSION['delegate_channel'])
|
||||
$already_authed = false;
|
||||
|
||||
if($already_authed)
|
||||
return true;
|
||||
|
||||
if(local_channel()) {
|
||||
|
||||
// tell them to logout if they're logged in locally as anything but the target remote account
|
||||
// in which case just shut up because they don't need to be doing this at all.
|
||||
|
||||
if (get_app()->channel['channel_hash'] == $hubloc['xchan_hash']) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
logger('already authenticated locally as somebody else.');
|
||||
notice( t('Remote authentication blocked. You are logged into this site locally. Please logout and retry.') . EOL);
|
||||
if($this->test) {
|
||||
$this->Debug('already logged in locally with a conflicting identity.');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// Auth packets MUST use ultra top-secret hush-hush mode - e.g. the entire packet is encrypted using the
|
||||
// site private key
|
||||
// The actual channel sending the packet ($c[0]) is not important, but this provides a
|
||||
// generic zot packet with a sender which can be verified
|
||||
|
||||
$p = zot_build_packet($channel,$type = 'auth_check',
|
||||
array(array('guid' => $hubloc['hubloc_guid'],'guid_sig' => $hubloc['hubloc_guid_sig'])),
|
||||
$hubloc['hubloc_sitekey'], $this->sec);
|
||||
|
||||
$this->Debug('auth check packet created using sitekey ' . $hubloc['hubloc_sitekey']);
|
||||
$this->Debug('packet contents: ' . $p);
|
||||
|
||||
$result = zot_zot($hubloc['hubloc_callback'],$p);
|
||||
if(! $result['success']) {
|
||||
logger('auth_check callback failed.');
|
||||
if($this->test)
|
||||
$this->Debug('auth check request to your site returned .' . print_r($result, true));
|
||||
return false;
|
||||
}
|
||||
|
||||
$j = json_decode($result['body'], true);
|
||||
if(! $j) {
|
||||
logger('auth_check json data malformed.');
|
||||
if($this->test)
|
||||
$this->Debug('json malformed: ' . $result['body']);
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->Debug('auth check request returned .' . print_r($j, true));
|
||||
|
||||
if(! $j['success'])
|
||||
return false;
|
||||
|
||||
// legit response, but we do need to check that this wasn't answered by a man-in-middle
|
||||
|
||||
if (! rsa_verify($this->sec . $hubloc['xchan_hash'],base64url_decode($j['confirm']),$hubloc['xchan_pubkey'])) {
|
||||
logger('final confirmation failed.');
|
||||
if($this->test)
|
||||
$this->Debug('final confirmation failed. ' . $sec . print_r($j,true) . print_r($hubloc,true));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (array_key_exists('service_class',$j))
|
||||
$this->remote_service_class = $j['service_class'];
|
||||
if (array_key_exists('level',$j))
|
||||
$this->remote_level = $j['level'];
|
||||
if (array_key_exists('DNT',$j))
|
||||
$this->dnt = $j['DNT'];
|
||||
|
||||
|
||||
// log them in
|
||||
|
||||
if ($this->test) {
|
||||
// testing only - return the success result
|
||||
$this->test_results['success'] = true;
|
||||
$this->Debug('Authentication Success!');
|
||||
$this->Finalise();
|
||||
}
|
||||
|
||||
$_SESSION['authenticated'] = 1;
|
||||
|
||||
// check for delegation and if all is well, log them in locally with delegation restrictions
|
||||
|
||||
$this->delegate_success = false;
|
||||
|
||||
if($this->delegate) {
|
||||
$r = q("select * from channel left join xchan on channel_hash = xchan_hash where xchan_addr = '%s' limit 1",
|
||||
dbesc($this->delegate)
|
||||
);
|
||||
if ($r && intval($r[0]['channel_id'])) {
|
||||
$allowed = perm_is_allowed($r[0]['channel_id'],$hubloc['xchan_hash'],'delegate');
|
||||
if($allowed) {
|
||||
$_SESSION['delegate_channel'] = $r[0]['channel_id'];
|
||||
$_SESSION['delegate'] = $hubloc['xchan_hash'];
|
||||
$_SESSION['account_id'] = intval($r[0]['channel_account_id']);
|
||||
require_once('include/security.php');
|
||||
// this will set the local_channel authentication in the session
|
||||
change_channel($r[0]['channel_id']);
|
||||
$this->delegate_success = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! $this->delegate_success) {
|
||||
// normal visitor (remote_channel) login session credentials
|
||||
$_SESSION['visitor_id'] = $hubloc['xchan_hash'];
|
||||
$_SESSION['my_url'] = $hubloc['xchan_url'];
|
||||
$_SESSION['my_address'] = $this->address;
|
||||
$_SESSION['remote_service_class'] = $this->remote_service_class;
|
||||
$_SESSION['remote_level'] = $this->remote_level;
|
||||
$_SESSION['remote_hub'] = $this->remote_hub;
|
||||
$_SESSION['DNT'] = $this->dnt;
|
||||
}
|
||||
|
||||
$arr = array('xchan' => $hubloc, 'url' => $this->desturl, 'session' => $_SESSION);
|
||||
call_hooks('magic_auth_success',$arr);
|
||||
get_app()->set_observer($hubloc);
|
||||
require_once('include/security.php');
|
||||
get_app()->set_groups(init_groups_visitor($_SESSION['visitor_id']));
|
||||
info(sprintf( t('Welcome %s. Remote authentication successful.'),$hubloc['xchan_name']));
|
||||
logger('mod_zot: auth success from ' . $hubloc['xchan_addr']);
|
||||
$this->success = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
function Debug($msg) {
|
||||
$this->debug_msg .= $msg . EOL;
|
||||
}
|
||||
|
||||
|
||||
function Finalise() {
|
||||
|
||||
if($this->test) {
|
||||
$this->test_results['message'] = $this->debug_msg;
|
||||
json_return_and_die($this->test_results);
|
||||
}
|
||||
|
||||
goaway($this->desturl);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Magic Auth
|
||||
* ==========
|
||||
*
|
||||
* So-called "magic auth" takes place by a special exchange. On the site where the "channel to be authenticated" lives (e.g. $mysite),
|
||||
* a redirection is made via $mysite/magic to the zot endpoint of the remote site ($remotesite) with special GET parameters.
|
||||
*
|
||||
* The endpoint is typically https://$remotesite/post - or whatever was specified as the callback url in prior communications
|
||||
* (we will bootstrap an address and fetch a zot info packet if possible where no prior communications exist)
|
||||
*
|
||||
* Five GET parameters are supplied:
|
||||
* * auth => the urlencoded webbie (channel@host.domain) of the channel requesting access
|
||||
* * dest => the desired destination URL (urlencoded)
|
||||
* * sec => a random string which is also stored on $mysite for use during the verification phase.
|
||||
* * version => the zot revision
|
||||
* * delegate => optional urlencoded webbie of a local channel to invoke delegation rights for
|
||||
*
|
||||
* * test => (optional 1 or 0 - debugs the authentication exchange and returns a json response instead of redirecting the browser session)
|
||||
*
|
||||
* When this packet is received, an "auth-check" zot message is sent to $mysite.
|
||||
* (e.g. if $_GET['auth'] is foobar@podunk.edu, a zot packet is sent to the podunk.edu zot endpoint, which is typically /post)
|
||||
* If no information has been recorded about the requesting identity a zot information packet will be retrieved before
|
||||
* continuing.
|
||||
*
|
||||
* The sender of this packet is an arbitrary/random site channel. The recipients will be a single recipient corresponding
|
||||
* to the guid and guid_sig we have associated with the requesting auth identity
|
||||
*
|
||||
* \code{.json}
|
||||
* {
|
||||
* "type":"auth_check",
|
||||
* "sender":{
|
||||
* "guid":"kgVFf_...",
|
||||
* "guid_sig":"PT9-TApz...",
|
||||
* "url":"http:\/\/podunk.edu",
|
||||
* "url_sig":"T8Bp7j...",
|
||||
* "sitekey":"aMtgKTiirXrICP..."
|
||||
* },
|
||||
* "recipients":{
|
||||
* {
|
||||
* "guid":"ZHSqb...",
|
||||
* "guid_sig":"JsAAXi..."
|
||||
* }
|
||||
* }
|
||||
* "callback":"\/post",
|
||||
* "version":1,
|
||||
* "secret":"1eaa661",
|
||||
* "secret_sig":"eKV968b1..."
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* auth_check messages MUST use encapsulated encryption. This message is sent to the origination site, which checks the 'secret' to see
|
||||
* if it is the same as the 'sec' which it passed originally. It also checks the secret_sig which is the secret signed by the
|
||||
* destination channel's private key and base64url encoded. If everything checks out, a json packet is returned:
|
||||
*
|
||||
* \code{.json}
|
||||
* {
|
||||
* "success":1,
|
||||
* "confirm":"q0Ysovd1u...",
|
||||
* "service_class":(optional)
|
||||
* "level":(optional)
|
||||
* "DNT": (optional do-not-track - 1 or 0)
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* 'confirm' in this case is the base64url encoded RSA signature of the concatenation of 'secret' with the
|
||||
* base64url encoded whirlpool hash of the requestor's guid and guid_sig; signed with the source channel private key.
|
||||
* This prevents a man-in-the-middle from inserting a rogue success packet. Upon receipt and successful
|
||||
* verification of this packet, the destination site will redirect to the original destination URL and indicate a successful remote login.
|
||||
* Service_class can be used by cooperating sites to provide different access rights based on account rights and subscription plans. It is
|
||||
* a string whose contents are not defined by protocol. Example: "basic" or "gold".
|
||||
*
|
||||
* @param[in,out] App &$a
|
||||
*/
|
||||
22
Zotlabs/Zot/IHandler.php
Normal file
22
Zotlabs/Zot/IHandler.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Zot;
|
||||
|
||||
interface IHandler {
|
||||
|
||||
function Ping();
|
||||
|
||||
function Pickup($data);
|
||||
|
||||
function Notify($data);
|
||||
|
||||
function Request($data);
|
||||
|
||||
function AuthCheck($data,$encrypted);
|
||||
|
||||
function Purge($sender,$recipients);
|
||||
|
||||
function Refresh($sender,$recipients);
|
||||
|
||||
}
|
||||
|
||||
296
Zotlabs/Zot/Receiver.php
Normal file
296
Zotlabs/Zot/Receiver.php
Normal file
@@ -0,0 +1,296 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Zot;
|
||||
|
||||
class Receiver {
|
||||
|
||||
protected $data;
|
||||
protected $encrypted;
|
||||
protected $error;
|
||||
protected $messagetype;
|
||||
protected $sender;
|
||||
protected $validated;
|
||||
protected $recipients;
|
||||
protected $response;
|
||||
protected $handler;
|
||||
|
||||
function __construct($data,$prvkey,$handler) {
|
||||
|
||||
$this->error = false;
|
||||
$this->validated = false;
|
||||
$this->messagetype = '';
|
||||
$this->response = array('success' => false);
|
||||
|
||||
$this->handler = $handler;
|
||||
|
||||
if(! is_array($data))
|
||||
$data = json_decode($data,true);
|
||||
|
||||
if($data && is_array($data)) {
|
||||
$this->encrypted = ((array_key_exists('iv',$data)) ? true : false);
|
||||
|
||||
if($this->encrypted) {
|
||||
$this->data = @json_decode(@crypto_unencapsulate($data,$prvkey),true);
|
||||
}
|
||||
if(! $this->data)
|
||||
$this->data = $data;
|
||||
|
||||
if($this->data && is_array($this->data) && array_key_exists('type',$this->data))
|
||||
$this->messagetype = $this->data['type'];
|
||||
}
|
||||
if(! $this->messagetype)
|
||||
$this->error = true;
|
||||
|
||||
$this->sender = ((array_key_exists('sender',$this->data)) ? $this->data['sender'] : null);
|
||||
$this->recipients = ((array_key_exists('recipients',$this->data)) ? $this->data['recipients'] : null);
|
||||
|
||||
|
||||
if($this->sender)
|
||||
$this->ValidateSender();
|
||||
|
||||
$this->Dispatch();
|
||||
}
|
||||
|
||||
function ValidateSender() {
|
||||
$hubs = zot_gethub($this->sender,true);
|
||||
if (! $hubs) {
|
||||
|
||||
/* Have never seen this guid or this guid coming from this location. Check it and register it. */
|
||||
/* (!!) this will validate the sender. */
|
||||
|
||||
$result = zot_register_hub($this->sender);
|
||||
|
||||
if ((! $result['success']) || (! ($hubs = zot_gethub($this->sender,true)))) {
|
||||
$this->response['message'] = 'Hub not available.';
|
||||
json_return_and_die($this->response);
|
||||
}
|
||||
}
|
||||
foreach($hubs as $hub) {
|
||||
update_hub_connected($hub,((array_key_exists('sitekey',$this->sender)) ? $this->sender['sitekey'] : ''));
|
||||
}
|
||||
$this->validated = true;
|
||||
}
|
||||
|
||||
|
||||
function Dispatch() {
|
||||
|
||||
/* Handle tasks which don't require sender validation */
|
||||
|
||||
switch($this->messagetype) {
|
||||
case 'ping':
|
||||
/* no validation needed */
|
||||
$this->handler->Ping();
|
||||
break;
|
||||
case 'pickup':
|
||||
/* perform site validation, as opposed to sender validation */
|
||||
$this->handler->Pickup($this->data);
|
||||
break;
|
||||
|
||||
default:
|
||||
if(! $this->validated) {
|
||||
$this->response['message'] = 'Sender not valid';
|
||||
json_return_and_die($this->response);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
/* Now handle tasks which require sender validation */
|
||||
|
||||
switch($this->messagetype) {
|
||||
|
||||
case 'auth_check':
|
||||
$this->handler->AuthCheck($this->data,$this->encrypted);
|
||||
break;
|
||||
|
||||
case 'request':
|
||||
$this->handler->Request($this->data);
|
||||
break;
|
||||
|
||||
case 'purge':
|
||||
$this->handler->Purge($this->sender,$this->recipients);
|
||||
break;
|
||||
|
||||
case 'refresh':
|
||||
case 'force_refresh':
|
||||
$this->handler->Refresh($this->sender,$this->recipients);
|
||||
break;
|
||||
|
||||
case 'notify':
|
||||
$this->handler->Notify($this->data);
|
||||
break;
|
||||
|
||||
default:
|
||||
$this->response['message'] = 'Not implemented';
|
||||
json_return_and_die($this->response);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief zot communications and messaging.
|
||||
*
|
||||
* Sender HTTP posts to this endpoint ($site/post typically) with 'data' parameter set to json zot message packet.
|
||||
* This packet is optionally encrypted, which we will discover if the json has an 'iv' element.
|
||||
* $contents => array( 'alg' => 'aes256cbc', 'iv' => initialisation vector, 'key' => decryption key, 'data' => encrypted data);
|
||||
* $contents->iv and $contents->key are random strings encrypted with this site's RSA public key and then base64url encoded.
|
||||
* Currently only 'aes256cbc' is used, but this is extensible should that algorithm prove inadequate.
|
||||
*
|
||||
* Once decrypted, one will find the normal json_encoded zot message packet.
|
||||
*
|
||||
* Defined packet types are: notify, purge, refresh, force_refresh, auth_check, ping, and pickup
|
||||
*
|
||||
* Standard packet: (used by notify, purge, refresh, force_refresh, and auth_check)
|
||||
* \code{.json}
|
||||
* {
|
||||
* "type": "notify",
|
||||
* "sender":{
|
||||
* "guid":"kgVFf_1...",
|
||||
* "guid_sig":"PT9-TApzp...",
|
||||
* "url":"http:\/\/podunk.edu",
|
||||
* "url_sig":"T8Bp7j5...",
|
||||
* },
|
||||
* "recipients": { optional recipient array },
|
||||
* "callback":"\/post",
|
||||
* "version":1,
|
||||
* "secret":"1eaa...",
|
||||
* "secret_sig": "df89025470fac8..."
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Signature fields are all signed with the sender channel private key and base64url encoded.
|
||||
* Recipients are arrays of guid and guid_sig, which were previously signed with the recipients private
|
||||
* key and base64url encoded and later obtained via channel discovery. Absence of recipients indicates
|
||||
* a public message or visible to all potential listeners on this site.
|
||||
*
|
||||
* "pickup" packet:
|
||||
* The pickup packet is sent in response to a notify packet from another site
|
||||
* \code{.json}
|
||||
* {
|
||||
* "type":"pickup",
|
||||
* "url":"http:\/\/example.com",
|
||||
* "callback":"http:\/\/example.com\/post",
|
||||
* "callback_sig":"teE1_fLI...",
|
||||
* "secret":"1eaa...",
|
||||
* "secret_sig":"O7nB4_..."
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* In the pickup packet, the sig fields correspond to the respective data
|
||||
* element signed with this site's system private key and then base64url encoded.
|
||||
* The "secret" is the same as the original secret from the notify packet.
|
||||
*
|
||||
* If verification is successful, a json structure is returned containing a
|
||||
* success indicator and an array of type 'pickup'.
|
||||
* Each pickup element contains the original notify request and a message field
|
||||
* whose contents are dependent on the message type.
|
||||
*
|
||||
* This JSON array is AES encapsulated using the site public key of the site
|
||||
* that sent the initial zot pickup packet.
|
||||
* Using the above example, this would be example.com.
|
||||
*
|
||||
* \code{.json}
|
||||
* {
|
||||
* "success":1,
|
||||
* "pickup":{
|
||||
* "notify":{
|
||||
* "type":"notify",
|
||||
* "sender":{
|
||||
* "guid":"kgVFf_...",
|
||||
* "guid_sig":"PT9-TApz...",
|
||||
* "url":"http:\/\/z.podunk.edu",
|
||||
* "url_sig":"T8Bp7j5D..."
|
||||
* },
|
||||
* "callback":"\/post",
|
||||
* "version":1,
|
||||
* "secret":"1eaa661..."
|
||||
* },
|
||||
* "message":{
|
||||
* "type":"activity",
|
||||
* "message_id":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu",
|
||||
* "message_top":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu",
|
||||
* "message_parent":"10b049ce384cbb2da9467319bc98169ab36290b8bbb403aa0c0accd9cb072e76@podunk.edu",
|
||||
* "created":"2012-11-20 04:04:16",
|
||||
* "edited":"2012-11-20 04:04:16",
|
||||
* "title":"",
|
||||
* "body":"Hi Nickordo",
|
||||
* "app":"",
|
||||
* "verb":"post",
|
||||
* "object_type":"",
|
||||
* "target_type":"",
|
||||
* "permalink":"",
|
||||
* "location":"",
|
||||
* "longlat":"",
|
||||
* "owner":{
|
||||
* "name":"Indigo",
|
||||
* "address":"indigo@podunk.edu",
|
||||
* "url":"http:\/\/podunk.edu",
|
||||
* "photo":{
|
||||
* "mimetype":"image\/jpeg",
|
||||
* "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5"
|
||||
* },
|
||||
* "guid":"kgVFf_...",
|
||||
* "guid_sig":"PT9-TAp...",
|
||||
* },
|
||||
* "author":{
|
||||
* "name":"Indigo",
|
||||
* "address":"indigo@podunk.edu",
|
||||
* "url":"http:\/\/podunk.edu",
|
||||
* "photo":{
|
||||
* "mimetype":"image\/jpeg",
|
||||
* "src":"http:\/\/podunk.edu\/photo\/profile\/m\/5"
|
||||
* },
|
||||
* "guid":"kgVFf_...",
|
||||
* "guid_sig":"PT9-TAp..."
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* Currently defined message types are 'activity', 'mail', 'profile', 'location'
|
||||
* and 'channel_sync', which each have different content schemas.
|
||||
*
|
||||
* Ping packet:
|
||||
* A ping packet does not require any parameters except the type. It may or may
|
||||
* not be encrypted.
|
||||
*
|
||||
* \code{.json}
|
||||
* {
|
||||
* "type": "ping"
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* On receipt of a ping packet a ping response will be returned:
|
||||
*
|
||||
* \code{.json}
|
||||
* {
|
||||
* "success" : 1,
|
||||
* "site" {
|
||||
* "url": "http:\/\/podunk.edu",
|
||||
* "url_sig": "T8Bp7j5...",
|
||||
* "sitekey": "-----BEGIN PUBLIC KEY-----
|
||||
* MIICIjANBgkqhkiG9w0BAQE..."
|
||||
* }
|
||||
* }
|
||||
* \endcode
|
||||
*
|
||||
* The ping packet can be used to verify that a site has not been re-installed, and to
|
||||
* initiate corrective action if it has. The url_sig is signed with the site private key
|
||||
* and base64url encoded - and this should verify with the enclosed sitekey. Failure to
|
||||
* verify indicates the site is corrupt or otherwise unable to communicate using zot.
|
||||
* This return packet is not otherwise verified, so should be compared with other
|
||||
* results obtained from this site which were verified prior to taking action. For instance
|
||||
* if you have one verified result with this signature and key, and other records for this
|
||||
* url which have different signatures and keys, it indicates that the site was re-installed
|
||||
* and corrective action may commence (remove or mark invalid any entries with different
|
||||
* signatures).
|
||||
* If you have no records which match this url_sig and key - no corrective action should
|
||||
* be taken as this packet may have been returned by an imposter.
|
||||
*
|
||||
* @param[in,out] App &$a
|
||||
*/
|
||||
|
||||
38
Zotlabs/Zot/ZotHandler.php
Normal file
38
Zotlabs/Zot/ZotHandler.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Zotlabs\Zot;
|
||||
|
||||
require_once('Zotlabs/Zot/IHandler.php');
|
||||
|
||||
|
||||
class ZotHandler implements IHandler {
|
||||
|
||||
function Ping() {
|
||||
zot_reply_ping();
|
||||
}
|
||||
|
||||
function Pickup($data) {
|
||||
zot_reply_pickup($data);
|
||||
}
|
||||
|
||||
function Notify($data) {
|
||||
zot_reply_notify($data);
|
||||
}
|
||||
|
||||
function Request($data) {
|
||||
zot_reply_message_request($data);
|
||||
}
|
||||
|
||||
function AuthCheck($data,$encrypted) {
|
||||
zot_reply_auth_check($data,$encrypted);
|
||||
}
|
||||
|
||||
function Purge($sender,$recipients) {
|
||||
zot_reply_purge($sender,$recipients);
|
||||
}
|
||||
|
||||
function Refresh($sender,$recipients) {
|
||||
zot_reply_refresh($sender,$recipients);
|
||||
}
|
||||
|
||||
}
|
||||
4
app/firefoxshare.apd
Normal file
4
app/firefoxshare.apd
Normal file
@@ -0,0 +1,4 @@
|
||||
url: $baseurl/ffsapi
|
||||
requires: local_channel
|
||||
name: Firefox Share
|
||||
photo: $baseurl/app/firefoxshare.png
|
||||
BIN
app/firefoxshare.png
Normal file
BIN
app/firefoxshare.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
4
app/grid.apd
Normal file
4
app/grid.apd
Normal file
@@ -0,0 +1,4 @@
|
||||
url: $baseurl/network
|
||||
requires: local_channel
|
||||
name: Grid
|
||||
photo: $baseurl/images/hubzilla_logo_6.png
|
||||
@@ -1,4 +0,0 @@
|
||||
url: $baseurl/network
|
||||
requires: local_channel
|
||||
name: Matrix
|
||||
photo: $baseurl/app/matrix.png
|
||||
BIN
app/matrix.png
BIN
app/matrix.png
Binary file not shown.
|
Before Width: | Height: | Size: 3.8 KiB |
113
boot.php
113
boot.php
@@ -7,12 +7,12 @@
|
||||
/**
|
||||
* Hubzilla.
|
||||
*
|
||||
* The Hubzilla (aka "Red") is an open source decentralised communications
|
||||
* Hubzilla is an open source decentralised communications
|
||||
* platform combined with a decentralised identity/authentication framework
|
||||
* wrapped in an extensible content management system, providing website designers
|
||||
* the ability to embed fully decentralised communications and social tools
|
||||
* into many traditional website designs (blogs, forums, small business
|
||||
* websites, charitable organisations, etc.). Red also provides DNS mobility
|
||||
* websites, charitable organisations, etc.). Hubzilla also provides DNS mobility
|
||||
* and internet scale privacy/access control.
|
||||
*
|
||||
* This allows any individual website to participate in a matrix of linked
|
||||
@@ -43,13 +43,16 @@ require_once('include/taxonomy.php');
|
||||
require_once('include/identity.php');
|
||||
require_once('include/Contact.php');
|
||||
require_once('include/account.php');
|
||||
require_once('include/AccessList.php');
|
||||
|
||||
|
||||
define ( 'PLATFORM_NAME', 'hubzilla' );
|
||||
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
|
||||
define ( 'RED_VERSION', trim(file_get_contents('version.inc')));
|
||||
define ( 'STD_VERSION', '1.1' );
|
||||
define ( 'ZOT_REVISION', 1 );
|
||||
|
||||
define ( 'DB_UPDATE_VERSION', 1145 );
|
||||
define ( 'DB_UPDATE_VERSION', 1161 );
|
||||
|
||||
|
||||
/**
|
||||
* @brief Constant with a HTML line break.
|
||||
@@ -63,10 +66,10 @@ define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );
|
||||
//define ( 'NULL_DATE', '0000-00-00 00:00:00' );
|
||||
define ( 'TEMPLATE_BUILD_PATH', 'store/[data]/smarty3' );
|
||||
|
||||
define ( 'DIRECTORY_MODE_NORMAL', 0x0000); // This is technically DIRECTORY_MODE_TERTIARY, but it's the default, hence 0x0000
|
||||
define ( 'DIRECTORY_MODE_PRIMARY', 0x0001);
|
||||
define ( 'DIRECTORY_MODE_SECONDARY', 0x0002);
|
||||
define ( 'DIRECTORY_MODE_STANDALONE', 0x0100);
|
||||
define ( 'DIRECTORY_MODE_NORMAL', 0x0000); // A directory client
|
||||
define ( 'DIRECTORY_MODE_PRIMARY', 0x0001); // There can only be *one* primary directory server in a directory_realm.
|
||||
define ( 'DIRECTORY_MODE_SECONDARY', 0x0002); // All other mirror directory servers
|
||||
define ( 'DIRECTORY_MODE_STANDALONE', 0x0100); // A detached (off the grid) hub with itself as directory server.
|
||||
|
||||
// We will look for upstream directories whenever me make contact
|
||||
// with other sites, but if this is a new installation and isn't
|
||||
@@ -78,11 +81,11 @@ define ( 'DIRECTORY_FALLBACK_MASTER', 'https://zothub.com');
|
||||
|
||||
$DIRECTORY_FALLBACK_SERVERS = array(
|
||||
'https://zothub.com',
|
||||
'https://zotid.net',
|
||||
'https://red.zottel.red',
|
||||
'https://redmatrix.info',
|
||||
'https://hubzilla.site',
|
||||
'https://hubzilla.zottel.net',
|
||||
'https://hub.pixelbits.de',
|
||||
'https://my.federated.social',
|
||||
'https://redmatrix.nl'
|
||||
'https://hubzilla.nl'
|
||||
);
|
||||
|
||||
|
||||
@@ -333,6 +336,12 @@ define ( 'MENU_ITEM_ZID', 0x0001);
|
||||
define ( 'MENU_ITEM_NEWWIN', 0x0002);
|
||||
define ( 'MENU_ITEM_CHATROOM', 0x0004);
|
||||
|
||||
|
||||
|
||||
define ( 'SITE_TYPE_ZOT', 0);
|
||||
define ( 'SITE_TYPE_NOTZOT', 1);
|
||||
define ( 'SITE_TYPE_UNKNOWN', 2);
|
||||
|
||||
/**
|
||||
* Poll/Survey types
|
||||
*/
|
||||
@@ -415,6 +424,7 @@ define ( 'TERM_SAVEDSEARCH', 6 );
|
||||
define ( 'TERM_THING', 7 );
|
||||
define ( 'TERM_BOOKMARK', 8 );
|
||||
define ( 'TERM_HIERARCHY', 9 );
|
||||
define ( 'TERM_COMMUNITYTAG', 10 );
|
||||
|
||||
define ( 'TERM_OBJ_POST', 1 );
|
||||
define ( 'TERM_OBJ_PHOTO', 2 );
|
||||
@@ -612,10 +622,10 @@ class App {
|
||||
public $poi = null; // "person of interest", generally a referenced connection
|
||||
private $oauth_key = null; // consumer_id of oauth request, if used
|
||||
public $layout = array(); // Comanche parsed template
|
||||
public $pdl = null;
|
||||
public $pdl = null; // Comanche page description
|
||||
private $perms = null; // observer permissions
|
||||
private $widgets = array(); // widgets for this page
|
||||
//private $widgetlist = null; // widget ordering and inclusion directives
|
||||
|
||||
|
||||
public $groups;
|
||||
public $language;
|
||||
@@ -694,11 +704,18 @@ class App {
|
||||
'smarty3' => '}}'
|
||||
);
|
||||
|
||||
// These represent the URL which was used to access the page
|
||||
|
||||
private $scheme;
|
||||
private $hostname;
|
||||
private $baseurl;
|
||||
private $path;
|
||||
|
||||
// This is our standardised URL - regardless of what was used
|
||||
// to access the page
|
||||
|
||||
private $baseurl;
|
||||
|
||||
|
||||
/**
|
||||
* App constructor.
|
||||
*/
|
||||
@@ -717,7 +734,6 @@ class App {
|
||||
set_include_path(
|
||||
'include' . PATH_SEPARATOR
|
||||
. 'library' . PATH_SEPARATOR
|
||||
. 'library/phpsec' . PATH_SEPARATOR
|
||||
. 'library/langdet' . PATH_SEPARATOR
|
||||
. '.' );
|
||||
|
||||
@@ -801,7 +817,7 @@ class App {
|
||||
$this->is_mobile = $mobile_detect->isMobile();
|
||||
$this->is_tablet = $mobile_detect->isTablet();
|
||||
|
||||
$this->head_set_icon('/images/rm-32.png');
|
||||
$this->head_set_icon('/images/hz-32.png');
|
||||
|
||||
BaseObject::set_app($this);
|
||||
|
||||
@@ -931,26 +947,6 @@ class App {
|
||||
return $this->groups;
|
||||
}
|
||||
|
||||
function set_widget($title,$html, $location = 'aside') {
|
||||
$this->widgets[] = array('title' => $title, 'html' => $html, 'location' => $location);
|
||||
}
|
||||
|
||||
function get_widgets($location = '') {
|
||||
if($location && count($this->widgets)) {
|
||||
$ret = array();
|
||||
foreach($this->widgets as $w) {
|
||||
if ($w['location'] == $location)
|
||||
$ret[] = $w;
|
||||
}
|
||||
$arr = array('location' => $location, 'widgets' => $ret);
|
||||
call_hooks('get_widgets', $arr);
|
||||
return $arr['widgets'];
|
||||
}
|
||||
$arr = array('location' => $location, 'widgets' => $this->widgets);
|
||||
call_hooks('get_widgets', $arr);
|
||||
return $arr['widgets'];
|
||||
}
|
||||
|
||||
function set_pager_total($n) {
|
||||
$this->pager['total'] = intval($n);
|
||||
}
|
||||
@@ -1056,18 +1052,7 @@ class App {
|
||||
}
|
||||
|
||||
function set_template_engine($engine = 'smarty3') {
|
||||
|
||||
$this->theme['template_engine'] = $engine;
|
||||
|
||||
/*if ($engine) {
|
||||
case 'smarty3':
|
||||
if(!is_writable(TEMPLATE_BUILD_PATH))
|
||||
echo "<b>ERROR</b> folder <tt>" . TEMPLATE_BUILD_PATH . "</tt> must be writable by webserver."; killme();
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}*/
|
||||
}
|
||||
|
||||
function get_template_ldelim($engine = 'smarty3') {
|
||||
@@ -1180,7 +1165,7 @@ function z_root() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Return absolut URL for given $path.
|
||||
* @brief Return absolute URL for given $path.
|
||||
*
|
||||
* @param string $path
|
||||
*
|
||||
@@ -1346,7 +1331,7 @@ function check_config(&$a) {
|
||||
*
|
||||
*/
|
||||
|
||||
$r = q("SELECT * FROM `addon` WHERE `installed` = 1");
|
||||
$r = q("SELECT * FROM addon WHERE installed = 1");
|
||||
if($r)
|
||||
$installed = $r;
|
||||
else
|
||||
@@ -1492,12 +1477,6 @@ function login($register = false, $form_id = 'main-login', $hiddens=false) {
|
||||
$tpl = get_markup_template("logout.tpl");
|
||||
}
|
||||
else {
|
||||
// There's no such thing as login_head.tpl, has never been in Red, removed from Friendica 1 Jun 2013...
|
||||
|
||||
// $a->page['htmlhead'] .= replace_macros(get_markup_template("login_head.tpl"), array(
|
||||
// '$baseurl' => $a->get_baseurl(true)
|
||||
// ));
|
||||
|
||||
$tpl = get_markup_template("login.tpl");
|
||||
if(strlen($a->query_string))
|
||||
$_SESSION['login_return_url'] = $a->query_string;
|
||||
@@ -2002,6 +1981,11 @@ function load_pdl(&$a) {
|
||||
require_once('include/comanche.php');
|
||||
|
||||
if (! count($a->layout)) {
|
||||
|
||||
$arr = array('module' => $a->module, 'layout' => '');
|
||||
call_hooks('load_pdl',$arr);
|
||||
$s = $arr['layout'];
|
||||
|
||||
$n = 'mod_' . $a->module . '.pdl' ;
|
||||
$u = comanche_get_channel_id();
|
||||
if($u)
|
||||
@@ -2014,6 +1998,7 @@ function load_pdl(&$a) {
|
||||
$a->pdl = $s;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2075,15 +2060,8 @@ function construct_page(&$a) {
|
||||
|
||||
$a->build_pagehead();
|
||||
|
||||
$arr = $a->get_widgets();
|
||||
ksort($arr, SORT_NUMERIC);
|
||||
if(count($arr)) {
|
||||
foreach($arr as $x) {
|
||||
if(! array_key_exists($x['location'], $a->page))
|
||||
$a->page[$x['location']] = '';
|
||||
|
||||
$a->page[$x['location']] .= $x['html'];
|
||||
}
|
||||
if($a->page['pdl_content']) {
|
||||
$a->page['content'] = comanche_region($a,$a->page['content']);
|
||||
}
|
||||
|
||||
// Let's say we have a comanche declaration '[region=nav][/region][region=content]$nav $content[/region]'.
|
||||
@@ -2100,6 +2078,7 @@ function construct_page(&$a) {
|
||||
call_hooks('construct_page', $arr);
|
||||
$a->layout = $arr['layout'];
|
||||
|
||||
|
||||
foreach($a->layout as $k => $v) {
|
||||
if((strpos($k, 'region_') === 0) && strlen($v)) {
|
||||
if(strpos($v, '$region_') !== false) {
|
||||
@@ -2271,7 +2250,7 @@ function cert_bad_email() {
|
||||
'$error' => t('Website SSL certificate is not valid. Please correct.')
|
||||
));
|
||||
|
||||
$subject = email_header_encode(sprintf(t('[red] Website SSL error for %s'), $a->get_hostname()));
|
||||
$subject = email_header_encode(sprintf(t('[hubzilla] Website SSL error for %s'), $a->get_hostname()));
|
||||
mail($a->config['system']['admin_email'], $subject, $email_msg,
|
||||
'From: Administrator' . '@' . $a->get_hostname() . "\n"
|
||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||
@@ -2312,7 +2291,7 @@ function check_cron_broken() {
|
||||
'$lastdate' => (($d)? $d : t('never'))
|
||||
));
|
||||
|
||||
$subject = email_header_encode(sprintf(t('[red] Cron tasks not running on %s'), $a->get_hostname()));
|
||||
$subject = email_header_encode(sprintf(t('[hubzilla] Cron tasks not running on %s'), $a->get_hostname()));
|
||||
mail($a->config['system']['admin_email'], $subject, $email_msg,
|
||||
'From: Administrator' . '@' . $a->get_hostname() . "\n"
|
||||
. 'Content-type: text/plain; charset=UTF-8' . "\n"
|
||||
|
||||
136
doc/Hooks.md
136
doc/Hooks.md
@@ -1,136 +0,0 @@
|
||||
Hooks - Complete List
|
||||
=====================
|
||||
|
||||
|
||||
* 'about_hook'
|
||||
* 'account_settings'
|
||||
* 'app_menu'
|
||||
* 'atom_author'
|
||||
* 'atom_entry'
|
||||
* 'atom_feed'
|
||||
* 'atom_feed_end'
|
||||
* 'authenticate'
|
||||
* 'avatar_lookup'
|
||||
* 'bb2diaspora'
|
||||
* 'bbcode'
|
||||
* 'channel_remove'
|
||||
* 'check_account_email'
|
||||
* 'check_account_invite'
|
||||
* 'check_account_password'
|
||||
* 'connect_premium'
|
||||
* 'connector_settings'
|
||||
* 'contact_block_end'
|
||||
* 'contact_edit'
|
||||
* 'contact_edit_post'
|
||||
* 'contact_photo_menu'
|
||||
* 'contact_select_options'
|
||||
* 'conversation_start'
|
||||
* 'cron'
|
||||
* 'directory_item'
|
||||
* 'display_item'
|
||||
* 'display_item'
|
||||
* 'display_settings'
|
||||
* 'display_settings_post'
|
||||
* 'enotify'
|
||||
* 'enotify_mail'
|
||||
* 'enotify_store'
|
||||
* 'event_created'
|
||||
* 'event_updated'
|
||||
* 'feature_enabled'
|
||||
* 'feature_settings'
|
||||
* 'feature_settings_post'
|
||||
* 'follow'
|
||||
* 'gender_selector'
|
||||
* 'get_all_perms'
|
||||
* 'get_features'
|
||||
* 'get_widgets'
|
||||
* 'global_permissions'
|
||||
* 'home_content'
|
||||
* 'home_init'
|
||||
* 'html2bbcode'
|
||||
* 'import_directory_profile'
|
||||
* 'init_1'
|
||||
* 'item_photo_menu'
|
||||
* 'item_translate'
|
||||
* 'jot_networks'
|
||||
* 'jot_tool'
|
||||
* 'logged_in'
|
||||
* 'login_hook'
|
||||
* 'logging_out'
|
||||
* 'magic_auth'
|
||||
* 'magic_auth_success'
|
||||
* 'main_slider'
|
||||
* 'marital_selector'
|
||||
* 'mood_verbs'
|
||||
* 'network_content_init'
|
||||
* 'network_ping'
|
||||
* 'network_tabs'
|
||||
* 'network_to_name'
|
||||
* 'notifier_end'
|
||||
* 'notifier_normal'
|
||||
* 'obj_verbs'
|
||||
* 'oembed_probe'
|
||||
* 'page_content_top'
|
||||
* 'page_end'
|
||||
* 'page_header'
|
||||
* 'parse_atom'
|
||||
* 'parse_link'
|
||||
* 'pdl_selector'
|
||||
* 'perm_is_allowed'
|
||||
* 'personal_xrd'
|
||||
* 'photo_post_end'
|
||||
* 'photo_post_end'
|
||||
* 'photo_upload_begin'
|
||||
* 'photo_upload_end'
|
||||
* 'photo_upload_file'
|
||||
* 'photo_upload_form'
|
||||
* 'poke_verbs'
|
||||
* 'post_local'
|
||||
* 'post_local_end'
|
||||
* 'post_local_start'
|
||||
* 'post_mail'
|
||||
* 'post_mail_end'
|
||||
* 'post_remote'
|
||||
* 'post_remote_end'
|
||||
* 'post_remote_update'
|
||||
* 'post_remote_update_end'
|
||||
* 'prepare_body'
|
||||
* 'prepare_body_final'
|
||||
* 'prepare_body_init'
|
||||
* 'proc_run'
|
||||
* 'profile_advanced'
|
||||
* 'profile_edit'
|
||||
* 'profile_post'
|
||||
* 'profile_sidebar'
|
||||
* 'profile_sidebar_enter'
|
||||
* 'profile_tabs'
|
||||
* 'register_account'
|
||||
* 'render_location'
|
||||
* 'settings_account'
|
||||
* 'settings_form'
|
||||
* 'settings_post'
|
||||
* 'sexpref_selector'
|
||||
* 'smilie'
|
||||
* 'validate_channelname'
|
||||
* 'webfinger'
|
||||
* 'zid'
|
||||
* 'zid_init'
|
||||
|
||||
***General Module Hooks***
|
||||
|
||||
* $a->module . '_mod_aftercontent'
|
||||
* $a->module . '_mod_aside'
|
||||
* $a->module . '_mod_content'
|
||||
* $a->module . '_mod_init'
|
||||
* $a->module . '_mod_post'
|
||||
|
||||
***General Selector Hooks***
|
||||
|
||||
* $a->module . '_post_' . $selname
|
||||
* $a->module . '_post_' . $selname
|
||||
* $a->module . '_post_' . $selname
|
||||
* $a->module . '_pre_' . $selname
|
||||
* $a->module . '_pre_' . $selname
|
||||
* $a->module . '_pre_' . $selname
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
105
doc/Hubzilla_on_OpenShift.bb
Normal file
105
doc/Hubzilla_on_OpenShift.bb
Normal file
@@ -0,0 +1,105 @@
|
||||
[b]Hubzilla on OpenShift[/b]
|
||||
You will notice a new .openshift folder when you fetch from upstream, i.e. from [url=https://github.com/redmatrix/hubzilla.git]https://github.com/redmatrix/hubzilla.git[/url] , which contains a deploy script to set up Hubzilla on OpenShift with plugins and extra themes.
|
||||
|
||||
As of this writing, 2015-10-28, you do not have to pay for OpenShift on the Free plan, which gives you three gears at no cost. The Bronze plan gives you three gears at no cost too, but you can expand to 16 gears by paying, and this requires you to register your payment card. The three gears can give three instances of Hubzilla with one gear each, or you can combine two gears into one high-availability Hubzilla instance and one extra gear. The main difference to be aware of is this: gears on the Free plan will go into hibernation if left idle for too long, this does not happen on the Bronze plan.
|
||||
|
||||
Create an account on OpenShift, then use the registration e-mail and password to create your first Hubzilla instance. Install git and RedHat's command line tools - rhc - if you have not already done so. See for example https://developers.openshift.com/en/getting-started-debian-ubuntu.html on how to do this on Debian GNU/Linux, or in the menu on that page for other GNU/Linux distributions or other operating systems.
|
||||
|
||||
[code]rhc app-create your_app_name php-5.4 mysql-5.5 cron phpmyadmin --namespace your_domain --from-code https://github.com/redmatrix/hubzilla.git -l your@email.address -p your_account_password
|
||||
[/code]
|
||||
|
||||
Make a note of the database username and password OpenShift creates for your instance, and use these at [url=https://your_app_name-your_domain.rhcloud.com/]https://your_app_name-your_domain.rhcloud.com/[/url] to complete the setup. You MUST change server address from 127.0.0.1 to localhost.
|
||||
|
||||
NOTE: PostgreSQL is NOT supported by the deploy script yet, see [zrl=https://zot-mor.rhcloud.com/display/3c7035f2a6febf87057d84ea0ae511223e9b38dc27913177bc0df053edecac7c@zot-mor.rhcloud.com?zid=haakon%40zot-mor.rhcloud.com]this thread[/zrl].
|
||||
|
||||
[b]Update[/b]
|
||||
To update, consider your own workflow first. I have forked Hubzilla code into my GitHub account to be able to try things out, this remote repo is called origin. Here is how I fetch new code from upstream, merge into my local repo, then push the updated code both into origin and the remote repo called openshift.
|
||||
|
||||
[code]git fetch upstream;git checkout master;git merge upstream/master;git push origin;git push openshift HEAD
|
||||
[/code]
|
||||
|
||||
[b]Administration[/b]
|
||||
Symptoms of need for MySQL database administration are:
|
||||
[list]
|
||||
[*] you can visit your domain and see the Hubzilla frontpage, but trying to login throws you back to login. This can mean your session table is marked as crashed.
|
||||
[*] you can login, but your channel posts are not visible. This can mean your item table is marked as crashed.
|
||||
[*] you can login and you can see your channel posts, but apparently nobody is getting your posts, comments, likes and so on. This can mean your outq table is marked as crashed.
|
||||
[/list]
|
||||
|
||||
You can check your OpenShift logs by doing
|
||||
|
||||
[code]
|
||||
rhc tail -a your_app_name -n your_domain -l your@email.address -p your_account_password
|
||||
[/code]
|
||||
|
||||
and you might be able to confirm the above suspicions about crashed tables, or other problems you need to fix.
|
||||
|
||||
[b]How to fix crashed tables in MySQL[/b]
|
||||
Using MySQL and the MyISAM database engine can result in table indexes coming out of sync, and you have at least two options for fixing tables marked as crashed.
|
||||
[list]
|
||||
[*] Use the database username and password OpenShift creates for your instance at [url=https://your_app_name-your_domain.rhcloud.com/phpmyadmin/]https://your_app_name-your_domain.rhcloud.com/phpmyadmin/[/url] to login via the web into your phpMyAdmin web interface, click your database in the left column, in the right column scroll down to the bottom of the list of tables and click the checkbox for marking all tables, then select Check tables from the drop down menu. This will check the tables for problems, and you can then checkmark only those tables with problems, and select Repair table from the same drop down menu at the bottom.
|
||||
[*] You can port-forward the MySQL database service to your own machine and use the MySQL client called mysqlcheck to check, repair and optimize your database or individual database tables without stopping the MySQL service on OpenShift. Run the following in two separate console windows.
|
||||
|
||||
To port-forward do
|
||||
|
||||
[code]rhc port-forward -a your_app_name -n your_domain -l your@email.address -p your_password[/code]
|
||||
|
||||
in one console window, then do either -o for optimize, -c for check or -r for repair, like this
|
||||
|
||||
[code]mysqlcheck -h 127.0.0.1 -r your_app_name -u your_app_admin_name -p[/code]
|
||||
|
||||
and give the app's password at the prompt. If all goes well you should see a number of table names with an OK behind them.
|
||||
|
||||
You can now
|
||||
[code]Press CTRL-C to terminate port forwarding[/code]
|
||||
[*] You can do
|
||||
|
||||
[code]rhc cartridge stop mysql-5.5 -a your_app_name[/code]
|
||||
|
||||
to stop the MySQL service running in your app on OpenShift before running myisamchk - which should only be run when MySQL is stopped, and then
|
||||
login to your instance with SSH - see OpenShift for details - and do
|
||||
|
||||
[code]cd mysql/data/your_database
|
||||
myisamchk -r *.MYI[/code]
|
||||
|
||||
or if you get
|
||||
|
||||
[code]Can't create new tempfile[/code]
|
||||
|
||||
check your OpenShift's gear quota with
|
||||
|
||||
[code]quota -gus[/code]
|
||||
|
||||
and if you are short on space, then locally (not SSH) do
|
||||
|
||||
[code]rhc app-tidy your_app_name -l your_login -p your_password[/code]
|
||||
|
||||
to have rhc delete temporary files and OpenShift logs to free space first, then check the size of your local repo dir and execute
|
||||
|
||||
[code]git gc[/code]
|
||||
|
||||
against it and check the size again, and then to minimize your remote repo connect via SSH to your application gear and execute the same command against it by changing to the remote repo directory - your repo should be in
|
||||
|
||||
[code]~/git/your_app_name.git[/code]
|
||||
|
||||
(if not, do find -size +1M to find it), then do
|
||||
|
||||
[code]
|
||||
cd
|
||||
cd mysql/data/yourdatabase
|
||||
myisamchk -r -v -f*.MYI[/code]
|
||||
|
||||
and hopefully your database tables are now okay.
|
||||
You can now start the MySQL service on OpenShift by locally doing
|
||||
|
||||
[code]rhc cartridge start mysql-5.5 -a your_app_name[/code]
|
||||
[/list]
|
||||
|
||||
[b]Notes[/b]
|
||||
[list]
|
||||
[*] definitely DO turn off feeds and discovery by default and limit delivery reports from 30 days to 3 days if you are on the Free or Bronze plan on OpenShift with a single 1Gb gear by visiting [observer.baseurl]/admin/site when logged in as administrator of your Hubzilla site.
|
||||
[*] The above defaults have been added into the deploy script.
|
||||
[*] DO add git gc to the deploy script
|
||||
[*] MAYBE DO add myisamchk - only checking? to the end of the deploy script.
|
||||
[*] mysqlcheck is similar in function to myisamchk, but works differently. The main operational difference is that mysqlcheck must be used when the mysqld server is running, whereas myisamchk should be used when it is not. The benefit of using mysqlcheck is that you do not have to stop the server to perform table maintenance - this means this documenation should be fixed.
|
||||
[/list]
|
||||
@@ -1,25 +1,28 @@
|
||||
#Privacy Policy
|
||||
Privacy Policy
|
||||
==============
|
||||
|
||||
|
||||
##Summary##
|
||||
|
||||
##Summary
|
||||
|
||||
Q: Who can see my content?
|
||||
|
||||
A: By default ANYBODY on the internet, UNLESS you restrict it. The $Projectname allows you to choose the privacy level you desire. Restricted content will NOT be visible to spy networks and their advertisers. It will be protected against eavesdropping by outsiders - to the best of our ability. Hub administrators with sufficient skills and patience MAY be able to eavesdrop on some private communications but they must expend effort to do so. Privacy modes exist within the $Projectname which are even resistant to eavesdropping by skilled and determined hub administrators.
|
||||
A: By default ANYBODY on the internet, UNLESS you restrict it. $Projectname allows you to choose the privacy level you desire. Restricted content will NOT be visible to "spy networks" and advertisers. It will be protected against eavesdropping by outsiders - to the best of our ability. Hub administrators with sufficient skills and patience MAY be able to eavesdrop on some private communications but they must expend effort to do so. Privacy modes exist within $Projectname which are even resistant to eavesdropping by skilled and determined hub administrators.
|
||||
|
||||
Q: Can my content be censored?
|
||||
|
||||
A: The $Projectname (the network) CANNOT censor your content. Server and hub administrators are subject to local laws and MAY remove objectionable content from their site/hub. Anybody MAY become a hub administrator, including you; and therefore publish content which might otherwise be censored. You still MAY be subject to local laws.
|
||||
A: $Projectname (the network) CANNOT censor your content. Server and hub administrators are subject to local laws and MAY remove objectionable content from their site/hub. Anybody MAY become a hub administrator, including you; and therefore publish content which might otherwise be censored. You still MAY be subject to local laws.
|
||||
|
||||
|
||||
##Definitions
|
||||
|
||||
**$Projectname**
|
||||
|
||||
Otherwise referred to as "the network", the $Projectname is a collection of individual computers/servers (aka **hubs**) which connect together to form a larger cooperative network.
|
||||
Otherwise referred to as "the network", $Projectname is a collection of individual computers/servers (aka **hubs**) which connect together to form a larger cooperative network.
|
||||
|
||||
**hub**
|
||||
|
||||
An individual computer or server connected to the $Projectname. These are provided by a **hub administrator** and may be public or private, paid or free.
|
||||
An individual computer or server connected to $Projectname. These are provided by a **hub administrator** and may be public or private, paid or free.
|
||||
|
||||
**hub administrator**
|
||||
|
||||
@@ -29,7 +32,7 @@ The system operator of an individual hub.
|
||||
|
||||
**Public Information**
|
||||
|
||||
Any information or anything posted by you within the $Projectname MAY be public or visible to anybody on the internet. To the extent possible, the $Projectname allows you to protect content and restrict who can view it.
|
||||
Any information or anything posted by you within $Projectname MAY be public or visible to anybody on the internet. To the extent possible, $Projectname allows you to protect content and restrict who can view it.
|
||||
|
||||
Your profile photo, your channel name, and the location (URL or network address) of your channel are visible to anybody on the internet and privacy controls will not affect the display of these items.
|
||||
|
||||
@@ -37,7 +40,7 @@ You MAY additionally provide other profile information. Any information which yo
|
||||
|
||||
**Content**
|
||||
|
||||
Content you provide (status posts, photos, files, etc.) belongs to you. The $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). The $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
|
||||
Content you provide (status posts, photos, files, etc.) belongs to you. The $Projectname default is to publish content openly and visible to anybody on the internet (PUBLIC). You MAY control this in your channel settings and restrict the default permissions or you MAY restrict the visibility of any single published item separately (PRIVATE). $Projectname developers will ensure that restricted content is ONLY visible to those in the restriction list - to the best of their ability.
|
||||
|
||||
Content (especially status posts) that you share with other networks or that you have made visible to anybody on the internet (PUBLIC) cannot easily be taken back once it has been published. It MAY be shared with other networks and made available through RSS/Atom feeds. It may also be syndicated on other $Projectname sites. It MAY appear on spy networks and internet searches. If you do not wish this default behaviour please adjust your channel settings and restrict who can see your content.
|
||||
|
||||
@@ -48,25 +51,27 @@ Comments to posts that were created by others and posts which are designated as
|
||||
|
||||
**Private Information**
|
||||
|
||||
$Projectname developers will ensure that any content you provide which is designated as PRIVATE will be protected against eavesdropping - to the best of their ability. Private content is generally hidden or obscured even from hub administrators. It is also stripped from email notifications. It is difficult but NOT impossible for this content to be seen by a hub administrator. This is a side effect of the physical laws of the universe. Unfortunately, if a database needs to decrypt a post at display time, it must have the means to decrypt the post! End to end encryption is also provided and this CANNOT be seen, even by a determined administrator.
|
||||
$Projectname developers will ensure that any content you provide which is designated as PRIVATE will be protected against eavesdropping - to the best of their ability. Private content is generally hidden or obscured even from hub administrators. It is also stripped from email notifications. It is difficult but NOT impossible for this content to be seen by a hub administrator. End to end encryption is provided as an optional feature and this CANNOT be seen, even by a determined administrator.
|
||||
|
||||
##Identity Privacy
|
||||
|
||||
Privacy for your identity is another aspect. Because you have a decentralized identity in the $Projectname, your privacy extends beyond your home hub. If you want to have complete control of your privacy and security you should run your own hub on a dedicated server. For many people, this is complicated and may stretch their technical abilities. So let's list a few precautions you can make to assure your privacy as much as possible.
|
||||
Privacy for your identity is another aspect. Because you have a decentralized identity in $Projectname, your privacy extends beyond your home hub. If you want to have complete control of your privacy and security you should run your own hub on a dedicated server. For many people, this is complicated and may stretch their technical abilities. So let's list a few precautions you can make to assure your privacy as much as possible.
|
||||
|
||||
A decentralized identity has a lot of advantages and gives you al lot of interesting features, but you should be aware of the fact that your identity is known by other hubs in the $Projectname network. One of those advantages is that other channels can serve you customized content and allow you to see private things (such as private photos which others wish to share with you). Because of this those channels need to know who you are. But we understand that sometimes those other channels know more from you than you might desire. For instance the plug-in Visage that can tell a channel owner the last time you visit their profile. You can easily OPT-OUT of this low level and we think, harmless tracking.
|
||||
|
||||
* You can enable [Do Not Track (DNT)](http://donottrack.us/) in your web browser. We respect this new privacy policy proposal. All modern browsers support DNT. You will find it in the privacy settings of your browsers or else you can consult the web browser's manual. This will not affect the functionality of the $Projectname. This setting is probably enough for most people.
|
||||
* You can enable [Do Not Track (DNT)](http://donottrack.us/) in your web browser. We respect this new privacy policy proposal. All modern browsers support DNT. You will find it in the privacy settings of your browsers or else you can consult the web browser's manual. This will not affect the functionality of $Projectname. This setting is probably enough for most people.
|
||||
|
||||
*You can [disable publication](settings) of your channel in our channel directory. If you want people to find your channel, you should give your channel address directly to them. We think this is a good indication that you prefer extra privacy and automatically enable "Do Not Track" if this is the case.
|
||||
|
||||
* You can have a blocked hub. That means that all channels and content on that hub is not public, and not visible to the outside world. This is something only your hub administrator can do. We also respect this and automatically enable "Do Not Track" if it is set.
|
||||
|
||||
###Censorship
|
||||
|
||||
The $Projectname is a global network which is inclusive of all religions and cultures. This does not imply that every member of the network feels the same way you do on contentious issues, and some people may be STRONGLY opposed to the content you post. In general, if you wish to post something that you know may nor be universally acceptable, the best approach is to restrict the audience using privacy controls to a small circle of friends.
|
||||
$Projectname is a global network which is inclusive of all religions and cultures. This does not imply that every member of the network feels the same way you do on contentious issues, and some people may be STRONGLY opposed to the content you post. In general, if you wish to post something that you know may nor be universally acceptable, the best approach is to restrict the audience using privacy controls to a small circle of friends.
|
||||
|
||||
The $Projectname as a network provider is unable to censor content. However, hub administrators MAY censor any content which appears on their hub to comply with local laws or even personal judgement. Their decision is final. If you have issues with any hub administrator, you may move your account and postings to another site which is more in line with your expectations. Please check (periodically) the [Terms of Service](help/TermsOfService) of your hub to learn about any rules or guidelines. If your content consists of material which is illegal or may cause issues, you are STRONGLY encouraged to host your own (become a hub administrator). You may still find that your content is blocked on some hubs, but the $Projectname as a network cannot block it from being posted.
|
||||
$Projectname as a network provider is unable to censor content. However, hub administrators MAY censor any content which appears on their hub to comply with local laws or even personal judgement. Their decision is final. If you have issues with any hub administrator, you may move your account and postings to another site which is more in line with your expectations. Please check (periodically) the [Terms of Service](help/TermsOfService) of your hub to learn about any rules or guidelines. If your content consists of material which is illegal or may cause issues, you are STRONGLY encouraged to host your own (become a hub administrator). You may still find that your content is blocked on some hubs, but $Projectname as a network cannot block it from being posted.
|
||||
|
||||
The $Projectname RECOMMENDS that hub administrators provide a grace period of 1-2 days between warning an account holder of content that needs to be removed and physically removing or disabling the account. This will give the content owner an opportunity to export their channel meta-data and import it to another site. In rare cases the content may be of such a nature to justify the immediate termination of the account. This is a hub decision, not a $Projectname decision.
|
||||
$Projectname RECOMMENDS that hub administrators provide a grace period of 1-2 days between warning an account holder of content that needs to be removed and physically removing or disabling the account. This will give the content owner an opportunity to export their channel meta-data and import it to another site. In rare cases the content may be of such a nature to justify the immediate termination of the account. This is a hub decision, not a $Projectname decision.
|
||||
|
||||
If you typically and regularly post content of an adult or offensive nature, you are STRONGLY encouraged to mark your account "NSFW" (Not Safe For Work). This will prevent the display of your profile photo in the directory except to viewers that have chosen to disable "safe mode". If your profile photo is found by directory administrators to be adult or offensive, the directory administrator MAY flag your profile photo as NSFW. There is currently no official mechanism to contest or reverse this decision, which is why you SHOULD mark your own account NSFW if it is likely to be inappropriate for general audiences.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ Hubzilla
|
||||
###Websites. Redefined.
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
**What are Hubs?**
|
||||
|
||||
@@ -39,4 +39,4 @@ Possible website applications include
|
||||
|
||||
|
||||
|
||||
This project is under development and is not yet available for general use.
|
||||
This project is under development and is not yet available for general use.
|
||||
|
||||
@@ -75,7 +75,7 @@ Some/many of these widgets have restrictions which may restrict the type of page
|
||||
* suggestedchats - "interesting" chatrooms chosen for the current observer
|
||||
|
||||
* item - displays a single webpage item by mid
|
||||
* args: mid - message_id of webpage to display
|
||||
* args: mid - message_id of webpage to display (must be webpage, not a conversation item)
|
||||
<br /> <br />
|
||||
|
||||
* photo - display a single photo
|
||||
@@ -88,7 +88,7 @@ Some/many of these widgets have restrictions which may restrict the type of page
|
||||
* photo_rand - display a random photo from one of your photo albums. Photo permissions are honoured
|
||||
* args:
|
||||
* album - album name (very strongly recommended if you have lots of photos)
|
||||
* scale - typically 0 (original size), 1 (640px), or 2 (320px)
|
||||
* scale - typically 0 (original size), 1 (1024px), 2, (640px), or 3 (320px)
|
||||
* style - CSS style string
|
||||
* channel_id - if not your own
|
||||
<br /> <br />
|
||||
@@ -99,6 +99,21 @@ Some/many of these widgets have restrictions which may restrict the type of page
|
||||
* channel_id - if not your own
|
||||
<br /> <br />
|
||||
|
||||
* tasklist - provide a task or to-do list for the currently logged-in channel.
|
||||
* args:
|
||||
* all - display completed tasks if all is non-zero.
|
||||
<br /> <br />
|
||||
|
||||
* forums - provide a list of connected public forums with unseen counts for the current logged-in channel.
|
||||
<br /> <br />
|
||||
|
||||
|
||||
* album - provides a widget containing a complete photo album from albums belonging to the page owner; this may be too large to present in a sidebar region as is best implemented as a content region widget.
|
||||
* args:
|
||||
* album - album name
|
||||
* title - optional title, album name is used if not present
|
||||
<br /> <br />
|
||||
|
||||
|
||||
Creating New Widgets
|
||||
====================
|
||||
|
||||
16
doc/about.bb
16
doc/about.bb
@@ -1,24 +1,24 @@
|
||||
[b]About[/b]
|
||||
|
||||
The $Projectname is a decentralized communication network, which aims to provide communication that is censorship-resistant, privacy-respecting, and thus free from the oppressive claws of contemporary corporate communication giants. These giants function primarily as spy networks for paying clients of all sorts and types, in addition to monopolizing and centralizing the Internet; a feature that was not part of the original and revolutionary goals that produced the World Wide Web.
|
||||
$Projectname is a decentralized communication network, which aims to provide communication that is censorship-resistant, privacy-respecting, and thus free from the oppressive claws of contemporary corporate communication giants. These giants function primarily as spy networks for paying clients of all sorts and types, in addition to monopolizing and centralizing the Internet; a feature that was not part of the original and revolutionary goals that produced the World Wide Web.
|
||||
|
||||
The $Projectname is free and open source. It is designed to scale from a $35 Raspberry Pi, to top of the line AMD and Intel Xeon-powered multi-core enterprise servers. It can be used to support communication between a few individuals, or scale to many thousands and more.
|
||||
$Projectname is free and open source. It is designed to scale from a $35 Raspberry Pi, to top of the line AMD and Intel Xeon-powered multi-core enterprise servers. It can be used to support communication between a few individuals, or scale to many thousands and more.
|
||||
|
||||
Red aims to be skill and resource agnostic. It is easy to use by everyday computer users, as well as by systems administrators and developers.
|
||||
$Projectname aims to be skill and resource agnostic. It is easy to use by everyday computer users, as well as by systems administrators and developers.
|
||||
|
||||
How you use it depends on how you want to use it.
|
||||
|
||||
It is written in the PHP scripting language, thus making it trivial to install on any hosting platform in use today. This includes self-hosting at home, at hosting providers such as [url=http://mediatemple.com/]Media Temple[/url] and [url=http://www.dreamhost.com/]Dreamhost[/url], or on virtual and dedicated servers, offered by the likes of [url=https://www.linode.com]Linode[/url], [url=http://greenqloud.com]GreenQloud[/url] or [url=https://aws.amazon.com]Amazon AWS[/url].
|
||||
|
||||
In other words, the $Projectname can run on any computing platform that comes with a web server, a MySQL-compatible database, and the PHP scripting language.
|
||||
In other words, $Projectname can run on any computing platform that comes with a web server, a MySQL-compatible database, and the PHP scripting language.
|
||||
|
||||
Along the way, Red offers a number of unique goodies:
|
||||
Along the way, $Projectname offers a number of unique goodies:
|
||||
|
||||
[b]Single-click user identification:[/b] meaning you can access sites on the $Projectname simply by clicking on links to remote sites. Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
|
||||
[b]Single-click user identification:[/b] meaning you can access sites on $Projectname simply by clicking on links to remote sites. Authentication just happens automagically behind the scenes. Forget about remembering multiple user names with multiple passwords when accessing different sites online.
|
||||
|
||||
[b]Cloning:[/b] of online identities. Your online presence no longer has to be tied to a single server, domain name or IP address. You can clone and import your identity (or channel as we call it) to another server (or, a hub as servers are known in the $Projectname). Now, should your primary hub go down, no worries, your contacts, posts[i]*[/i], and messages[i]*[/i] will automagically continue to be available and accessible under your cloned channel. [i](*: only posts and messages as from the moment you cloned your channel)[/i]
|
||||
[b]Cloning:[/b] of online identities. Your online presence no longer has to be tied to a single server, domain name or IP address. You can clone and import your identity (or channel as we call it) to another server (or, a hub as servers are known in $Projectname). Now, should your primary hub go down, no worries, your contacts, posts[i]*[/i], and messages[i]*[/i] will automagically continue to be available and accessible under your cloned channel. [i](*: only posts and messages as from the moment you cloned your channel)[/i]
|
||||
|
||||
[b]Privacy:[/b] Red identities (Zot IDs) can be deleted, backed up/downloaded, and cloned. The user is in full control of their data. Should you decide to delete all your content and erase your Zot ID, all you have to do is click on a link and it's immediately deleted from the hub. No questions, no fuss.
|
||||
[b]Privacy:[/b] $Projectname identities (Zot IDs) can be deleted, backed up/downloaded, and cloned. The user is in full control of their data. Should you decide to delete all your content and erase your Zot ID, all you have to do is click on a link and it's immediately deleted from the hub. No questions, no fuss.
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
[*] qrator - generate QR code images
|
||||
[*] rainbowtag - display your tag and category clouds in colours
|
||||
[*] randpost - post/reply bot based on and requires fortunate
|
||||
[*] redred - Crosspost to another Redmatrix or Hubzilla channel
|
||||
[*] redred - Crosspost to another Red Matrix or Hubzilla channel
|
||||
[*] rtof - Crosspost to Friendica
|
||||
[*] smiley_pack - extend the built-in smilie (emoticon) support
|
||||
[*] smileybutton - provides a smiley selector on the post window
|
||||
|
||||
15
doc/admins.bb
Normal file
15
doc/admins.bb
Normal file
@@ -0,0 +1,15 @@
|
||||
[h2]Documentation for Hub Administrators[/h2]
|
||||
|
||||
[h3]Administrators[/h3]
|
||||
|
||||
[zrl=[baseurl]/help/install]Install[/zrl]
|
||||
[zrl=[baseurl]/help/red2pi]Installing $Projectname on the Raspberry Pi[/zrl]
|
||||
[zrl=[baseurl]/help/Hubzilla_on_OpenShift]$Projectname on OpenShift[/zrl]
|
||||
[zrl=[baseurl]/help/troubleshooting]Troubleshooting Tips[/zrl]
|
||||
[zrl=[baseurl]/help/hidden_configs]Tweaking $Projectname's Hidden Configurations[/zrl]
|
||||
[zrl=[baseurl]/help/faq_admins]FAQ For Admins[/zrl]
|
||||
[zrl=[baseurl]/help/service_classes]Service Classes[/zrl]
|
||||
[zrl=[baseurl]/help/directories]Working with and configuring Directories[/zrl]
|
||||
[zrl=[baseurl]/help/theme_management]Theme Management[/zrl]
|
||||
|
||||
|
||||
23
doc/api/statuses_update.bb
Normal file
23
doc/api/statuses_update.bb
Normal file
@@ -0,0 +1,23 @@
|
||||
[h2]statuses/update[/h2]
|
||||
Parameters
|
||||
|
||||
title: Title of the status
|
||||
status: Status in text [or bbcode] format
|
||||
htmlstatus: Status in HTML format
|
||||
in_reply_to_status_id
|
||||
lat: latitude
|
||||
long: longitude
|
||||
media: image data
|
||||
source: Application name
|
||||
group_allow
|
||||
contact_allow
|
||||
group_deny
|
||||
contact_deny
|
||||
|
||||
|
||||
Example
|
||||
|
||||
[code]
|
||||
curl -u theUsername:thePassword http://mywebsite/api/statuses/update.xml -d status='Hello world'
|
||||
[/code]
|
||||
|
||||
@@ -4,19 +4,20 @@ The API allows you to post to the red# by HTTP POST request. Below you see an ex
|
||||
|
||||
[code]curl -ssl -u [color=blue]$E-Mail[/color]:[color=blue]$Password[/color] -d "[color=blue]$Parameters[/color]" [url][observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update
|
||||
[/url][/code]
|
||||
[table][tr][td]$E-Mail:[/td][td]The E-Mail Adress you use to login[/td][/tr]
|
||||
[table][tr][td]$E-Mail:[/td][td]The E-Mail Address you use to login, or the channel nickname (without the hostname)[/td][/tr]
|
||||
[tr][td]$Password:[/td][td]The Password you use to login[/td][/tr]
|
||||
[tr][td]$Parameters:[/td][td]That's the interesting part, here you insert the content you want to send using the following parameters:[/td][/tr][/table]
|
||||
|
||||
[ul]
|
||||
[*]title: the title of the posting
|
||||
[*]channel: the channel you want to post to
|
||||
[*]channel: the channel you want to post to (do not use this parameter with HTTP Basic auth)
|
||||
[*]category: a comma-seperated list of categories for the posting
|
||||
[*]status: the content of the posting, formatted with BBCode
|
||||
OR
|
||||
[*]htmlstatus:the content of the posting, formatted in HTML.
|
||||
[/ul]
|
||||
|
||||
To post to a specific channel, replace the email address with the channel nickname. If you supply the channel parameter, it has to match the "email", but is superfluous anyway.
|
||||
|
||||
Instead of calling [observer=1][observer.baseurl][/observer][observer=0]example.com[/observer]/api/statuses/update which returns a json (you could also add .json on the end to clarify) output, you can use [observer.baseurl]/api/statuses/update.xml to get an xml formatted return.
|
||||
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
<li>[u]underlined[/u] - <u>underlined</u><br />
|
||||
<li>[s]strike[/s] - <strike>strike</strike><br />
|
||||
<li>[color=red]red[/color] - <span style="color: red;">red</span><br />
|
||||
<li>[url=https://redmatrix.me]$Projectname[/url] <a href="https://redmatrix.me">$Projectname</a><br />
|
||||
<li>[img]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" alt="Image/photo" /><br />
|
||||
<li>[img float=left]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" style="float:left;" alt="Image/photo" /><br />
|
||||
<li>[url=https://zothub.com]$Projectname[/url] <a href="https://zothub.com">$Projectname</a><br />
|
||||
<li>[img]https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg" alt="Image/photo" /><br />
|
||||
<li>[img float=left]https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg" style="float:left;" alt="Image/photo" /><br />
|
||||
<div style="clear:both;"></div>
|
||||
<li>[img float=right]https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://redmatrix.me/images/default_profile_photos/rainbow_man/48.jpg" style="float:right;" alt="Image/photo" /><br />
|
||||
<li>[img float=right]https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg[/img] <img src="https://zothub.com/images/default_profile_photos/rainbow_man/48.jpg" style="float:right;" alt="Image/photo" /><br />
|
||||
<div style="clear:both;"></div>
|
||||
<li>[code]code[/code] <code>code</code><br />
|
||||
<li>[quote]quote[/quote] <blockquote>quote</blockquote><br />
|
||||
@@ -50,8 +50,8 @@
|
||||
<p>$Projectname specific codes</p>
|
||||
<ul class="listbullet" style="list-style-type: circle;">
|
||||
<li>[&copy;] © This works for many HTML entities</li>
|
||||
<li>[zrl]https://redmatrix.me[/zrl] Magic-auth version of [url] tag</li>
|
||||
<li>[zmg]https://redmatrix.me/some/photo.jpg[/zmg] Magic-auth version of [img] tag<br /></li>
|
||||
<li>[zrl]https://zothub.com[/zrl] Magic-auth version of [url] tag</li>
|
||||
<li>[zmg]https://zothub.com/some/photo.jpg[/zmg] Magic-auth version of [img] tag<br /></li>
|
||||
|
||||
<li>[observer=1]Text to display if observer is authenticated in the matrix[/observer]</li>
|
||||
<li>[observer=0]Text to display if observer is <strong>not</strong> authenticated in the matrix[/observer]</li>
|
||||
|
||||
45
doc/bugs.bb
Normal file
45
doc/bugs.bb
Normal file
@@ -0,0 +1,45 @@
|
||||
[h2]Bugs, Issues, and things that go bump in the night...[/h2]
|
||||
[h3]Something went wrong! Who is charge of fixing it?[/h3]
|
||||
|
||||
[b]Hubzilla Community Server[/b]
|
||||
|
||||
Hubzilla Community Server is open source software which is maintained by "the community" - essentially unpaid volunteers.
|
||||
|
||||
[b]Hubzilla Enterprise Server[/b]
|
||||
|
||||
Hubzilla Enterprise Server is commercial software with a variety of support plans depending on the specific license terms.
|
||||
|
||||
|
||||
The first thing you need to do is talk to your hub administrator - the person who runs and manages your site. They are in the unique position of having access to the internal software and database and [b]logfiles[/b] and will need to be involved in fixing your problem. Other people "on the net" can't really help with this. The first thing the hub administrator needs to do is look at their logs and/or try to reproduce the problem. So try to be as helpful and courteous as possible in helping them look into the problem.
|
||||
|
||||
To find your hub administrator (if you don't know who they are) please look at [url=[baseurl]/siteinfo]this page[/url]. If they have not provided any contact info on that page or provided an "Impressum" there, see [url=[baseurl]/siteinfo/json]this site info summary[/url] under the heading "admin:".
|
||||
|
||||
[h3]I'm a hub administrator; what do I do?[/h3]
|
||||
|
||||
The software instructions which provide this server are open source and are available for your inspection. If an error message was reported, often one can do a search on the source files for that error message and find out what triggered it. With this information and the site logfiles it may be possible to figure out the sequence of events leading to the error. There could also be other sites involved, and the problem may not even be on your site but elsewhere in the network. Try to pin down the communication endpoints (hubs or sites) involved in the problem and contact the administrator of that site or those sites. Please try and provide an event time of when things went wrong so it can be found in the logs. Work with the other administrator(s) to try and find the cause of the problem. Logfiles are your friend. When something happens in the software that we didn't expect, it is nearly always logged.
|
||||
|
||||
[h3]The white screen of death[/h3]
|
||||
|
||||
If you get a blank white screen when doing something, this is almost always a code or syntax error. There are instructions in your .htconfig.php file for enabling syntax logging. We recommend all sites use this. With syntax logging enabled repeat the sequence which led to the error and it should log the offending line of code. Hopefully you will be able to fix the problem with this information. When you do, please submit the fix "upstream" so that we can share the fix with the rest of the project members and other communities. This is a key benefit of using open source software - we share with each other and everybody benefits.
|
||||
|
||||
[h3]I'm stumped. I can't figure out what is wrong.[/h3]
|
||||
|
||||
[b]Hubzilla Enterprise Server[/b]
|
||||
|
||||
Please make contact with the vendor - who will have provided you with support contact details. Preferably this contact will be made by the hub administrator so that he/she can assist us in collecting the necessary issue details. We will assign a ticket and notify you of progress.
|
||||
|
||||
|
||||
[b]Hubzilla Community Server[/b]
|
||||
|
||||
At this point it might be worthwhile discussing the issue on one of the online forums. There may be several of these and some may be more suited to your spoken language. As a last resort, try "Channel One", which is in English.
|
||||
|
||||
If the community developers can't help you right away, understand that they are volunteers and may have a lot of other work and demands on their time. At this point you need to file a bug report. You will need an account on github.com to do this. So register, and then visit https://github.com/redmatrix/hubzilla/issues
|
||||
. Create an issue here and provide all the same information that you provided online. Don't leave out anything.
|
||||
|
||||
Then you wait. If it's a high profile issue, it may get fixed quickly. But nobody is in charge of fixing bugs. If it lingers without resolution, please spend some more time investigating the problem. Ask about anything you don't understand related to the behaviour. You will learn more about how the software works and quite possibly figure out why it isn't working now. Ultimately it is somebody in the community who is going to fix this and you are a member of the community; and this is how the open source process works.
|
||||
|
||||
|
||||
[b]In either case[/b]
|
||||
|
||||
Other developers working to fix the problem may need to find out more, so do your homework and document what is happening and everything you've tried. Don't say "I did xyz and it didn't work." That doesn't tell us anything. Tell us precisely what steps you took and what you expected the result to be, and precisely what happened as a result. If there were any error messages, don't say "there was an error message". Tell us exactly what the message said.
|
||||
|
||||
@@ -22,7 +22,7 @@ Once you have created your channel, you will be taken to the settings page, wher
|
||||
|
||||
Once you have done this, your channel is ready to use. At [observer=1][observer.url][/observer][observer=0]example.com/channel/username[/observer] you will find your channel "stream". This is where your recent activity will appear, in reverse chronological order. If you post in the box marked "share", the entry will appear at the top of your stream. You will also find links to all the other communication areas for this channel here. The "About" tab contains your "profile", the photos page contain photo albums, and the events page contains events share by both yourself and your contacts.
|
||||
|
||||
The "Matrix" page contains all recent posts from across the matrix, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
|
||||
The "Grid" page contains all recent posts from across the $Projectname network, again in reverse chronologial order. The exact posts that appear here depend largely on your permissions. At their most permissive, you will receive posts from complete strangers. At the other end of the scale, you may see posts from only your friends - or if you're feeling really anti-social, only your own posts.
|
||||
|
||||
As mentioned at the start, many other kinds of channel are possible, however, the creation procedure is the same. The difference between channels lies primarily in the permissions assigned. For example, a channel for sharing documents with colleagues at work would probably want more permissive settings for "Can write to my "public" file storage" than a personal account. For more information, see the permissions section.
|
||||
|
||||
|
||||
@@ -27,8 +27,8 @@ Currently there are five layout templates, unless your site provides additional
|
||||
edgesthree - three column layout with fixed side margins
|
||||
full - three column layout with fixed side margins and adds a "header" region beneath the navigation bar
|
||||
|
||||
[b]redable[/b]
|
||||
A template for reading longer texts. Three columns: aside, content and right_aside.
|
||||
[b]redable[/b] (sic)
|
||||
A template for reading longer texts full screen (so without navigation bar). Three columns: aside, content and right_aside.
|
||||
For maximum readability it is advised to only use the middle content column.
|
||||
|
||||
[b]zen[/b]
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
[b]Credits[/b]
|
||||
|
||||
Thanks to all who have helped and contributed to the project and its predecessors over the years. It is possible we missed in your name but this is unintentional. We also thank the community and its members for providing valuable input and without whom this entire effort would be meaningless.
|
||||
|
||||
It is also worth acknowledging the contributions and solutions to problems which arose from discussions amongst members and developers of other somewhat related and competing projects; even if we have had our occasional disagreements.
|
||||
|
||||
Mike Macgirvin
|
||||
Fabio Comuni
|
||||
Simon L'nu
|
||||
@@ -10,7 +14,7 @@ tommy tomson
|
||||
Simon
|
||||
zottel
|
||||
Christian Vogeley
|
||||
jeroenpraat
|
||||
Jeroen van Riet Paap (jeroenpraat)
|
||||
Michael Vogel
|
||||
erik
|
||||
Zach Prezkuta
|
||||
@@ -62,6 +66,7 @@ tonnerkiller
|
||||
Antoine G
|
||||
Christian Drechsler
|
||||
Ludovic Grossard
|
||||
RedmatrixCanada
|
||||
Stanislav Lechev [0xAF]
|
||||
aweiher
|
||||
bufalo1973
|
||||
@@ -73,3 +78,5 @@ mycocham
|
||||
ndurchx
|
||||
pafcu
|
||||
Simó Albert i Beltran
|
||||
Manuel Reva
|
||||
Manuel Jiménez Friaza
|
||||
|
||||
@@ -23,18 +23,17 @@
|
||||
[tr][td][zrl=[baseurl]/help/database/db_group_member]group_member[/zrl][/td][td]privacy groups (collections), group info[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_groups]groups[/zrl][/td][td]privacy groups (collections), member info[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_hook]hook[/zrl][/td][td]plugin hook registry[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_hubloc]hubloc[/zrl][/td][td]Red location storage, ties a hub location to an xchan[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_hubloc]hubloc[/zrl][/td][td]xchan location storage, ties a hub location to an xchan[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_issue]issue[/zrl][/td][td]future bug/issue database[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_item]item[/zrl][/td][td]all posts and webpages[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_item_id]item_id[/zrl][/td][td]other identifiers on other services for posts[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_likes]likes[/zrl][/td][td]likes of 'things'[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_mail]mail[/zrl][/td][td]private messages[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_manage]manage[/zrl][/td][td]may be unused in Red, table of accounts that can "su" each other[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_menu]menu[/zrl][/td][td]webpage menu data[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_menu_item]menu_item[/zrl][/td][td]entries for webpage menus[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_notify]notify[/zrl][/td][td]notifications[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_obj]obj[/zrl][/td][td]object data for things (x has y)[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_outq]outq[/zrl][/td][td]Red output queue[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_outq]outq[/zrl][/td][td]output queue[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_pconfig]pconfig[/zrl][/td][td]personal (per channel) configuration storage[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_photo]photo[/zrl][/td][td]photo storage[/td][/tr]
|
||||
[tr][td][zrl=[baseurl]/help/database/db_poll]poll[/zrl][/td][td]data for polls[/td][/tr]
|
||||
|
||||
@@ -27,29 +27,22 @@
|
||||
[/td][/tr]
|
||||
[tr][td]abook_dob[/td][td]Datetime of connection's birthday converted from *their* timezone to UTC[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]abook_flags[/td][td]Bitfield containing blocked(0x1), ignored(0x2), hidden(0x4), archived(0x8), pending(0x10), unconnected(0x20), self(0x80), feed(0x100)[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_flags[/td][td]No longer used[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]abook_profile[/td][td]profile.guid of profile to display to this connection if authenticated[/td][td]char(64)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]abook_blocked[/td][td]Bi-directional communications with this channel are blocked, regardless of other permissions. [/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_ignored[/td][td]Incoming communications from this channel are blocked, regardless of other permissions. [/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_hidden[/td][td]This connection will not be shown as a connection to anybody but the channel owner[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_archived[/td][td]This connection is likely non-functioning and the entry and conversations are preserved, but further polled communications will not be attempted. [/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_pending[/td][td]A connection request was received from this channel but has not been approved by the channel owner, public communications may still be visible but no additional permissions have been granted. [/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_unconnected[/td][td]currently unused. Projected usage is to indicate "one-way" connections which were insitgated on this end but are still pending on the remote end. [/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_self[/td][td]is a special case where the owner is the target. Every channel has one abook entry with abook_self and with a target abook_xchan set to channel.channel_hash . When this flag is present, abook_my_perms is the default permissions granted to all new connections and several other fields are unused.[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_feed[/td][td]indicates this connection is an RSS/Atom feed and may trigger special handling.[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_incl[/td][td]connection filter allow rules separated by LF[/td][td]text[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_excl[/td][td]connection filter deny rules separated by LF[/td][td]text[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]abook_instance[/td][td]comma separated list of site urls of all channel clones that this connection is connected with (used only for singleton networks which don't support cloning)[/td][td]text[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/table]
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
ABOOK_FLAGS_BLOCKED - Bi-directional communications with this channel are blocked, regardless of other permissions.
|
||||
|
||||
ABOOK_FLAGS_IGNORED - Incoming communications from this channel are blocked, regardless of other permissions.
|
||||
|
||||
ABOOK_FLAGS_HIDDEN - This connection will not be shown as a connection to anybody but the channel owner
|
||||
|
||||
ABOOK_FLAGS_ARCHIVED - This connection is likely non-functioning and the entry and conversations are preserved, but further polled communications will not be attempted.
|
||||
|
||||
ABOOK_FLAGS_PENDING - A connection request was received from this channel but has not been approved by the channel owner, public communications may still be visible but no additional permissions have been granted.
|
||||
|
||||
ABOOK_FLAGS_UNCONNECTED - currently unused. Projected usage is to indicate "one-way" connections which were insitgated on this end but are still pending on the remote end.
|
||||
|
||||
ABOOK_FLAGS_SELF is a special case where the owner is the target. Every channel has one abook entry with ABOOK_FLAGS_SELF with a target abook_xchan set to channel.channel_hash . When this flag is present, abook_my_perms is the default permissions granted to all new connections and several other fields are unused.
|
||||
|
||||
ABOOK_FLAGS_FEED - indicates this connection is an RSS/Atom feed and may trigger special handling.
|
||||
|
||||
Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
|
||||
@@ -21,7 +21,15 @@
|
||||
[/td][/tr]
|
||||
[tr][td]folder[/td][td]attach.hash of parent folder[/td][td]char(64)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]flags[/td][td]see notes[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]flags[/td][td]no longer used[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]is_dir[/td][td]0 (file) or 1 to indicate a directory[/td][td]tinyint[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]is_photo[/td][td]if 1, a photo is linked to this resource[/td][td]tinyint[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]os_storage[/td][td]if 0, data contains content; if 1 data contains path to content (always 1 in hubzilla)[/td][td]tinyint[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]display_path[/td][td]under construction, store the human readable path[/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]data[/td][td]file data or pathname to stored data if ATTACH_FLAG_OS[/td][td]longblob[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
@@ -39,12 +47,6 @@
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
Bitmasks
|
||||
|
||||
define ( 'ATTACH_FLAG_DIR', 0x0001); This is a directory
|
||||
define ( 'ATTACH_FLAG_OS', 0x0002); Data content is link to OS file containing data, if unset the data filed contains the file data
|
||||
|
||||
permissions are xchan_hash or group_hash surrounded by angle chars. e.g. '<abc123><xyz789>'
|
||||
|
||||
Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
|
||||
@@ -1,96 +1,100 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]channel_id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]channel_id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]channel_account_id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]channel_account_id[/td][td]account.id of the account owning this channel[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_primary[/td][td][/td][td]tinyint(1) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]channel_primary[/td][td]1 = this is the primary instance of this channel[/td][td]tinyint(1) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_name[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]channel_name[/td][td]Name that this channel is known by[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_address[/td][td][/td][td]char(255)[/td][td]NO[/td][td]UNI[/td][td][/td][td]
|
||||
[tr][td]channel_address[/td][td]"username" or URL-and-email safe nickname[/td][td]char(255)[/td][td]NO[/td][td]UNI[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_guid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]channel_guid[/td][td]Long hash representing a psuedo-unique ID, does not have ot be globally unique[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_guid_sig[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]channel_guid_sig[/td][td]channel.gui signed with channel.prvkey and base64url_encoded[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]channel_hash[/td][td]base64url_encode of a 64-char whirlpool hash of channel.guid and channel_guid_sig concatenated, synonymous with xchan_hash.[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_timezone[/td][td][/td][td]char(128)[/td][td]NO[/td][td]MUL[/td][td]UTC[/td][td]
|
||||
[tr][td]channel_timezone[/td][td]PHP-legal timezone[/td][td]char(128)[/td][td]NO[/td][td]MUL[/td][td]UTC[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_location[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]channel_location[/td][td]Default for item.location[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_theme[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]channel_theme[/td][td]channel theme preference[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_startpage[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]channel_startpage[/td]relative site URL to visit after logging in[td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_pubkey[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]channel_pubkey[/td][td]RSA public key 4096 bit[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_prvkey[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]channel_prvkey[/td][td]RSA private key 4096 bit[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_notifyflags[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]65535[/td][td]
|
||||
[tr][td]channel_notifyflags[/td][td]bifield representing what notification types are active[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]65535[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_pageflags[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]channel_pageflags[/td][td]bitfield of special channel uses[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_dirdate[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]channel_dirdate[/td][td]time when directory was last pinged. Must do this once a month[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_deleted[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]channel_deleted[/td][td]time when channel was deleted[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_max_anon_mail[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]10[/td][td]
|
||||
[tr][td]channel_max_anon_mail[/td][td]unused[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]10[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_max_friend_req[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]10[/td][td]
|
||||
[tr][td]channel_max_friend_req[/td][td]unused[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]10[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_expire_days[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]channel_expire_days[/td][td]expire imported content that hasn't been otherwise protected after this many days, 0 is no expiration[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_passwd_reset[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]channel_passwd_reset[/td][td]password reset token[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_default_group[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]channel_default_group[/td][td]put all new connections into the group with this name[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_allow_cid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]channel_allow_cid[/td][td]Default permissions for this channel[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_allow_gid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]channel_allow_gid[/td][td]Default permissions for this channel[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_deny_cid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]channel_deny_cid[/td][td]Default permissions for this channel[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_deny_gid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]channel_deny_gid[/td][td]Default permissions for this channel[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_r_stream[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_r_stream[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_r_profile[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_r_profile[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_r_photos[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_r_photos[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_r_abook[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_r_abook[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_stream[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_stream[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_wall[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_wall[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_tagwall[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_tagwall[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_comment[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_comment[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_mail[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_mail[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_photos[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_photos[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_chat[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_chat[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_a_delegate[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]channel_a_delegate[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_r_storage[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_r_storage[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_storage[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_storage[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_r_pages[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_r_pages[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_pages[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_pages[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_a_republish[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_a_republish[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_w_like[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[tr][td]channel_w_like[/td][td]specific permission bitfield[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_removed[/td][td]if 1, this channel has been deleted[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]channel_system[/td][td]if 1, this is the special system channel on this site[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]128[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
|
||||
Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]chat_id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]chat_id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]chat_room[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]chat_room[/td][td]chatroom.cr_id for this chat[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]chat_xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]chat_xchan[/td][td]author xchan_hash[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]chat_text[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]chat_text[/td][td]the text of the chat message[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]created[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]created[/td][td]timestamp of this message[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]cp_id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]cp_id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]cp_room[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]cp_room[/td][td]chatroom.cr_id of the chatroom[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cp_xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]cp_xchan[/td][td]xchan_hash of the chatroom participant[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cp_last[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]cp_last[/td][td]datetime last ping[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cp_status[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]cp_status[/td][td]text status description e.g. "online"[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cp_client[/td][td][/td][td]char(128)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]cp_client[/td][td][/td]IP address of this client[td]char(128)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]cr_id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]cr_id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]cr_aid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]cr_aid[/td][td]account.id of chatroom owner[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cr_uid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]cr_uid[/td][td]channel.channel_id of chatroom owner[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cr_name[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]cr_name[/td][td]visible name of chatroom[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cr_created[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]cr_created[/td][td]creation timestampe[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cr_edited[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]cr_edited[/td][td]edited timestamp[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]cr_expire[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]cr_expire[/td][td]expiration period for chats in this chatroom in minutes, 0 is no expiration[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]allow_cid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]allow_cid[/td][td]permissions for this room[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]allow_gid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]allow_gid[/td][td]permissions for this room[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]deny_cid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]deny_cid[/td][td]permissions for this room[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]deny_gid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]deny_gid[/td][td]permissions for this room[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
|
||||
Used in Diaspora private mails
|
||||
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]guid[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]guid[/td][td]A unique identifier for this conversation[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]recips[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]recips[/td][td]sender_handle;recipient_handle[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(11)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]uid[/td][td]channel.channel_id of the owner of this data[/td][td]int(11)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]creator[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]creator[/td][td]handle of creator[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]created[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]created[/td][td]creation timestamp[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]updated[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]updated[/td][td]edited timestamp[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]subject[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]subject[/td][td]subject of initial message (obscured for privacy)[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]uid[/td][td]channel.channel_id of the owner of this data[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]gid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]gid[/td][td]groups.id of the associated group[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan[/td][td]xchan.xchan_hash of the member assigned to the associated group[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]hash[/td][td]unique hash representing this group with the group name appended[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]uid[/td][td]channel.channel_id owning this data[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]visible[/td][td][/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]visible[/td][td]1 indicates the member list is not private[/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]deleted[/td][td][/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]deleted[/td][td]1 indicates the group has been deleted[/td][td]tinyint(1)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]name[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]name[/td][td]human readable name of group[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(11)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]id[/td][td]sequential ID[/td][td]int(11)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]hook[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]hook[/td][td]name of hook[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]file[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]file[/td][td]relative filename of hook handler[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]function[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]function[/td][td]function name of hook handler[/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]priority[/td][td][/td][td]int(11) unsigned[/td][td]NO[/td][td][/td][td]0[/td][td]
|
||||
[tr][td]priority[/td][td]not yet implemented - can be used to sort conflicts in hook handling by calling handlers in priority order[/td][td]int(11) unsigned[/td][td]NO[/td][td][/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,104 +1,151 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]id[/td][td]Sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]mid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]mid[/td][td]Message-id - globally unique, there can be several items with the same message-ID in the table as they may have different uid owners[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]aid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]aid[/td][td]channel_account_id of the channel_id (uid) which owns this copy of the item[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]uid[/td][td]channel_id (uid) which owns this copy of the item[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]parent[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]parent[/td][td]item.id of the parent to this item if it is a reply of some form; otherwise this must be set to the id of this item[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]parent_mid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]parent_mid[/td][td]Globally unique message-id of the parent to this item[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]thr_parent[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]thr_parent[/td][td]If the parent of this item is not the top-level item in the conversation, the message-id of the immediate parent; otherwise set to parent_mid[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]created[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]created[/td][td]Creation timestamp. If creation is more than ten minutes into the future, set item_delayed to 1; it will automatically be delivered by the poller once the created time has passed[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]edited[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]edited[/td][td]Date of last edit (default is created)[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]expires[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]expires[/td][td]Date this item expires and will be removed[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]commented[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]commented[/td][td]Date of last comment/reply to this item[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]received[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]received[/td][Date the item was received at this sitetd][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]changed[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]changed[/td][td]Date that something in the conversation changed, indicating clients should fetch the conversation again[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]comments_closed[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]comments_closed[/td][td]Date after which no more comments will be accepted[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]owner_xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]owner_xchan[/td][td]xchan_hash of the owner of this conversation (this is who replies are sent to)[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]author_xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]author_xchan[/td][td]xchan_hash of the author of this item[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]source_xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]source_xchan[/td][td]xchan_hash of the external source of this item belongs to multiple delivery chains and comments need to be uplinked[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]mimetype[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]mimetype[/td][td]mime type of the content body[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]title[/td][td][/td][td]text[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]title[/td][td]item title[/td][td]text[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]body[/td][td][/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]body[/td][td]item body content[/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]app[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]app[/td][td]application which generated this item[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]lang[/td][td][/td][td]char(64)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]lang[/td][td]auto-detected language[/td][td]char(64)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]revision[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]revision[/td][td]future use, version control[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]verb[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]verb[/td][td]ActivityStreams verb (old style URI)[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]obj_type[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]obj_type[/td][td]ActivityStreams object type (old style URI)[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]object[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]object[/td][td]JSON encoded object structure unless it is an implied object (normal post)[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]tgt_type[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]tgt_type[/td][td]ActivityStreams target type if applicable (URI)[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]target[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]target[/td][td]JSON encoded target structure if used[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]layout_mid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]layout_mid[/td][td]For webpages, which layout (mid or message_id) to use when displaying this page[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]postopts[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]postopts[/td][td]External post connectors add their network name to this comma-separated string to identify that they should be delivered to these networks during delivery[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]route[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]route[/td][td]comma separated xchan list of xchans where this message was routed on its way to this destination, used for route loop discovery and rejection of comments which arrived by alternate routes and may have different permissions[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]llink[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]llink[/td][td]URL of a displayable copy of this post/conversation on this site[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]plink[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]plink[/td][td]permalink or URL toa displayable copy of the message at its source[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]resource_id[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]resource_id[/td][td]Used to link other tables to items, it identifies the linked resource and if set must also set resource_type[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]resource_type[/td][td][/td][td]char(16)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]resource_type[/td][td]default none, if a linked resource this should be the name of the resource type such as "photo" or "event"[/td][td]char(16)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]attach[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]attach[/td][td]JSON structure representing attachments to this item[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]sig[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]sig[/td][td]RSA signature of the item body by the original author if the private key is available[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]diaspora_meta[/td][td][/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]diaspora_meta[/td][td]Used to store Diaspora comment signatures with their weird requirements[/td][td]mediumtext[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]location[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]location[/td][td]text location where this item originated[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]coord[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]coord[/td][td] longitude/latitude pair representing location where this item originated[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]public_policy[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]public_policy[/td][td]If the author has specified restrictions (this network, this site) etc. for distribution, the corresponding policy text is present here and item_private = 1[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]comment_policy[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]comment_policy[/td][td]If the author has specified comment restrictions (thei network, this site, etc.) the corresponding policy text is present here[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]allow_cid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]allow_cid[/td][td]Access Control - list of allowed xchans '<xchan1><xchan2>...'[/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]allow_gid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]allow_gid[/td]Access Control - list of allowed group hashes, see allow_cid[td][/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]deny_cid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]deny_cid[/td][td]Access Control - list of denied xchans[/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]deny_gid[/td][td][/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]deny_gid[/td][td]Access Control - list of denied groups[/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_restrict[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]item_restrict[/td]no longer used[td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_flags[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]item_flags[/td][td]no longer used[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_private[/td][td][/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]item_private[/td][td]distribution is restricted[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_origin[/td][td]item originated at this site[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_unseen[/td][td]item has not been seen[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_starred[/td][td]item has been favourited[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_uplink[/td][td]This item is part of a multiple delivery chain and must be uplinked to the original sender (source_xchan)[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_consensus[/td][td]This item allows voting tools[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_wall[/td][td]This item was posted to the wall of uid[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_thread_top[/td][td]parent = id, this is the top post in a conversation [/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_notshown[/td][td][/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_nsfw[/td][td][/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_relay[/td][td][/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_mentionsme[/td][td]The owner of this item was mentioned in it[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_nocomment[/td][td]if 1, no comments are allowed[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_obscured[/td][td]no longer used[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_verified[/td][td]the signature has been verified on this site[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_retained[/td][td][/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_rss[/td][td]item originated in a feed[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_deleted[/td][td]item has been deleted[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_type[/td][td]used to identify webpage and design element types, 0 is a normal conversation item[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_hidden[/td][td]0 or 1 if item is not to be displayed[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_unpublished[/td][td][/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_delayed[/td][td]item is posted in the future[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_pending_remove[/td][td]item is in the process of being removed[/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]item_blocked[/td][td][/td][td]tinyint(4)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
|
||||
[/table]
|
||||
|
||||
Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
|
||||
@@ -1,15 +1,15 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]iid[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]iid[/td][td]item.id of the referenced item[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]uid[/td][td]channel.channel_id of the owner of this data[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]sid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]sid[/td][td]an additional identifier to attach or link to the referenced item (often used to store a message_id from another system in order to suppress duplicates)[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]service[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]service[/td][td]the name or description of the service which generated this identifier[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(11)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
|
||||
@@ -1,27 +1,27 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]tid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]tid[/td][td]sequential index[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]aid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]aid[/td][td]channel_account_id of the controlling channel[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]uid[/td][td]channel_id of the controlling channel[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]oid[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]oid[/td][td]DB index of linked thing[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]otype[/td][td][/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]otype[/td][td]type of linked thing[/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]type[/td][td][/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]type[/td][td]taxonomy type (See Tag/term types in boot.php)[/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]term[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]term[/td][td]the actual taxonomy term[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]url[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]url[/td]relevant link (for tags and mentions, a link to the associated resource)[td][/td][td]char(255)[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]imgurl[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[tr][td]imgurl[/td][td]rarely used - an image associated with this taxonomy term[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]term_hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]term_hash[/td][td]unique hash for this entry[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]parent_hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]parent_hash[/td][td]for hierarchical taxonomies, the hash of the relevant parent[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,44 +1,59 @@
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]xchan_hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]
|
||||
[tr][td]xchan_hash[/td][td]calculated hash of this extended channel[/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_guid[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_guid[/td][td]channel_guid of this extended channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_guid_sig[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]xchan_guid_sig[/td][td]base64url encoded signature of the guid[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_pubkey[/td][td][/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[tr][td]xchan_pubkey[/td][td]public key for verifying signed data and assertions[/td][td]text[/td][td]NO[/td][td][/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_photo_mimetype[/td][td][/td][td]char(32)[/td][td]NO[/td][td][/td][td]image/jpeg[/td][td]
|
||||
[tr][td]xchan_photo_mimetype[/td][td]mimetype of the profile photo[/td][td]char(32)[/td][td]NO[/td][td][/td][td]image/jpeg[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_photo_l[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]xchan_photo_l[/td][td]photo url 300px[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_photo_m[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]xchan_photo_m[/td][td]photo url 80 px[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_photo_s[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]xchan_photo_s[/td][td]photo url 48 px[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_addr[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_addr[/td][td]user@host[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_url[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_url[/td][td]url of channel page on primary hub location[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_connurl[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_connurl[/td]poco url[td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_follow[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_follow[/td]url template for following %s[td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_connpage[/td][td][/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[tr][td]xchan_connpage[/td][td]for premium channels url of channel to display when connecting[/td][td]char(255)[/td][td]NO[/td][td][/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_name[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_name[/td][td]human readabl name of channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_network[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_network[/td][td]network of channel for instance 'zot', 'diaspora', 'unknown'[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_instance_url[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan_instance_url[/td][td]no longer used[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_flags[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]xchan_flags[/td][td]no longer used[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_photo_date[/td][td][/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]xchan_photo_date[/td][td]timestamp of last photo change in GMT[/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_name_date[/td][td][/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]xchan_name_date[/td][td]timestamp of last name change in GMT[/td][td]datetime[/td][td]NO[/td][td][/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_hidden[/td][td]flag - channel is hidden[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_orphan[/td][td]flag - channel has no known hubloc locations[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_censored[/td][td]flag - channel has been censored[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_selfcensored[/td][td]flag - channel is self censored (adult or nsfw)[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_system[/td][td]flag - this represents a system channel[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_pubforum[/td][td]flag - channel is a public forum[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan_deleted[/td][td]flag - channel was deleted[/td][td]int(10) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
|
||||
[/table]
|
||||
|
||||
Return to [zrl=[baseurl]/help/database]database documentation[/zrl]
|
||||
@@ -1,11 +1,12 @@
|
||||
xign - holds xchan information for channels that have been ignored in 'friend suggestions'
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]uid[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]uid[/td][td]local channel.channel_id[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xchan[/td][td]xchan.xchan_hash of ignored channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
xlink - used to store social graph and channel ratings
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]xlink_id[/td][td][/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[tr][td]xlink_id[/td][td]sequential ID[/td][td]int(10) unsigned[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]auto_increment
|
||||
[/td][/tr]
|
||||
[tr][td]xlink_xchan[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xlink_xchan[/td][td]xchan.xchan_hash of controlling channel[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xlink_link[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[tr][td]xlink_link[/td][td]xchan.xchan_hash of link target (connection or rating)[/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xlink_rating[/td][td][/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]xlink_rating[/td][td]int rating[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xlink_updated[/td][td][/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]xlink_rating_txt[/td][td]rating text[/td][td]mediumtext[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xlink_updated[/td][td]timestamp of update in GMT[/td][td]datetime[/td][td]NO[/td][td]MUL[/td][td]0000-00-00 00:00:00[/td][td]
|
||||
[tr][td]xlink_static[/td][td]0 for social graph, 1 for ratings[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xlink_sig[/td][td]base64url encoded signature of rating information[/td][td]int(11)[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[/table]
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
xprof - stores searchable public profile information on directory servers
|
||||
[table]
|
||||
[tr][th]Field[/th][th]Description[/th][th]Type[/th][th]Null[/th][th]Key[/th][th]Default[/th][th]Extra
|
||||
[/th][/tr]
|
||||
[tr][td]xprof_hash[/td][td][/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]
|
||||
[tr][td]xprof_hash[/td][td]xchan.xchan_hash of this channel[/td][td]char(255)[/td][td]NO[/td][td]PRI[/td][td]NULL[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xprof_age[/td][td][/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[tr][td]xprof_age[/td][td]current age (updated monthly)[/td][td]tinyint(3) unsigned[/td][td]NO[/td][td]MUL[/td][td]0[/td][td]
|
||||
[/td][/tr]
|
||||
[tr][td]xprof_desc[/td][td][/td][td]char(255)[/td][td]NO[/td][td]MUL[/td][td][/td][td]
|
||||
[/td][/tr]
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
[b]Using The Cloud - Dolphin[/b]
|
||||
|
||||
Visit webdavs://example.com/cloud where "example.com" is the URL of your hub.
|
||||
Visit webdavs://example.com/dav where "example.com" is the URL of your hub.
|
||||
|
||||
When prompted for a username and password, enter your username (the first part of your webbie - no @ or domain name) and password for your normal account.
|
||||
When prompted for a username and password, enter your channel name (the first part of your webbie - no @ or domain name) and password for your normal account.
|
||||
|
||||
Note, if you are already logged in to the web interface via Konqueror, you will not be prompted for further authentication.
|
||||
|
||||
|
||||
@@ -25,14 +25,14 @@ Edit /etc/fstab
|
||||
to include your cloud directory by adding
|
||||
|
||||
[code]
|
||||
[baseurl]/cloud/ /mount/point davfs user,noauto,uid=<DesktopUser>,file_mode=600,dir_mode=700 0 1
|
||||
[baseurl]/dav/ /mount/point davfs user,noauto,uid=<DesktopUser>,file_mode=600,dir_mode=700 0 1
|
||||
[/code]
|
||||
|
||||
Where [baseurl] is the URL of your hub, /mount/point is the location you want to mount the cloud, and <DesktopUser> is the user you log in to one your computer. Note that if you are mounting as a normal user (not root) the mount point must be in your home directory.
|
||||
|
||||
For example, if I wanted to mount my cloud to a directory called 'cloud' in my home directory, and my username was bob, my fstab would be
|
||||
|
||||
[code][baseurl]/cloud/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1[/code]
|
||||
[code][baseurl]/dav/ /home/bob/cloud davfs user,noauto,uid=bob,file_mode=600,dir_mode=700 0 1[/code]
|
||||
|
||||
Now, create the mount point.
|
||||
|
||||
@@ -49,7 +49,7 @@ Create a file called 'secrets'
|
||||
and add your cloud login credentials
|
||||
|
||||
[code]
|
||||
[baseurl]/cloud <username> <password>
|
||||
[baseurl]/dav <username> <password>
|
||||
[/code]
|
||||
|
||||
Where <username> and <password> are the username and password [i]for your hub[/i].
|
||||
@@ -60,7 +60,7 @@ Don't let this file be writeable by anyone who doesn't need it with
|
||||
|
||||
Finally, mount the drive.
|
||||
|
||||
[code]mount [baseurl]/cloud[/code]
|
||||
[code]mount [baseurl]/dav[/code]
|
||||
|
||||
You can now find your cloud at /home/bob/cloud and use it as though it were part of your local filesystem - even if the applications you are using have no dav support themselves.
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
1. Open a File browsing window (that's Nautilus)
|
||||
2. Select File > Connect to server from the menu
|
||||
3. Type davs://<domain_name>/cloud/<your_username> and click Connect
|
||||
4. You will be prompted for your username (same as above) and password
|
||||
3. Type davs://<domain_name>/dav/<your_channelname> and click Connect
|
||||
4. You will be prompted for your channel name (same as above) and password
|
||||
5. Your personal DAV directory will be shown in the window
|
||||
|
||||
#include doc/macros/cloud_footer.bb;
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
For (file browser) Nemo 1.8.2 under Linux Mint 15, Cinnamon 1.8.8. Nemo ist the standard file browser there.
|
||||
|
||||
1st way
|
||||
type "davs://yourusername@friendicared.net/cloud" in the address bar
|
||||
type "davs://<domain_name>/dav/<your_channelname>" in the address bar.
|
||||
|
||||
2nd way
|
||||
Menu > file > connect to server
|
||||
Fill the dialog
|
||||
- Server: friendicared.net
|
||||
- Server: hubzilla_domain_name
|
||||
- Type: Secure WebDAV (https)
|
||||
- Folder: /cloud
|
||||
- Username: yourusername
|
||||
- Passwort: yourpasswort
|
||||
- Folder: /dav
|
||||
- Username: yourchannelname
|
||||
- Password: yourpassword
|
||||
|
||||
Once open you can set a bookmark.
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ RedDav using Windows 7 graphical user interface wizard:
|
||||
1. Left-click the Start-button to open the start menu.
|
||||
2. Right-click the My computer icon to access its menu.
|
||||
3. Left-click Map network drive... to open the connection dialog wizard.
|
||||
4. Type #^[url=https://example.net/cloud/your_user_name]https://example.net/cloud/your_user_name[/url] in the textbox and click the Complete button where "example.net" is the URL of your hub.
|
||||
5. Type your Red account's user name. IMPORTANT - NO at-sign or domain name.
|
||||
6. Type your Red password
|
||||
4. Type #^[url=https://example.net/dav/your_channel_name]https://example.net/dav/your_channel_name[/url] in the textbox and click the Complete button where "example.net" is the URL of your hub.
|
||||
5. Type your Hubzilla account's user name. IMPORTANT - NO at-sign or domain name.
|
||||
6. Type your Hubzilla password
|
||||
|
||||
#include doc/macros/cloud_footer.bb;
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
[size=large][b]Was ist die Red-Matrix?[/b][/size]
|
||||
[size=large][b]Was ist $Projectname?[/b][/size]
|
||||
|
||||
Die Red-Matrix ist ein dezentralisiertes Kommunikationsnetzwerk mit dem Ziel, Kommunikationsmöglichkeiten bereitzustellen, die Zensur umgehen, die Privatsphäre respektieren und somit frei sind von den Einschränkungen, die die heutigen kommerziellen Kommunikationsgiganten uns auferlegen. Diese stellen in erster Linie Spionagenetzwerke für zahlende Kunden aller Art zur Verfügung und monopolisieren und zentralisieren das ganze Internet – was ursprünglich eben gerade nicht unter den revolutionären Zielen war, die einst zum World Wide Web führten.
|
||||
$Projectname ist ein dezentralisiertes Kommunikationsnetzwerk mit dem Ziel, Kommunikationsmöglichkeiten bereitzustellen, die Zensur umgehen, die Privatsphäre respektieren und somit frei sind von den Einschränkungen, die die heutigen kommerziellen Kommunikationsgiganten uns auferlegen. Diese stellen in erster Linie Spionagenetzwerke für zahlende Kunden aller Art zur Verfügung und monopolisieren und zentralisieren das ganze Internet – was ursprünglich eben gerade nicht unter den revolutionären Zielen war, die einst zum World Wide Web führten.
|
||||
|
||||
Die Software der Red-Matrix ist frei, kostenlos und Open Source. Sie wurde entwickelt, um auf einem Raspberry Pi für € 30,– ebenso zu laufen wie auf den größten AMD- und Intel-Xeon-Multiprozessor-Servern. Sie kann für die Kommunikation zwischen einigen wenigen Einzelpersonen genutzt werden oder viele tausend Leute und mehr miteinander verbinden.
|
||||
$Projectname ist frei, kostenlos und Open Source. Sie wurde entwickelt, um auf einem Raspberry Pi für € 30,– ebenso zu laufen wie auf den größten AMD- und Intel-Xeon-Multiprozessor-Servern. Es kann für die Kommunikation zwischen einigen wenigen Einzelpersonen genutzt werden oder viele tausend Leute und mehr miteinander verbinden.
|
||||
|
||||
Ein weiteres Ziel ist es, von Können und Ressourcen unabhängig zu sein. Die Red-Matrix ist für den einfachen Computernutzer ebenso leicht bedienbar wie für Systemadministratoren und Entwickler.
|
||||
Ein weiteres Ziel ist es, von Können und Ressourcen unabhängig zu sein. $Projectname ist für den einfachen Computernutzer ebenso leicht bedienbar wie für Systemadministratoren und Entwickler.
|
||||
|
||||
Wie Du sie benutzt hängt davon ab, wie Du sie benutzen [i]willst.[/i]
|
||||
Wie Du es benutzt hängt davon ab, wie Du es benutzen [i]willst.[/i]
|
||||
|
||||
Die Red-Matrix ist in PHP geschrieben, dadurch ist es einfach, sie auf jedweder heutigen Hosting-Plattform zu installieren, inklusive Self-Hosting zu Hause, auf Shared Servern wie bei [url=https://uberspace.de/]Uberspace[/url], [url=http://mediatemple.com/]Media Temple[/url] und [url=http://www.dreamhost.com/]Dreamhost[/url], oder auf virtuellen und dedizierten Servern, wie es sie zum Beispiel bei [url=https://www.linode.com]Linode[/url], [url=http://greenqloud.com]GreenQloud[/url] oder [url=https://aws.amazon.com]Amazon AWS[/url] gibt.
|
||||
$Projectname ist in PHP geschrieben, dadurch ist es einfach, sie auf jedweder heutigen Hosting-Plattform zu installieren, inklusive Self-Hosting zu Hause, auf Shared Servern wie bei [url=https://uberspace.de/]Uberspace[/url], [url=http://mediatemple.com/]Media Temple[/url] und [url=http://www.dreamhost.com/]Dreamhost[/url], oder auf virtuellen und dedizierten Servern, wie es sie zum Beispiel bei [url=https://www.linode.com]Linode[/url], [url=http://greenqloud.com]GreenQloud[/url] oder [url=https://aws.amazon.com]Amazon AWS[/url] gibt.
|
||||
|
||||
Mit anderen Worten, die Red-Matrix kann auf jeder Plattform laufen, die einen Web-Server, eine MySQL-kompatible Datenbank und PHP mitbringt.
|
||||
Mit anderen Worten, $Projectname kann auf jeder Plattform laufen, die einen Web-Server, eine MySQL-kompatible Datenbank und PHP mitbringt.
|
||||
|
||||
Dabei bietet Red einige einzigartige Leckerbissen:
|
||||
Dabei bietet $Projectname einige einzigartige Leckerbissen:
|
||||
|
||||
[b]Ein-Klick-Identifikation:[/b] Du kannst auf andere Server in der Red-Matrix zugreifen, indem Du einfach auf einen Link dorthin klickst. Die Authentifizierung wird ganz einfach automatisch hinter den Kulissen durchgeführt. Vergiss viele verschiedene Usernamen für verschiedene Seiten und die Passwörter dazu – das tut alles die Matrix für Dich.
|
||||
[b]Ein-Klick-Identifikation:[/b] Du kannst auf andere Server im $Projectname-Netzwerk zugreifen, indem Du einfach auf einen Link dorthin klickst. Die Authentifizierung wird ganz einfach automatisch hinter den Kulissen durchgeführt. Vergiss viele verschiedene Usernamen für verschiedene Seiten und die Passwörter dazu – das tut alles $Projectname für Dich.
|
||||
|
||||
[b]Klone:[/b] Du kannst Deine Online-Identität (oder, wie wir sagen, einen Kanal) klonen. Sie ist nicht mehr länger an einen bestimmten Server, eine Domain oder eine IP-Adresse gebunden. Importiere sie einfach auf einem anderen Red-Server (oder Red-Hub) – direkt online oder mit Hilfe eines vorher generierten Exports. Wenn Dein primärer Hub plötzlich nicht mehr online ist, kein Problem, Deine Kontakte, Posts* und Nachrichten* sind automagisch weiterhin unter Deiner geklonten Identität verfügbar und zugreifbar. [i](*: nur Posts und Nachrichten, die nach dem Moment des Klonens erstellt wurden)[/i]
|
||||
[b]Klone:[/b] Du kannst Deine Online-Identität (oder, wie wir sagen, einen Kanal) klonen. Sie ist nicht mehr länger an einen bestimmten Server, eine Domain oder eine IP-Adresse gebunden. Importiere sie einfach auf einem anderen $Projectname-Server (oder $Projectname-Hub, wie es bei uns heißt) – direkt online oder mit Hilfe eines vorher generierten Exports. Wenn Dein primärer Hub plötzlich nicht mehr online ist, kein Problem, Deine Kontakte, Posts* und Nachrichten* sind automagisch weiterhin unter Deiner geklonten Identität verfügbar und zugreifbar. [i](*: nur Posts und Nachrichten, die nach dem Moment des Klonens erstellt wurden)[/i]
|
||||
|
||||
[b]Privatsphäre:[/b] Red-Identitäten (Zot-IDs) können gelöscht, gesichert/heruntergeladen und geklont werden. Du hast volle Kontrolle über Deine Daten. Wenn Du Dich entscheidest, all Deine Daten und Deine Zot-ID zu löschen, musst Du nur auf einen Link klicken, und sie werden sofort von dem Server gelöscht. Keine Fragen, keine Umstände.
|
||||
[b]Privatsphäre:[/b] $Projectname-Identitäten (Zot-IDs) können gelöscht, gesichert/heruntergeladen und geklont werden. Du hast volle Kontrolle über Deine Daten. Wenn Du Dich entscheidest, all Deine Daten und Deine Zot-ID zu löschen, musst Du nur auf einen Link klicken, und sie werden sofort von dem Server gelöscht. Keine Fragen, keine Umstände.
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
|
||||
10
doc/de/admins.bb
Normal file
10
doc/de/admins.bb
Normal file
@@ -0,0 +1,10 @@
|
||||
[h2]Dokumentation für Hub-Administratoren[/h2]
|
||||
|
||||
[zrl=[baseurl]/help/install]Installation[/zrl]
|
||||
[zrl=[baseurl]/help/red2pi]$Projectname auf einem Raspberry Pi installieren[/zrl]
|
||||
[zrl=[baseurl]/help/troubleshooting]Troubleshooting-Tipps[/zrl]
|
||||
[zrl=[baseurl]/help/hidden_configs]Versteckte Konfigurations-Optionen[/zrl]
|
||||
[zrl=[baseurl]/help/faq_admins]FAQ für Admins[/zrl]
|
||||
[zrl=[baseurl]/help/service_classes]Serviceklassen[/zrl]
|
||||
[zrl=[baseurl]/help/directories]Arbeit mit Verzeichnissen und ihre Konfiguration[/zrl]
|
||||
[zrl=[baseurl]/help/theme_management]Theme-Management[/zrl]
|
||||
@@ -5,7 +5,7 @@ Kanäle sind Sammlungen von Inhalten, die an einem Ort gespeichert werden. Ein K
|
||||
Die wichtigsten Funktionen für einen Kanal, der einen selbst repräsentiert, sind:
|
||||
|
||||
[ul][*]Sichere und private, spamfreie Kommunikation
|
||||
[*]Identifikation und automatisches Einloggen im gesamten Red-Matrix-Netzwerk
|
||||
[*]Identifikation und automatisches Einloggen im gesamten $Projectname-Netzwerk
|
||||
[*]Datenschutzeinstellungen und Zugriffsberechtigungen, die im gesamten Netzwerk gültig sind
|
||||
[*]Verzeichnisdienste (ähnlich einem Telefonbuch)[/ul]
|
||||
|
||||
@@ -13,13 +13,13 @@ Kurz gesagt, ein Kanal der Dich repräsentiert ist sozusagen „Ich im Internet
|
||||
|
||||
Du musst Deinen ersten Kanal erstellen, während Du Dich anmeldest. Du kannst auch weitere Kanäle erstellen und zwischen ihnen wechseln, indem Du auf „Kanal-Manager“ im Menü unter Deinem Profilbild klickst.
|
||||
|
||||
Du wirst nach einem Kanalnamen und einem kurzen Spitznamen gefragt. Für einen Kanal, der Dich repräsentiert, ist es eine gute Idee, hier Deinen Realnamen anzugeben, damit Deine Freunde Dich finden und sich mit Dir verbinden können. Der Spitzname wird genutzt, um Deinen „Webbie“ zu erstellen. Das ist so etwas wie ein Username und sieht aus wie eine E-Mail-Adresse, zum Beispiel spitzname@red-hub.de. Überlege ein bisschen, was Du als Spitzname nutzen willst. Stell Dir vor, Du wirst nach Deinem Webbie gefragt und musst Deinem Bekannten dann buchstabieren, dass Dein Webbie „llamas.sind-cool_274@example.com“ ist. „llamassindcool@exmaple.com“ wäre da viel einfacher gewesen.
|
||||
Du wirst nach einem Kanalnamen und einem kurzen Spitznamen gefragt. Für einen Kanal, der Dich repräsentiert, ist es eine gute Idee, hier Deinen Realnamen anzugeben, damit Deine Freunde Dich finden und sich mit Dir verbinden können. Der Spitzname wird genutzt, um Deinen „Webbie“ zu erstellen. Das ist so etwas wie ein Username und sieht aus wie eine E-Mail-Adresse, zum Beispiel spitzname@hubzilla-hub.de. Überlege ein bisschen, was Du als Spitzname nutzen willst. Stell Dir vor, Du wirst nach Deinem Webbie gefragt und musst Deinem Bekannten dann buchstabieren, dass Dein Webbie „llamas.sind-cool_274@example.com“ ist. „llamassindcool@example.com“ wäre da viel einfacher gewesen.
|
||||
|
||||
Nachdem Du Deinen Kanal erstellt hast, wirst Du zu den Einstellungen weitergeleitet. Hier kannst Du Deinen Kanal einrichten und die Standard-Berechtigungen setzen.
|
||||
|
||||
Nachdem Du auch das getan hast, kannst Du Deinen Kanal verwenden. Unter der Addresse https://example.com/channel/spitzname [observer=1]( [observer.url] )[/observer] findest Du Deinen Kanal. Hier werden Deine letzten Aktivitäten gezeigt, die neuesten oben. Wenn Du etwas in die Textbox schreibst, in der „Teilen“ steht, wird der neue Eintrag ganz oben in Deinem Kanal auftauchen. Du findest hier auch Links zu den anderen Kommunikationsbereichen Deines Kanals. Der „Über“-Reiter enthält Dein Profil, der „Fotos“-Reiter Deine Fotoalben, und der Veranstaltungskalender enthält Termine und Veranstaltungen, die Du und Deine Kontakte geteilt haben.
|
||||
Nachdem Du auch das getan hast, kannst Du Deinen Kanal verwenden. Unter der Addresse https://example.com/channel/spitzname [observer=1]( [observer.url] )[/observer] findest Du Deinen Kanal. Hier werden Deine letzten Aktivitäten gezeigt, die neuesten oben. Wenn Du etwas in die Textbox schreibst, in der „Teilen“ steht, wird der neue Eintrag ganz oben in Deinem Kanal auftauchen. Du findest hier auch Links zu den anderen Kommunikationsbereichen Deines Kanals. Der „Über“-Reiter enthält Dein Profil, der „Fotos“-Reiter Deine Fotoalben, und der Kalender enthält Termine und Veranstaltungen, die Du und Deine Kontakte geteilt haben.
|
||||
|
||||
Die „Matrix“-Seite enthält alle neuen Beiträge aus der gesamten $Projectname, wieder die neuesten oben. Was genau zu sehen ist ist abhängig von den Zugriffsrechten. Falls die Zugriffsrechte Deines Kanals so eingestellt sind, dass jeder Beiträge in Deinen Stream stellen kann, wirst du auch Beiträge von Dir völlig unbekannten Personen hier sehen. Am anderen Ende der Skala kannst Du die Berechtigungen aber auch so einstellen, dass du nur die Beiträge deiner Freunde oder gar nur Deine eigenen siehst.
|
||||
Die „Grid“-Seite enthält alle neuen Beiträge aus dem gesamten $Projectname-Netzwerk, wieder die neuesten oben. Was genau zu sehen ist ist abhängig von den Zugriffsrechten. Falls die Zugriffsrechte Deines Kanals so eingestellt sind, dass jeder Beiträge in Deinen Stream stellen kann, wirst du auch Beiträge von Dir völlig unbekannten Personen hier sehen. Am anderen Ende der Skala kannst Du die Berechtigungen aber auch so einstellen, dass du nur die Beiträge deiner Freunde oder gar nur Deine eigenen siehst.
|
||||
|
||||
Wie zu Anfang erwähnt sind viele Arten von Kanälen möglich, diese unterscheiden sich hauptsächlich durch die Berechtigungen. Das Anlegen dieser Kanäle unterscheidet sich dagegen nicht. Beispiel: Um einen Kanal zum Austausch von Dokumenten zu erstellen, wirst du vermutlich die Berechtigung „Kann in meinen öffentlichen Dateiordner schreiben“ freizügiger einstellen. Für weitere Informationen sieh bitte in der Hilfe unter Zugriffsrechte nach.
|
||||
|
||||
|
||||
33
doc/de/develop.bb
Normal file
33
doc/de/develop.bb
Normal file
@@ -0,0 +1,33 @@
|
||||
[h2]Dokumentation für Entwickler[/h2]
|
||||
|
||||
[h3]Technische Dokumentation[/h3]
|
||||
[zrl=[baseurl]/help/Zot---A-High-Level-Overview]Zot – ein grober Überblick[/zrl]
|
||||
[zrl=[baseurl]/help/zot]Eine Einführung ins Zot-Protokoll[/zrl]
|
||||
[zrl=[baseurl]/help/zot_structures]Zot-Strukturen[/zrl]
|
||||
[zrl=[baseurl]/help/comanche]Seitenbeschreibung in Comanche[/zrl]
|
||||
[zrl=[baseurl]/help/Creating-Templates]Vorlagen erstellen mit Comanche[/zrl]
|
||||
[zrl=[baseurl]/help/Widgets]Widgets[/zrl]
|
||||
[zrl=[baseurl]/help/plugins]Plugins[/zrl]
|
||||
[zrl=[baseurl]/help/doco]Selbst Dokumentation beisteuern[/zrl]
|
||||
[zrl=[baseurl]/help/DerivedTheme1]Einen Theme basierend auf einem anderen erstellen[/zrl]
|
||||
[zrl=[baseurl]/help/schema_development]Schemata[/zrl]
|
||||
[zrl=[baseurl]/help/Translations]Übersetzungen[/zrl]
|
||||
[zrl=[baseurl]/help/developers]Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/intro_for_developers]Einführung für Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/database]Datenbank-Schema[/zrl]
|
||||
[zrl=[baseurl]/help/api_functions]API-Funktionen[/zrl]
|
||||
[zrl=[baseurl]/help/api_posting]Mit der API einen Beitrag erstellen[/zrl]
|
||||
[zrl=[baseurl]/help/developer_function_primer]Übersicht der wichtigsten $Projectname-Funktionen[/zrl]
|
||||
[zrl=[baseurl]/doc/html/]Code-Referenz (mit doxygen generiert - setzt Cookies)[/zrl]
|
||||
[zrl=[baseurl]/help/to_do_doco]To-Do-Liste für das Projekt $Projectname-Dokumentation[/zrl]
|
||||
[zrl=[baseurl]/help/to_do_code]To-Do-Liste für Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/roadmap]Roadmap[/zrl]
|
||||
[zrl=[baseurl]/help/git_for_non_developers]Git für Nicht-Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/dev_beginner]Schritt-für-Schritt-Einführung für neue Entwickler[/zrl]
|
||||
|
||||
[h3]Häufig gestellte Fragen für Entwickler[/h3]
|
||||
[zrl=[baseurl]/help/faq_developers]FAQ für Entwickler[/zrl]
|
||||
|
||||
[h3]Externe Ressourcen[/h3]
|
||||
[url=https://zothub.com/channel/one]Entwickler-Kanal[/url]
|
||||
[url=https://federated.social/channel/postgres]Postgres-spezifischer Admin-Support-Kanal[/url]
|
||||
@@ -1,26 +1,41 @@
|
||||
[size=large][b]Features der $Projectname[/b][/size]
|
||||
[h1][b]$Projectname-Features[/b][/h1]
|
||||
|
||||
Die $Projectname ist ein Allzweck-Kommunikationsnetzwerk mit einigen einzigartigen Features. Sie wurde für eine große Bandbreite von Nutzern entwickelt, von Nutzern sozialer Netzwerke über technisch nicht interessierte Blogger bis hin zu PHP-Experten und erfahrenen Systemadministratoren.
|
||||
[h1]$Projectname kurz zusammengefasst[/h1]
|
||||
|
||||
Diese Seite listet einige der Kern-Features von Red auf, die in der offiziellen Distribution enthalten sind. Wie immer bei freier Open-Source-Software sind den Möglichkeiten keine Grenzen gesetzt. Beliebige Erweiterungen, Addons, Themes und Konfigurationen sind möglich.
|
||||
tl;dr
|
||||
|
||||
$Projectname stellt verteiltes Web-Publishing und soziale Kommunikation mit [b]dezentraler Rechteverwaltung[/b] zur Verfügung.
|
||||
|
||||
Aber was genau ist eine dezentrale Rechteverwaltung? Sie gibt mir die Möglichkeit, etwas auf meiner Website (Fotos, Medien, Dateien, Webseiten etc.) mit bestimmten Personen auf anderen Websites zu teilen – aber nicht unbedingt mit [i]allen[/i] auf diesen Websites. Und: Sie brauchen kein Konto auf meiner Website und müssen sich auf meiner Website nicht extra einloggen, um sich die Dinge anzusehen, die ich mit ihnen geteilt habe. Sie haben ein Konto auf ihrer Heimat-Website, und „Magic Authentication“ zwischen den Websites besorgt den Rest. Da das Netzwerk dezentral aufgebaut ist, gibt es auch keinen einzelnen Betreiber des Netzwerks, der an der Rechteverwaltung vorbei alles sehen kann.
|
||||
|
||||
$Projectname kombiniert viele Features von tradionellen Blogs, sozialen Netzwerken und Medien, Content-Management-Systemen und persönlichem Cloud-Speicher auf einer einfach zu nutzenden Plattform. Jeder Hub (Web-Server) im Grid kann isoliert operieren oder sich mit anderen Hubs zu einem Super-Netzwerk vereinen. Die Kontrolle über die Privatsphäre hat immer derjenige, der die Inhalte veröffentlicht.
|
||||
|
||||
$Projectname ist eine Open-Source Webserver-Applikation, geschrieben ursprünglich für PHP/MySQL. Mit minimaler Erfahrung als Admin ist sie leicht zu installieren. Sie kann auch durch Plugins und Themes und weitere Angebote von Drittanbietern erweitert werden.
|
||||
|
||||
[h1][b]$Projectname-Features[/b][/h1]
|
||||
|
||||
$Projectname ist ein Allzweck-Web-Publishing- und Kommunikationsnetzwerk mit einigen einzigartigen Features. Es wurde für eine große Bandbreite von Nutzern entwickelt, von Nutzern sozialer Netzwerke über technisch nicht interessierte Blogger bis hin zu PHP-Experten und erfahrenen Systemadministratoren.
|
||||
|
||||
Diese Seite listet einige der Kern-Features von $Projectname auf, die in der offiziellen Distribution enthalten sind. Wie immer bei freier Open-Source-Software sind den Möglichkeiten keine Grenzen gesetzt. Beliebige Erweiterungen, Addons, Themes und Konfigurationen sind möglich.
|
||||
|
||||
[h2]Entwickelt für Privatsphäre und Freiheit[/h2]
|
||||
|
||||
Eines der Design-Ziele von Red ist einfache Kommunikations über das Web, ohne die Privatsphäre zu vernachlässigen, wenn die Nutzer das Wünschen. Um dieses Ziel zu erreichen, verfügt Red über einige Features, die beliebige Stufen des Privatsphäre-Schutzes ermöglichen:
|
||||
Eines der Design-Ziele von $Projectname ist einfache Kommunikations über das Web, ohne die Privatsphäre zu vernachlässigen, wenn die Nutzer das wünschen. Um dieses Ziel zu erreichen, verfügt $Projectname über einige Features, die beliebige Stufen des Privatsphäre-Schutzes ermöglichen:
|
||||
|
||||
[b]Beziehungs-Tool[/b]
|
||||
|
||||
Wenn Du in der $Projectname einen Kontakt hinzufügst (und das Beziehungs-Tool aktiviert hast), hast Du die Möglichkeit, einen „Grad der Freundschaft“ zu bestimmen. Bespiel: Wenn Du ein Blog eines Bekannten hinzufügst, könntest Du ihm den Freundschaftsgrad „Bekannte“ (Acquaintances) geben.
|
||||
|
||||
|
||||
[img]https://friendicared.net/photo/b07b0262e3146325508b81a9d1ae4a1e-0.png[/img]
|
||||
|
||||
Wenn Du aber den privaten Kanal eines Freundes hinzufügst, wäre der Freundschaftsgrad „Freunde“ vermutlich passender.
|
||||
|
||||
Wenn Du allen Kontakten solche Freundschaftsgrade zugeordnet hast, kannst Du mit dem Beziehungs-Tool, das (sofern aktiviert) oben auf Deiner Matrix-Seite erscheint, bestimmen, welche Inhalte Du sehen willst. Indem Du die Schieberegler so einstellst, dass der linke auf „Ich“ und der rechte auf „Freunde“ steht, kannst Du dafür sorgen, dass nur Inhalte von Kontakten angezeigt werden, deren Freundschaftsgrad sich irgendwo im Bereich zwischen „Ich“, „Beste Freunde“ und „Freunde“ bewegt. Alle anderen Kontakte, zum Beispiel solche mit einem Freundschaftsgrad in der Nähe von „Bekannte“, werden nicht angezeigt.
|
||||
Wenn Du allen Kontakten solche Freundschaftsgrade zugeordnet hast, kannst Du mit dem Beziehungs-Tool, das (sofern aktiviert) oben auf Deiner Matrix-Seite erscheint, bestimmen, welche Inhalte Du sehen willst. Indem Du die Schieberegler einstellst, legst Du fest, was angezeigt wird – nur Kanäle mit einem Freundschaftsgrad innerhalb des eingestellten Bereichs werden angezeigt
|
||||
|
||||
Das Beziehungs-Tool erlaubt blitzschnelles Filtern von großen Mengen Inhalt, gruppiert nach Freundschaftsgrad.
|
||||
|
||||
[b]Filter für Verbindungen[/b]
|
||||
|
||||
Du kannst ganz genau kontrollieren, was in Deinem Stream erscheint, wenn Du den optionalen „Filter für Verbindungen“ aktivierst. Dann kannst Du beim Bearbeiten einer Verbindung Kriterien festlegen, nach denen entschieden wird, ob einzelne Beiträge dieser Verbindung importiert werden sollen oder nicht (Einschluss oder Ausschluss möglich). Wurde ein Beitrag einmal importiert, wirst Du auch alle Kommentare dazu sehen, egal ob eines der Kriterien auf sie zutrifft oder nicht. Du könntest einzelne Wörter festlegen, die, wenn sie in einem Beitrag vorkommen, dafür sorgen, dass er geblockt oder eben nicht geblockt wird. Auch reguläre Ausdrüce können benutzt werden, genauso wie Hashtags oder sogar die Sprache, in der der Beitrag verfasst wurde.
|
||||
|
||||
[b]Zugriffsrechte[/b]
|
||||
|
||||
Wenn Du Inhalte mit anderen teilst, hast Du die Option, den Zugriff darauf einzuschränken. Wenn Du auf das Schloss unterhalb des Beitrags-Editors klickst, kannst Du auswählen, wer diesen Beitrag sehen darf, indem Du einfach auf die Namen klickst.
|
||||
@@ -31,9 +46,9 @@ Solche Zugriffsrechte gibt es bei Beiträgen, Fotos, Terminen, Webseiten, Chat-R
|
||||
|
||||
[b]Ein Passwort für alle $Projectname-Server (Single Sign-on)[/b]
|
||||
|
||||
Zugriffsrechte funktionieren in der gesamten $Projectname mit allen Kanälen. Die meisten Links, die innerhalb der $Projectname verlinken, enthalten deine Identität (zid), so dass der Zielserver Dich direkt anmelden kann. Du kannst Dich aber auch so auf jedem $Projectname-Server mit Deinem $Projectname-Identität anmelden und erhältst dann Zugriff auf die Inhalte, die für Dich freigegeben sind.
|
||||
Zugriffsrechte funktionieren im gesamten Grid mit allen Kanälen. Die meisten Links, die innerhalb von $Projectname verlinken, enthalten Deine Identität (zid), so dass der Zielserver Dich direkt anmelden kann. Du kannst Dich aber auch so auf jedem $Projectname-Server mit Deiner $Projectname-Identität anmelden und erhältst dann Zugriff auf die Inhalte, die für Dich freigegeben sind.
|
||||
|
||||
Du loggst Dich nur einmal auf Deinem Heimatserver ein. Ab dann funktioniert die Authentifizierung gegenüber anderen $Projectname-Servern „magisch“ von selbst.
|
||||
Du loggst Dich nur einmal auf Deinem Heimat-Hub ein. Ab dann funktioniert die Authentifizierung gegenüber anderen $Projectname-Hubs „magisch“ von selbst.
|
||||
|
||||
[b]Dateiablage (Cloud) mit WebDAV-Zugriff[/b]
|
||||
|
||||
@@ -45,7 +60,7 @@ Stelle Deine Fotos online in Alben zur Verfügung. Auch hier kann der Zugriff ü
|
||||
|
||||
[b]Terminkalender[/b]
|
||||
|
||||
Im eingebauten Terminkalender kannst Du Termine erstellen und verwalten. Auch hier greifen die Zugriffsrechte für andere. Termine können im vcalendar/iCal-Format exportiert und mit anderen geteilt werden. Wenn Deine Kontakte ihren Geburtstag in ihr Profil eingetragen haben, werden diese Geburtstage automatisch zu Deinem Kalender hinzugefügt – mit entsprechender Anpassung der Zeitzone, so dass Du nie zu früh oder zu spät gratulierst.
|
||||
Im eingebauten Terminkalender kannst Du Termine erstellen und verwalten. Auch hier greifen die Zugriffsrechte für andere. Termine können im vcalendar/iCal-Format importiert/exportiert und in Beiträgen mit anderen geteilt werden. Wenn Deine Kontakte ihren Geburtstag in ihr Profil eingetragen haben, werden diese Geburtstage automatisch zu Deinem Kalender hinzugefügt – mit entsprechender Anpassung der Zeitzone, so dass Du nie zu früh oder zu spät gratulierst. Termine werden normalerweise mit Teilnehmerzählern erstellt, so dass Deine Freunde und Verbindungen sofort zu- oder absagen können.
|
||||
|
||||
[b]Chat-Räume[/b]
|
||||
|
||||
@@ -53,7 +68,7 @@ Du kannst Chaträume erstellen und über die Zugriffsrechte nur bestimmten Nutze
|
||||
|
||||
[b]Erstellen von Webseiten[/b]
|
||||
|
||||
In der $Projectname gibt es Werkzeuge für „Content Management“, mit denen Du einfache Webseiten erstellen kannst, aber auch komplexe Layouts, Menüs, Blöcke und Widgets. Auch hier greifen die Zugriffsrechte, so dass die entstandenen Seiten nur von denen betrachtet werden können, denen Du das Recht dazu eingeräumt hast.
|
||||
In $Projectname gibt es Werkzeuge für „Content Management“, mit denen Du einfache Webseiten erstellen kannst, aber auch komplexe Layouts, Menüs, Blöcke und Widgets. Auch hier greifen die Zugriffsrechte, so dass die entstandenen Seiten nur von denen betrachtet werden können, denen Du das Recht dazu eingeräumt hast.
|
||||
|
||||
[b]Apps[/b]
|
||||
|
||||
@@ -61,7 +76,7 @@ $Projectname-Mitglieder könnnen Apps erstellen und verteilen. Anders als bei an
|
||||
|
||||
[b]Layout[/b]
|
||||
|
||||
Das Seiten-Layout basiert auf eine Beschreibungssprache namens Comanche. Die $Projectname ist selbst in Comanche-Layouts verfasst, die man verändern kann. Dadurch ist eine sehr starke Anpassung an die eigenen Bedürfnisse möglich, wie man sie so in Multi-User-Umgebungen normalerweise nicht findet.
|
||||
Das Seiten-Layout basiert auf eine Beschreibungssprache namens Comanche. $Projectname ist selbst in Comanche-Layouts verfasst, die man verändern kann. Dadurch ist eine sehr starke Anpassung an die eigenen Bedürfnisse möglich, wie man sie so in Multi-User-Umgebungen normalerweise nicht findet.
|
||||
|
||||
[b]Lesezeichen[/b]
|
||||
|
||||
@@ -69,37 +84,37 @@ Du kannst Lesezeichen teilen, speichern und verwalten, direkt aus den Unterhaltu
|
||||
|
||||
[b]Verschlüsselung privater Nachrichten[/b]
|
||||
|
||||
Nachrichten mit eingeschränktem Empfängerkreis werden mit einem symmetrischen 256-bit-AES-CBC-Schlüssel verschlüsselt, der seinerseits mit Public-Key-Kryptografie auf Basis von 4096-bittigen RSA-Schlüsseln geschützt (nochmal verschlüsselt) wird, die mit dem sendenden Kanal verbunden sind. Diese Nachrichten werden auch auf anderen Red-Servern verschlüsselt gespeichert.
|
||||
Private Nachrichten werden verschlüsselt gespeichert. Das bietet keine absolute Sicherheit, erschwert aber einfaches Herumschnüffeln durch den Administrator oder Internet Provider.
|
||||
|
||||
Jeder Red-Kanal hat seinen eigenes 4096-bit-RSA-Schlüsselpaar, das erzeugt wird, wenn der Kanal erstellt wird.
|
||||
Jeder $Projectname-Kanal hat seinen eigenes 4096-bit-RSA-Schlüsselpaar, das erzeugt wird, wenn der Kanal erstellt wird. Damit werden private Nachrichten und Beiträge mit eingeschränktem Empfängerkreis während der Übermittlung zu anderen Hubs geschützt.
|
||||
|
||||
Zusätzlich können Nachrichten mit Ende-zu-Ende-Verschlüsselung versehen werden, so dass weder $Projectname-Server-Administratoren noch ISPs irgendetwas mitlesen können, solange sie nicht über das Passwort verfügen.
|
||||
Zusätzlich können Nachrichten mit Ende-zu-Ende-Verschlüsselung versehen werden, so dass weder $Projectname-Hub-Administratoren noch ISPs irgendetwas mitlesen können, solange sie nicht über das Passwort verfügen.
|
||||
|
||||
Komplett öffentliche Nachrichten werden weder in der Datenbank noch bei der Übertragung verschlüsselt (abgesehen ggfs. von SSL).
|
||||
|
||||
Private Nachrichten können gelöscht (zurückgezogen) werden, aber es kann natürlich nicht garantiert werden, dass der Empfänger sie nicht schon gelesen hat.
|
||||
Private Nachrichten und Beiträge können gelöscht (zurückgezogen) werden, aber es kann natürlich nicht garantiert werden, dass der Empfänger sie nicht schon gelesen hat.
|
||||
|
||||
Alle Nachrichten können mit einem „Verfallsdatum“ versehen werden. Zu diesem Zeitpunkt werden sie dann von den Servern der Empfänger gelöscht.
|
||||
Alle Beiträge können mit einem „Verfallsdatum“ versehen werden. Zu diesem Zeitpunkt werden sie dann von den Servern der Empfänger gelöscht.
|
||||
|
||||
[b]Verbindung zu anderen Diensten[/b]
|
||||
|
||||
Neben Plugins, die das „crossposten“ zu diversen anderen Netzwerk erlauben, wird der Import von RSS/Atom-Feeds nativ unterstützt, auch, um mit diesen Inhalten spezielle Kanäle zu erstellen. Außerdem kann über das Diaspora-Protokoll mit Kontakten in den Netzwerken Friendica und Diaspora kommuniziert werden. Diese Unterstützung ist als experimentell eingestuft, da diese Netzwerke nicht die gleichen Möglichkeiten wie die $Projectname in Sachen Privatsphäre und Verschlüsselung bieten, so dass Kommunikation mit ihnen zu Privatsphäreproblemen führen könnte.
|
||||
Neben Plugins, die das „crossposten“ zu diversen anderen Netzwerk erlauben, wird der Import von RSS/Atom-Feeds nativ unterstützt, auch, um mit diesen Inhalten spezielle Kanäle zu erstellen. Außerdem kann über das Diaspora-Protokoll mit Kontakten in den Netzwerken Friendica und Diaspora kommuniziert werden. Diese Unterstützung ist als experimentell eingestuft, da diese Netzwerke nicht die gleichen Möglichkeiten wie $Projectname in Sachen Privatsphäre und Verschlüsselung bieten, so dass Kommunikation mit ihnen zu Privatsphäreproblemen führen könnte.
|
||||
|
||||
Weiterhin wird OpenID auf experimenteller Ebene unterstützt und kann bei den Zugriffsrechten genutzt werden, um Inhalte für per OpenID authentifizierte Nutzer freizugeben. An dieser Funktion wird noch gearbeitet.
|
||||
Weiterhin wird OpenID auf experimenteller Ebene unterstützt und kann bei den Zugriffsrechten genutzt werden, um Inhalte für per OpenID authentifizierte Nutzer freizugeben. An dieser Funktion wird noch gearbeitet. Jeder $Projectname-Hub kann außerdem als OpenID-Provider dienen.
|
||||
|
||||
Die Inhalte von Kanälen können als Quellen für andere Kanäle dienen (wenn der Kanalinhaber das erlaubt), so dass Themen-Kanäle mit den Inhalten von zwei oder mehr Kanälen erstellt werden können.
|
||||
|
||||
[b]Sammlungen[/b]
|
||||
|
||||
„Sammlungen“ sind unsere Implementation von Privatsphäregruppen, ähnlich den „Kreisen“ bei Google+ und den „Aspekten“ bei Diaspora. Sammlungen können zur Filterung der angezeigten Nachrichten genutzt werden (nur Threads anzeigen, die von einem Mitglied dieser Sammlung gestartet wurden), aber auch zum Setzen von Zugriffsrechten.
|
||||
„Sammlungen“ sind unsere Implementierung von Privatsphäregruppen, ähnlich den „Kreisen“ bei Google+ und den „Aspekten“ bei Diaspora. Sammlungen können zur Filterung der angezeigten Nachrichten genutzt werden (nur Threads anzeigen, die von einem Mitglied dieser Sammlung gestartet wurden), aber auch zum Setzen von Zugriffsrechten (bevor der Beitrag abgeschickt wird).
|
||||
|
||||
[b]Verzeichnisdienste[/b]
|
||||
|
||||
Wir stellen einfachen Zugriff auf ein Mitgliederverzeichnis zur Verfügung, samt einer dezentralen Möglichkeit, sich neue Kontakte basierend auf den eigenen vorschlagen zu lassen. Die Verzeichnis-Server sind normale $Projectname-Server, bei denen der Administrator sich entschieden hat, sie auch als Verzeichnis agieren zu lassen. Das benötigt mehr Ressourcen als eine normale $Projectname-Installation, deshalb ist das nicht voreingestellt. Die Verzeichnis-Server synchronisieren sich miteinander, so dass (abgesehen von einer gewissen Verzögerung bis zur nächsten Synchronisation) all Verzeichnis-Server aktuelle Informationen über das gesamte Netzwerk bereitstellen können.
|
||||
Wir stellen einfachen Zugriff auf ein Mitgliederverzeichnis zur Verfügung, samt einer dezentralen Möglichkeit, sich neue Kontakte basierend auf den eigenen vorschlagen zu lassen. Die Verzeichnis-Server sind normale $Projectname-Server, bei denen der Administrator sich entschieden hat, sie auch als Verzeichnis agieren zu lassen. Das benötigt mehr Ressourcen als eine normale $Projectname-Installation, deshalb ist das nicht voreingestellt. Die Verzeichnis-Server synchronisieren sich miteinander, so dass (abgesehen von einer gewissen Verzögerung bis zur nächsten Synchronisation) alle Verzeichnis-Server aktuelle Informationen über das gesamte Netzwerk bereitstellen können.
|
||||
|
||||
[b]TLS/SSL[/b]
|
||||
|
||||
Red-Server, die TLS/SSL benutzen, verschlüsseln ihre Kommunikation vom Server zum Nutzer mit SSL. Nach den aktuellen Enthüllungen über das Umgehen von Verschlüsselung durch NSA, GHCQ und andere Dienste, sollte man jedoch nicht mehr davon ausgehen, dass diese Verbindungen nicht mitgelesen werden können.
|
||||
$Projectname-Server, die TLS/SSL benutzen, verschlüsseln ihre Kommunikation vom Server zum Nutzer mit SSL. Nach den aktuellen Enthüllungen über das Umgehen von Verschlüsselung durch NSA, GHCQ und andere Dienste, sollte man jedoch nicht mehr davon ausgehen, dass diese Verbindungen nicht mitgelesen werden können. Private Kommunikation (nicht komplett öffentliche Beiträge) wird darüberhinaus zusätzlich verschlüsselt, bevor sie von einem Server zum anderen geschickt wird.
|
||||
|
||||
[b]Kanal-Einstellungen[/b]
|
||||
|
||||
@@ -107,15 +122,13 @@ Wenn ein Kanal erstellt wird, muss eine bestimmte Zugriffsrechte-Kategorie (z.B.
|
||||
|
||||
Wenn Du die Experten-Kategorie wählst, kannst Du detaillierte Zugriffseinstellungen für verschiedenste Aspekte der Kommunikation festlegen. Unter den „Sicherheits- und Privatsphäre-Einstellungen“ kann für jeden Punkt auf der linken Seite eine von 7-8 möglichen Optionen aus dem Menü gewählt werden. Daneben gibt es diverse weitere Einstellmöglichkeiten zum Thema Privatsphäre.
|
||||
|
||||
[img]https://friendicared.net/photo/0f5be8da282858edd645b0a1a6626491.png[/img]
|
||||
|
||||
Die Optionen für die einzelnen Punkte (z.B., wer Deine normalen Beiträge sehen kann) sind:
|
||||
[ul][*]Niemand außer Du selbst
|
||||
[*]Nur die, denen Du es explizit erlaubst
|
||||
[*]Angenommene Verbindungen
|
||||
[*]Beliebige Verbindungen
|
||||
[*]Jeder auf diesem Website
|
||||
[*]Alle Red-Nutzer
|
||||
[*]Alle $Projectname-Nutzer
|
||||
[*]Jeder authentifizierte
|
||||
[*]Jeder im Internet[/ul]
|
||||
|
||||
@@ -125,19 +138,19 @@ Foren sind Kanäle, in denen mehrere Nutzer als Autoren fungieren können; eine
|
||||
|
||||
[b]Klone[/b]
|
||||
|
||||
Konten in der $Projectname werden auch als [i]nomadische Identitäten[/i] bezeichnet (eine ausführliche Erklärung dazu gibt es unter [url=[baseurl]/help/what_is_zot]What is Zot?[/url]). Nomadisch, weil bei anderen Diensten die Identität eines Nutzers an den Server oder die Plattform gebunden ist, auf der er ursprünglich erstellt wurde. Ein Facebook- oder Gmail-Konto ist and diese Dienste gekettet. Er funktioniert nicht ohne Facebook.com bzw. Gmail.com.
|
||||
Konten in der $Projectname werden auch als [i]nomadische Identitäten[/i] bezeichnet. Nomadisch, weil bei anderen Diensten die Identität eines Nutzers an den Server oder die Plattform gebunden ist, auf der er ursprünglich erstellt wurde. Ein Facebook- oder Gmail-Konto ist and diese Dienste gekettet. Er funktioniert nicht ohne Facebook.com bzw. Gmail.com.
|
||||
|
||||
Bei Red ist das anders. Sagen wir, Du hast eine Red-Indentität namens tina@redhub.com. Die kannst Du auf einen anderen Server klonen, mit dem gleichen oder einem anderen Namen, zum Beispiel lebtEwig@matrixserver.info.
|
||||
Bei $Projectname ist das anders. Sagen wir, Du hast eine $Projectname-Indentität namens tina@$Projectnamehub.com. Die kannst Du auf einen anderen Server klonen, mit dem gleichen oder einem anderen Namen, zum Beispiel lebtEwig@Anderer$ProjectnameHub.info.
|
||||
|
||||
Beide Kanäle sind jetzt miteinander synchronisiert, das heißt, dass alle Kontakte und Einstellungen auf dem Klon immer die gleichen sind wie auf dem ursprünglichen Kanal. Es ist egal, ob Du eine Nachricht von dort aus oder vom Klon aus schickst. Alle Nachrichten sind in beiden Klonen vorhanden.
|
||||
|
||||
Das ist ein ziemlich revolutionäres Feature, wenn man sich einige Szenarien dazu ansieht:
|
||||
|
||||
[ul][*]Was passiert, wenn ein Server, auf dem sich Deine Identität befindet, plötzlich offline ist? Ohne Klone ist der Nutzer nicht in der Lage zu kommunzieren, bis der Server wieder online ist. Mit Klonen loggst Du Dich einfach bei Deinem geklonten Kanal ein und lebst glücklich bis an Dein Ende.
|
||||
[*]Der Administrator Deines Red-Servers kann es sich nicht länger leisten, seinen für alle kostenlosen Server zu bezahlen. Er gibt bekannt, dass der Server in zwei Wochen vom Netz gehen wird. Zeit genug, um Deine Red-Kanäle auf andere Server zu klonen und somit Verbindungen und Freunde zu behalten.
|
||||
[*]Was, wenn Dein Kanal staatlicher Zensur unterliegt? Dein Server-Admin wird gezwungen, Dein Konto und alle damit verbundenen Kanäle und Daten zu löschen. Durch Klone bietet die $Projectname Zensur-Resistenz. Wenn Du willst, kannst Du hunderte von Klonen haben, alle mit unterschiedlichen Namen und auf unterschiedlichen Servern überall im Internet.[/ul]
|
||||
[ul][*]Was passiert, wenn ein Server, auf dem sich Deine Identität befindet, plötzlich offline ist (sicher haben viele von Euch den Twitter-„Fail Whale“ gesehen und verflucht)? Ohne Klone ist der Nutzer nicht in der Lage zu kommunizieren, bis der Server wieder online ist. Mit Klonen loggst Du Dich einfach bei Deinem geklonten Kanal ein und lebst glücklich bis an Dein Ende.
|
||||
[*]Der Administrator Deines $Projectname-Hubs kann es sich nicht länger leisten, seinen für alle kostenlosen Server zu bezahlen. Er gibt bekannt, dass der Server in zwei Wochen vom Netz gehen wird. Zeit genug, um Deine $Projectname-Kanäle auf andere Server zu klonen und somit Verbindungen und Freunde zu behalten.
|
||||
[*]Was, wenn Dein Kanal staatlicher Zensur unterliegt? Dein Server-Admin könnte gezwungen werden, Dein Konto und alle damit verbundenen Kanäle und Daten zu löschen. Durch Klone bietet $Projectname Zensur-Resistenz. Wenn Du willst, kannst Du hunderte von Klonen haben, alle mit unterschiedlichen Namen und auf unterschiedlichen Hubs überall im Internet.[/ul]
|
||||
|
||||
Red bietet interessante, neue Möglichkeiten in Bezug auf die Privatsphäre. Mehr dazu unter „Tipps und Tricks zur privaten Kommunikation“.
|
||||
$Projectname bietet interessante, neue Möglichkeiten in Bezug auf die Privatsphäre. Mehr dazu unter „Tipps und Tricks zur privaten Kommunikation“.
|
||||
|
||||
Klone unterliegen einigen Restriktionen. Eine vollständige Erklärung zum Klonen von Identitäten gibt es unter „Klone“.
|
||||
|
||||
@@ -147,40 +160,44 @@ Jeder Kanal kann beliebig viele Profile mit unterschiedlichen Informationen defi
|
||||
|
||||
[b]Kanal-Backups[/b]
|
||||
|
||||
In Red gibt es ein einfaches Ein-Klick-Backup, mit dem Du ein komplettes Backup Deiner Kanal-Einstellungen und Verbindungen herunterladen kannst.
|
||||
In $Projectname gibt es ein einfaches Ein-Klick-Backup, mit dem Du ein komplettes Backup Deiner Kanal-Einstellungen und Verbindungen herunterladen kannst.
|
||||
|
||||
Solche Backups sind ein Weg, um Klone zu erstellen, und können genutzt werden, um einen Kanal wiederherzustellen.
|
||||
|
||||
[b]Löschen von Konten[/b]
|
||||
|
||||
Konten und Kanäle können sofort gelöscht werden, indem Du einfach auf einen Link klickst. Das wars. Alle damit verbundenen Inhalte werden aus der Matrix gelöscht (inklusiver aller Beiträge und sonstiger Inhalte, die von dem gelöschten Konto/Kanal erzeugt wurden). Je nach Anzahl Deiner Verbindungen kann es etwas dauern, bis die Inhalte auch von allen Servern Deiner Kontakte gelöscht werden, aber die Löschung wird so schnell wie sinnvoll möglich durchgeführt.
|
||||
Konten und Kanäle können sofort gelöscht werden, indem Du einfach auf einen Link klickst. Das wars. Alle damit verbundenen Inhalte werden aus dem Grid gelöscht (inklusiver aller Beiträge und sonstiger Inhalte, die von dem gelöschten Konto/Kanal erzeugt wurden). Je nach Anzahl Deiner Verbindungen kann es etwas dauern, bis die Inhalte auch von allen Servern Deiner Kontakte gelöscht werden, aber die Löschung wird so schnell wie sinnvoll möglich durchgeführt.
|
||||
|
||||
[h2]Erstellen von Inhalten[/h2]
|
||||
|
||||
[b]Beiträge schreiben[/b]
|
||||
|
||||
Red unterstützt diverse verschiedene Wege, um Inhalte mit Auszeichnung (z.B. fett, kursiv, farbig etc.) zu erstellen. Voreinstellung ist die $Projectname-Variante von BBCode (wie in vielen Web-Foren) mit einigen Ergänzungen, die nur hier funktionieren. Du kannst auch Markdown benutzen, wenn Dir das leichter fällt. Bis vor kurzem konnte auch ein grafischer Editor eingesetzt werden, der jedoch große Probleme aufwies und deshalb entfernt wurde. Wir suchen gerade nach einer Alternative.
|
||||
$Projectname unterstützt diverse verschiedene Wege, um Inhalte mit Auszeichnung (z.B. fett, kursiv, farbig etc.) zu erstellen. Voreinstellung ist die $Projectname-Variante von BBCode (wie in vielen Web-Foren) mit einigen Ergänzungen, die nur hier funktionieren. Du kannst auch Markdown benutzen, wenn Dir das leichter fällt. Bis vor kurzem konnte auch ein grafischer Editor eingesetzt werden, der jedoch große Probleme aufwies und deshalb entfernt wurde. Wir suchen gerade nach einer Alternative.
|
||||
|
||||
Webseiten können neben BBCode und Markdown auch in HTML und Plain Text erstellt werden.
|
||||
|
||||
[b]Inhalte löschen[/b]
|
||||
|
||||
Alle Inhalte in der $Projectname bleiben unter der Kontrolle des Mitglieds (bzw. Kanals), der sie ursprünglich erstellt hat. Alle Beiträge können jederzeit gelöscht werden, egal, ob sie auf dem Heimat-Server des Nutzers oder auf einem anderen Server erstellt wurden, an dem der Nutzer via Zot angemeldet war.
|
||||
Alle Inhalte in $Projectname bleiben unter der Kontrolle des Mitglieds (bzw. Kanals), der sie ursprünglich erstellt hat. Alle Beiträge können jederzeit gelöscht werden, egal, ob sie auf dem Heimat-Server des Nutzers oder auf einem anderen Server erstellt wurden, an dem der Nutzer via Zot (Kommunikations- und Authentifizierungsprotokoll von $Projectname) angemeldet war.
|
||||
|
||||
[b]Medien[/b]
|
||||
|
||||
Genau wie jedes andere Blog-System, soziale Netzwerk oder Mikro-Blogging-Dienst unterstützt Red das Hochladen von Dateien, das Einbetten von Bildern und Videos und das Verlinken von Seiten.
|
||||
Genau wie jedes andere Blog-System, soziale Netzwerk oder Mikro-Blogging-Dienst unterstützt $Projectname das Hochladen von Dateien, das Einbetten von Bildern und Videos und das Verlinken von Seiten.
|
||||
|
||||
[b]Vorschau/Editieren[/b]
|
||||
|
||||
Vor dem Absenden kann eine Vorschau von Beiträgen betrachtet werden. Außerdem können Beiträge auch nach dem Absenden noch verändert werden.
|
||||
|
||||
[b]Umfragen[/b]
|
||||
|
||||
Beiträge können als Umfragen gestaltet werden – die Leser können dann mittels entsprechender Buttons zustimmen, ablehnen oder sich enthalten, was ähnlich wie „Likes“ am Beitrag sichtbar wird. Dadurch kannst Du abschätzen, wie gut neue Ideen ankommen, oder informelle Umfragen starten.
|
||||
|
||||
[b]$Projectname erweitern[/b]
|
||||
|
||||
Die $Projectname kann auf vielerlei Art erweitert werden: Durch Server-Anpassung, persönliche Anpassung, setzen von Optionen, Themes und Addons/Plugins.
|
||||
|
||||
[b]API[/b]
|
||||
|
||||
Es existiert eine API, die von beliebigen Programmen/Apps und Diensten genutzt werden kann. Sie basiert auf der ursprünglichen Twitter-API (für die es hunderte von Tools und Apps gibt). Sie wird aktuell erweitert, um Zugriff auf Möglichkeiten zu gewähren, die es nur in der $Projectname gibt. Authentifikation erfolgt über Login/Passwort oder OAuth. Eine Client-Registrierung für OAuth-Applikationen ist möglich.
|
||||
Es existiert eine API, die von beliebigen Programmen/Apps und Diensten genutzt werden kann. Sie basiert auf der ursprünglichen Twitter-API (für die es hunderte von Tools und Apps gibt). Sie wird aktuell erweitert, um Zugriff auf Möglichkeiten zu gewähren, die es nur in $Projectname gibt. Authentifikation erfolgt über Login/Passwort oder OAuth. Eine Client-Registrierung für OAuth-Applikationen ist möglich.
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
|
||||
19
doc/de/general.bb
Normal file
19
doc/de/general.bb
Normal file
@@ -0,0 +1,19 @@
|
||||
[h2]Informationen über das Projekt und diesen Hub[/h2]
|
||||
|
||||
[zrl=[baseurl]/help/Privacy]Informationen zum Datenschutz[/zrl]
|
||||
|
||||
[zrl=[baseurl]/help/history]Zur Geschichte von $Projectname[/zrl]
|
||||
|
||||
[h3]Externe Ressourcen[/h3]
|
||||
[zrl=[baseurl]/help/external-resource-links]Links zu externen Ressourcen[/zrl]
|
||||
|
||||
[url=https://github.com/redmatrix/redmatrix]Haupt-Website[/url]
|
||||
[url=https://github.com/redmatrix/redmatrix-addons]Addons-Website[/url]
|
||||
|
||||
[url=[baseurl]/help/credits]$Projectname Credits[/url]
|
||||
|
||||
[h3]Über diesen $Projectname-Hub[/h3]
|
||||
[zrl=[baseurl]/help/TermsOfService]Nutzungsbedingungen dieses Hubs[/zrl]
|
||||
[zrl=[baseurl]/siteinfo]Informationen zu diesem Hub und der $Projectname-Version[/zrl]
|
||||
[zrl=[baseurl]/siteinfo/json]Detaillierte technische Informationen zu diesem Hub im JSON-Format[/zrl]
|
||||
|
||||
@@ -1,86 +1,11 @@
|
||||
[img][baseurl]/assets/hashlogo.png[/img]
|
||||
[img][baseurl]/images/hubzilla-banner.png[/img]
|
||||
|
||||
[zrl=[baseurl]/help/about]Was ist die RedMatrix?[/zrl]
|
||||
Die RedMatrix ist eine dezentrale Kommunikations- und Publishing-Plattform. Sie ermöglicht Dir die volle Kontrolle über all Deine Kommunikation mit Hilfe von automatischer Verschlüsselung und detaillierter Zugriffskontrolle. Du, und [i]nur[/i] Du, entscheidest, wer Deine Beiträge sehen darf.
|
||||
[zrl=[baseurl]/help/about]Was ist $Projectname?[/zrl]
|
||||
$Projectname ist eine dezentrale Kommunikations- und Publishing-Plattform. Es ermöglicht Dir die volle Kontrolle über all Deine Kommunikation mit Hilfe von automatischer Verschlüsselung und detaillierter Zugriffskontrolle. Du, und [i]nur[/i] Du, entscheidest, wer Deine Beiträge sehen darf. $Projectname ist der Nachfolger, der seit einigen Jahren erfolgreichen Plattformen Friendica und RedMatrix.
|
||||
|
||||
[zrl=[baseurl]/help/features]Features der RedMatrix[/zrl]
|
||||
Die RedMatrix funktioniert schon heute als ein globales verteiltes Netzwerk und beweist täglich ihre Vielseitigkeit und Skalierbarkeit auf kleinen Privatservern wie auch auf riesigen Sites.
|
||||
Kommunikationsplattformen für Familien, verteilte Online-Communities, Support-Foren, Blogs und Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, die RedMatrix unterstützt Dich in Deinem kreativen Schaffen.
|
||||
[zrl=[baseurl]/help/features]Features von $Projectname[/zrl]
|
||||
$Projectname funktioniert schon heute als ein globales verteiltes Netzwerk und beweist täglich seine Vielseitigkeit und Skalierbarkeit - auf kleinen Privatservern wie auch auf riesigen Sites.
|
||||
Kommunikationsplattformen für Familien, verteilte Online-Communities, Support-Foren, Blogs und Homepages. Oder auch professionelle Inhalte-Anbieter mit kommerziellen Premium-Kanälen und eingeschränktem Zugriff – was immer Du willst, $Projectname unterstützt Dich in Deinem kreativen Schaffen.
|
||||
|
||||
[zrl=[baseurl]/help/what_is_zot]Got Zot? Hast Du schon Zot? Wenn nicht wird es Zeit.[/zrl]
|
||||
Zot ist das großartige neue Kommunikationsprotokoll, das extra für die RedMatrix entwickelt wurde. Als Mitglied bist Du dank „Nomadischer Identität“ nicht länger an einen einzigen Server oder Anbieter gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil der RedMatrix, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Red-Server betrachtest. Zot ist, was die RedMatrix besonders macht.
|
||||
|
||||
[h3]Erste Schritte[/h3]
|
||||
[zrl=[baseurl]/help/Privacy]Datenschutz[/zrl]
|
||||
[zrl=[baseurl]/help/registration]Ein Konto registrieren[/zrl]
|
||||
[zrl=[baseurl]/help/accounts_profiles_channels_basics]Du in der RedMatrix: Konten, Profile und Kanäle kurz erklärt[/zrl]
|
||||
[zrl=[baseurl]/help/profiles]Profile[/zrl]
|
||||
[zrl=[baseurl]/help/channels]Kanäle[/zrl]
|
||||
[zrl=[baseurl]/help/roles]Zugriffsrechte-Kategorien und Kanaltypen[/zrl]
|
||||
[zrl=[baseurl]/help/first-post]Dein erster Beitrag[/zrl]
|
||||
[zrl=[baseurl]/help/connecting_to_channels]Sich mit anderen Kanälen verbinden[/zrl]
|
||||
[zrl=[baseurl]/help/permissions]Zugriffsrechte und Verschlüsselung: Du hast alles unter Kontrolle[/zrl]
|
||||
[zrl=[baseurl]/help/cloud]Cloud-Speicher[/zrl]
|
||||
[zrl=[baseurl]/help/remove_account]Einen Kanal oder das ganze Konto löschen[/zrl]
|
||||
|
||||
[h3]Hilfe für $Projectname-Mitglieder[/h3]
|
||||
[zrl=[baseurl]/help/tags_and_mentions]Tags und Erwähnungen[/zrl]
|
||||
[zrl=[baseurl]/help/webpages]Webseiten[/zrl]
|
||||
[zrl=[baseurl]/help/bbcode]BBcode-Referenz für Posts und Kommentare[/zrl]
|
||||
[zrl=[baseurl]/help/checking_account_quota_usage]Überprüfung der Kontenlimits[/zrl]
|
||||
[zrl=[baseurl]/help/cloud_desktop_clients]Desktop-Anwendungen und die Cloud[/zrl]
|
||||
[zrl=[baseurl]/help/AdvancedSearch]Fortgeschrittene Suche im Kanalverzeichnis[/zrl]
|
||||
[zrl=[baseurl]/help/addons]Hilfe zu Addons[/zrl]
|
||||
[zrl=[baseurl]/help/diaspora_compat]Kompatibilität zum Diaspora-Protokoll (zur Kommunikation mit Kontakten aus Diaspora und Friendica)[/zrl]
|
||||
[zrl=[baseurl]/help/faq_members]FAQ für Mitglieder[/zrl]
|
||||
|
||||
[h3]Hilfe für Administratoren[/h3]
|
||||
[zrl=[baseurl]/help/install]Installation[/zrl]
|
||||
[zrl=[baseurl]/help/red2pi]Red auf einem Raspberry Pi installieren[/zrl]
|
||||
[zrl=[baseurl]/help/troubleshooting]Troubleshooting-Tipps[/zrl]
|
||||
[zrl=[baseurl]/help/hidden_configs]Versteckte Konfigurations-Optionen[/zrl]
|
||||
[zrl=[baseurl]/help/faq_admins]FAQ für Admins[/zrl]
|
||||
[zrl=[baseurl]/help/service_classes]Serviceklassen[/zrl]
|
||||
|
||||
[h3]Technische Dokumentation[/h3]
|
||||
[zrl=[baseurl]/help/history]Die Geschichte von $Projectname[/zrl]
|
||||
[zrl=[baseurl]/help/Zot---A-High-Level-Overview]Zot – ein grober Überblick[/zrl]
|
||||
[zrl=[baseurl]/help/zot]Eine Einführung ins Zot-Protokoll[/zrl]
|
||||
[zrl=[baseurl]/help/zot_structures]Zot-Strukturen[/zrl]
|
||||
[zrl=[baseurl]/help/comanche]Seitenbeschreibung in Comanche[/zrl]
|
||||
[zrl=[baseurl]/help/Creating-Templates]Vorlagen erstellen mit Comanche[/zrl]
|
||||
[zrl=[baseurl]/help/Widgets]Widgets[/zrl]
|
||||
[zrl=[baseurl]/help/plugins]Plugins[/zrl]
|
||||
[zrl=[baseurl]/help/doco]Selbst Dokumentation beisteuern[/zrl]
|
||||
[zrl=[baseurl]/help/DerivedTheme1]Einen Theme basierend auf einem anderen erstellen[/zrl]
|
||||
[zrl=[baseurl]/help/schema_development]Schemata[/zrl]
|
||||
[zrl=[baseurl]/help/Translations]Übersetzungen[/zrl]
|
||||
[zrl=[baseurl]/help/developers]Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/intro_for_developers]Einführung für Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/database]Datenbank-Schema[/zrl]
|
||||
[zrl=[baseurl]/help/api_functions]API-Funktionen[/zrl]
|
||||
[zrl=[baseurl]/help/api_posting]Mit der API einen Beitrag erstellen[/zrl]
|
||||
[zrl=[baseurl]/help/developer_function_primer]Übersicht der wichtigsten Red-Funktionen[/zrl]
|
||||
[zrl=[baseurl]/doc/html/]Code-Referenz (mit doxygen generiert - setzt Cookies)[/zrl]
|
||||
[zrl=[baseurl]/help/to_do_doco]To-Do-Liste für das Projekt Red-Dokumentation[/zrl]
|
||||
[zrl=[baseurl]/help/to_do_code]To-Do-Liste für Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/roadmap]Roadmap für Version 3[/zrl]
|
||||
[zrl=[baseurl]/help/git_for_non_developers]Git für Nicht-Entwickler[/zrl]
|
||||
[zrl=[baseurl]/help/dev_beginner]Schritt-für-Schritt-Einführung für neue Entwickler[/zrl]
|
||||
|
||||
[h3]Häufig gestellte Fragen für Entwickler[/h3]
|
||||
[zrl=[baseurl]/help/faq_developers]FAQ für Entwickler[/zrl]
|
||||
|
||||
[h3]Externe Ressourcen[/h3]
|
||||
[zrl=[baseurl]/help/external-resource-links]Links zu externen Ressourcen[/zrl]
|
||||
[url=https://github.com/redmatrix/redmatrix]Haupt-Website[/url]
|
||||
[url=https://github.com/redmatrix/redmatrix-addons]Addons-Website[/url]
|
||||
[url=https://zothub.com/channel/one]Entwickler-Kanal[/url]
|
||||
[url=https://federated.social/channel/postgres]Postgres-spezifischer Admin-Support-Kanal[/url]
|
||||
|
||||
[url=[baseurl]/help/credits]$Projectname Credits[/url]
|
||||
|
||||
[h3]Über diesen Red-Server[/h3]
|
||||
[zrl=[baseurl]/help/TermsOfService]Nutzungsbedingungen dieses Red-Servers[/zrl]
|
||||
[zrl=[baseurl]/siteinfo]Informationen zu diesem Server und der Red-Version[/zrl]
|
||||
[zrl=[baseurl]/siteinfo/json]Detaillierte technische Informationen zu diesem Server im JSON-Format[/zrl]
|
||||
Zot ist ein großartiges neues Kommunikationsprotokoll, das für $Projectname entwickelt wurde. Als Mitglied bist Du dank „Nomadischer Identität“ nicht länger an einen einzigen Server oder einen einzigen Anbieter gebunden. Ziehe einfach auf einen anderen Server um und behalte dabei alle Deine Kontakte, oder klone Deinen Kanal und lasse ihn auf mehreren Servern gleichzeitig laufen – sollte einer davon plötzlich geschlossen werden, ist das kein Problem für Dich. Und bist Du erst Teil des $Projectname-Netzwerkes, musst Du Dich nie wieder mehrfach anmelden, selbst wenn Du Seiten auf einem andere Hub (den $Projectname-Servern) betrachtest. Zot ist, was das $Projectname-Netzwerk besonders macht.
|
||||
|
||||
25
doc/de/members.bb
Normal file
25
doc/de/members.bb
Normal file
@@ -0,0 +1,25 @@
|
||||
[h2]Dokumentation für Hub-Mitglieder[/h2]
|
||||
|
||||
[h3]Erste Schritte[/h3]
|
||||
[zrl=[baseurl]/help/registration]Ein Konto registrieren[/zrl]
|
||||
[zrl=[baseurl]/help/accounts_profiles_channels_basics]Du im Hubzilla-Netzwerk: Konten, Profile und Kanäle kurz erklärt[/zrl]
|
||||
[zrl=[baseurl]/help/profiles]Profile[/zrl]
|
||||
[zrl=[baseurl]/help/channels]Kanäle[/zrl]
|
||||
[zrl=[baseurl]/help/roles]Zugriffsrechte-Kategorien und Kanaltypen[/zrl]
|
||||
[zrl=[baseurl]/help/first-post]Dein erster Beitrag[/zrl]
|
||||
[zrl=[baseurl]/help/connecting_to_channels]Sich mit anderen Kanälen verbinden[/zrl]
|
||||
[zrl=[baseurl]/help/permissions]Zugriffsrechte und Verschlüsselung: Du hast alles unter Kontrolle[/zrl]
|
||||
[zrl=[baseurl]/help/cloud]Cloud-Speicher[/zrl]
|
||||
[zrl=[baseurl]/help/remove_account]Einen Kanal oder das ganze Konto löschen[/zrl]
|
||||
|
||||
[h3]Hilfe für $Projectname-Mitglieder[/h3]
|
||||
[zrl=[baseurl]/help/tags_and_mentions]Tags und Erwähnungen[/zrl]
|
||||
[zrl=[baseurl]/help/webpages]Webseiten[/zrl]
|
||||
[zrl=[baseurl]/help/bbcode]BBcode-Referenz für Beiträge und Kommentare[/zrl]
|
||||
[zrl=[baseurl]/help/checking_account_quota_usage]Überprüfung der Kontenlimits[/zrl]
|
||||
[zrl=[baseurl]/help/cloud_desktop_clients]Desktop-Anwendungen und die Cloud[/zrl]
|
||||
[zrl=[baseurl]/help/AdvancedSearch]Fortgeschrittene Suche im Kanalverzeichnis[/zrl]
|
||||
[zrl=[baseurl]/help/addons]Hilfe zu Addons[/zrl]
|
||||
[zrl=[baseurl]/help/diaspora_compat]Kompatibilität zum Diaspora-Protokoll (zur Kommunikation mit Kontakten aus Diaspora und Friendica)[/zrl]
|
||||
[zrl=[baseurl]/help/faq_members]FAQ für Mitglieder[/zrl]
|
||||
[zrl=[baseurl]/help/bugs]Bugs, Probleme und Sachen, die einem um die Ohren fliegen können[/zrl]
|
||||
@@ -1,6 +1,6 @@
|
||||
[size=large][b]Profile[/b][/size]
|
||||
[h3]Profile[/h3]
|
||||
|
||||
In Red kannst Du beliebig viele Profile anlegen. Du kannst mehrere Profile nutzen, um verschiedenen Kontakten und Profilbesuchern unterschiedliche Seiten Deiner Persönlichkeit zu zeigen. Das ist nicht das gleiche wie das Anlegen mehrerer [i]Kanäle.[/i]
|
||||
In $Projectname kannst Du beliebig viele Profile anlegen. Du kannst mehrere Profile nutzen, um verschiedenen Kontakten und Profilbesuchern unterschiedliche Seiten Deiner Persönlichkeit zu zeigen. Das ist nicht das gleiche wie das Anlegen mehrerer [i]Kanäle.[/i]
|
||||
|
||||
Mehrere Kanäle erlauben es, komplett voneinander getrennte Informationen zu verwalten. Du könntest zum Beispiel einen Kanal für Dich selbst anlegen, einen für Deinen Schwimmverein, einen für Dein Blog und so weiter und so fort.
|
||||
|
||||
@@ -18,21 +18,21 @@ Wenn Du Leute kennenlernen möchtest, die ähnliche Interessen haben wie Du, nim
|
||||
|
||||
Um alternative Profile zu erstellen, besuche zunächst die Seite [zrl=[baseurl]/settings/features]Einstellungen > Zusätzliche Funktionen[/zrl] und aktiviere dort „Mehrfachprofile“. Ohne diese Aktivierung hast Du nur ein Profil, nämlich Dein Standard-Profil.
|
||||
|
||||
Klicke dann auf „Profile bearbeiten“ im Menü Deines Red-Servers. Dort kannst Du existierende Profile bearbeiten, Dein Profilfoto verändern, Dinge zu einem Profil hinzufügen oder ein neues Profil erstellen. Du kannst auch ein Profil „klonen“, wenn Du nur einige wenige Einträge ändern willst, ohne die ganzen Informationen noch einmal einzugeben. Klicke dazu auf das Profil, das Du klonen willst, und wähle dann „Dieses Profil klonen“.
|
||||
Klicke dann auf „Profile bearbeiten“ im Menü Deines $Projectname-Servers. Dort kannst Du existierende Profile bearbeiten, Dein Profilfoto verändern, Dinge zu einem Profil hinzufügen oder ein neues Profil erstellen. Du kannst auch ein Profil „klonen“, wenn Du nur einige wenige Einträge ändern willst, ohne die ganzen Informationen noch einmal einzugeben. Klicke dazu auf das Profil, das Du klonen willst, und wähle dann „Dieses Profil klonen“.
|
||||
|
||||
In der Liste Deiner Profile kannst Du auch bestimmen, wer ein bestimmtes Profil zu sehen bekommt. Klicke dazu auf „Sichtbarkeit bearbeiten“ neben dem Profil, um das es geht (gibt es nur bei Profilen, die nicht Dein Standard-Profil sind). Klicke dann auf die Bilder derjenigen Kontakte, die dieses Profil sehen sollen – sie sind dann oben zu sehen. Wenn Du oben auf ein Bild klickst, wird dieser Kontakt wieder aus der Gruppe derjenigen herausgenommen, die dieses Profil zu sehen bekommen.
|
||||
|
||||
Hast Du einem Kontakt ein Profil zugeordnet, wird er immer dieses Profil sehen, wenn er sich Dein Profil ansieht. Besucht er Deinen Red-Server, ohne sich anzumelden, sieht er aber weiterhin Dein Standard-Profil.
|
||||
Hast Du einem Kontakt ein Profil zugeordnet, wird er immer dieses Profil sehen, wenn er sich Dein Profil ansieht. Besucht er Deinen $Projectname-Server, ohne sich anzumelden, sieht er aber weiterhin Dein Standard-Profil.
|
||||
|
||||
Auf der allgemeinen „Einstellungen“-Seite gibt es eine Einstellung, mit der Du festlegen kannst, ob Dein Standard-Profil in den Red-Verzeichnissen veröffentlicht werden soll.
|
||||
Auf der allgemeinen „Einstellungen“-Seite gibt es eine Einstellung, mit der Du festlegen kannst, ob Dein Standard-Profil in den $Projectname-Verzeichnissen veröffentlicht werden soll.
|
||||
|
||||
Wenn Du nicht möchtest, dass andere Dich finden können, ohne dass Du ihnen Deine Kanal-Adresse gibst, kannst Du so verhindern, dass Dein Profil veröffentlicht wird.
|
||||
|
||||
[b]Schlüsselwörter und Verzeichnissuche[/b]
|
||||
|
||||
Im Verzeichnis (Kanal-Anzeiger) kannst Du nach Leuten suchen, die ihre Profile veröffentlichen. Zum Beispiel, indem Du Namen oder Spitznamen eingibst. Aktuell werden nur das Namensfeld und die Schlüsselwörter durchsucht. Wenn Du Schlüsselwörter in Dein Standard-Profil einträgst, können Dich Leute mit ähnlichen Interessen finden. Sie werden außerdem bei den Kanal-Vorschlägen benutzt. Sie sind im Verzeichnis nicht direkt sichtbar, wohl aber auf Deiner Profil-Seite.
|
||||
Im Verzeichnis (Kanal-Verzeichnis) kannst Du nach Leuten suchen, die ihre Profile veröffentlichen. Zum Beispiel, indem Du Namen oder Spitznamen eingibst. Aktuell werden nur das Namensfeld und die Schlüsselwörter durchsucht. Wenn Du Schlüsselwörter in Dein Standard-Profil einträgst, können Dich Leute mit ähnlichen Interessen finden. Sie werden außerdem bei den Kanal-Vorschlägen benutzt. Sie sind im Verzeichnis nicht direkt sichtbar, wohl aber auf Deiner Profil-Seite.
|
||||
|
||||
Auf Deiner „Verbindungen“-Seite und im Verzeichnis (Kanal-Anzeiger) gibt es einen Link „Vorschläge“ bzw. „Kanal-Vorschläge“. Dort findest Du Kanäle, die gleiche oder ähnliche Schlüsselwörter im Profil haben wie Du. Je mehr Schlüsselwörter Du in Dein Standard-Profil einträgst, desto besser werden die Suchergebnisse. Sie sind nach Relevanz sortiert.
|
||||
Auf Deiner „Verbindungen“-Seite und im Verzeichnis gibt es einen Link „Vorschläge“ bzw. „Kanal-Vorschläge“. Dort findest Du Kanäle, die gleiche oder ähnliche Schlüsselwörter im Profil haben wie Du. Je mehr Schlüsselwörter Du in Dein Standard-Profil einträgst, desto besser werden die Suchergebnisse. Sie sind nach Relevanz sortiert.
|
||||
|
||||
Siehe auch:
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[size=large][b]Registrieren[/b][/size]
|
||||
[h3]Registrieren[/h3]
|
||||
|
||||
Nicht alle Server in der Red-Matrix erlauben jedem, sich zu registrieren. Wenn eine Registrierung möglich ist, erscheint unter dem Anmelde-Formular ein Link mit dem Titel „Registrieren“, der Dich zur Registrierungs-Seite des Servers führt. Auf manchen Servern wirst Du auf einen anderen Server weitergeleitet, der Registrierungen erlaubt. Da alle Red-Server miteinander verbunden sind, ist es egal, auf welchem Du Dich registrierst.
|
||||
Nicht alle $Projectname-Hubs erlauben jedem, sich zu registrieren. Wenn eine Registrierung möglich ist, erscheint unter dem Anmelde-Formular ein Link mit dem Titel „Registrieren“, der Dich zur Registrierungs-Seite des Hubs führt. Auf manchen Hubs wirst Du auf einen anderen Hub weitergeleitet, der Registrierungen erlaubt. Da alle $Projectname-Hubs miteinander verbunden sind, ist es egal, auf welchem Du Dich registrierst.
|
||||
|
||||
[b]Deine E-Mail-Adresse[/b]
|
||||
|
||||
@@ -8,7 +8,7 @@ Bitte gib eine funktionierende E-Mail-Adresse an. Sie wird [b]nie[/b] veröffent
|
||||
|
||||
[b]Passwort[/b]
|
||||
|
||||
Gib ein Passwort Deiner Wahl ein und wiederhole es in der zweiten Box, um sicherzugehen, dass Du Dich nicht vertippt hast. Da die Red-Matrix dezentralisierten Identitäsnachweis beherrscht, kannst Du Dich mit Deinem Konto auf vielen anderen Webseiten anmelden.
|
||||
Gib ein Passwort Deiner Wahl ein und wiederhole es in der zweiten Box, um sicherzugehen, dass Du Dich nicht vertippt hast. Da $Projectname dezentralisierten Identitäsnachweis beherrscht, kannst Du Dich mit Deinem Konto auf vielen anderen Webseiten anmelden.
|
||||
|
||||
[b]Nutzungsbedingungen[/b]
|
||||
|
||||
@@ -27,7 +27,7 @@ Der Kanal-Name ist der Titel oder eine kurze Beschreibung des Kanals. Der „Spi
|
||||
Wenn Dein Kanal angelegt ist, geht es direkt weiter zu den Einstellungen. Dort kannst Du Zugriffsrechte setzen, Funktionen zu- oder abschalten und so weiter. Diese Punkte werden auf den entsprechenden Hilfeseiten erklärt.
|
||||
|
||||
Siehe auch
|
||||
[zrl=[baseurl]/help/accounts_profiles_channels_basics]Grundlagen zu Identitäten in der $Projectname[/zrl]
|
||||
[zrl=[baseurl]/help/accounts_profiles_channels_basics]Grundlagen zu Identitäten in $Projectname[/zrl]
|
||||
[zrl=[baseurl]/help/accounts]Konten[/zrl]
|
||||
[zrl=[baseurl]/help/profiles]Profile[/zrl]
|
||||
[zrl=[baseurl]/help/permissions]Zugriffsrechte[/zrl]
|
||||
|
||||
34
doc/develop.bb
Normal file
34
doc/develop.bb
Normal file
@@ -0,0 +1,34 @@
|
||||
[h2]Documentation for Developers[/h2]
|
||||
|
||||
[h3]Technical Documentation[/h3]
|
||||
[zrl=[baseurl]/help/Zot---A-High-Level-Overview]A high level overview of Zot[/zrl]
|
||||
[zrl=[baseurl]/help/zot]An introduction to Zot[/zrl]
|
||||
[zrl=[baseurl]/help/zot_structures]Zot Stuctures[/zrl]
|
||||
[zrl=[baseurl]/help/comanche]Comanche Page Descriptions[/zrl]
|
||||
[zrl=[baseurl]/help/Creating-Templates]Creating Comanche Templates[/zrl]
|
||||
[zrl=[baseurl]/help/Widgets]Widgets[/zrl]
|
||||
[zrl=[baseurl]/help/plugins]Plugins[/zrl]
|
||||
[zrl=[baseurl]/help/hooklist]Hooks (detailed - under construction)[/zrl]
|
||||
[zrl=[baseurl]/help/doco]Contributing Documentation[/zrl]
|
||||
[zrl=[baseurl]/help/DerivedTheme1]Creating Derivative Themes[/zrl]
|
||||
[zrl=[baseurl]/help/schema_development]Schemas[/zrl]
|
||||
[zrl=[baseurl]/help/Translations]Translations[/zrl]
|
||||
[zrl=[baseurl]/help/developers]Developers[/zrl]
|
||||
[zrl=[baseurl]/help/intro_for_developers]Intro for Developers[/zrl]
|
||||
[zrl=[baseurl]/help/database]Database schema documentation[/zrl]
|
||||
[zrl=[baseurl]/help/api_functions]API functions[/zrl]
|
||||
[zrl=[baseurl]/help/api_posting]Posting to $Projectname using the API[/zrl]
|
||||
[zrl=[baseurl]/help/developer_function_primer]Red Functions 101[/zrl]
|
||||
[zrl=[baseurl]/doc/html/]Code Reference (Doxygen generated - sets cookies)[/zrl]
|
||||
[zrl=[baseurl]/help/to_do_doco]To-Do list for the $Projectname Documentation Project[/zrl]
|
||||
[zrl=[baseurl]/help/to_do_code]To-Do list for Developers[/zrl]
|
||||
[zrl=[baseurl]/help/roadmap]Roadmap[/zrl]
|
||||
[zrl=[baseurl]/help/git_for_non_developers]Git for Non-Developers[/zrl]
|
||||
[zrl=[baseurl]/help/dev_beginner]Step-for-step manual for beginning developers[/zrl]
|
||||
|
||||
[h3]Frequently Asked Questions For Developers[/h3]
|
||||
[zrl=[baseurl]/help/faq_developers]FAQ For Developers[/zrl]
|
||||
|
||||
[h3]External Resources[/h3]
|
||||
[url=https://zothub.com/channel/one]Development Channel[/url]
|
||||
[url=https://federated.social/channel/postgres]Postgres-specific $Projectname Admin Support Channel[/url]
|
||||
@@ -64,6 +64,8 @@ In the interests of consistency we adopt the following code styling. We may acce
|
||||
|
||||
[li] Generally speaking, opening braces go on the same line as the thing which opens the brace. They are the last character on the line. Closing braces are on a line by themselves. [/li]
|
||||
|
||||
[li] Some functions take arguments in argc/argv style like main() in C or function args in bash or Perl. Urls are broken up within a module. e.g, given "http://example.com/module/arg1/arg2", then $this->argc will be 3 (integer) and $this->argv will contain: [0] => 'module', [1] => 'arg1', [2] => 'arg2'. There will always be one argument. If provided a naked domain URL, $this->argv[0] is set to "home".[/li]
|
||||
|
||||
[b]See Also[/b]
|
||||
[zrl=[baseurl]/help/sql_conventions]SQL Conventions[/zrl]
|
||||
|
||||
|
||||
95
doc/directories.bb
Normal file
95
doc/directories.bb
Normal file
@@ -0,0 +1,95 @@
|
||||
[h3]Directory Configuration[/h3]
|
||||
|
||||
Directories in $Projectname serve the purpose of searching and locating members anywhere in the network. They are also used to store and query "ratings" of members and sites. The directory services are distributed and mirrored so that a failure of one will not take down or disrupt the entire network.
|
||||
|
||||
[b]Standard Configuration[/b]
|
||||
|
||||
New sites operating as directory clients will automatically select from a hard-coded list of directory servers during their first directory access. You may examine or over-ride this decision using
|
||||
|
||||
[code]
|
||||
util/config system directory_server
|
||||
[/code]
|
||||
|
||||
To set a different server,
|
||||
|
||||
[code]
|
||||
util/config system directory_server https://newdirectory.something
|
||||
[/code]
|
||||
|
||||
|
||||
[b]Standalone configuration[/b]
|
||||
|
||||
Some sites may wish to operate in 'standalone' mode and not connect to any external directory services. This is useful for isolated sites ("off the gird") and test sites, but can also be useful for small organisations who do not wish to connect with other sites in the network.
|
||||
|
||||
To configure this, please look in your .htconfig.php file for the following text and set the configuration accordingly.
|
||||
|
||||
[code]
|
||||
// Configure how we communicate with directory servers.
|
||||
// DIRECTORY_MODE_NORMAL = directory client, we will find a directory
|
||||
// DIRECTORY_MODE_SECONDARY = caching directory or mirror
|
||||
// DIRECTORY_MODE_PRIMARY = main directory server
|
||||
// DIRECTORY_MODE_STANDALONE = "off the grid" or private directory services
|
||||
|
||||
$a->config['system']['directory_mode'] = DIRECTORY_MODE_STANDALONE;
|
||||
[/code]
|
||||
|
||||
|
||||
[b]Secondary server configuration[/b]
|
||||
|
||||
You may also configure your site as a secondary server. This operates as a mirror of the primary directory and allows disitribution of the load amongst available servers. There is very little functional difference between a primary and secondary sever, however there may only be *one* primary directory server per realm (realms are discussed later in this document).
|
||||
|
||||
Before choosing to be a directory server, please be advised that you should be an active member of the network and have the resources and time available to manage these services. They don't typically require management, but the requirement is more for stability as losing a directory server can cause issues to directory clients which are reliant on it.
|
||||
|
||||
|
||||
[b]Changing the directory server[/b]
|
||||
|
||||
If a directory server indicates that it is no longer a directory server, this should be detected by the software and the configuration for that server will be removed (blanked). If it goes offline permanently without warning, you will only know if site members report that directory services are unavailable. Currently this can only be repaired manually by the site administrator by selecting a new directory and performing:
|
||||
|
||||
[code]
|
||||
util/config system directory_server https://newdirectory.something
|
||||
[/code]
|
||||
|
||||
Eventually we hope to make this a selectable box from the site admin panel.
|
||||
|
||||
|
||||
[h2]Directory realms[/h2]
|
||||
|
||||
Large organisations may wish to use directory 'realms' rather than a single standalone directory. The standard and default realm is known as RED_GLOBAL. By creating a new realm, your organisation has the ability to create its own hierarchy of primary and secondary servers and clients.
|
||||
|
||||
[code]
|
||||
util/config system directory_realm MY_REALM
|
||||
[/code]
|
||||
|
||||
Your realm *must* have a primary directory. Create this first. Then set the realm the same on all sites within your directory realm (servers and clients).
|
||||
|
||||
You may also provide a "sub-realm" that operates indepently from the RED_GLOBAL realm (or any other realm) but allows cross membership and some ability to lookup members of the entire directory space. This has only undergone light testing so be prepared to help out and fix any issues that may arise. A sub-realm contains its parent realm within the realm name.
|
||||
|
||||
|
||||
[code]
|
||||
util/config system directory_realm RED_GLOBAL:MY_REALM
|
||||
[/code]
|
||||
|
||||
|
||||
[b]Realm access[/b]
|
||||
|
||||
You may wish that your directory servers and services are only used by members of your realm. To do this a token or password must be supplied to access the realm directory services. This token is not encrypted during transit, but is sufficient to prevent casual access to your directory servers. The following must be configured for all sites (clients and directory servers) within the realm:
|
||||
|
||||
[code]
|
||||
util/config system realm_token my-secret-realm-password
|
||||
[/code]
|
||||
|
||||
|
||||
|
||||
[h2]Directory mirrors[/h2]
|
||||
|
||||
Mirroring occurs with a daily transaction log of activities which are shared between directory servers. In the case of directory and profile updates, the channel address performing the update is transmitted, and the other directory servers probe that channel at its source for changes. We do not and should not trust any information given us by other directory servers. We always check the information at the source.
|
||||
|
||||
Ratings are handled slightly differently - an encrypted packet (signed by the channel that created the rating) is passed between the servers. This signature needs to be verified before the rating is accepted. Ratings are always published to the primary directory server and propagated to all other directory servers from there. For this reason there can only be one primary server in a realm. If a misconfigured site claims to be a primary directory, it is ignored in the RED_GLOBAL realm. For other realms there is currently no such protection. Be aware of this when working with alternate realms.
|
||||
|
||||
Newly created directory servers are not provided a "full dump", but for performance reasons and minimal disruption to the other servers in the network, they are brought online slowly. It may take up to a month for a new secondary directory server to provide a full view of the network. Please do not add any secondary servers to the hard-coded list of fallback directory servers until it has been operating as a directory for at least a month.
|
||||
|
||||
All channels are configured to "ping" their directory server once a month, at somewhat random times during the month. This gives the ability for the directory to discover dead channels and sites (they stop pinging). Subsequently they are marked dead or unreachable and over time will be removed from the directory results.
|
||||
|
||||
Channels may be configured to be "hidden" from the directory. These channels may still exist in the directory but will be un-searchable and some "sensitive" personal information will not be stored at all.
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -8,14 +8,14 @@ $Projectname provides distributed web publishing and social communications with
|
||||
|
||||
So what exactly are "decentralised permissions"? They give me the ability to share something on my website (photos, media, files, webpages, etc.) with specific people on completely different websites - but not necessarily [i]everybody[/i] on those websites; and they do not need a password on my website and do not need to login to my website to view the things I've shared with them. They have one password on their own website and "magic authentication" between affiliated websites in the network. Also, as it is decentralised, there is no third party which has the ability to bypass permissions and see everything in the network.
|
||||
|
||||
$Projectname combines many features of traditional blogs, social networking and media, content management systems, and personal cloud storage into an easy to use framework. Each node in the matrix can operate standalone or link with other nodes to create a super-network; leaving privacy under the control of the original publisher.
|
||||
$Projectname combines many features of traditional blogs, social networking and media, content management systems, and personal cloud storage into an easy to use framework. Each node in the grid can operate standalone or link with other nodes to create a super-network; leaving privacy under the control of the original publisher.
|
||||
|
||||
$Projectname is an open source webserver application written originally in PHP/MySQL and is easily installable by those with basic website administration skills. It is also easily extended via plugins and themes and other third-party tools.
|
||||
|
||||
[b][size=24]$Projectname Features[/size][/b]
|
||||
|
||||
|
||||
The $Projectname is a general-purpose web publishing and communication network, with several unique features. It is designed to be used by the widest range of people on the web, from non-technical bloggers, to expert PHP programmers and seasoned systems administrators.
|
||||
$Projectname is a general-purpose web publishing and communication network, with several unique features. It is designed to be used by the widest range of people on the web, from non-technical bloggers, to expert PHP programmers and seasoned systems administrators.
|
||||
|
||||
This page lists some of the core features of $Projectname that are bundled with the official release. As with most free and open source software, there may be many other extensions, additions, plugins, themes and configurations that are limited only by the needs and imagination of the members.
|
||||
|
||||
@@ -29,10 +29,14 @@ When adding connnections in $Projectname, members have the option of assigning "
|
||||
|
||||
On the other hand, when adding a friend's channel, they could be placed under the affinity level of "Friends".
|
||||
|
||||
At this point, the $Projectname [i]Affinity Slider[/i] tool, which usually appears at the top of your "Matrix" page, adjusts the content on the page to include those within the desired affinity range. Channels outside that range will not be displayed, unless you adjust the slider to include them.
|
||||
At this point, $Projectname [i]Affinity Slider[/i] tool, which usually appears at the top of your "Matrix" page, adjusts the content on the page to include those within the desired affinity range. Channels outside that range will not be displayed, unless you adjust the slider to include them.
|
||||
|
||||
The Affinity Slider allows instantaneous filtering of large amounts of content, grouped by levels of closeness.
|
||||
|
||||
[b]Connection Filtering[/b]
|
||||
|
||||
You have the ability to control precisely what appears in your stream using the optional "Connection Filter". When enabled, the Connection Editor provides inputs for selecting criteria which needs to be matched in order to include or exclude a specific post from a specific channel. Once a post has been allowed, all comments to that post are allowed regardless of whether they match the selection criteria. You may select words that if present block the post or ensure it is included in your stream. Regular expressions may be used for even finer control, as well as hashtags or even the detected language of the post.
|
||||
|
||||
[b]Access Control Lists[/b]
|
||||
|
||||
When sharing content, members have the option of restricting who sees the content. By clicking on the padlock underneath the sharing box, one may choose desired recipients of the post, by clicking on their names.
|
||||
@@ -43,7 +47,7 @@ Access Control Lists may be applied to content and posts, photos, events, webpag
|
||||
|
||||
[b]Single Sign-on[/b]
|
||||
|
||||
Access Control Lists work for all channels in the matrix due to our unique single sign-on technology. Most internal links provide an identity token which can be verified on other $Projectname sites and used to control access to private resources. You login once to your home hub. After that, authentication to all $Projectname resources is "magic".
|
||||
Access Control Lists work for all channels in the grid due to our unique single sign-on technology. Most internal links provide an identity token which can be verified on other $Projectname sites and used to control access to private resources. You login once to your home hub. After that, authentication to all $Projectname resources is "magic".
|
||||
|
||||
|
||||
[b]WebDAV enabled File Storage[/b]
|
||||
@@ -56,7 +60,7 @@ Store photos in albums. All your photos may be protected by Access Control Lists
|
||||
|
||||
[b]Events Calendar[/b]
|
||||
|
||||
Create and manage events, which may also be protected with Access Control Lists. Events can be exported to other software using the industry standard vcalendar/iCal format and shared in posts with others. Birthday events are automatically added from your friends and converted to your correct timezone so that you will know precisely when the birthday occurs - no matter where you are located in the world in relation to the birthday person. Events are normally created with attendance counters so your friends and connections can RSVP instantly.
|
||||
Create and manage events and tasks, which may also be protected with Access Control Lists. Events can be imported/exported to other software using the industry standard vcalendar/iCal format and shared in posts with others. Birthday events are automatically added from your friends and converted to your correct timezone so that you will know precisely when the birthday occurs - no matter where you are located in the world in relation to the birthday person. Events are normally created with attendance counters so your friends and connections can RSVP instantly.
|
||||
|
||||
[b]Chatrooms[/b]
|
||||
|
||||
@@ -81,11 +85,9 @@ Share and save/manage bookmarks from links provided in conversations.
|
||||
|
||||
[b]Private Message Encryption and Privacy Concerns[/b]
|
||||
|
||||
Messages marked [b]private[/b] are encrypted with AES-CBC 256-bit symmetric cipher, which is then protected (encrypted in turn) by public key cryptography, based on 4096-bit RSA keys, associated with the channel that is sending the message.
|
||||
Private mail is stored in an obscured format. While this is not bullet-proof it typically prevents casual snooping by the site administrator or ISP.
|
||||
|
||||
These private messages are also stored in an encrypted form on remote systems.
|
||||
|
||||
Each Red channel has it's own unique set of private and associated public RSA 4096-bit keys, generated when the channels is first created.
|
||||
Each $Projectname channel has it's own unique set of private and associated public RSA 4096-bit keys, generated when the channels is first created. This is used to protect private messages and posts in transit.
|
||||
|
||||
Additionally, messages may be created utilising "end-to-end encryption" which cannot be read by $Projectname operators or ISPs or anybody who does not know the passcode.
|
||||
|
||||
@@ -142,9 +144,9 @@ Forums are typically channels which may be open to participation from multiple a
|
||||
|
||||
[b]Account Cloning[/b]
|
||||
|
||||
Accounts in the $Projectname are referred to as [i]nomadic identities[/i], because a member's identity is not bound to the hub where the identity was originally created. For example, when you create a Facebook or Gmail account, it is tied to those services. They cannot function without Facebook.com or Gmail.com.
|
||||
Accounts in $Projectname are referred to as [i]nomadic identities[/i], because a member's identity is not bound to the hub where the identity was originally created. For example, when you create a Facebook or Gmail account, it is tied to those services. They cannot function without Facebook.com or Gmail.com.
|
||||
|
||||
By contrast, say you've created a Red identity called [b]tina@redhub.com[/b]. You can clone it to another Red hub by choosing the same, or a different name: [b]liveForever@Some$ProjectnameHub.info[/b]
|
||||
By contrast, say you've created a $Projectname identity called [b]tina@$Projectnamehub.com[/b]. You can clone it to another $Projectname hub by choosing the same, or a different name: [b]liveForever@Some$ProjectnameHub.info[/b]
|
||||
|
||||
Both channels are now synchronized, which means all your contacts and preferences will be duplicated on your clone. It doesn't matter whether you send a post from your original hub, or the new hub. Posts will be mirrored on both accounts.
|
||||
|
||||
@@ -152,11 +154,11 @@ This is a rather revolutionary feature, if we consider some scenarios:
|
||||
|
||||
- What happens if the hub where an identity is based suddenly goes offline? Without cloning, a member will not be able to communicate until that hub comes back online (no doubt many of you have seen and cursed the Twitter "Fail Whale"). With cloning, you just log into your cloned account, and life goes on happily ever after.
|
||||
|
||||
- The administrator of your hub can no longer afford to pay for his free and public $Projectname hub. He announces that the hub will be shutting down in two weeks. This gives you ample time to clone your identity(ies) and preserve your Red relationships, friends and content.
|
||||
- The administrator of your hub can no longer afford to pay for his free and public $Projectname hub. He announces that the hub will be shutting down in two weeks. This gives you ample time to clone your identity(ies) and preserve your$Projectname relationships, friends and content.
|
||||
|
||||
- What if your identity is subject to government censorship? Your hub provider may be compelled to delete your account, along with any identities and associated data. With cloning, the $Projectname offers [b]censorship resistance[/b]. You can have hundreds of clones, if you wanted to, all named different, and existing on many different hubs, strewn around the internet.
|
||||
- What if your identity is subject to government censorship? Your hub provider may be compelled to delete your account, along with any identities and associated data. With cloning, $Projectname offers [b]censorship resistance[/b]. You can have hundreds of clones, if you wanted to, all named different, and existing on many different hubs, strewn around the internet.
|
||||
|
||||
Red offers interesting new possibilities for privacy. You can read more at the <<Private Communications Best Practices>> page.
|
||||
$Projectname offers interesting new possibilities for privacy. You can read more at the <<Private Communications Best Practices>> page.
|
||||
|
||||
Some caveats apply. For a full explanation of identity cloning, read the <HOW TO CLONE MY IDENTITY>.
|
||||
|
||||
@@ -172,21 +174,21 @@ Backups can then be used to clone or restore a profile.
|
||||
|
||||
[b]Account Deletion[/b]
|
||||
|
||||
Accounts can be immediately deleted by clicking on a link. That's it. All associated content is then deleted from the matrix (this includes posts and any other content produced by the deleted profile). Depending on the number of connections you have, the process of deleting remote content could take some time but it is scheduled to happen as quickly as is practical.
|
||||
Accounts can be immediately deleted by clicking on a link. That's it. All associated content is then deleted from the grid (this includes posts and any other content produced by the deleted profile). Depending on the number of connections you have, the process of deleting remote content could take some time but it is scheduled to happen as quickly as is practical.
|
||||
|
||||
[b][size=20]Content Creation[/size][/b]
|
||||
|
||||
[b]Writing Posts[/b]
|
||||
|
||||
Red supports a number of different ways of adding rich-text content. The default is a custom variant of BBcode, tailored for use in $Projectname. You may also enable the use of Markdown if you find that easier to work with. A visual editor may also be used. The traditional visual editor for $Projectname had some serious issues and has since been removed. We are currently looking for a replacement.
|
||||
$Projectname supports a number of different ways of adding rich-text content. The default is a custom variant of BBcode, tailored for use in $Projectname. You may also enable the use of Markdown if you find that easier to work with. A visual editor may also be used. The traditional visual editor for $Projectname had some serious issues and has since been removed. We are currently looking for a replacement.
|
||||
|
||||
When creating "Websites", content may be entered in HTML, Markdown, BBcode, and/or plain text.
|
||||
|
||||
[b]Deletion of content[/b]
|
||||
Any content created in the $Projectname remains under the control of the member (or channel) that originally created it. At any time, a member can delete a message, or a range of messages. The deletion process ensures that the content is deleted, regardless of whether it was posted on a channel's primary (home) hub, or on another hub, where the channel was remotely authenticated via Zot (the $Projectname communication and authentication protocol).
|
||||
Any content created in $Projectname remains under the control of the member (or channel) that originally created it. At any time, a member can delete a message, or a range of messages. The deletion process ensures that the content is deleted, regardless of whether it was posted on a channel's primary (home) hub, or on another hub, where the channel was remotely authenticated via Zot ($Projectname communication and authentication protocol).
|
||||
|
||||
[b]Media[/b]
|
||||
Similar to any other modern blogging system, social network, or a micro-blogging service, Red supports the uploading of files, embedding of videos, linking web pages.
|
||||
Similar to any other modern blogging system, social network, or a micro-blogging service, $Projectname supports the uploading of files, embedding of videos, linking web pages.
|
||||
|
||||
[b]Previewing/Editing[/b]
|
||||
Post can be previewed prior to sending and edited after sending.
|
||||
|
||||
25
doc/fr/about.bb
Normal file
25
doc/fr/about.bb
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
$Projectname est un réseau de communication décentralisé, qui a pour but de proposer un moyen de communication qui est résistant à la censure, respecte la confidentialité et qui est indépendant des grandes companies mondiales. Ces companies géantes fonctionnent comme des espions. Ce sont des monopoles centralisés sur internet. A l'orignie internet ne fonctionnait pas ainsi, il était décentralisé.
|
||||
|
||||
$Projectname est libre et open source. Il est conçu pour pouvoir monter en charge depuis un petite Raspberry Pi jusqu'à un serveur puissant à plusieurs coeurs. Il peut être utilisé pour servir de moyen de communication entre quelques individus mais peut monter pour héberger plusieurs milliers d'utilisateurs.
|
||||
|
||||
$Projectname a pour but d'être utilisable sans documentation. Il est facile à utiliser pour un usage quotidien pour un utilisateur moyen mais aussi par des administrateurs système ou des développeurs.
|
||||
|
||||
Comment utiliser ? Cela dépend de ce que vous voulez en faire.
|
||||
|
||||
Il est écrit en php. Cela le rend facile à installer sur des hébergement actuels.
|
||||
|
||||
It is written in the PHP scripting language, thus making it trivial to install on any hosting platform in use today comme par exemple [url=http://mediatemple.com/]Media Temple[/url] ou bien [url=http://www.dreamhost.com/r.cgi?455365/]Dreamhost[/url] ou bien encore [url=https://www.linode.com]Linode[/url], [url=http://greenqloud.com]GreenQloud[/url] ou [url=https://aws.amazon.com]Amazon AWS[/url]. Il fonctionne aussi trés bien sur un VPS de OVH.
|
||||
|
||||
En d'autres mots, $Projectname peut tourner sur n'importe quelle plateforme qui a un serveur web, une base de donnée mysql et du php.
|
||||
|
||||
|
||||
En plus, $Projectname offre un grand nombre de suppléments :
|
||||
|
||||
[b]Identification en un clic :[/b] cela signifie que vous pouvez accéder à d'autres sits $Projectname simplement en cliquant sur un lien. L'authentificaiton se fera alors automatiquement sans mot de passe. Oubliez le temps ou il vous fallait un grand nom de mot de passe pour aller sur différents sites.
|
||||
|
||||
[b]Clone :[/b] Votre présence en ligne n'a plus besoin d'être faite sur un seul et unique site. Vous pouvez cloner ou importer votre identité (on peut aussi dire votre canal) sur un autre serveur (hub). Si votre serveur principal a des problème et s'arrête, pas de problème, vos contacts, vos messages seront continueront automatiquement à être accessible grĉe à votre canal clone. [i](*: Pour le moment seul les messages sont clonés)[/i]
|
||||
|
||||
[b]Confidentialité :[/b] Votre identité $Projectname (Zot IDs) peut être supprimé, sauvegardé ou cloné. L'utilisateur à le total contrôle sur ses donnés. Et si vous décidez de supprimer totalement votre compte avec tous le contenu, tout ce que vous avez à faire est de cliquer sur le bouton de suppression du compte. C'est immédiat. Aucune question ne vous sera posé sur la raion. Vous être libre de le faire quand vous voulez.
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
73
doc/fr/git_for_non_developers.bb
Normal file
73
doc/fr/git_for_non_developers.bb
Normal file
@@ -0,0 +1,73 @@
|
||||
[b]Git pour les non développeurs[/b]
|
||||
|
||||
Bon vous traduivez ou contribuez à un thème et chaque fois que vous faites un pull request, vous devez parler avec un des développeurs avant que vos changements soient pris en compte.
|
||||
|
||||
Vous devez trouver un petit tutorial pour vous aider à maintenair les choses synchronisé. C'est trés facile
|
||||
|
||||
|
||||
|
||||
After you've created a fork of the repo (just click "fork" at github), you need to clone your own copy.
|
||||
|
||||
For the sake of examples, we'll assume you're working on a theme called redexample (which does not exist).
|
||||
|
||||
[code]git clone https://github.com/username/red.git[/code]
|
||||
|
||||
Once you've done that, cd into the directory, and add an upstream.
|
||||
|
||||
[code]
|
||||
cd red
|
||||
git remote add upstream https://github.com/redmatrix/redmatrix
|
||||
[/code]
|
||||
|
||||
From now on, you can pull upstream changes with the command
|
||||
[code]git fetch upstream[/code]
|
||||
|
||||
Before your changes can be merged automatically, you will often need to merge upstream changes.
|
||||
|
||||
[code]
|
||||
git merge upstream/master
|
||||
[/code]
|
||||
|
||||
You should always merge upstream before pushing any changes, and [i]must[/i] merge upstream with any pull requests to make them automatically mergeable.
|
||||
|
||||
99% of the time, this will all go well. The only time it won't is if somebody else has been editing the same files as you - and often, only if they have been editing the same lines of the same files. If that happens, that would be a good time to request help until you get the hang of handling your own merge conflicts.
|
||||
|
||||
Then you just need to add your changes [code]git add view/theme/redexample/[/code]
|
||||
|
||||
This will add all the files in view/theme/redexample and any subdirectories. If your particular files are mixed throughout the code, you should add one at a time. Try not to do git add -a, as this will add everything, including temporary files (we mostly, but not always catch those with a .gitignore) and any local changes you have, but did not intend to commit.
|
||||
|
||||
Once you have added all the files you have changed, you need to commit them. [code]git commit[/code]
|
||||
|
||||
This will open up an editor where you can describe the changes you have made. Save this file, and exit the editor.
|
||||
|
||||
Finally, push the changes to your own git
|
||||
[code]git push[/code]
|
||||
|
||||
And that's it, your repo is up to date!
|
||||
|
||||
All you need to do now is actually create the pull request. There are two ways to do this.
|
||||
|
||||
The easy way, if you're using Github is to simply click the green button at the top of your own copy of the repository, enter a description of the changes, and click 'create pull request'. The
|
||||
main repository, themes, and addons all have their main branch at Github, so this method can be used most of the time.
|
||||
|
||||
Most people can stop here.
|
||||
|
||||
Some projects in the extended RedMatrix ecosphere have no Github presence, to pull request these is a bit different - you'll have to create your pull request manually. Fortunately, this isn't
|
||||
much harder.
|
||||
|
||||
[code]git request-pull -p <start> <url>[/code]
|
||||
|
||||
Start is the name of a commit to start at. This must exist upstream. Normally, you just want master.
|
||||
|
||||
URL is the URL of [i]your[/i] repo.
|
||||
|
||||
One can also specify <end>. This defaults to HEAD.
|
||||
|
||||
Example:
|
||||
[code]
|
||||
git request-pull master https://example.com/project
|
||||
[/code]
|
||||
|
||||
And simply send the output to the project maintainer.
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
12
doc/fr/main.bb
Normal file
12
doc/fr/main.bb
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
[zrl=[baseurl]/help/about][b]$Projectname c'est quoi ?[/b][/zrl]
|
||||
$Projectname est un logiciel de publication et de communication décentralisé qui vous permet de garder le contrôle de vos besoins et de vos données. C'est vous et seulement vous qui décidez qui vous autorisez à voir vos publications.
|
||||
|
||||
|
||||
[zrl=[baseurl]/help/features][b]$Projectname fonctionalités[/b][/zrl]
|
||||
$Projectname est un réseau global distribué qui est souple et peut monter en puissance depuis un petit site d'une personne jusqu'à pouvant héberger une communauté de nombreuses personnes.
|
||||
|
||||
$Projectname fonctionne en tant que réseau global distribué. Il est souple et peut monter en puissance. On peut l'utiliser pour une famille, pour une communauté en ligne, pour des forums, des blogs et des pages web.
|
||||
|
||||
[zrl=[baseurl]/help/what_is_zot][b]Zot c'est quoi ?[/b][/zrl]
|
||||
Zot est un protocole de communication inventé spécialement pour $Projectname. En tant que membre vous n'êtes plus lié à un site web unique ou à un hub grâce à l'identité nomade. Vous pouvez migrer facilement sur d'autres serveurs et garder vos contacts. Vous pouvez aussi cloner votre cannal et il se trouvera sur plusieurs serveurs. Au cas ou un serveur ne fonctionnerait plus, vous ne perdrez pas vos données. En plus si vous êtes dans $Projectname vous n'aurez plus besoin de vous identifier plusieurs fois même pour accéder à l'autres site $Projectname site. Zot est donc le coeur de $Projectname.
|
||||
20
doc/general.bb
Normal file
20
doc/general.bb
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
[h2]Project/Site Information[/h2]
|
||||
|
||||
[zrl=[baseurl]/help/Privacy]Privacy Policy[/zrl]
|
||||
|
||||
[zrl=[baseurl]/help/history]$Projectname history[/zrl]
|
||||
|
||||
[h3]External Resources[/h3]
|
||||
[zrl=[baseurl]/help/external-resource-links]External Resource Links[/zrl]
|
||||
|
||||
[url=https://github.com/redmatrix/hubzilla]Main Website[/url]
|
||||
[url=https://github.com/redmatrix/hubzilla-addons]Addon Website[/url]
|
||||
|
||||
[url=[baseurl]/help/credits]$Projectname Credits[/url]
|
||||
|
||||
[h3]About This $Projectname Hub[/h3]
|
||||
[zrl=[baseurl]/help/TermsOfService]Terms of Service For This Hub[/zrl]
|
||||
[zrl=[baseurl]/siteinfo]Hub Information (/siteinfo)[/zrl]
|
||||
[zrl=[baseurl]/siteinfo/json]Detailed Technical Hub Information in JSON format(/siteinfo/json)[/zrl]
|
||||
|
||||
@@ -65,7 +65,11 @@ This document assumes you're an administrator.
|
||||
this website. Can be overwritten by user settings.
|
||||
[b]system > projecthome[/b]
|
||||
Set the project homepage as the homepage of your hub.
|
||||
[b]system > workflowchannelnext[/b]
|
||||
[b]system > default_permissions_role[/b]
|
||||
If set to a valid permissions role name, use that role for
|
||||
the first channel created by a new account and don't ask for the "Channel Type" on
|
||||
the channel creation form. Examples of valid names are: 'social', 'social_restricted', 'social_private', 'forum', 'forum_restricted' and 'forum_private'. Read more about permissions roles [zrl=[baseurl]/help/roles]here[/zrl].
|
||||
[b]system > workflow_channel_next[/b]
|
||||
The page to direct users to immediately after creating a channel.
|
||||
[b]system > max_daily_registrations[/b]
|
||||
Set the maximum number of new registrations allowed on any day.
|
||||
@@ -112,7 +116,7 @@ This document assumes you're an administrator.
|
||||
[b]system > cron_hour[/b]
|
||||
Specify an hour in which to run cron_daily. By default with no config, this will run at midnight UTC.
|
||||
[b]system > minimum_feedcheck_minutes[/b]
|
||||
The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob
|
||||
The minimum interval between polling RSS feeds. If this is lower than the cron interval, feeds will be polled with each cronjob. Defaults to 60 if not set. The site setting can also be over-ridden on a channel by channel basis by a service class setting aptly named 'minimum_feedcheck_minutes'.
|
||||
[b]system > blacklisted_sites[/b]
|
||||
An array of specific hubs to block from this hub completely.
|
||||
[b]system > ignore_imagick[/b]
|
||||
@@ -133,7 +137,48 @@ This document assumes you're an administrator.
|
||||
How long to cache photos, in seconds. Default is 86400 (1 day).
|
||||
Longer time increases performance, but it also means it takes longer for changed permissions to apply.
|
||||
[b]system > poco_rating_enable[/b]
|
||||
Distributed reputation reporting and data collection may be disabled. If your site does not participate in distributed reputation you will also not be able to make use of the data from your connections on other sites. By default and in the absence of any setting it is enabled. Individual members can opt out by restricting who can see their connections or by not providing any reputation information for their connections.
|
||||
Distributed reputation reporting and data collection may be disabled. If your site does not participate in distributed reputation you will also not be able to make use of the data from your connections on other sites. By default and in the absence of any setting it is enabled. Individual members can opt out by restricting who can see their connections or by not providing any reputation information for their connections.
|
||||
[b]system > register_link[/b]
|
||||
path to direct to from the "register" link on the login form. On closed sites this will direct to 'pubsites'. For open sites it will normally redirect to 'register' but you may change this to a custom site page offering subscriptions or whatever.
|
||||
[b]system > max_import_size[/b]
|
||||
If configured, the maximum length of an imported text message. This is normally left at 200Kbytes or more to accomodate Friendica private photos, which are embedded.
|
||||
[b]system > tempdir[/b]
|
||||
Place to store temporary files, default is defined in the PHP configuration
|
||||
[b]system > uploaddir[/b]
|
||||
Location to upload files (default is system.tempdir)
|
||||
[b]system > disable_discover_tab[/b]
|
||||
This allows you to completely disable the ability to discover public content from external sites.
|
||||
[b]system > sys_expire_days[/b]
|
||||
How many days to keep discovered public content from other sites
|
||||
[b]system > openssl_encrypt[/b]
|
||||
Use openssl encryption engine, default is false (uses mcrypt for AES encryption)
|
||||
[b]system > max_tagged_forums[/b]
|
||||
Spam prevention. Limits the number of tagged forums which are recognised in any post. Default is 2. Only the first 'n' tags will be delivered as forums, the others will not cause any delivery.
|
||||
[b]system > openssl_conf_file[/b]
|
||||
Needed in some Windows installations to locate the openssl configuration file on the system.
|
||||
[b]system > hide_help[/b]
|
||||
Don't display help documentation link in nav bar
|
||||
[b]system > expire_delivery_reports[/b]
|
||||
Expiration in days for delivery reports - default 10
|
||||
|
||||
[b]Directory config[/b]
|
||||
[b]Directory search defaults[/b]
|
||||
[b]directory > safemode[/b]
|
||||
0 or 1.
|
||||
[b]directory > globaldir[/b]
|
||||
0 or 1. Default 0. If you visit the directory on a site you'll just see the members of that site by default. You have to go through an extra step to see the people in the rest of the network; and by doing so there's a clear delineation that these people *aren't* members of that site but of a larger network.
|
||||
[b]directory > pubforums[/b]
|
||||
0 or 1. Public forums *should* be default 0.
|
||||
[b]Directory server configuration (see [zrl=[baseurl]/help/directories]help/directories[/zrl])[/b]
|
||||
[b]system > directory_server[/b]
|
||||
[b]system > directory_primary[/b]
|
||||
[b]system > directory_realm[/b]
|
||||
[b]system > realm_token[/b]
|
||||
[b]system > directory_mode[/b]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
$Projectname History
|
||||
====================
|
||||
Hubzilla History
|
||||
================
|
||||
|
||||
$Projectname is a collaborative effort by the $Projectname community and based on work introduced in Friendica by the Friendica community. The core design, the project mission, and software base itself were created/written primarily by Mike Macgirvin and represent the culmination of over a decade of software design using variations of this platform and an evolving vision of the role of communication software in our lives. Many others have contributed to this work, both conceptually and in terms of actual code (way too many to list individually).
|
||||
Hubzilla is a community developed open source project based on work introduced in Friendica by the Friendica community and which previously was named Redmatrix. The core design, the project mission, and software base itself were created/written primarily by Mike Macgirvin and represent the culmination of over a decade of software design using variations of this platform and an evolving vision of the role of communication software in our lives. Many others have contributed to this work, both conceptually and in terms of actual code (far too many to list individually).
|
||||
|
||||
##Mike Macgirvin -- Biography
|
||||
|
||||
@@ -10,9 +10,9 @@ Mike Macgirvin is an American software engineer now living in Australia. He spen
|
||||
During a layoff round, Mike was let go from America Online in August 2001 and purchased a music store in Mountain View, California later to be known as "Sonica Music Company". Opening a retail store for non-essential goods at the beginning of a prolonged economic downturn was in retrospect probably not the wisest career move. Sonica eventually folded; in late 2006. Mike returned to working on software and systems support full-time and was employed briefly at Symantec before moving to Australia in early 2007. He currently lives on a farm "out in the middle of nowhere" and is employed as a Computer Systems Officer at the University of Wollongong.
|
||||
|
||||
|
||||
##$Projectname - The Early Years
|
||||
##Hubzilla - The Early Years
|
||||
|
||||
The software which went into creating $Projectname has been through three distinct historical phases. It began in 2003 when Mike Macgirvin was looking for a content management system to power the website for his music store and found the available solutions to be lacking in various respects. The project was born as the "PurpleHaze weblog" under the nom de plume "Nerdware Communications". It was a multi-user PHP/MySQL CMS which provided blogs, forums, photo albums, events and more. Initially it provided the basis for a social community and shopping for customers of the store, but was also linked to Mike's personal weblog running on another domain. The distinguishing characteristic of this software was the ability for so-called "normal users" to re-assemble the components and choose different content feeds - and in essence create their own personal "multi-user CMS" as a view. Their custom view was able to communicate with anybody else that used the system, but could be partitioned so that adult sites and motorcycle enthusiast sites would not be visible to each other and not clash (or in this case Mike's personal website and the music store website). This software was developed primarily from 2003 until 2008.
|
||||
The software which went into creating Hubzilla has been through several distinct historical phases. It began in 2003 when Mike Macgirvin was looking for a content management system to power the website for his music store and found the available solutions to be lacking in various respects. The project was born as the "PurpleHaze weblog" under the nom de plume "Nerdware Communications". It was a multi-user PHP/MySQL CMS which provided blogs, forums, photo albums, events and more. Initially it provided the basis for a social community and shopping for customers of the store, but was also linked to Mike's personal weblog running on another domain. The distinguishing characteristic of this software was the ability for so-called "normal users" to re-assemble the components and choose different content feeds - and in essence create their own personal "multi-user CMS" as a view. Their custom view was able to communicate with anybody else that used the system, but could be partitioned so that adult sites and motorcycle enthusiast sites would not be visible to each other and not clash (or in this case Mike's personal website and the music store website). This software was developed primarily from 2003 until 2008.
|
||||
|
||||
In 2006 this software was used as the prototype for Symantec's "safeweb" reputation and community site. It was developed and enhanced until about 2008. A rewrite took place in 2008 named "Reflection" but work stagnated as the community dwindled. The need for content management systems and communications software dropped dramatically during this time as humans flocked to the new social aggregrators - Facebook and Twitter.
|
||||
|
||||
@@ -32,19 +32,25 @@ Mike realised he did not want to be held hostage to the decisions that other pro
|
||||
Mike had been working on this project for some time and there were a number of things which needed re-writing, including the base communication protocol which Friendica used (DFRN or the "Distributed Friends and Relations Network" protocol). These ideas were starting to emerge as a different method of communication he called "zot". Zot began as a way to create a common language for federated websites, but there was no interest in this ability and as mentioned, the federated web was crumbling. The first version was soon scrapped and zot was re-designed and re-ignited as a streamlined communication protocol which was location-independent; e.g. not tied to any website. This would allow people to carry on unaffected if their website operator shut down temporarily or permanently. They wouldn't have to make friends all over again, and permissions of everything on the system wouldn't have to be changed to allow bob@site1 to see something that was private to him, even though he was now bob@site2. This was a serious problem with decentralisation. People moved and their online identities were lost and had to be re-created from scratch and existing relationships destroyed and had to be created all over again.
|
||||
|
||||
|
||||
##$Projectname
|
||||
##Redmatrix
|
||||
|
||||
In July 2012, Mike left the Friendica project and began development of "zot" and a new base project called "red" in his somewhat elusive *spare time*. Red is Spanish for "network". It wasn't really a "social network" and especially not a "federated social network". It was just Red (technically "la red"), or "the network". Work began by removing all the "federation" components and going back to basics - communication and remote authentication. It was a major re-write and took roughly six months before even basic communication was re-established. It was also no longer compatible with Friendica - which had been given to the "Friendica community" and by this time (December 2012) was developing separately on its own track.
|
||||
|
||||
It became clear during this time that the single most compelling feature of the project wasn't the social network at all, but the authentication layer and decentralised access control mechanisms. Combined with zot's location independence it created a new model for software which had never existed previously - decentralised identity-aware web publishing and single sign-on to any compatible provider across the web. These weren't *evolutionary*, they were **revolutionary**. One of the biggest flaws of the modern web is the reliance on different passwords for every service you use, or reliance on a single provider if you were to tie them to - say your Facebook login. Facebook can remove your account at any time. Gone. If you rely on their authentication for all your websites, your entire online identity - now gone. This is also what was missing from Friendica - a compelling software feature which could stand on its own, without requiring a social network and especially without requiring a federated social network with all the mentioned external dependencies.
|
||||
|
||||
An early visitor to the project noted that he had some difficulty finding the project on Google because of the choice of name - "red". Yes, this was a poor decision in retrospect. We were buried on page 23,712 of the search results. The concept that was emerging around this identity-aware publishing was that of "a matrix of inter-connected thought streams", since we didn't have a concept of "people" and "friends". All were just connected "channels" with different ways to connect. So "$Projectname" was chosen to give it a searchable name. It had nothing to do with the Matrix film and red and blue pills, though that is frequently cited (erronously); and in fact isn't a bad analogy.
|
||||
An early visitor to the project noted that he had some difficulty finding the project on Google because of the choice of name - "red". Yes, this was a poor decision in retrospect. We were buried on page 23,712 of the search results. The concept that was emerging around this identity-aware publishing was that of "a matrix of inter-connected thought streams", since we didn't have a concept of "people" and "friends". All were just connected "channels" with different ways to connect. So "Redmatrix" was chosen to give it a searchable name. It had nothing to do with the Matrix film and red and blue pills, though that is frequently cited (erronously); and in fact isn't a bad analogy.
|
||||
|
||||
The concept of identity-aware content was alien to anything that existed previously on the web, so to make it useful we had to provide the ability to use it for content. It needed content publishing tools. This brought back concepts from the old "Content Management System" on which the software was originally based. To get it up and running quickly we created a markup language for webpages called "Comanche" which let you describe a page in high-level terms based on bbcode tags. We also added WebDAV so you could put decentralised access control on files and drag/drop from your operating system. So now you could have private photos, webpages, files, events, conversations, chatrooms - and they are visible to those you choose - no matter what site they use. All they need is zot. And your viewers could move to another site or just pop up at a different site any time they want and we don't care. And it **also** had a built-in social network; with lots of additional privacy and encryption features which were added even before the Snowden revelations gave them added urgency.
|
||||
|
||||
Over time a few federation components re-emerged. The ability to view RSS feeds was important to many people. Diaspora never really managed to re-write their protocol, so that was re-implemented and allowed $Projectname to connect with Diaspora and Friendica again (Friendica still had their Diaspora protocol intact, so this was the most common language now remaining on the free web - despite its faults). Diaspora communications aren't able to make use of the advanced identity features, but they work for basic communications.
|
||||
Over time a few federation components re-emerged. The ability to view RSS feeds was important to many people. Diaspora never really managed to re-write their protocol, so that was re-implemented and allowed Redmatrix to connect with Diaspora and Friendica again (Friendica still had their Diaspora protocol intact, so this was the most common language now remaining on the free web - despite its faults). Diaspora communications aren't able to make use of the advanced identity features, but they work for basic communications.
|
||||
|
||||
|
||||
Mike resigned from the project as an active coordinator in early 2015.
|
||||
##Hubzilla
|
||||
|
||||
The Redmatrix project reached a point of stagnation in early 2015 as network growth leveled and active interest in the project declined. Mike met with several external high tech developers and innovators in a round of discussions that were called "Zotopia" in early 2015 to perform an independent review of the project and try to identify what had gone wrong and plan a route forward. The basic consensus is that the project suffered from bad marketing decisions which were compounded by mixed messages about the project goals and target audience. A "rival" project (Diaspora) was marketing itself as a Facebook competitor, but after some long discussions it was determined that Redmatrix wasn't a Facebook competitor at all, and too much emphasis was being placed on the "social network" and "anti-Facebook" features. It was a novel decentralisation platform with distributed identity and permissions, and as was pointed out, the "end user" was the wrong target market. These marketing mistakes were now identified with the project name and random sampling of various "customers" showed that none of them really had a clue about the software goals or target market segment. The mixed messages were associated with the brand identity and this was a problem.
|
||||
|
||||
The Redmatrix community held a vote and the project was renamed "Hubzilla", with a renewed identity and focus - to provide software for creating and ultimately linking together unrelated community websites or "hubs" into a global community. This is in fact what we were building all along, but didn't fully recognise it. The target audience for this software as it turns out is not the members or end users, but software integrators and digital community architects and builders. These in turn will be responsible for marketing their own product (their respective online communities) to end-users or members. The software solves a real world need of linking isolated and "walled garden" community sites together into a larger cooperative. The transition from Redmatrix to Hubzilla was complex and has taken several months as we consolidated the marketing and media assets to deliver a consistent message. It is still ongoing at this time, and should be completed in Q4 2015.
|
||||
|
||||
Mike stepped down as active coordinator for the project in early 2015 and turned management over to the community. He remains active as a Hubzilla developer.
|
||||
|
||||
#include doc/macros/main_footer.bb;
|
||||
|
||||
1
doc/hook/about_hook.bb
Normal file
1
doc/hook/about_hook.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]about_hook[/h2]
|
||||
1
doc/hook/accept_follow.bb
Normal file
1
doc/hook/accept_follow.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]accept_follow[/h2]
|
||||
1
doc/hook/account_downgrade.bb
Normal file
1
doc/hook/account_downgrade.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]account_downgrade[/h2]
|
||||
1
doc/hook/account_settings.bb
Normal file
1
doc/hook/account_settings.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]account_settings[/h2]
|
||||
1
doc/hook/account_settings_post.bb
Normal file
1
doc/hook/account_settings_post.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]account_settings_post[/h2]
|
||||
1
doc/hook/activity_received.bb
Normal file
1
doc/hook/activity_received.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]activity_received[/h2]
|
||||
1
doc/hook/affinity_labels.bb
Normal file
1
doc/hook/affinity_labels.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]affinity_labels[/h2]
|
||||
1
doc/hook/api_perm_is_allowed.bb
Normal file
1
doc/hook/api_perm_is_allowed.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]api_perm_is_allowed[/h2]
|
||||
1
doc/hook/atom_author.bb
Normal file
1
doc/hook/atom_author.bb
Normal file
@@ -0,0 +1 @@
|
||||
[h2]atom_author[/h2]
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user