mirror of
https://github.com/awesome-selfhosted/awesome-selfhosted.git
synced 2025-07-04 05:23:20 +00:00
Compare commits
1418 Commits
9bfad22cab
...
1.0.0
Author | SHA1 | Date | |
---|---|---|---|
f61de470aa | |||
a7a9fe289b | |||
a79a4b6703 | |||
10f0beb0c9 | |||
815965c421 | |||
ee1db1058c | |||
5ef4517f9b | |||
47ddc744a8 | |||
435af6a72e | |||
15f0fdcef4 | |||
a304aa50a8 | |||
57f53ef8df | |||
6c72d0876b | |||
b06565e29a | |||
ecd7932cdf | |||
969b2369ce | |||
4910f92c74 | |||
3158f04d42 | |||
074964461e | |||
ae5aa43f54 | |||
9ae081700a | |||
095e9be360 | |||
8879a4e461 | |||
bdf0d823ac | |||
b4cdea21a0 | |||
66264543ac | |||
5bed8ea694 | |||
c0d0f467e7 | |||
e393d77d06 | |||
6af3e1dcb7 | |||
ff21022329 | |||
bfac7089e2 | |||
7dc4f634c6 | |||
3c892a2486 | |||
2809bc4274 | |||
59ef9b1ce7 | |||
7bca148a2f | |||
0e1593595b | |||
dec503a3e9 | |||
2ebd521525 | |||
7bbdf5db59 | |||
7bd7080668 | |||
c00294cfb4 | |||
7ed190ebad | |||
6c1d0b2202 | |||
1321570b36 | |||
a6868a273b | |||
f476417709 | |||
6c2f2db227 | |||
69dce7ead8 | |||
63e03b46f1 | |||
bf299624dd | |||
bf88afade7 | |||
1583361f6b | |||
a31bfc6e55 | |||
c4d7088092 | |||
6ef0ef26ba | |||
a7d9cc93d0 | |||
827e48037d | |||
024aa3fa6c | |||
4ac9e7632a | |||
7464490837 | |||
d707415269 | |||
7f07b8b868 | |||
5ceae33a90 | |||
eace3129ee | |||
2ad13a2fbf | |||
0dd4e7b813 | |||
17f1f6a4c6 | |||
b979fa8708 | |||
f58d4613e3 | |||
f64204bad4 | |||
95fb2f63e3 | |||
89bd6af097 | |||
920ffbba54 | |||
d3a4fefab6 | |||
299c20baf6 | |||
f1db6c1662 | |||
075d1968d0 | |||
1dee4d9d38 | |||
3ce8820185 | |||
28f1fe1143 | |||
5a679b520d | |||
a377608593 | |||
24dacc7f9d | |||
b6eaa71ba1 | |||
7c467fa89d | |||
d8dd993a2e | |||
88a7498c15 | |||
66829858d2 | |||
3e0bb881b5 | |||
46ac6a782f | |||
f33bef0bb8 | |||
c1a1c429f0 | |||
81b5bc0249 | |||
0c43cfe46b | |||
a742c9afbe | |||
9f86aef9b3 | |||
672ce80ac5 | |||
e848003885 | |||
91795c73ac | |||
d93c28d8c3 | |||
1783cab280 | |||
f5828e98b2 | |||
b591f66264 | |||
5e691aec50 | |||
cf123a87ba | |||
c4d25d6df0 | |||
62bc8ab600 | |||
7d1a882bfb | |||
8d0944c4d9 | |||
00677ce437 | |||
0b79899457 | |||
3ba44246ab | |||
7c45bac27a | |||
500f309731 | |||
c1e751bf93 | |||
4961bb22e1 | |||
b97baa564d | |||
dcd259c50e | |||
91d2decf24 | |||
60d2deb443 | |||
33f34103fc | |||
449d569bc8 | |||
f29d91b320 | |||
2e0e142bf2 | |||
d22d53df89 | |||
3469b5b32e | |||
bd73b76d45 | |||
2d64ca24d4 | |||
e6cf23dbdc | |||
9332e57937 | |||
65e29a6b8d | |||
f4d709ba64 | |||
8cf81105ae | |||
1e82d94f65 | |||
03f58f8028 | |||
604183a691 | |||
9c63859e59 | |||
0736e7bdcf | |||
0361a28043 | |||
a33915150f | |||
61aa06987b | |||
636b69397d | |||
13ebfd4ca2 | |||
f5f296311f | |||
fb3a322982 | |||
a703f6c408 | |||
ddf37fb991 | |||
5a12655063 | |||
201755ecbb | |||
d1c4556247 | |||
60a9ebe081 | |||
a8ea8402a2 | |||
b7914b9982 | |||
bb22831a67 | |||
7c2a8ea163 | |||
e9518a73b6 | |||
dd7ebbdcc0 | |||
8cb5dc534f | |||
a5ab91d74e | |||
e9b10bd2a3 | |||
0d2e9d933b | |||
b1ebef89a8 | |||
58a273e96f | |||
e0eea6dfb3 | |||
e0657a128a | |||
51af0b654a | |||
a51be45ed1 | |||
a08e5bbfe6 | |||
ad658c9438 | |||
ddfa514c1a | |||
e531ceee9f | |||
51f3df7c95 | |||
7d89bde1ea | |||
8c72955372 | |||
f229480a62 | |||
1b68828744 | |||
f637a50de0 | |||
207aee05d0 | |||
3ce8ced520 | |||
93c80131d5 | |||
071193454c | |||
f191f4dfd4 | |||
c3518340a0 | |||
9b9676d7e9 | |||
cdd1ef751b | |||
27370be106 | |||
aaa00ade42 | |||
a11060ad99 | |||
2644f28e65 | |||
bd6807a495 | |||
60eb23dc2b | |||
9e60c89f5f | |||
f085d775dd | |||
a993ac9d52 | |||
cbb9bb3871 | |||
7abb388323 | |||
521e3fa48e | |||
8af6b1411c | |||
2082e6ea93 | |||
71a1901d1f | |||
6bd962ca80 | |||
fdc3169bcb | |||
48ffb823cc | |||
87e0cbce5f | |||
741efa2e5e | |||
9a0f2c442a | |||
c72d23cd35 | |||
9102005bfd | |||
6d6c9884fa | |||
20f49e01ba | |||
a944f54deb | |||
0d3964dd6f | |||
6683051e8b | |||
c5fb91ccb0 | |||
8c02acc6f9 | |||
74522a5926 | |||
9bd136901e | |||
3806782eb7 | |||
e3565d5ad5 | |||
3ab4316e44 | |||
cc0bfa98b4 | |||
f3705a9f0a | |||
5d99707737 | |||
982fb611c8 | |||
432fb87100 | |||
0a5fe3d03a | |||
06b7de90c1 | |||
6f9092acc8 | |||
d7ec5e46d3 | |||
43bdee2783 | |||
7cc20aa2fd | |||
87a604f8eb | |||
b4afb417c4 | |||
4c4ebd9e4e | |||
a2eb246f90 | |||
4ae17eac83 | |||
a660ff66e1 | |||
70f375a9b9 | |||
49a1ae632b | |||
b695b9368d | |||
ef55d038b8 | |||
5189bdeab2 | |||
f60ba98cb8 | |||
f870796e43 | |||
781a3f985e | |||
8e99876764 | |||
3f165071b0 | |||
dbc073ed98 | |||
a64459ee82 | |||
d0102227bd | |||
957f1d86ae | |||
8251b3b8b0 | |||
2a70c274f8 | |||
63ad338890 | |||
0a7fea9e00 | |||
b2991d0492 | |||
f9a5453978 | |||
1bfdf777ae | |||
4761a8e2ba | |||
8aff628d4b | |||
c7d6767b66 | |||
026e4960fa | |||
e9c4f431f3 | |||
9040535c97 | |||
efa918a1e2 | |||
43fd40ef0b | |||
aa32a087cf | |||
c11ff50048 | |||
1619bdae4a | |||
1ecadcdec9 | |||
ef57634b00 | |||
64aa2169b8 | |||
6235b02663 | |||
7b5b4ca930 | |||
68ef7b7b75 | |||
f0e1a4953c | |||
41fbf8ab40 | |||
3ad3279c03 | |||
61924ca74e | |||
bee49d812f | |||
b5202fd834 | |||
d75b087c09 | |||
51b0b509cb | |||
bcce59f041 | |||
d876c83bf6 | |||
17a6f6315f | |||
59ebd77abc | |||
d7514770ff | |||
58f19da697 | |||
9469ea2102 | |||
57cc41588d | |||
b5e526043f | |||
ff138e5675 | |||
7f1dba6f48 | |||
007c66b230 | |||
9d4e56bb61 | |||
222b325894 | |||
e02c423c70 | |||
a4d2958372 | |||
b0646fe037 | |||
d11060a8ee | |||
923d35241f | |||
079d8968a9 | |||
701f8bc04c | |||
80769d55ff | |||
9fd97da7b3 | |||
c9cc5f5a0b | |||
388f107503 | |||
4d3ff1c685 | |||
a40f92d022 | |||
2cab206d40 | |||
9e912b593f | |||
94a86b0d90 | |||
2863a2fab3 | |||
98a13a26ed | |||
3a58ec9035 | |||
9872ff37e8 | |||
351466f443 | |||
fc03a029e1 | |||
39d8d8eafa | |||
4c4e67b561 | |||
82f3d40365 | |||
6a483c4bc6 | |||
e401b6466d | |||
ba52b18ffe | |||
37f4c94414 | |||
f0276a47f5 | |||
49fe51348e | |||
11850601ef | |||
d85aa4ce78 | |||
c6d239ece9 | |||
70d50a1418 | |||
c9d199c9fa | |||
a19a9a4a37 | |||
33c44820e3 | |||
b926b82b9f | |||
3cd18b912d | |||
bf1f3c1654 | |||
2f60087eb4 | |||
00d1ed7ce6 | |||
541cbb0626 | |||
ce2644336e | |||
53bd0b3cba | |||
6d9dc9bf0b | |||
bed4382a42 | |||
64ebaff742 | |||
63da4ceeec | |||
50b6dc8dc4 | |||
a8d0d078e8 | |||
89f53f18dc | |||
1dea38840e | |||
483a779afb | |||
fe52370904 | |||
634a063944 | |||
7c184ff845 | |||
b9dbebb664 | |||
95531a05c1 | |||
47da281a91 | |||
f38ee95769 | |||
f293d88272 | |||
c6ca69431d | |||
9e618c64d6 | |||
e99f9b3b93 | |||
48629f7eef | |||
8c94d86756 | |||
01e55952f9 | |||
9cee02cf9f | |||
15c5247547 | |||
f53669462f | |||
ad67dee4f9 | |||
b18a24a9a6 | |||
267d5269a1 | |||
fb8d673fcc | |||
68eb3b4927 | |||
9d24880c2d | |||
ab03076161 | |||
8ba92f09ff | |||
f0e3e570c8 | |||
a65d4b4c4a | |||
5956ffb6a2 | |||
d6a639886f | |||
0eed8d0b06 | |||
44da5f1b55 | |||
681ca754f2 | |||
8119e61a15 | |||
e00978768c | |||
2244e49f54 | |||
46f77c6afd | |||
5628732eeb | |||
9d39b5dbee | |||
f6ac332168 | |||
8aec0e5376 | |||
672dd99d7a | |||
e816ce2f2d | |||
ce2818c65e | |||
14ca8ae1f5 | |||
4a54d0d5f1 | |||
21c3feb5b8 | |||
d4156c3566 | |||
d07f33124e | |||
37e08f9d79 | |||
fa0978cab8 | |||
0b8ce04eaa | |||
12227ff1ce | |||
e3a035332a | |||
3583b3f23e | |||
736f99cf06 | |||
d21ec45534 | |||
dd0300fa4e | |||
80e11b3079 | |||
00df92c035 | |||
ac53d2ea42 | |||
edce5ed35d | |||
5aefcf82c6 | |||
9dd31e1a7d | |||
46d5e1f049 | |||
3fd3aa4126 | |||
2f37bb5ffe | |||
5368841103 | |||
800e9c8722 | |||
be63956f82 | |||
57a378bb4e | |||
abdcba928a | |||
c13045e3d8 | |||
eb45aa278b | |||
d4b3650832 | |||
a07f10d6a7 | |||
2a3eeb5fe6 | |||
df6bfb104f | |||
e6ffd2d96e | |||
4a5dc93bc6 | |||
592a7bbbbb | |||
23033fa593 | |||
65598049d3 | |||
0da2ba496a | |||
40f851f57e | |||
c329960a8b | |||
02418ba9fa | |||
ff95f20802 | |||
bbb11e5160 | |||
e5fe123836 | |||
98df2754b6 | |||
363d5e66f7 | |||
59ad602f8a | |||
bdfd812c85 | |||
4fe61d67cf | |||
74b1705e4f | |||
ddadbc8f24 | |||
ea9f751bfe | |||
55ecf05f4d | |||
d887fa879a | |||
e6b610228d | |||
f566e4592d | |||
77756b073c | |||
01e6682137 | |||
f9156e0b2c | |||
2d8dfab453 | |||
2afd8d8ef5 | |||
0f3b48e82a | |||
9ddadc570a | |||
65103a4bef | |||
fbb74d976a | |||
794490c2bc | |||
e6e480d1c5 | |||
234d15270f | |||
a1f9d4cae2 | |||
dc98df1a94 | |||
e04b5a806c | |||
8f4929d286 | |||
5f8e804c92 | |||
abd5d2685b | |||
6a68881733 | |||
98b33b72fe | |||
84c1436376 | |||
f178c49a85 | |||
628affecf1 | |||
6380deeb5d | |||
4a089c94ab | |||
de0a926553 | |||
475ef3b918 | |||
98997929c5 | |||
f68204803a | |||
adf6744136 | |||
c698f36fed | |||
e43d2baa95 | |||
6ad396dd6d | |||
71b8b22fd5 | |||
518d02fe96 | |||
0076767343 | |||
af4e5ba76b | |||
5ff0007dc5 | |||
8ea2fce92f | |||
25e9967a8f | |||
4e5fca9f0a | |||
16bff51039 | |||
6ffc0723bc | |||
22e3533db5 | |||
63756fe4c9 | |||
af832c0c0c | |||
2d3b34b708 | |||
80ca3ec8f8 | |||
f9e3a9d2da | |||
694c76b9cf | |||
23842324ed | |||
f485780193 | |||
b7ed6a6ff8 | |||
dd1bf2feb3 | |||
c7862034aa | |||
d49c4297f3 | |||
49f8b5ebfe | |||
cd6323b362 | |||
4bf18bb2bf | |||
3a1f3da8df | |||
7201762226 | |||
65afa65dcd | |||
66ff280e15 | |||
0254885471 | |||
316c092a86 | |||
c660443d94 | |||
5d14873e75 | |||
2d683fb31e | |||
77821cbd2d | |||
d778a73569 | |||
87819fa5df | |||
8180650e78 | |||
94703e2ed0 | |||
09c1ec2b9a | |||
7490cb82db | |||
98b5022cde | |||
dd08b98964 | |||
bb91ebf010 | |||
99555193b9 | |||
d3981aa60d | |||
66361649b9 | |||
5dbcd3b345 | |||
d30ce8933a | |||
e1c330db94 | |||
c00111be3b | |||
d319b21b0a | |||
556dd27ffd | |||
7b75623c4f | |||
b55e5d81ad | |||
17cab9056b | |||
34c62860d6 | |||
47af00c5fd | |||
4833732527 | |||
20d6f0d482 | |||
f289684af4 | |||
48500b4b33 | |||
885748ae02 | |||
1ca30cd341 | |||
d99e0f4e3d | |||
bec66e7e35 | |||
6556130fb4 | |||
9cbbe01c14 | |||
8a023b8b38 | |||
4e3e0dfe1a | |||
49253b490c | |||
4c8acccbf8 | |||
39f9b60869 | |||
0b73c30f6e | |||
7cb22b4e58 | |||
5f5fa5ff24 | |||
7e4a639acc | |||
a0f57347ce | |||
8b7ad2b341 | |||
e02c61cbff | |||
b7c0d992ba | |||
76fa436a94 | |||
c6b1f895d4 | |||
0c0400c7a5 | |||
9a051c8f05 | |||
6962fc2b37 | |||
b82464f253 | |||
3fa99e945a | |||
0634ec2f83 | |||
0fc6a2e96c | |||
9dfae2cd3e | |||
d2649e0111 | |||
80c0ae1e4b | |||
168c36ebc4 | |||
05fd884fbe | |||
8cddd38b28 | |||
c287dfc844 | |||
122c698c87 | |||
b5c8ade593 | |||
1d66421ae1 | |||
1a8d21c892 | |||
1df5c6165b | |||
8ae6057c97 | |||
17fdde8ce4 | |||
9748ca7139 | |||
61da48d432 | |||
a80cbcd458 | |||
18dc75c1e9 | |||
b624f558b1 | |||
bd4a2512ea | |||
2292bf0c73 | |||
c948c95dae | |||
bb65ca46d6 | |||
66567a2ac9 | |||
113c0c3ec5 | |||
08a09ede35 | |||
99ffa09216 | |||
d908cb11fa | |||
aeecdf7968 | |||
e2f861d0e7 | |||
6ff2e84ee8 | |||
18cf8423f6 | |||
959497398b | |||
46bb0cf45f | |||
1d69f6543d | |||
af395b0d97 | |||
226a805509 | |||
faf5eeecc0 | |||
d8ad6e48fc | |||
577005850d | |||
73df70eaac | |||
65e86eb1e4 | |||
6902c4bced | |||
8099488f02 | |||
e31417f90c | |||
09b0a5547c | |||
b5ffa09c97 | |||
91fca9d615 | |||
a75c23a588 | |||
cc74a87900 | |||
c30c5ff6a3 | |||
04fe6e10ae | |||
e8cf05460c | |||
db5a244236 | |||
03873cdfd0 | |||
cc2f43591c | |||
a1b088a9d0 | |||
9e3cfcee95 | |||
af3871254c | |||
a60edde84d | |||
3854dfd246 | |||
873881fbfd | |||
f7246c6adf | |||
b6e76e3d4c | |||
6c612e9c2c | |||
904a7ab7d6 | |||
1dd78cacdd | |||
4f9b3a3fdd | |||
2f67271d8f | |||
67159233bd | |||
3bdff5d508 | |||
e29172002b | |||
58220cd197 | |||
5312f9e8af | |||
cd47ac49f2 | |||
f0aab70c6d | |||
df10a6df5c | |||
df999e1eda | |||
e1481f6654 | |||
66a7a00d51 | |||
809c18c237 | |||
5f62b526d2 | |||
ffb47f1f39 | |||
d414758806 | |||
d54af38628 | |||
d7ec09026a | |||
c87808e7aa | |||
749cc71630 | |||
64dcd080b6 | |||
1445f3b718 | |||
03e4801aaf | |||
e20b116c5c | |||
0c36027db0 | |||
06ed72ba88 | |||
41cb7ea05f | |||
dbfd014578 | |||
b41e3da80f | |||
95aaa24064 | |||
43d1d1cf8a | |||
c4b696fdd3 | |||
a2e7b726ce | |||
a4ac42bde7 | |||
7875dcdf4b | |||
8d74b1a658 | |||
cb88c3ecd6 | |||
17a730dc56 | |||
51094e4fbc | |||
40f8fc862d | |||
5740c9c081 | |||
1785bbcb7f | |||
3b8389acf6 | |||
2442327ac6 | |||
dcb09bcd8d | |||
447915dba9 | |||
f34175c548 | |||
c8ae874b09 | |||
ddf1b1679d | |||
1acd48b0d5 | |||
5dd42d5421 | |||
9ce8736585 | |||
f1a918287b | |||
c1f0eab009 | |||
a697b0145e | |||
3f6ea382ac | |||
770ee18031 | |||
f079f37c0e | |||
e8910f7e9d | |||
31cda5351b | |||
f314919c87 | |||
589f15266d | |||
c89de8d6f3 | |||
7fdf834320 | |||
beff54c938 | |||
b2fffa8a6f | |||
f080037242 | |||
c1cc5060de | |||
bf2704a5f8 | |||
628f7e7f1c | |||
0f29aba63e | |||
722ad365a1 | |||
d9581a2687 | |||
51229a95c9 | |||
b88c7c1c02 | |||
613237d31f | |||
527a25f3a6 | |||
eeaf86c50b | |||
4d96152144 | |||
b24d8deeea | |||
ef2398d4c1 | |||
4d572c49c4 | |||
666e91bc3a | |||
e4d112b4e3 | |||
81a866f4d0 | |||
79fb1f7e8a | |||
ac58d23abd | |||
d46222011d | |||
7ba3b0c28c | |||
b6823b1931 | |||
19f7ae91ae | |||
ad3915c0f2 | |||
3c46a078a2 | |||
fc99b3d943 | |||
046bfa47aa | |||
bf50b679ab | |||
e45b89d455 | |||
55273be7b9 | |||
98721a36df | |||
e3a9439826 | |||
a11515de7c | |||
049012901a | |||
0bbceaa600 | |||
6272d1736b | |||
cf25d85f5c | |||
91acf093c5 | |||
c39aee3a0a | |||
830fb7e635 | |||
71f58cf634 | |||
5e3fd92f9f | |||
1b8f69cef0 | |||
c93351d6fe | |||
6a4091b553 | |||
63776fdc97 | |||
d0ad0f737d | |||
a59a32bd0c | |||
0a54606f26 | |||
626400b86c | |||
a5376a32b5 | |||
4c62c25c3d | |||
6a811836e0 | |||
89c4d8e177 | |||
0531b70ad1 | |||
d5150735ec | |||
a1470c09cd | |||
c41a6218cb | |||
d0bd61b22e | |||
ebf764e8ff | |||
4ab0befe9e | |||
2c01282619 | |||
13071dc123 | |||
3a07acad99 | |||
d12de1152e | |||
b407066155 | |||
237edfed1f | |||
a4ce0aeec9 | |||
c8c5dd6216 | |||
2ee6b2f83f | |||
4df8d12abe | |||
5587e8fb54 | |||
06e78205f8 | |||
1bbf364a31 | |||
3f6b79b279 | |||
ce9db557a4 | |||
6b7a3b6395 | |||
f2d3a79f57 | |||
ee78fe45dd | |||
099374f345 | |||
f8d44769ad | |||
58be9311c8 | |||
8b56121e93 | |||
9722fc1fa7 | |||
9302f7e2e5 | |||
becb9be133 | |||
3eb988b22d | |||
e5ebfdca46 | |||
067dd4490d | |||
22cc665d1a | |||
738a5f5d02 | |||
8d2e4d94f8 | |||
375b1f5cf4 | |||
e3fef510fa | |||
23c51767df | |||
164f13c6aa | |||
00af046f47 | |||
3e0cb2029b | |||
694e468893 | |||
da5ba15123 | |||
0f13cded21 | |||
b73fb85a94 | |||
b07572fa49 | |||
1ad4bdac2d | |||
9df2b2016f | |||
858284e07b | |||
fd9aafc8c3 | |||
b3bd993f36 | |||
2d2f8311f1 | |||
aaf5915816 | |||
fff1f36578 | |||
ed4c62c1b0 | |||
612c6ec88f | |||
71e7c6974c | |||
549697b92f | |||
e7216f1c4e | |||
de7364b24c | |||
aa86428e24 | |||
1929ee5175 | |||
17e622aa28 | |||
c78e115a27 | |||
3c03ff64d5 | |||
97e48c8b79 | |||
e92844c0cd | |||
3f4ffbc833 | |||
72eac2f6e5 | |||
6d71065c08 | |||
e9c0959fe8 | |||
4194b9b808 | |||
033ad10110 | |||
9b5a51ea42 | |||
8bfc55bf32 | |||
4744f95033 | |||
c1fbd3ec3d | |||
93fceb7553 | |||
b7cdae15e1 | |||
825a2d53a6 | |||
ae32513613 | |||
e48d6a95ef | |||
2fbc4766b9 | |||
957301a095 | |||
5b9e0fae4a | |||
9e661a646b | |||
37d3099dab | |||
3cb810ff4e | |||
62d73cfec5 | |||
9167f0dd85 | |||
9af218722e | |||
5aee10cc63 | |||
6b8880e80f | |||
010d4bcbb4 | |||
9ab6427883 | |||
e3390ee32c | |||
34031d5505 | |||
8867c1a7ff | |||
6635ebb090 | |||
e5f26e72f7 | |||
5c1f0ec404 | |||
f1e63c1847 | |||
f7d304a42a | |||
d17ac12b7f | |||
b541ed5087 | |||
d9fce93775 | |||
0f47c7a5be | |||
7d585f8b95 | |||
650e464941 | |||
3484130ba9 | |||
740d3fe22b | |||
55f1c410b7 | |||
e7dd1db33e | |||
02967c0b4f | |||
c9b87b66fe | |||
af8f714480 | |||
13f37c0313 | |||
2c89a7adab | |||
2741be2a6c | |||
59d23d5c38 | |||
91ac33a488 | |||
3fbff4aebb | |||
148680c75b | |||
305ed8c855 | |||
7bde7445d2 | |||
3a4435d88e | |||
e252a0fbe3 | |||
d8f1782f61 | |||
66f56c6f3d | |||
e9acc78fae | |||
1bcc9b97ce | |||
3853c609af | |||
c4a38d9d38 | |||
2fe834f4c6 | |||
cd55279500 | |||
00085437b1 | |||
bdd5ac3660 | |||
41001a2d9a | |||
5ee9b924c5 | |||
5ca7b0fb44 | |||
1a018bae7e | |||
1052d370e6 | |||
ac0cb06f6f | |||
d6c0a95bf1 | |||
ca5aedb4b6 | |||
a53ba247c3 | |||
c3cc9974f3 | |||
6b9bf2d9ba | |||
6192d76f1f | |||
9d1a261221 | |||
c00b676b62 | |||
5f79a12702 | |||
079bbcb72f | |||
4ce82592b2 | |||
4b48fc7443 | |||
6d55b0634f | |||
9140064ae3 | |||
57b998046b | |||
ad252013ee | |||
a0089fff55 | |||
ed922ef829 | |||
c933f70bab | |||
4d8f102b80 | |||
2ae92c5773 | |||
a2626aae0d | |||
a842a25987 | |||
e2d104f66d | |||
420e858cf9 | |||
c3c55d9d4d | |||
405feea1f7 | |||
b8d3d2bb9a | |||
b58553bf00 | |||
525a6eab13 | |||
d1eb63a92d | |||
2714406f23 | |||
9eb6ea7cf0 | |||
abc1339bdd | |||
2417261ad1 | |||
2398b5f24a | |||
4785d0f4a9 | |||
8659fbbca1 | |||
28d172f25d | |||
234b94eb69 | |||
6b886666a6 | |||
64497665b9 | |||
4109c0fddf | |||
725e56e2ed | |||
41ad462c7b | |||
5f7134168a | |||
3dd58dfdb5 | |||
db693fa661 | |||
05ff16fa3c | |||
3859dede57 | |||
89d6fe0869 | |||
d94efeb0e9 | |||
8a5db9101f | |||
aab6a62054 | |||
68ff740dee | |||
3dc4387ab9 | |||
35ac2e171c | |||
d889a9d6ed | |||
991747f2c7 | |||
a7e37619bf | |||
2e0c20b75c | |||
3eeaf1ad9d | |||
87e2547758 | |||
01372b7b7c | |||
555a413d3c | |||
17e6a315cb | |||
d647beb280 | |||
1034169bb7 | |||
0567b11370 | |||
7e52511ef9 | |||
6ceee206f8 | |||
c9fc08dbfe | |||
04c0151ba5 | |||
58ebd23873 | |||
2a15749b45 | |||
46e290312e | |||
3289a7914e | |||
d9b13f30be | |||
ad5a302ed5 | |||
b5b69c78b6 | |||
59e9c62a6f | |||
68689f9ab5 | |||
834c5cb4c1 | |||
134981c72d | |||
e75f54fb37 | |||
b0adb9ac35 | |||
a8cdcffa79 | |||
4b2895761e | |||
3f8d09691b | |||
e319edc832 | |||
287c863c05 | |||
8a662d8870 | |||
e30a714861 | |||
e6d48d1175 | |||
d5cfad9aa8 | |||
d0aa446970 | |||
dd09b5652a | |||
e5a9f11751 | |||
d0245c7c18 | |||
1a1cbcdeff | |||
3497bb85ba | |||
12e42a68b0 | |||
822f2613cc | |||
60991beb55 | |||
5e02749b80 | |||
c9a0a22d2d | |||
3943238877 | |||
7acf357572 | |||
4e16188777 | |||
96e8f63f7b | |||
a417ffac63 | |||
0722c067c1 | |||
d586b6bb61 | |||
9d07072933 | |||
86cc669200 | |||
0eec067604 | |||
86599482d3 | |||
beac992e56 | |||
65fff9a401 | |||
13938fb692 | |||
824b28ec0c | |||
0cf54fcc03 | |||
824da3d803 | |||
d38581139b | |||
49f3b4da7c | |||
8122c232f3 | |||
bde2bfd57d | |||
2c8a2d32af | |||
73d62ecc4c | |||
8190051720 | |||
56ee83baf1 | |||
2d91c6529f | |||
6e7902b471 | |||
fc1e731449 | |||
60bbdd2e96 | |||
df05db9a3e | |||
6889c02a30 | |||
4f58843bd6 | |||
419ec0eeeb | |||
0fbd9cefb6 | |||
1ac605686f | |||
6bac39e1d9 | |||
92cf0d7ed1 | |||
28f475dd21 | |||
a7e2eec9ad | |||
d30fb5b3c2 | |||
2f54ddd9de | |||
59844fac9c | |||
6087c0722f | |||
199bd51a77 | |||
8770d86da6 | |||
2e3cdf2fce | |||
f778905ffb | |||
df8bd337c7 | |||
ad159fa710 | |||
d4b6bd6ef0 | |||
b114a1ccaf | |||
2e07c4eae5 | |||
6e8024be43 | |||
bad6647410 | |||
16c86053d9 | |||
7a238334ec | |||
2fd0ffa631 | |||
1226935956 | |||
0e3ddf7280 | |||
2eba2d2f32 | |||
bb610d5e7c | |||
4d74e47cd4 | |||
213da3984e | |||
bcd244c54e | |||
b5c45dedb3 | |||
b2ac667078 | |||
77504d4a5a | |||
c9133362b7 | |||
dfa268d88f | |||
c600371a56 | |||
12581f50e5 | |||
50b262d0d9 | |||
ebb862e886 | |||
fcf6af651a | |||
6a88e22068 | |||
20ae78df26 | |||
1767767acc | |||
2fa837c622 | |||
cf0c359aa6 | |||
2e099d0ee5 | |||
e6a3096722 | |||
7a33222f3d | |||
e96c676a35 | |||
4ea6219e00 | |||
124cff7891 | |||
ec734cd03f | |||
c42e3a4c62 | |||
025e01426a | |||
4d6e9e86a4 | |||
6c6dcff366 | |||
92b82867d1 | |||
6cba53e1ff | |||
58a22919b0 | |||
e4aaa4b9ce | |||
f16e923388 | |||
e65714ccf0 | |||
0c0efee52d | |||
6f2e117491 | |||
9c1c3a5191 | |||
f9c388e666 | |||
1c2912e6b1 | |||
64bb105769 | |||
f406a5c177 | |||
7779bd968a | |||
66cd4acf1f | |||
a95bf17e01 | |||
b8854bf7f9 | |||
511f484a4c | |||
5d9f553463 | |||
278077434c | |||
ae69cb9576 | |||
091787ddca | |||
7ab2fdb919 | |||
cdb5a7916e | |||
b5753461f1 | |||
28f790c304 | |||
cc86937be6 | |||
f3299bd0f5 | |||
fc18d740c6 | |||
dce36583ab | |||
6dfabeed5a | |||
3353a29683 | |||
16ecb65793 | |||
1a26cae08b | |||
8ca4fb1d6c | |||
7129ae7ef6 | |||
fef918269e | |||
16de6bf865 | |||
a3817c7472 | |||
a6ecd593f4 | |||
47e2a0b176 | |||
7b9057c8b4 | |||
19eca74737 | |||
99ac615059 | |||
95402747b6 | |||
e7f367d509 | |||
2619bd0c4a | |||
5534e3dc0a | |||
d4722d7568 | |||
d988d53cee | |||
4d82aad279 | |||
bfbb326974 | |||
e7ef70bff5 | |||
9428c8f2bb | |||
7797400cb8 | |||
0a851b2ffb | |||
10e560655e | |||
286ed8698f | |||
b45684ab89 | |||
6d84aed69b | |||
9fc35c6bfd | |||
2654bc58e0 | |||
7497ea88d1 | |||
8d0c00a0f7 | |||
9ffd9411eb | |||
d79358db2f | |||
5d452c07a9 | |||
60817b02a2 | |||
40bd794c1f | |||
a16d68a494 | |||
b48af992cf | |||
7639610c2c | |||
9319cb270a | |||
6abc34c892 | |||
f8cc725d7d | |||
840154367e | |||
24c2676646 | |||
9c83bf82f1 | |||
1fed726348 | |||
967f350a6a | |||
b1d06dc8c8 | |||
3d49a93c2d | |||
ffa77532a2 | |||
db7215f9ee | |||
3b57f1111f | |||
d056e42c46 | |||
89ad78b95c | |||
75edeee814 | |||
09011d06fc | |||
2642019934 | |||
655b4cb902 | |||
63b08d8fa1 | |||
dbcd055817 | |||
535c48d5e2 | |||
c62b984f62 | |||
b3ebf21b0c | |||
2667119ec8 | |||
dba000edbf | |||
7d4d2f7a34 | |||
f0f7f13f4e | |||
4b25e93e66 | |||
a2a3c1d8f7 | |||
0f606cbe4b | |||
288a87e604 | |||
88c69a15af | |||
f3eb10b9f6 | |||
edf0a39a98 | |||
c26f5737c2 | |||
c82f679eef | |||
c71bda5a22 | |||
d57a905e29 | |||
c1fc3d67e5 | |||
676b4a62ba | |||
34346ac43c | |||
6b5757c366 | |||
1f34395e53 | |||
b2794fdeda | |||
e55b7761c7 | |||
3a078034d4 | |||
b41943b0dc | |||
e20be98508 | |||
d5b9adce80 | |||
b1b3c934a0 | |||
1d77751139 | |||
aca30fcf4b | |||
21c31bd0f0 | |||
675120ab08 | |||
d6a0942b23 | |||
88cd8dde17 | |||
86fd752e70 | |||
49b9f63bb1 | |||
5e619a7c95 | |||
9894537f4d | |||
bb31391f23 | |||
030630271f | |||
f5b256fca4 | |||
cda06d0993 | |||
781bf0cdcb | |||
01a90cc46f | |||
3f949c75a5 | |||
fd0f8193c2 | |||
8f0e487a92 | |||
0bcd607a42 | |||
4c07f7f2ae | |||
3e61ab40f5 | |||
b22b676d25 | |||
f654d06398 | |||
efb458db6f | |||
8037ce1371 | |||
deafe2fe75 | |||
e0f4bb36bd | |||
b95fdfdb1b | |||
818269bc69 | |||
0adfeb8678 | |||
d1ea180c3b | |||
e892f0897e | |||
bcf33455fa | |||
1ad006e7a3 | |||
c7fc68f580 | |||
65a041a32f | |||
3bef9c3f72 | |||
84ca09074e | |||
2f7730d903 | |||
4805d70c27 | |||
ea6149e655 | |||
6ee122be42 | |||
f98be28615 | |||
9731e60217 | |||
4aad8c648d | |||
dccff4a7db | |||
427c76553c | |||
3cdc637b0f | |||
36c97da576 | |||
0544d65910 | |||
a68b6dfd3b | |||
7b354ffddd | |||
80a4609d68 | |||
f344708559 | |||
71e206b76e | |||
86d28b5ee4 | |||
55d4209cdc | |||
57478b0cf1 | |||
f0b2a6ce06 | |||
d52cbdc153 | |||
b53a9d42cc | |||
e310e5d74c | |||
84be8052e1 | |||
18c52e7a7a | |||
bd2b4b5331 | |||
dec2e90c0e | |||
d9e46b2f18 | |||
a9901b88b1 | |||
02e43b58b8 | |||
5e3a7368dc | |||
a5eb8c88e7 | |||
5156e17954 | |||
e6f492d23e | |||
a1bc544686 | |||
c8d505959a | |||
7c00209bfc | |||
92874e9a99 | |||
1775d40110 | |||
35114d08a1 | |||
5d96278c2b | |||
1c49f47a2f | |||
8daed4f3af | |||
c8e4cc7663 | |||
ba88847b06 | |||
6e451aca18 | |||
ce1c395d7d | |||
386c72737e | |||
5cdf1be8ae | |||
20c52e1bb5 | |||
70eb143185 | |||
ec80543006 | |||
0d63a77bf1 | |||
7e31fe0b3f | |||
0167b55fb2 | |||
01804a7f7f | |||
41fd7dd496 | |||
401f2eca9a | |||
87389c26e1 | |||
ac629750b7 | |||
a765cd535f | |||
125f99e1a9 | |||
d0a47bcb46 | |||
9e15e07d70 | |||
1a72c01403 | |||
acd9e3ad8e | |||
b0c9a8741d | |||
5c1d188cfb | |||
08950e2c46 | |||
70de8192b1 | |||
818d1c3cf8 | |||
56a5e88e7f | |||
9c721e318f | |||
54128d6ce9 | |||
88ce9e1204 | |||
5b157d2c9e | |||
e6baf6edf2 | |||
7d1ac1f264 | |||
af6352b7c7 | |||
dcf51191af | |||
99eb358319 | |||
eb2b717801 | |||
14218e45f5 | |||
6477a4769c | |||
b741c1c489 | |||
85ae2529bb | |||
070729eee2 | |||
e431422ab1 | |||
ecb03af144 | |||
254fd46d53 | |||
2e1a628487 | |||
3d416909d5 | |||
cd0ca72258 | |||
86706df2a8 | |||
5febe3094c | |||
56569ad081 | |||
e3dc710254 | |||
256b8558df | |||
016ad724c6 | |||
0ce994b869 | |||
70e36267c5 | |||
30f64ec613 | |||
ad6e8e78f2 | |||
2c0dc3a480 | |||
b7012e8c14 | |||
30baf4beb3 | |||
bd693650e4 | |||
68e1c2f0c2 | |||
99999009a4 | |||
dbd183d4a0 | |||
e9e321e4c7 | |||
854264703a | |||
9386400204 | |||
7b9a1684da | |||
f1295a39ac | |||
e5750fcf79 | |||
c552382e32 | |||
a7f1922b76 | |||
98ca2cda1c | |||
7b31358457 | |||
a14f000aab | |||
7051720b0e | |||
3bb17277eb | |||
4d421faf32 | |||
5f05b254f5 | |||
1726a409c3 | |||
592dbb7254 | |||
0c487c99e4 | |||
ffff6519d1 | |||
b3f0a5a5f3 | |||
4b4a083b3b | |||
4ae2404af0 | |||
5756466f40 | |||
7a75b7af39 | |||
f8e8a3b3c1 | |||
75d2ef2d54 | |||
50a9a519c9 | |||
355a77face | |||
518047d20f | |||
1e2ae06441 | |||
b4cc095a27 | |||
7cc7082856 | |||
bace66bdb0 | |||
c6d73f858e |
12
.github/.mailmap
vendored
12
.github/.mailmap
vendored
@ -1,12 +0,0 @@
|
|||||||
Kickball <ed.kickball@hotmail.com> <ed.kickball@hotmail.com>
|
|
||||||
Andrew Rylatt <arylatt@users.noreply.github.com> Andrew Rylatt
|
|
||||||
Andrew Rylatt <arylatt@users.noreply.github.com> <AndyR207@users.noreply.github.com>
|
|
||||||
Andrew Rylatt <arylatt@users.noreply.github.com> <andrew@rylatt.me>
|
|
||||||
Andrew Rylatt <arylatt@users.noreply.github.com> <andrew.rylatt@citrix.com>
|
|
||||||
n8225 <n8225@users.noreply.github.com> <nrew225@gmail.com>
|
|
||||||
Thomas Dalichow <info@thomasdalichow.de> <2012-02-05.github.com@thomasdalichow.de>
|
|
||||||
Keith Thibodeaux <kthibodeaux@peachtreebilling.com> Keith Thibodeaux <kthib89+github@gmail.com>
|
|
||||||
Madhu GB <github@madhugb.com> Madhu GB <me@madhugb.com>
|
|
||||||
Miguel Piedrafita <github@miguelpiedrafita.com> <git@miguelpiedrafita.com>
|
|
||||||
Pavel Lobashov <ShockwaveNN@gmail.com> Pavel Lobashov <shockwavenn@gmail.com>
|
|
||||||
Stefan Bohacek <stefan.bohacek@gmail.com> Stefan Bohacek <stefan@fourtonfish.com>
|
|
16
.github/CONTRIBUTING.md
vendored
16
.github/CONTRIBUTING.md
vendored
@ -1,16 +0,0 @@
|
|||||||
## Contributing
|
|
||||||
|
|
||||||
Please open a new issue to clarify any questions, or post in the [General discussion issue](https://github.com/awesome-selfhosted/awesome-selfhosted/issues/89).
|
|
||||||
|
|
||||||
All guidelines for adding new software to the list are listed in [PULL_REQUEST_TEMPLATE.md](PULL_REQUEST_TEMPLATE.md).
|
|
||||||
|
|
||||||
Other recommendations:
|
|
||||||
|
|
||||||
- To add a new entry, [edit the README.md file](https://github.com/awesome-selfhosted/awesome-selfhosted/edit/master/README.md) through Github's web interface or a text editor, and send a Pull Request.
|
|
||||||
- See [Editing files in another user's repository](https://help.github.com/articles/editing-files-in-another-user-s-repository/), [Creating Pull Requests](https://help.github.com/articles/creating-a-pull-request/), [Using Pull Requests](https://help.github.com/articles/using-pull-requests/) for help on sending your patch.
|
|
||||||
- A script to help you format new entries is available at (it requires `make` to be installed): `git clone`/[download](https://github.com/awesome-selfhosted/awesome-selfhosted/archive/master.zip) and enter the repository, run `make add` and follow the instructions.
|
|
||||||
- A website to help you format new entries is available at https://n8225.github.io/
|
|
||||||
- The list of contributors can be updated with `make contrib`.
|
|
||||||
- Software with no development activity for 6-12 months may be removed from the list.
|
|
||||||
- Don't know where to start? Check issues labeled [`help wanted`](https://github.com/awesome-selfhosted/awesome-selfhosted/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) and [`fix`](https://github.com/awesome-selfhosted/awesome-selfhosted/issues?q=is%3Aissue+is%3Aopen+label%3Afix).
|
|
||||||
|
|
31
.github/PULL_REQUEST_TEMPLATE.md
vendored
31
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,30 +1 @@
|
|||||||
<!-- DO NOT DELETE THE TEXT BELOW. Please make sure relevant boxes are checked [x] -->
|
Please do not submit pull requests in this repository. Use https://github.com/awesome-selfhosted/awesome-selfhosted-data instead.
|
||||||
|
|
||||||
Thank you for taking the time to work on a PR for Awesome-Selfhosted!
|
|
||||||
|
|
||||||
To ensure your PR is dealt with swiftly please check the following:
|
|
||||||
|
|
||||||
- [ ] Submit one item per pull request. This eases reviewing and speeds up inclusion.
|
|
||||||
- [ ] Format your submission as follows, where `Demo` and `Clients` are optional.
|
|
||||||
Do not add a duplicate `Source code` link if it is the same as the main link.
|
|
||||||
Keep the short description under 250 characters and use [sentence case](https://en.wikipedia.org/wiki/Letter_case#Sentence_case)
|
|
||||||
for it, even if the project's webpage or readme uses another capitalisation
|
|
||||||
such as title case, all caps, small caps or all lowercase.
|
|
||||||
`Demo` links should only be used for interactive demos, i.e. not video demonstrations.
|
|
||||||
``- [Name](http://homepage/) - Short description, under 250 characters, sentence case. ([Demo](http://url.to/demo), [Source Code](http://url.of/source/code), [Clients](https://url.to/list/of/related/clients-or-apps)) `License` `Language` ``
|
|
||||||
- [ ] Additions that depend on proprietary services outside the user's control must be marked `⚠`.
|
|
||||||
``- [Name](http://homepage/) `⚠` - Short description, under 250 characters, sentence case. ([Demo](http://url.to/demo), [Source Code](http://url.of/source/code), [Clients](https://url.to/list/of/related/clients-or-apps)) `License` `Language` ``
|
|
||||||
- [ ] Additions that are not [Free software](https://en.wikipedia.org/wiki/Free_software)
|
|
||||||
must be added to `non-free.md` and marked `⊘ Proprietary`:
|
|
||||||
``- [Name](http://homepage/) `⊘ Proprietary` - Short description, under 250 characters, sentence case. ([Demo](http://url.to/demo), [Source Code](http://url.of/source/code), [Clients](https://url.to/list/of/related/clients-or-apps)) `Language` ``
|
|
||||||
- [ ] Additions are inserted preserving alphabetical order.
|
|
||||||
- [ ] Additions are not already listed at any of [awesome-sysadmin](https://github.com/n1trux/awesome-sysadmin), [awesome-analytics](https://github.com/onurakpolat/awesome-analytics), [staticgen.com](https://www.staticgen.com/), [staticsitegenerators.net](https://staticsitegenerators.net/).
|
|
||||||
- [ ] The `Language` tag is the main **server-side** requirement for the software. Don't include frameworks or specific dialects.
|
|
||||||
- [ ] Any license you add is in our [list of licenses](https://github.com/awesome-selfhosted/awesome-selfhosted/blob/master/README.md#list-of-licenses).
|
|
||||||
- [ ] You have searched the repository for any relevant [issues](https://github.com/awesome-selfhosted/awesome-selfhosted/issues) or [PRs](https://github.com/awesome-selfhosted/awesome-selfhosted/pulls), including closed ones.
|
|
||||||
- [ ] Any category you are creating has the minimum requirement of 3 items.
|
|
||||||
If not, your addition may be inserted into `Misc/Other`.
|
|
||||||
- [ ] Any software project you are adding to the list is actively maintained.
|
|
||||||
- [ ] The pull request title is informative, unlike "Update README.md".
|
|
||||||
Suggested titles: "Add aaa to bbb" for adding software aaa to section bbb,
|
|
||||||
"Remove aaa from bbb" for removing, "Fix license for aaa", etc.
|
|
||||||
|
1
.github/issue_template.md
vendored
Normal file
1
.github/issue_template.md
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
Please do not open issues in this repository. Use https://github.com/awesome-selfhosted/awesome-selfhosted-data instead.
|
20
.travis.yml
20
.travis.yml
@ -1,20 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
|
|
||||||
node_js:
|
|
||||||
- "node"
|
|
||||||
|
|
||||||
cache:
|
|
||||||
npm: false
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- rvm install 2.6.2
|
|
||||||
- gem install awesome_bot
|
|
||||||
- sudo apt update && sudo apt install python3-pip python3-setuptools
|
|
||||||
- cd tests && npm install chalk && cd ..
|
|
||||||
|
|
||||||
script:
|
|
||||||
- 'if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_EVENT_TYPE" == "cron" ]]; then make check_all; fi'
|
|
||||||
- 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then make check_pr; fi'
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email: false
|
|
1127
AUTHORS.md
1127
AUTHORS.md
File diff suppressed because it is too large
Load Diff
52
Makefile
52
Makefile
@ -1,52 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
SHELL = /bin/bash
|
|
||||||
AWESOME_BOT_OPTIONS = --allow-redirect --request-delay 1 --skip-save-results --allow 202 --white-list flaskbb.org,nitter.net,airsonic.github.io/docs/apps
|
|
||||||
|
|
||||||
all: check_all
|
|
||||||
|
|
||||||
# run all checks
|
|
||||||
check_all: check_syntax_full awesome_bot check_github_commit_dates
|
|
||||||
|
|
||||||
# check pull requests
|
|
||||||
check_pr: check_syntax_diff
|
|
||||||
|
|
||||||
# check syntax in whole file
|
|
||||||
check_syntax_full:
|
|
||||||
node tests/test.js -r README.md
|
|
||||||
|
|
||||||
# check syntax in the diff from master to current branch
|
|
||||||
check_syntax_diff:
|
|
||||||
git diff origin/master -U0 README.md | grep --perl-regexp --only-matching "(?<=^\+).*" >> temp.md && \
|
|
||||||
node tests/test.js -r README.md -d temp.md && \
|
|
||||||
awesome_bot -f temp.md $(AWESOME_BOT_OPTIONS)
|
|
||||||
|
|
||||||
# check dead links
|
|
||||||
# sudo apt install ruby && install --user-install awesome_bot
|
|
||||||
awesome_bot:
|
|
||||||
~/.local/share/gem/ruby/2.7.0/bin/awesome_bot -f README.md $(AWESOME_BOT_OPTIONS)
|
|
||||||
|
|
||||||
# check date of last commit for github.com repository URLs
|
|
||||||
check_github_commit_dates:
|
|
||||||
pip3 install PyGithub
|
|
||||||
python3 tests/check-github-commit-dates.py
|
|
||||||
|
|
||||||
#################################
|
|
||||||
|
|
||||||
# update the AUTHORS.md file
|
|
||||||
contrib:
|
|
||||||
@mv .github/.mailmap . && printf "|Commits | Author |\n| :---: | --- |\n" > AUTHORS.md && git shortlog -sne | sed -r 's/^\s*([[:digit:]]*?)\s*?(.*?)/|\1|\2|/' >> AUTHORS.md && mv .mailmap .github/.mailmap
|
|
||||||
|
|
||||||
# add a new entry
|
|
||||||
add:
|
|
||||||
@read -r -p "Software name: " Name && [[ ! -z "$$Name" ]] && \
|
|
||||||
read -r -p "Homepage/URL: " Url && [[ ! -z "$$Url" ]] && \
|
|
||||||
read -r -p "Description (max 250 characters, ending with .): " Description && [[ ! -z "$$Description" ]] && \
|
|
||||||
read -r -p "License: " License && [[ ! -z "$$License" ]] && \
|
|
||||||
read -r -p "Main server-side language/platform/requirement: " Language && [[ ! -z "$$Language" ]] && \
|
|
||||||
read -r -p "Demo URL (optional,leave empty): " Demo && \
|
|
||||||
if [[ "$$Demo" == "" ]]; then CDemo=""; else CDemo="[Demo]($$Demo)"; fi; \
|
|
||||||
read -r -p "Source code URL (if different from homepage): " Source && \
|
|
||||||
if [[ "$$Source" == "" ]]; then CSource=""; else CSource="[Source Code]($$Source)"; fi; \
|
|
||||||
if [[ "$$CSource" == "" && "$$Demo" == "" ]]; then Moreinfo=""; else Moreinfo="($$CDemo $$CSource)"; fi; \
|
|
||||||
echo "Copy this entry to your clipboard, paste it in the appropriate category:" ;\
|
|
||||||
echo "- [$$Name]($$Url) - $${Description} $${Moreinfo} \`$$License\` \`$$Language\`"
|
|
BIN
_static/awesome.png
Normal file
BIN
_static/awesome.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
324
non-free.md
324
non-free.md
@ -2,155 +2,273 @@
|
|||||||
|
|
||||||
**Software listed here does not meet the [Free Software](https://en.wikipedia.org/wiki/Free_software) definition**. It implements their own licensing with restrictions and grants which you must check on each case. Restrictions may include limits on allowed use of the software, access to the source code, modification and further redistribution. This software can therefore contain anti user-freedom features, such as but not limited to: backdoors, user lock-in, sending personal data to a third party.
|
**Software listed here does not meet the [Free Software](https://en.wikipedia.org/wiki/Free_software) definition**. It implements their own licensing with restrictions and grants which you must check on each case. Restrictions may include limits on allowed use of the software, access to the source code, modification and further redistribution. This software can therefore contain anti user-freedom features, such as but not limited to: backdoors, user lock-in, sending personal data to a third party.
|
||||||
|
|
||||||
## Analytics
|
--------------------
|
||||||
|
|
||||||
- [66Analytics](https://66analytics.com/) `⊘ Proprietary` - 66Analytics is a self-hosted, friendly, all-in-one web analytics tool. Lightweight tracking, session replays, heatmaps, user journeys & more. Can be used for personal reasons & can be white labeled to start a SAAS. ([Demo](https://66analytics.com/demo)) `PHP/MySQL`
|
## Table of contents
|
||||||
- [userTrack](https://www.usertrack.net/) `⊘ Proprietary` - userTrack is a web analytics platform with heatmaps, session recordings and powerful user segmentation feature. Updated very regularly. ([Demo](https://dashboard.usertrack.net/server/demoLogin.php)) `PHP/MySQL/ReactJS`
|
|
||||||
- [UXLens](https://uxlens.com/) `⊘ Proprietary` - UXLens is a website visitor recording software meant for identifying UI issues and fix them to improve user experience. Formerly known as SessionRecord ([Demo](https://console.uxlens.com/test)) `Docker Nodejs`
|
|
||||||
|
|
||||||
## Automation
|
- [Software](#software)
|
||||||
- [n8n](https://n8n.io/) - Free node based Workflow Automation Tool. Easily automate tasks across different services. ([Source Code](https://github.com/n8n-io/n8n)) `Apache-2.0 with Commons Clause` `Nodejs`
|
- [Automation](#automation)
|
||||||
|
- [Communication - Custom Communication Systems](#communication---custom-communication-systems)
|
||||||
|
- [Communication - Email - Mailing Lists and Newsletters](#communication---email---mailing-lists-and-newsletters)
|
||||||
|
- [Communication - SIP](#communication---sip)
|
||||||
|
- [Content Management Systems (CMS)](#content-management-systems-cms)
|
||||||
|
- [Document Management - E-books](#document-management---e-books)
|
||||||
|
- [E-commerce](#e-commerce)
|
||||||
|
- [File Transfer & Synchronization](#file-transfer--synchronization)
|
||||||
|
- [File Transfer - Object Storage & File Servers](#file-transfer---object-storage--file-servers)
|
||||||
|
- [Games](#games)
|
||||||
|
- [Internet of Things (IoT)](#internet-of-things-iot)
|
||||||
|
- [Knowledge Management Tools](#knowledge-management-tools)
|
||||||
|
- [Maps and Global Positioning System (GPS)](#maps-and-global-positioning-system-gps)
|
||||||
|
- [Media Streaming - Video Streaming](#media-streaming---video-streaming)
|
||||||
|
- [Miscellaneous](#miscellaneous)
|
||||||
|
- [Money, Budgeting & Management](#money-budgeting--management)
|
||||||
|
- [Photo and Video Galleries](#photo-and-video-galleries)
|
||||||
|
- [Proxy](#proxy)
|
||||||
|
- [Resource Planning - Enterprise Resource Planning](#resource-planning---enterprise-resource-planning)
|
||||||
|
- [Search Engines](#search-engines)
|
||||||
|
- [Self-hosting Solutions](#self-hosting-solutions)
|
||||||
|
- [Software Development - Project Management](#software-development---project-management)
|
||||||
|
- [Software Development - Testing](#software-development---testing)
|
||||||
|
- [Ticketing](#ticketing)
|
||||||
|
- [Time Tracking](#time-tracking)
|
||||||
|
- [List of Licenses](#list-of-licenses)
|
||||||
|
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
## Software
|
||||||
|
|
||||||
|
### Automation
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [n8n](https://n8n.io/) - Free node based Workflow Automation Tool. Easily automate tasks across different services. ([Source Code](https://github.com/n8n-io/n8n)) `Apache-2.0/Commons-Clause` `Nodejs`
|
||||||
|
|
||||||
|
|
||||||
## Content Management Systems (CMS)
|
### Communication - Custom Communication Systems
|
||||||
|
|
||||||
- [CraftCMS](https://craftcms.com/) `⊘ Proprietary` - Craft is a content-first CMS that aims to make life enjoyable for developers and content managers alike. ([Demo](https://demo.craftcms.com/)) `PHP`
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
- [Gazelle](https://github.com/WhatCD/Gazelle) - Gazelle is a web framework geared towards private BitTorrent trackers. Although naturally focusing on music, it can be modified for most needs. `unlicensed` `PHP`
|
|
||||||
- [Kirby](https://getkirby.com/) `⊘ Proprietary` - File-based CMS. Easy to setup. Easy to use. Flexible as hell. ([Source Code](https://github.com/getkirby/kirby)) `PHP`
|
- [Chaskiq](https://chaskiq.io) - Full featured live chat, help center and CRM as an alternative to Intercom & Drift, Crisp and others. ([Source Code](https://github.com/chaskiq/chaskiq)) `AGPL-3.0/Commons-Clause` `Ruby`
|
||||||
|
- [Groupboard](https://www.groupboard.com/products/) - Online whiteboard, audio/video conferencing, screen sharing, shared code editing and optional session recording/playback. `⊘ Proprietary` `Unknown`
|
||||||
|
- [PrivMX WebMail](https://privmx.com) - Alternative private mail system - web-based, end-to-end encrypted by design, self-hosted, decentralized, uses independent PKI. Easy to install and administrate, freeware, open-source. `⊘ Proprietary` `PHP`
|
||||||
|
- [Virola Messenger](https://virola.io/) - Instant messaging and collaboration tool with private and group chat rooms, continuous voice and video meetings, files sharing, issue tracking with integrated task board. Alternative to Slack and others. `⊘ Proprietary` `C++`
|
||||||
|
- [WorkAdventure](https://workadventu.re) - Virtual office / virtual conference application presented as a 16-bit RPG video game. ([Demo](https://play.staging.workadventu.re/@/tcm/workadventure/wa-village), [Source Code](https://github.com/thecodingmachine/workadventure/)) `AGPL-3.0/Commons-Clause` `Docker`
|
||||||
|
|
||||||
|
|
||||||
### E-Commerce
|
### Communication - Email - Mailing Lists and Newsletters
|
||||||
|
|
||||||
- [Sharetribe](https://www.sharetribe.com) `⊘ Proprietary` - An open source platform to create your own peer-to-peer marketplace, also available with SaaS model. ([Source Code](https://github.com/sharetribe/sharetribe)) `Ruby`
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Sendy](https://sendy.co) - Self-hosted email newsletter application that lets you send bulk emails via Amazon Simple Email Service (SES) or other SMTP services. `⊘ Proprietary` `PHP`
|
||||||
|
|
||||||
|
|
||||||
## Communication Systems
|
### Communication - SIP
|
||||||
|
|
||||||
- [Dialog](https://dlg.im) `⊘ Proprietary` - Handy and feature-rich multi-device solution with native mobile clients, SIP integration, chatbots, 3rd-party integrations. It brings communication efficiency without sacrificing privacy. Works in closed circuit, encrypts push notifications. ([Demo](https://dlg.im/en/download)) `Scala/Go`
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
- [Groupboard](https://www.groupboard.com) `⊘ Proprietary` - Online whiteboard, audio/video conferencing, screen sharing, shared code editing and optional session recording/playback.
|
|
||||||
- [PrivMX WebMail](https://privmx.com) - an alternative private mail system - web-based, end-to-end encrypted by design, self-hosted, decentralized, uses independent PKI. Easy to install and administrate, freeware, open-source. `PHP`
|
- [3CX](https://www.3cx.com/pbx/) - Full-featured PABX system, with call queues, built-in web conferencing, live chat and social media messaging all on one system. `⊘ Proprietary` `Unknown`
|
||||||
- [WorkAdventure](https://workadventu.re) `AGPL-3.0 + Commons Clause` - A virtual office / virtual conference application presented as a 16-bit RPG video game. ([Demo](https://play.staging.workadventu.re/@/tcm/workadventure/wa-village), [Source Code](https://github.com/thecodingmachine/workadventure/)) `Docker`
|
|
||||||
|
|
||||||
|
|
||||||
## E-books and Integrated Library Systems (ILS)
|
### Content Management Systems (CMS)
|
||||||
|
|
||||||
- [Bookwyrm](https://joinbookwyrm.com/) `⊘ Proprietary` - BookWyrm is a social network for tracking your reading, talking about books, writing reviews, and discovering what to read next. ([Source Code](https://github.com/bookwyrm-social/bookwyrm)) `Python`
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
- [Ubooquity](https://vaemendis.net/ubooquity/) `⊘ Proprietary` - Ubooquity is a free to use, versatile, lightweight, multi-platform, and secure home server for your comic and e-book library. `Java`
|
|
||||||
|
|
||||||
|
|
||||||
## File Sharing and Synchronization
|
- [CraftCMS](https://craftcms.com/) - Content-first CMS that aims to make life enjoyable for developers and content managers alike. ([Demo](https://craftcms.com/demo), [Source Code](https://github.com/craftcms/cms)) `⊘ Proprietary` `PHP`
|
||||||
|
- [Kirby](https://getkirby.com/) - File-based CMS. Easy to setup. Easy to use. Flexible as hell. ([Source Code](https://github.com/getkirby/kirby)) `⊘ Proprietary` `PHP`
|
||||||
- [Yetishare](https://yetishare.com) `⊘ Proprietary` - A powerful file hosting script with support for Amazon S3, Wasabi, Backblaze, local, direct and SFTP storage. ([Demo](https://fhscript.com)) `PHP`
|
- [october](https://octobercms.com/) - Self-hosted CMS platform based on the Laravel PHP Framework. ([Source Code](https://github.com/octobercms/october)) `⊘ Proprietary` `PHP`
|
||||||
- [Resilio Sync](https://www.resilio.com/) `⊘ Proprietary` - Resilio Sync by Resilio, Inc is a proprietary peer-to-peer file synchronisation tool.
|
|
||||||
- [Dropcenter](http://projet.idleman.fr/dropcenter/) - Upload files by simple drag-n-drop. ([Source Code](https://github.com/ldleman/dropcenter)) `CC-BY-NC-SA-3.0` `PHP`
|
|
||||||
- [FileRun](http://www.filerun.com/) `⊘ Proprietary` - A complete solution for your files with integration with Google and Office. ([Demo](http://www.filerun.com/demo)) `PHP`
|
|
||||||
|
|
||||||
|
|
||||||
## Games
|
### Document Management - E-books
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Bookwyrm](https://joinbookwyrm.com/) - Social network for tracking your reading, talking about books, writing reviews, and discovering what to read next. ([Source Code](https://github.com/bookwyrm-social/bookwyrm)) `⊘ Proprietary` `Python`
|
||||||
|
- [Ubooquity](https://vaemendis.net/ubooquity/) - Free to use, versatile, lightweight, multi-platform, and secure home server for your comic and e-book library. `⊘ Proprietary` `Java`
|
||||||
|
|
||||||
|
|
||||||
|
### E-commerce
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Sharetribe](https://www.sharetribe.com) - Open-source platform to create your own peer-to-peer marketplace, also available with SaaS model. ([Source Code](https://github.com/sharetribe/sharetribe)) `⊘ Proprietary` `Ruby`
|
||||||
|
|
||||||
|
|
||||||
|
### File Transfer & Synchronization
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [FileRun](https://www.filerun.com/) - Complete solution for your files with integration with Google and Office. ([Demo](https://www.filerun.com/demo)) `⊘ Proprietary` `PHP`
|
||||||
|
- [Resilio Sync](https://www.resilio.com/) - Proprietary peer-to-peer file synchronisation tool. `⊘ Proprietary` `Unknown`
|
||||||
|
- [Yetishare](https://yetishare.com) - Powerful file hosting script with support for Amazon S3, Wasabi, Backblaze, local, direct and SFTP storage. ([Demo](https://fhscript.com)) `⊘ Proprietary` `PHP`
|
||||||
|
|
||||||
|
|
||||||
|
### File Transfer - Object Storage & File Servers
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [DaneeCloud](https://docs.daneeskripter.dev/daneecloud/) - Multi-user file storage and sharing application. ([Demo](https://cloud.daneeskripter.dev), [Source Code](https://github.com/DaneeSkripter/DaneeCloud)) `GPL-3.0/SSPL-1.0` `Nodejs/JavaScript/EJS`
|
||||||
|
|
||||||
|
|
||||||
|
### Games
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
- [Cubiks-2048](https://github.com/Kshitij-Banerjee/Cubiks-2048) - Clone of 2048 game in 3D. ([Demo](https://kshitij-banerjee.github.io/Cubiks-2048/)) `CC-BY-NC-4.0` `HTML5`
|
- [Cubiks-2048](https://github.com/Kshitij-Banerjee/Cubiks-2048) - Clone of 2048 game in 3D. ([Demo](https://kshitij-banerjee.github.io/Cubiks-2048/)) `CC-BY-NC-4.0` `HTML5`
|
||||||
- [untrusted](https://github.com/AlexNisnevich/untrusted) - Untrusted is a unique puzzle game designed for geeks and developers, where you solve the puzzles in the game by reading and writing Javascript. ([Demo](http://alex.nisnevich.com/untrusted/)) `CCBYNCSAv3/Custom` `Nodejs`
|
- [untrusted](https://github.com/AlexNisnevich/untrusted) - Unique puzzle game designed for geeks and developers, where you solve the puzzles in the game by reading and writing Javascript. ([Demo](http://alexnisnevich.github.io/untrusted/)) `CC-BY-NC-SA-3.0` `Nodejs`
|
||||||
|
|
||||||
## Internet Of Things (IoT)
|
|
||||||
- [Atman IoT](https://atman-iot.com) - Atman IoT is a self hosted IoT gateway focused on IoT solution rapid prototyping, packaged as stand alone docker container, promising to help you build your IoT solution in a week!. ([Demo](https://atman-iot.com/signup-redirect)) `⊘ Proprietary` `Nodejs`
|
|
||||||
|
|
||||||
|
|
||||||
## IPBX
|
### Internet of Things (IoT)
|
||||||
|
|
||||||
- [Elastix](http://www.elastix.org) `⊘ Proprietary` - Unified communications server software based on 3CX.
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Atman IoT](https://atman-iot.com) - Self hosted IoT gateway focused on IoT solution rapid prototyping, packaged as stand alone docker container, promising to help you build your IoT solution in a week. ([Demo](https://atman-iot.com/signup-redirect/)) `⊘ Proprietary` `Nodejs`
|
||||||
|
|
||||||
|
|
||||||
## Maps & GPS
|
### Knowledge Management Tools
|
||||||
|
|
||||||
- [MapTiler Server](https://www.maptiler.com/server/) `⊘ Proprietary` - Software for self-hosting of OpenStreetMap vector tiles, satellite imagery, own geodata and data from PostGIS database.
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Wiznote](https://www.wiz.cn/docker) - Manage your knowledge in documents with folders, markdown, full text search and webpage collection support. ([Demo](https://www.wiz.cn/), [Clients](https://www.wiz.cn/download.html)) `⊘ Proprietary` `Docker`
|
||||||
|
|
||||||
|
|
||||||
## Media Streaming
|
### Maps and Global Positioning System (GPS)
|
||||||
|
|
||||||
- [Channels DVR Server](https://getchannels.com/dvr-server/) `⊘ Proprietary` - Flexible server providing a whole home self hosted DVR experience for [Channels](https://getchannels.com).
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
- [Emby](https://emby.media/) `⊘ Proprietary` - Home media server supporting both DLNA and DIAL (Chromecast) devices out-of-the-box. ([Partial source Code](https://github.com/MediaBrowser/Emby)) `Proprietary with some GPL-2.0` `C#`
|
|
||||||
- [Plex](https://plex.tv/) `⊘ Proprietary` - Plex is a centralized home media playback system with a powerful central server.
|
|
||||||
- [Subsonic](http://subsonic.org/) - Web-based media streamer and jukebox. ([Demo](http://demo.subsonic.org/login.view?user=guest4&password=guest))
|
|
||||||
|
|
||||||
|
- [MapTiler Server](https://www.maptiler.com/server/) - Software for self-hosting of OpenStreetMap vector tiles, satellite imagery, own geodata and data from PostGIS database. `⊘ Proprietary` `Unknown`
|
||||||
## Money, Budgeting and Management
|
|
||||||
|
|
||||||
- [Anchor](http://theanchorapp.com/) - Anchor is an invoicing system that integrates with Stripe and Paypal. Includes features such as: reporting, dashboard and no client limit. ([Demo](http://theanchorapp.com/demo/admin-login)) `PHP`
|
|
||||||
- [Manager](http://manager.io/server) `⊘ Proprietary` - Online accounting software for small businesses. `Mono`
|
|
||||||
- [Pancake](http://pancakeapp.com/) `⊘ Proprietary` - Online invoicing, project management, time tracking and proposal software. `PHP`
|
|
||||||
|
|
||||||
|
|
||||||
## Photo and Video Galleries
|
### Media Streaming - Video Streaming
|
||||||
|
|
||||||
- [ArtVenue](http://codecanyon.net/item/artvenue-image-sharing-community-script/5771542) `⊘ Proprietary` - Start your own photography community website, platform based on the Laravel PHP Framework. ([Demo](http://codecanyon.net/item/artvenue-image-sharing-community-script/full_screen_preview/5771542)) `PHP`
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
- [Chevereto](https://chevereto.com/) `⊘ Proprietary` - A powerful and fast image hosting script that allows you to create your very own full featured image hosting website in just minutes. ([Demo](http://demo.chevereto.com/)) `PHP`
|
|
||||||
- [Lomorage](https://lomorage.com/) `⊘ Proprietary` - Google photo alternative via simple self-hosting software. Supported clients: iOS, Android, Web, MAC/Windows. Backend can run on Raspberry pi, Armbian, MAC/Windows/Linux `GO`
|
|
||||||
- [PhotoStructure](https://photostructure.com/) `⊘ Proprietary` - All your family's photos and videos automatically organized into a fun and beautiful website. Runs via Docker, NodeJS, or native desktop installers. `NodeJS`
|
|
||||||
- [Reservo](https://reservo.co) `⊘ Proprietary` - A scalable image hosting script with support for CDNs, paid account upgrades, advertising spots and drag & drop upload. ([Demo](https://demo.reservo.co/)) `PHP`
|
|
||||||
- [Single File PHP Gallery](http://sye.dk/sfpg/) `⊘ Proprietary` - is a web gallery in one single PHP file. `PHP`
|
|
||||||
|
|
||||||
|
- [Channels DVR Server](https://getchannels.com/dvr-server/) - Flexible server providing a whole home self hosted DVR experience for [Channels](https://getchannels.com). `⊘ Proprietary` `Unknown`
|
||||||
## Project Management
|
- [Emby](https://emby.media/) - Home media server supporting both DLNA and DIAL (Chromecast) devices out-of-the-box. `⊘ Proprietary` `C#`
|
||||||
|
- [Plex](https://www.plex.tv/) - Centralized home media playback system with a powerful central server. `⊘ Proprietary` `Unknown`
|
||||||
- [Active Collab](https://www.activecollab.com/) `⊘ Proprietary` - Project management - `PHP`
|
- [Subsonic](http://www.subsonic.org/pages/index.jsp) - Web-based media streamer and jukebox. ([Demo](http://demo.subsonic.org/j_acegi_security_check?j_username=guest4&j_password=guest&_acegi_security_remember_me=check)) `⊘ Proprietary` `Unknown`
|
||||||
- [Duet](https://duetapp.com/) `⊘ Proprietary` - Invoicing and project management with an integrated client portal. ([Demo](https://duetapp.com/start-demo)) `PHP`
|
|
||||||
- [Kanban Tool](https://kanbantool.com/kanban-tool-on-site) `⊘ Proprietary` - Advanced Kanban boards with time tracking. `Ruby On Rails`
|
|
||||||
- [Kantree](https://kantree.io) `⊘ Proprietary` - Work management and collaboration - `Python`
|
|
||||||
- [Solo](http://www.getsoloapp.com/) - Solo is a free project management app created for freelancers. Create contacts, manage tasks, upload files, track project progress, and keep notes. ([Demo](http://www.getsoloapp.com/demo/)) `PHP`
|
|
||||||
|
|
||||||
|
|
||||||
## Self-hosting Solutions
|
|
||||||
|
|
||||||
- [Axigen](https://www.axigen.com/mail-server/free/) `⊘ Proprietary` - Great alternative to open source. It's a turnkey messaging solution, perfect for small & micro businesses, integration projects or test environments.
|
|
||||||
- [Cloudron](https://cloudron.io) `⊘ Proprietary` - Open-core software allowing you to effortlessly self-host web apps on your server. ([Source Code](https://git.cloudron.io/groups/cloudron))([Demo](https://my.demo.cloudron.io/)) `Nodejs/Docker`
|
|
||||||
- [EmbassyOS](https://start9labs.com) - `⊘ Proprietary` A graphical Operating System for running self-hosted, open source services. ([Source Code](https://github.com/Start9Labs/embassy-os)) `Start9 Personal Use License` `Rust`
|
|
||||||
- [hMailServer](https://www.hmailserver.com) `⊘ Proprietary` - Open source e-mail server for Microsoft Windows. ([Source Code](https://github.com/hmailserver/hmailserver)) `C++`
|
|
||||||
- [Poste.io](https://poste.io) `⊘ Proprietary` - Full featured solution for your Email server. Native implementation of last anti-SPAM methods, webmail and easy administration included. Free tier available. ([Demo](https://poste.io/demo))
|
|
||||||
|
|
||||||
|
|
||||||
## Software Development
|
|
||||||
|
|
||||||
- [92five](http://92fiveapp.com/) `⊘ Proprietary` - Self hosted project management application ([Source code](https://github.com/chintanbanugaria/92five)) `CC-BY-NC-4.0` `PHP`
|
|
||||||
- [Bamboo](https://www.atlassian.com/software/bamboo) `⊘ Proprietary` - A continuous integration server `Java`
|
|
||||||
- [Buddy Enterprise](https://buddy.works/) - The Git and Continuous Integration / Delivery Platform. `⊘ Proprietary` `Nodejs/Java`
|
|
||||||
- [Cloud9](https://c9.io/) `⊘ Proprietary` - Your development environment, in the cloud ([Source code](https://github.com/c9/core)) `Nodejs`
|
|
||||||
- [Crucible](https://www.atlassian.com/software/crucible/overview) `⊘ Proprietary` - A peer code review application `Java`
|
|
||||||
- [Documize](https://documize.com) `⊘ Proprietary` - Modern docs & wiki software built for software team collaboration. `Go`
|
|
||||||
- [JIRA](https://www.atlassian.com/software/jira) `⊘ Proprietary` - A professional and extensible issue tracker `Java`
|
|
||||||
- [RhodeCode](https://rhodecode.com) `⊘ Proprietary` - On-premise Source Code Management for Mercurial, Git & Subversion. `Python`
|
|
||||||
- [BitBucket Server](https://www.atlassian.com/software/bitbucket/server) `⊘ Proprietary` - An enterprise-level Git solution similar to GitLab `Java`
|
|
||||||
|
|
||||||
## Ticketing
|
|
||||||
|
|
||||||
- [Deskpro](https://www.deskpro.com/) `⊘ Proprietary` - On-Premise helpdesk software that includes email, chat, voice & helpcentre publishing. Full visible source code and API.
|
|
||||||
- [Full Help](https://www.fullhelp.com/en/) `⊘ Proprietary` - Simple, easy to use help desk & knowledge base software. Custom branding, custom themes, restful API, communication channels, multi-company support, multi-language support, and much more! At least 1 new release per month. [Changelog](https://www.fullhelp.com/en/changelog) `PHP`
|
|
||||||
- [Jitbit Helpdesk](https://www.jitbit.com/helpdesk/) `⊘ Proprietary` - Self-hosted help desk software - simple but powerful. ([Demo](https://www.jitbit.com/hosted-helpdesk/trial/)) `ASP.NET`
|
|
||||||
- [SupportPal](https://www.supportpal.com/) `⊘ Proprietary` - Powerful help desk software - easy, fast and intuitive. ([Demo](http://demo.supportpal.com/)) `PHP`
|
|
||||||
- [Cerb](http://www.cerberusweb.com/) - Group-based e-mail management project. ([Source Code](https://github.com/wgm/cerb)) `DPL` `PHP`
|
|
||||||
|
|
||||||
|
|
||||||
## Time Tracking
|
### Miscellaneous
|
||||||
|
|
||||||
- [Virtual TimeClock](https://www.redcort.com/timeclock) `⊘ Proprietary` - Powerful, easy-to-use time tracking software. ([Demo](https://www.redcort.com/timeclock/free-timeclock-software-trial))
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
- [Anuko](https://www.anuko.com/time_tracker/index.htm) - Anuko provides simple time and project tracking on a selfhosted basis. ([Demo](https://timetracker.anuko.com/), [Source Code](https://github.com/anuko/timetracker)) `SSPL-1.0` `PHP`
|
|
||||||
|
|
||||||
## Remote Support
|
- [Keygen](https://github.com/keygen-sh/keygen-api) - Self-hosted software licensing and distribution API. `Elastic-2.0` `Ruby`
|
||||||
|
- [RemoteUtilities](https://www.remoteutilities.com/) - Remote Utilities is self-hosted remote support software for LAN administration and remote support over the Internet. `⊘ Proprietary` `Unknown`
|
||||||
|
- [ScreenConnect](https://www.connectwise.com/platform/unified-management/control) - Lightning-fast remote support and remote access to connect instantly and solve problems faster. `⊘ Proprietary` `Unknown`
|
||||||
|
|
||||||
* [ScreenConnect](https://www.screenconnect.com/) `⊘ Proprietary` - ScreenConnect offers lightning-fast remote support and remote access to connect instantly and solve problems faster.
|
|
||||||
* [RemoteUtilities](https://www.remoteutilities.com/) `⊘ Proprietary` - Remote Utilities is self-hosted remote support software for LAN administration and remote support over the Internet.
|
|
||||||
|
|
||||||
### UX testing
|
### Money, Budgeting & Management
|
||||||
|
|
||||||
- [Moon](https://aerokube.com/moon/) `⊘ Proprietary` - An efficient Selenium protocol implementation running everything in Kubernetes or Openshift. `Go`
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Manager](https://www.manager.io/server) - Online accounting software for small businesses. `⊘ Proprietary` `Mono`
|
||||||
|
- [Pancake](https://www.pancakeapp.com/) - Online invoicing, project management, time tracking and proposal software. `⊘ Proprietary` `PHP`
|
||||||
|
|
||||||
|
|
||||||
|
### Photo and Video Galleries
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Lomorage](https://lomorage.com/) - Google photo alternative via simple self-hosting software. Supported clients: iOS, Android, Web, MAC/Windows. Backend can run on Raspberry pi, Armbian, MAC/Windows/Linux. ([Source Code](https://github.com/lomorage/homepage)) `⊘ Proprietary` `Go`
|
||||||
|
- [PhotoStructure](https://photostructure.com/) - All your family's photos and videos automatically organized into a fun and beautiful website. Runs via Docker, NodeJS, or native desktop installers. `⊘ Proprietary` `Nodejs`
|
||||||
|
- [Picaport](https://www.picapport.de/en/index.php) - A photo server with web gallery for your intranet, web space or home network that allows you to organize photos, videos, PDF's, and many other media types in a central location. ([Demo](https://en.onlinedemo.picapport.de/)) `CC-BY-NC-4.0` `Java/Docker`
|
||||||
|
- [Reservo](https://reservo.co) - Scalable image hosting script with support for CDNs, paid account upgrades, advertising spots and drag & drop upload. ([Demo](https://demo.reservo.co/)) `⊘ Proprietary` `PHP`
|
||||||
|
- [Single File PHP Gallery](http://sye.dk/sfpg/) - Web gallery in one single PHP file. `⊘ Proprietary` `PHP`
|
||||||
|
|
||||||
|
|
||||||
|
### Proxy
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Cosmos](https://cosmos-cloud.io/) - Cosmos is a self-hosted platform for running server applications securely and with built-in privacy features. It acts as a secure gateway to your application, as well as a server manager. ([Source Code](https://github.com/azukaar/cosmos-Server)) `⊘ Proprietary` `Docker/Go`
|
||||||
|
|
||||||
|
|
||||||
|
### Resource Planning - Enterprise Resource Planning
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [YetiForce](https://yetiforce.com/en/) - Opensource CRM ERP with sales, marketing, accounting, HR, Support, Logistics and GDPR support. ([Demo](https://gitstable.yetiforce.com/), [Source Code](https://github.com/YetiForceCompany/YetiForceCRM)) `⊘ Proprietary` `PHP`
|
||||||
|
|
||||||
|
|
||||||
|
### Search Engines
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [ElasticSearch](https://www.elastic.co/elasticsearch/) - Distributed, RESTful search and analytics engine. ([Source Code](https://github.com/elastic/elasticsearch)) `SSPL-1.0` `Java`
|
||||||
|
|
||||||
|
|
||||||
|
### Self-hosting Solutions
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Axigen](https://www.axigen.com/mail-server/free/) - Turnkey messaging solution for small & micro businesses, integration projects or test environments. `⊘ Proprietary` `Unknown`
|
||||||
|
- [Cloudron](https://www.cloudron.io/) - Open-core software allowing you to effortlessly self-host web apps on your server. ([Demo](https://my.demo.cloudron.io/), [Source Code](https://git.cloudron.io/groups/cloudron)) `⊘ Proprietary` `Nodejs/Docker`
|
||||||
|
- [Easypanel](https://easypanel.io) - Modern server control panel powered by Docker. `⊘ Proprietary` `Docker`
|
||||||
|
- [hMailServer](https://www.hmailserver.com) - Open-source e-mail server for Microsoft Windows. ([Source Code](https://github.com/hmailserver/hmailserver)) `⊘ Proprietary` `C++`
|
||||||
|
- [Poste.io](https://poste.io) - Full-featured solution for your Email server. Native implementation of last anti-SPAM methods, webmail and easy administration included. Free tier available. ([Demo](https://poste.io/demo)) `⊘ Proprietary` `Unknown`
|
||||||
|
- [StartOS](https://start9.com) - Browser-based, graphical operating system for a personal server. ([Source Code](https://github.com/Start9Labs/start-os)) `⊘ Proprietary` `Rust`
|
||||||
|
- [Umbrel](https://umbrel.com/) - A beautiful personal server OS for self-hosting. Install on a Raspberry Pi 4 or Ubuntu/Debian. ([Source Code](https://github.com/getumbrel/umbrel)) `⊘ Proprietary` `Nodejs/Docker`
|
||||||
|
- [Unraid](https://www.unraid.net) `⚠` - Linux-based operating system designed to run on home media server setups. `⊘ Proprietary` `Other`
|
||||||
|
|
||||||
|
|
||||||
|
### Software Development - Project Management
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [92five](https://92fiveapp.com/) - Self-hosted project management application. `⊘ Proprietary` `PHP`
|
||||||
|
- [Active Collab](https://activecollab.com/) - Project management. `⊘ Proprietary` `PHP`
|
||||||
|
- [BitBucket Server](https://www.atlassian.com/software/bitbucket/enterprise/data-center) - Enterprise-level Git solution similar to GitLab. `⊘ Proprietary` `Java`
|
||||||
|
- [Buddy Enterprise](https://buddy.works/) - Git and Continuous Integration/Delivery Platform. `⊘ Proprietary` `Nodejs/Java`
|
||||||
|
- [Crucible](https://www.atlassian.com/software/crucible) - Peer code review application. `⊘ Proprietary` `Java`
|
||||||
|
- [Duet](https://duetapp.com/) - Invoicing and project management with an integrated client portal. ([Demo](https://duetapp.com/start-demo)) `⊘ Proprietary` `PHP`
|
||||||
|
- [Kanban Tool](https://kanbantool.com/kanban-tool-on-site) - Advanced Kanban boards with time tracking. `⊘ Proprietary` `Ruby`
|
||||||
|
- [Kantree](https://kantree.io) - Work management and collaboration. `⊘ Proprietary` `Python`
|
||||||
|
- [Solo](https://www.getsoloapp.com/) - Free project management app created for freelancers. Create contacts, manage tasks, upload files, track project progress, and keep notes. ([Demo](https://www.getsoloapp.com/demo/)) `⊘ Proprietary` `PHP`
|
||||||
|
|
||||||
|
|
||||||
|
### Software Development - Testing
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Bamboo](https://www.atlassian.com/software/bamboo) - Continuous integration server. `⊘ Proprietary` `Java`
|
||||||
|
- [Grai](https://www.grai.io) - Automated integration testing. Uses data lineage to statically analyze the impact of a data change across your entire data stack. ([Source Code](https://www.github.com/grai-io/grai-core)) `Elastic-2.0` `Docker`
|
||||||
|
- [Moon](https://aerokube.com/moon/) - Efficient Selenium protocol implementation running everything in Kubernetes or Openshift. `⊘ Proprietary` `Go`
|
||||||
|
- [Sentry Self-Hosted](https://github.com/getsentry/self-hosted) - Powerful error tracking platform with wide language support and a robust API. ([Source Code](https://github.com/getsentry/sentry)) `BUSL-1.1` `Python/Django`
|
||||||
|
|
||||||
|
|
||||||
|
### Ticketing
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Deskpro](https://www.deskpro.com/) - On-Premise help desk software that includes email, chat, voice & help centre publishing. Full visible source code and API. `⊘ Proprietary` `Unknown`
|
||||||
|
- [Full Help](https://www.fullhelp.com/en/) - Simple, easy to use help desk & knowledge base software. Custom branding, custom themes, restful API, communication channels, multi-company support, multi-language support, and much more! At least 1 new release per month. `⊘ Proprietary` `PHP`
|
||||||
|
- [JIRA](https://www.atlassian.com/software/jira) - Professional and extensible issue tracker. `⊘ Proprietary` `Java`
|
||||||
|
- [Jitbit Helpdesk](https://www.jitbit.com/helpdesk/) - Self-hosted help desk software - simple but powerful. ([Demo](https://www.jitbit.com/saas-helpdesk/trial/)) `⊘ Proprietary` `ASP.NET`
|
||||||
|
- [SupportPal](https://www.supportpal.com/) - Powerful help desk software - easy, fast and intuitive. ([Demo](https://demo.supportpal.com/en)) `⊘ Proprietary` `PHP`
|
||||||
|
|
||||||
|
|
||||||
|
### Time Tracking
|
||||||
|
|
||||||
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
|
- [Anuko](https://github.com/anuko/timetracker) - Simple time and project tracking on a self-hosted basis. `SSPL-1.0` `PHP`
|
||||||
|
- [Virtual TimeClock](https://www.redcort.com/timeclock) - Powerful, easy-to-use time tracking software. ([Demo](https://www.redcort.com/timeclock/free-timeclock-software-trial)) `⊘ Proprietary` `Unknown`
|
||||||
|
|
||||||
<!-- END SOFTWARE LIST -->
|
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
## List of Licenses
|
## List of Licenses
|
||||||
|
|
||||||
**[`^ back to top ^`](#)**
|
**[`^ back to top ^`](##awesome-selfhosted---non-free-software)**
|
||||||
|
|
||||||
- `CC-BY-NC-SA-3.0` - [Creative Commons Attribution-NonCommercial-ShareAlike 3.0 International License](https://creativecommons.org/licenses/by-nc-sa/3.0/)
|
- `BUSL-1.1` - [Business Source License 1.1](https://spdx.org/licenses/BUSL-1.1.html)
|
||||||
|
- `CC-BY-NC-SA-3.0` - [Creative Commons Attribution-NonCommercial-ShareAlike License 3.0](https://creativecommons.org/licenses/by-nc-sa/3.0/)
|
||||||
|
- `CC-BY-ND-3.0` - [Creative Commons Attribution-NoDerivs Unported License 3.0](https://creativecommons.org/licenses/by-nd/3.0/)
|
||||||
|
- `CC-BY-NC-4.0` - [Creative Commons Attribution-NonCommercial License 4.0](https://creativecommons.org/licenses/by-nc/4.0/)
|
||||||
|
- `Commons-Clause` - [Commons Clause License](https://commonsclause.com/)
|
||||||
- `DPL` - [Devblocks Public License 1.0](https://cerb.ai/license/)
|
- `DPL` - [Devblocks Public License 1.0](https://cerb.ai/license/)
|
||||||
|
- `Elastic-2.0` - [Elastic License 2.0](https://spdx.org/licenses/Elastic-2.0.html)
|
||||||
- `SSPL-1.0` - [Server Side Public License](https://spdx.org/licenses/SSPL-1.0.html)
|
- `SSPL-1.0` - [Server Side Public License](https://spdx.org/licenses/SSPL-1.0.html)
|
||||||
|
- `⊘ Proprietary` - [Proprietary software](https://en.wikipedia.org/wiki/Proprietary_software)
|
||||||
|
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
# Danger CI configuration file
|
|
||||||
# https://danger.systems/guides/getting_started.html
|
|
||||||
|
|
||||||
# Check for changes to README.md
|
|
||||||
has_readme_changes = git.modified_files.include?("README.md")
|
|
||||||
|
|
||||||
# Ensure there is a summary for a pull request
|
|
||||||
fail 'Please provide a summary in the Pull Request description' if github.pr_body.length < 5
|
|
||||||
|
|
||||||
# Warn if PR guideline boxes are not checked.
|
|
||||||
warn 'Please check PR guidelines and check the boxes.' if github.pr_body.include? '- [ ]'
|
|
||||||
|
|
||||||
# Warn if pull request is not updated
|
|
||||||
warn 'Please provide a descriptive title for the Pull Request' if github.pr_title.include? 'Update README.md'
|
|
||||||
|
|
||||||
# Warn when there are merge commits in the diff
|
|
||||||
warn 'Please rebase to get rid of the merge commits in this Pull Request' if git.commits.any? { |c| c.message =~ /^Merge branch 'master'/ }
|
|
||||||
|
|
||||||
# Check links
|
|
||||||
if has_readme_changes
|
|
||||||
require 'json'
|
|
||||||
results = File.read 'ab-results-temp.md-markdown-table.json'
|
|
||||||
j = JSON.parse results
|
|
||||||
if j['error']==true
|
|
||||||
warn j['title']
|
|
||||||
markdown j['message']
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Check syntax
|
|
||||||
if has_readme_changes
|
|
||||||
require 'json'
|
|
||||||
syntaxresults = File.read 'syntaxcheck.json'
|
|
||||||
sj = JSON.parse syntaxresults
|
|
||||||
if sj['error']==true
|
|
||||||
fail sj['title']
|
|
||||||
markdown sj['message']
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,60 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
""" A script to find github repo links and last commit dates in a markdown file
|
|
||||||
|
|
||||||
Requirements:
|
|
||||||
- python3 github module (sudo apt install python3-github on Debian)
|
|
||||||
- A personal access token (https://github.com/settings/tokens)
|
|
||||||
|
|
||||||
Usage:
|
|
||||||
- Run awesome_bot --allow-redirect -f README.md beforehand to detect any error(4xx, 5xx) that would
|
|
||||||
cause the script to abort
|
|
||||||
- Github API calls are limited to 5000 requests/hour https://developer.github.com/v3/#rate-limiting
|
|
||||||
- Put the token in your environment variables:
|
|
||||||
export GITHUB_TOKEN=18c45f8d8d556492d1d877998a5b311b368a76e4
|
|
||||||
- The output is unsorted, just pipe it through 'sort' or paste it in your editor and sort from there
|
|
||||||
- Put the script in your crontab or run it from time to time. It doesn't make sense to add this
|
|
||||||
script to the CI job that runs every time something is pushed.
|
|
||||||
- To detect no-commit related activity (repo metadata changes, wiki edits, ...), replace pushed_at
|
|
||||||
with updated_at
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
from github import Github
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
import re
|
|
||||||
import os
|
|
||||||
|
|
||||||
__author__ = "nodiscc"
|
|
||||||
__copyright__ = "Copyright 2019, nodiscc"
|
|
||||||
__credits__ = ["https://github.com/awesome-selfhosted/awesome-selfhosted"]
|
|
||||||
__license__ = "MIT"
|
|
||||||
__version__ = "1.0"
|
|
||||||
__maintainer__ = "nodiscc"
|
|
||||||
__email__ = "nodiscc@gmail.com"
|
|
||||||
__status__ = "Production"
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
access_token = os.environ['GITHUB_TOKEN']
|
|
||||||
|
|
||||||
""" find all URLs of the form https://github.com/owner/repo """
|
|
||||||
with open('README.md', 'r') as readme:
|
|
||||||
data = readme.read()
|
|
||||||
project_urls = re.findall('https://github.com/[A-z]*/[A-z|0-9|\-|_|\.]+', data)
|
|
||||||
|
|
||||||
urls = sorted(set(project_urls))
|
|
||||||
|
|
||||||
""" Uncomment this to debug the list of matched URLs """
|
|
||||||
# print(str(urls))
|
|
||||||
# exit(0)
|
|
||||||
|
|
||||||
""" login to github API """
|
|
||||||
g = Github(access_token)
|
|
||||||
|
|
||||||
""" load project metadata, output last commit date and URL """
|
|
||||||
for url in urls:
|
|
||||||
project = re.sub('https://github.com/', '', url)
|
|
||||||
repo = g.get_repo(project)
|
|
||||||
print(str(repo.pushed_at) + ' https://github.com/' + project)
|
|
251
tests/test.js
251
tests/test.js
@ -1,251 +0,0 @@
|
|||||||
// USAGE:
|
|
||||||
// node test.js -r README.md (Checks whole file)
|
|
||||||
// node test.js -r README.md -d temp.md (Checks just the diff)
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const chalk = require('chalk');
|
|
||||||
let licenses = new Set();
|
|
||||||
let pr = false;
|
|
||||||
let readme;
|
|
||||||
let diff;
|
|
||||||
|
|
||||||
//Parse the command options and set the pr var
|
|
||||||
function parseArgs(args) {
|
|
||||||
if ( args.indexOf('-r', 2) > 0 ) {
|
|
||||||
readme = fs.readFileSync(args[args.indexOf('-r', 2)+1], 'utf8')
|
|
||||||
}
|
|
||||||
if (args.indexOf('-d', 2) > 0) {
|
|
||||||
pr = true;
|
|
||||||
diff = fs.readFileSync(args[args.indexOf('-d', 2)+1], 'utf8');
|
|
||||||
}
|
|
||||||
if ( pr === true) {
|
|
||||||
console.log(chalk.blue(`Running on PR. README.md: ${args[args.indexOf('-r', 2)+1]} diff: ${args[args.indexOf('-d', 2)+1]}`))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to find lines with entries
|
|
||||||
function entryFilter(md) {
|
|
||||||
const linepatt = /^\s{0,2}-\s\[.*`/;
|
|
||||||
return linepatt.test(md);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to find lines with licenses
|
|
||||||
function licenseFilter(md) {
|
|
||||||
const linepatt = /^- `.*` - .*/;
|
|
||||||
return linepatt.test(md)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Function to split lines into array
|
|
||||||
function split(text) {
|
|
||||||
return text.split(/\r?\n/);
|
|
||||||
}
|
|
||||||
|
|
||||||
// All entries should match this pattern. If matches pattern returns true.
|
|
||||||
function findPattern(text) {
|
|
||||||
const patt = /^\s{0,2}-\s\[.*?\]\(.*?\) (`⚠` )?- .{0,249}?\.( \(\[(Demo|Source Code|Clients)\]\([^)\]]*\)(, \[(Source Code|Clients)\]\([^)\]]*\))?(, \[(Source Code|Clients)\]\([^)\]]*\))*\))? \`.*?\` \`.*?\`$/;
|
|
||||||
if (patt.test(text) === true) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parses SPDX identifiers from list of licenses
|
|
||||||
function parseLicense(md) {
|
|
||||||
const patt = /^- `(.*)` - .*/
|
|
||||||
return patt.exec(md)[1]
|
|
||||||
}
|
|
||||||
|
|
||||||
//Test '- [Name](http://homepage/)'
|
|
||||||
function testMainLink(text) {
|
|
||||||
let testA = /(^ {0,2}- \[.*?\]\([^)]*\.[^)]*?\))(?=\ ?\-?\ ?\w)/ // /(^ {0,2}- \[.*?\]\(.*\))(?=.?-? ?\w)/;
|
|
||||||
const testA1 = /(- \W?\w*\W{0,2}.*?\)?)( .*$)/;
|
|
||||||
if (!testA.test(text)) {
|
|
||||||
let a1 = testA1.exec(text)[2];
|
|
||||||
return chalk.red(text.replace(a1, ''))
|
|
||||||
}
|
|
||||||
return chalk.green(testA.exec(text)[1])
|
|
||||||
}
|
|
||||||
|
|
||||||
//Test '`⚠` - Short description, less than 250 characters.'
|
|
||||||
function testDescription(text) {
|
|
||||||
const testB = /( - .*\. )(?:(\(?\[?|\`))/;
|
|
||||||
const testA1 = /(- \W?\w*\W{0,2}.*?\)?)( .*$)/;
|
|
||||||
const testB2 = /((\(\[|\`).*$)/;
|
|
||||||
if (!testB.test(text)) {
|
|
||||||
let b1 = testA1.exec(text)[1];
|
|
||||||
let b2 = testB2.exec(text)[1];
|
|
||||||
return chalk.red(text.replace(b1, '').replace(b2, ''))
|
|
||||||
}
|
|
||||||
return chalk.green(testB.exec(text)[1])
|
|
||||||
}
|
|
||||||
|
|
||||||
//If present, tests '([Demo](http://url.to/demo), [Source Code](http://url.of/source/code), [Clients](https://url.to/list/of/related/clients-or-apps))'
|
|
||||||
function testSrcDemCli(text) {
|
|
||||||
let testC = text.search(/\.\ \(|\.\ \[|\ \(\[[sSdDcC]/); // /\(\[|\)\,|\)\)/);
|
|
||||||
let testD = /(?<=\w. )(\(\[(Demo|Source Code|Clients)\]\([^)\]]*\)(, \[(Source Code|Clients)\]\([^)\]]*\))?(, \[(Source Code|Clients)\]\([^)\]]*\))*\))(?= \`?)/;
|
|
||||||
const testD1 = /(^- \W[a-zA-Z0-9-_ .]*\W{0,2}http[^\[]*)(?<= )/;
|
|
||||||
const testD2 = /(\`.*\` \`.*\`$)/;
|
|
||||||
if ((testC > -1) && (!testD.test(text))) {
|
|
||||||
let d1 = testD1.exec(text)[1];
|
|
||||||
let d2 = testD2.exec(text)[1];
|
|
||||||
return chalk.red(text.replace(d1, '').replace(d2, ''))
|
|
||||||
} else if (testC > -1) {
|
|
||||||
return chalk.green(testD.exec(text)[1])
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tests '`License` `Language`'
|
|
||||||
function testLangLic(text) {
|
|
||||||
const testD2 = /(\`.*\` \`.*\`$)/;
|
|
||||||
let testE = testD2.test(text);
|
|
||||||
const testE1 = /(^[^`]*)/;
|
|
||||||
if (!testE) {
|
|
||||||
let e1 = testE1.exec(text)[1];
|
|
||||||
return chalk.red(text.replace(e1, ''))
|
|
||||||
}
|
|
||||||
return chalk.green(testD2.exec(text)[1])
|
|
||||||
}
|
|
||||||
|
|
||||||
//Runs all the syntax tests...
|
|
||||||
function findError(text) {
|
|
||||||
let res
|
|
||||||
res = testMainLink(text)
|
|
||||||
res += testDescription(text)
|
|
||||||
res += testSrcDemCli(text)
|
|
||||||
res += testLangLic(text)
|
|
||||||
return res + `\n`
|
|
||||||
}
|
|
||||||
|
|
||||||
//Check if license is in the list of licenses.
|
|
||||||
function testLicense(md) {
|
|
||||||
let pass = true;
|
|
||||||
let lFailed = []
|
|
||||||
let lPassed = []
|
|
||||||
const regex = /.*\`(.*)\` .*$/;
|
|
||||||
try {
|
|
||||||
for (l of regex.exec(md)[1].split("/")) {
|
|
||||||
if (!licenses.has(l)) {
|
|
||||||
pass = false;
|
|
||||||
lPassed.push(l)
|
|
||||||
}
|
|
||||||
lFailed.push(l)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch(err) {
|
|
||||||
console.log(chalk.yellow("Error in License syntax, license not checked against list."))
|
|
||||||
return [false, "", ""]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return [pass, lFailed, lPassed]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//Parses name from entry
|
|
||||||
function parseName(md) {
|
|
||||||
const regex = /^\W*(.*?)\W/
|
|
||||||
return regex.exec(md)[1]
|
|
||||||
}
|
|
||||||
|
|
||||||
function entryErrorCheck() {
|
|
||||||
const lines = split(readme); // Inserts each line into the entries array
|
|
||||||
let totalFail = 0;
|
|
||||||
let totalPass = 0;
|
|
||||||
let total = 0;
|
|
||||||
let entries = [];
|
|
||||||
let diffEntries = [];
|
|
||||||
|
|
||||||
if (lines[0] === "") {
|
|
||||||
console.log(chalk.red("0 Entries Found, check your commandline arguments"))
|
|
||||||
process.exit(0)
|
|
||||||
}
|
|
||||||
for (let i = 0; i < lines.length; i ++) { // Loop through array of lines
|
|
||||||
if (entryFilter(lines[i]) === true) { // filter out lines that don't start with * [)
|
|
||||||
e = {};
|
|
||||||
e.raw = lines[i];
|
|
||||||
e.line = i + 1
|
|
||||||
entries.push(e);
|
|
||||||
} else if (licenseFilter(lines[i]) === true) {
|
|
||||||
licenses.add(parseLicense(lines[i]))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pr === true) {
|
|
||||||
console.log(chalk.cyan("Only testing the diff from the PR.\n"))
|
|
||||||
const diffLines = split(diff); // Inserts each line of diff into an array
|
|
||||||
for (let l of diffLines) {
|
|
||||||
if (entryFilter(l) === true) { // filter out lines that don't start with * [)
|
|
||||||
e = {};
|
|
||||||
e.raw = l;
|
|
||||||
diffEntries.push(e);
|
|
||||||
} else if (licenseFilter(l) === true) {
|
|
||||||
licenses.add(parseLicense(l))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (diffEntries.length === 0) {
|
|
||||||
console.log("No entries changed in README.md, Exiting...")
|
|
||||||
process.exit(0)
|
|
||||||
}
|
|
||||||
total = diffEntries.length
|
|
||||||
for (let e of diffEntries) {
|
|
||||||
e.pass = true
|
|
||||||
e.name = parseName(e.raw)
|
|
||||||
if (!findPattern(e.raw)) {
|
|
||||||
e.highlight = findError(e.raw);
|
|
||||||
e.pass = false;
|
|
||||||
console.log(e.highlight)
|
|
||||||
}
|
|
||||||
e.licenseTest = testLicense(e.raw);
|
|
||||||
if (!e.licenseTest) {
|
|
||||||
e.pass = false;
|
|
||||||
console.log(chalk.red(`${e.name}'s license is not on License list.`))
|
|
||||||
}
|
|
||||||
if (e.pass) {
|
|
||||||
totalPass++
|
|
||||||
} else {
|
|
||||||
totalFail++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log(chalk.cyan("Testing entire README.md\n"))
|
|
||||||
total = entries.length
|
|
||||||
for (let e of entries) {
|
|
||||||
e.pass = true
|
|
||||||
e.name = parseName(e.raw)
|
|
||||||
if (!findPattern(e.raw)) {
|
|
||||||
e.highlight = findError(e.raw);
|
|
||||||
e.pass = false;
|
|
||||||
console.log(`${chalk.yellow(e.line + ": ")}${e.highlight}`);
|
|
||||||
syntax = e.highlight;
|
|
||||||
}
|
|
||||||
e.licenseTest = testLicense(e.raw);
|
|
||||||
if (!e.licenseTest[0]) {
|
|
||||||
e.pass = false;
|
|
||||||
console.log(chalk.yellow(e.line + ": ") + `${e.name}'s license ${chalk.red(`'${e.licenseTest[1]}'`)} is not on the License list.\n`)
|
|
||||||
}
|
|
||||||
if (e.pass) {
|
|
||||||
totalPass++
|
|
||||||
} else {
|
|
||||||
totalFail++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (totalFail > 0) {
|
|
||||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
|
||||||
console.log(chalk.red(`${totalFail} Failed, `) + chalk.green(`${totalPass} Passed, `) + chalk.blue(`of ${total}`))
|
|
||||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
|
||||||
process.exit(1);
|
|
||||||
} else {
|
|
||||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
|
||||||
console.log(chalk.green(`${totalPass} Passed of ${total}`))
|
|
||||||
console.log(chalk.blue(`\n-----------------------------\n`))
|
|
||||||
process.exit(0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
parseArgs(process.argv)
|
|
||||||
entryErrorCheck();
|
|
Reference in New Issue
Block a user