Compare commits
786
Commits
nosslh
..
cloudflare
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
219ee9772f | ||
|
|
45d183ccdd | ||
|
|
c96a6c235a | ||
|
|
5f8aa0c835 | ||
|
|
1634c58e72 | ||
|
|
9ac26c1afc | ||
|
|
72227426d2 | ||
|
|
b5a0859c64 | ||
|
|
d767decdff | ||
|
|
2dc450ddc5 | ||
|
|
7dcf35740e | ||
|
|
4ce107ed05 | ||
|
|
2d37c956fa | ||
|
|
77658d4f2d | ||
|
|
d7678623db | ||
|
|
cf8d2fabba | ||
|
|
65de266b3a | ||
|
|
44d2b83e54 | ||
|
|
2cd6c8190d | ||
|
|
9598355869 | ||
|
|
c1e044c58e | ||
|
|
4cb132adc8 | ||
|
|
29d872dcb4 | ||
|
|
9532330db5 | ||
|
|
2e9f3cfa2d | ||
|
|
f6015ced77 | ||
|
|
1fd59cb419 | ||
|
|
914358ceaf | ||
|
|
55196b55a1 | ||
|
|
f6a2199479 | ||
|
|
a513c6aecd | ||
|
|
7457727edf | ||
|
|
3aef931508 | ||
|
|
daf6d51d94 | ||
|
|
deba72a3a0 | ||
|
|
570d7d89e0 | ||
|
|
1ec080a8b0 | ||
|
|
6874357bb1 | ||
|
|
44164b95ba | ||
|
|
6b5040a9f4 | ||
|
|
1430ab42ec | ||
|
|
999b97e67c | ||
|
|
144797f9fa | ||
|
|
ad96d70d5d | ||
|
|
7135a682de | ||
|
|
7354eb918a | ||
|
|
dc26623946 | ||
|
|
e983315b33 | ||
|
|
e6ebf87171 | ||
|
|
8e5d7c690e | ||
|
|
95e2ee7744 | ||
|
|
374b3d5b1e | ||
|
|
154e91935e | ||
|
|
0ab286d6ab | ||
|
|
5c19b72064 | ||
|
|
ba7bf8c2fc | ||
|
|
5584a2e681 | ||
|
|
92da7473ec | ||
|
|
59ff44469d | ||
|
|
405f7449ad | ||
|
|
90abcd60a5 | ||
|
|
16eb61c8f1 | ||
|
|
5adddba9c4 | ||
|
|
1c92500e44 | ||
|
|
df8b933312 | ||
|
|
408e1d9cdd | ||
|
|
7accb7d352 | ||
|
|
2443adfe25 | ||
|
|
7bfdf43541 | ||
|
|
d9606f0bbc | ||
|
|
4ed87e2177 | ||
|
|
b76c35e418 | ||
|
|
e46da67025 | ||
|
|
3906696172 | ||
|
|
b26ae3a8d9 | ||
|
|
852af01020 | ||
|
|
d9e22b991f | ||
|
|
aca84febb2 | ||
|
|
d5b826666c | ||
|
|
960b78874a | ||
|
|
b13a2feec6 | ||
|
|
dfb040ad3f | ||
|
|
04ecd8c1f7 | ||
|
|
6d955cd770 | ||
|
|
ced0cb6c32 | ||
|
|
53bd89e000 | ||
|
|
9937b3a745 | ||
|
|
98bc5f73d5 | ||
|
|
7cf85dacaf | ||
|
|
5fae8ab13a | ||
|
|
f588700899 | ||
|
|
692fc910e9 | ||
|
|
6251a6bbb6 | ||
|
|
5494d77c75 | ||
|
|
634bc8a1c8 | ||
|
|
3966278ac6 | ||
|
|
171c052646 | ||
|
|
f6d6cf9cd7 | ||
|
|
9d91df8865 | ||
|
|
2cb905ea59 | ||
|
|
2a9498d3ab | ||
|
|
516e0fa113 | ||
|
|
d42fc69330 | ||
|
|
c170b14747 | ||
|
|
407d0bcf20 | ||
|
|
b2516c2b5a | ||
|
|
4143e13b12 | ||
|
|
ce661e8c0c | ||
|
|
fc4c480801 | ||
|
|
ae4f35201f | ||
|
|
547509cf37 | ||
|
|
b3b4f3b2ad | ||
|
|
6f82cb2e87 | ||
|
|
97743dd949 | ||
|
|
e1858a302c | ||
|
|
5ffc6c1671 | ||
|
|
f456433eea | ||
|
|
47d0024191 | ||
|
|
a01f430d2e | ||
|
|
621619a16b | ||
|
|
004d89c039 | ||
|
|
39883c25a4 | ||
|
|
9dfeca0e34 | ||
|
|
fe6f7df8ab | ||
|
|
1ca1f40c3d | ||
|
|
603b6c010f | ||
|
|
3f27d9f701 | ||
|
|
c0789e7a38 | ||
|
|
ef85181077 | ||
|
|
f823d4f996 | ||
|
|
e8f930f579 | ||
|
|
d1d942cd08 | ||
|
|
be68fad7c8 | ||
|
|
59467b852d | ||
|
|
cdeb2b60ad | ||
|
|
3d1541683e | ||
|
|
86f095d728 | ||
|
|
d0bc34f1e8 | ||
|
|
ce97a20f6a | ||
|
|
a6207eff66 | ||
|
|
47eaea6048 | ||
|
|
465f4dc20c | ||
|
|
2b4a5eb039 | ||
|
|
7face30f0b | ||
|
|
d72912481e | ||
|
|
0d42eb1e33 | ||
|
|
cf2fc1156c | ||
|
|
3709c4b8de | ||
|
|
2e34a68d89 | ||
|
|
31d60f6f3b | ||
|
|
8eead75ef9 | ||
|
|
9b2dbfa6e0 | ||
|
|
b10768fcb5 | ||
|
|
b53a6a9a4d | ||
|
|
15c2e6c62b | ||
|
|
768bced602 | ||
|
|
4394df2555 | ||
|
|
03089ea092 | ||
|
|
88852be213 | ||
|
|
1013c6a62b | ||
|
|
10f8b4bbd7 | ||
|
|
bbe8e2fd3d | ||
|
|
c692f9b548 | ||
|
|
96e3683cda | ||
|
|
018377f66f | ||
|
|
d70e0a93bf | ||
|
|
cc21806b3c | ||
|
|
f60f92ae9b | ||
|
|
140c355e9d | ||
|
|
607abc3f41 | ||
|
|
7a25b78fd9 | ||
|
|
8fdf857e6b | ||
|
|
48e0230263 | ||
|
|
6c987f0c29 | ||
|
|
5b6a4ec2a3 | ||
|
|
535391775b | ||
|
|
3a50c0002d | ||
|
|
80f6c66dc0 | ||
|
|
6c8e984dcf | ||
|
|
36cca0973e | ||
|
|
9d674da903 | ||
|
|
8734f5a299 | ||
|
|
818d78e1c6 | ||
|
|
ea1ab77107 | ||
|
|
f21e08684c | ||
|
|
2a2b778984 | ||
|
|
f555fbc60e | ||
|
|
56286c7460 | ||
|
|
f866c4e473 | ||
|
|
8445d6cb45 | ||
|
|
5ce592dd7b | ||
|
|
d552c1d4c9 | ||
|
|
bbeed12ed6 | ||
|
|
82188f7c01 | ||
|
|
4eea2090b6 | ||
|
|
5d8c6f90f0 | ||
|
|
79e125e51f | ||
|
|
8842d41d17 | ||
|
|
0d6835bf52 | ||
|
|
89b4ffbfaa | ||
|
|
c6061d56e8 | ||
|
|
df610f4bbd | ||
|
|
d06f447c3c | ||
|
|
5e9da76301 | ||
|
|
c29422b723 | ||
|
|
ba589d9335 | ||
|
|
27bfba09d7 | ||
|
|
1d95c894ae | ||
|
|
77c3db1c9b | ||
|
|
10b0b49188 | ||
|
|
d138a59ffa | ||
|
|
3f82715281 | ||
|
|
1e84c3a252 | ||
|
|
8c596a3c88 | ||
|
|
1f92b3668b | ||
|
|
451d8e8c56 | ||
|
|
200e2ebbd4 | ||
|
|
39b45c338c | ||
|
|
f8d7acf41a | ||
|
|
d777185831 | ||
|
|
0a9a612c86 | ||
|
|
cc694305ca | ||
|
|
817325bda0 | ||
|
|
dc22fb93ae | ||
|
|
fd99f73720 | ||
|
|
e23ce953aa | ||
|
|
418ac9cb58 | ||
|
|
3603af2e6b | ||
|
|
0b56ff74b0 | ||
|
|
e1e31df740 | ||
|
|
118ff72432 | ||
|
|
ab3cd77337 | ||
|
|
7ad0563f63 | ||
|
|
67a793771f | ||
|
|
27349f9ee9 | ||
|
|
65f2e0f6ad | ||
|
|
0e8a568c30 | ||
|
|
31865372f8 | ||
|
|
8c6c110e3a | ||
|
|
6c26498aa2 | ||
|
|
4b9b63eb00 | ||
|
|
222b8cb7ae | ||
|
|
df2d72a34e | ||
|
|
e34826a2ff | ||
|
|
d76a5f87b6 | ||
|
|
7722668c7e | ||
|
|
8a85df83ac | ||
|
|
13297f7bb2 | ||
|
|
9c172ce972 | ||
|
|
9c4b78343d | ||
|
|
a192af5514 | ||
|
|
5a2afddc82 | ||
|
|
8a45f2973d | ||
|
|
d9e052330d | ||
|
|
288d2fb836 | ||
|
|
fc793d7c4d | ||
|
|
257398fb3f | ||
|
|
6db89ec924 | ||
|
|
cbdb0760c5 | ||
|
|
501efbde23 | ||
|
|
83931cf42a | ||
|
|
1bbc9f93a9 | ||
|
|
e0a10d8a39 | ||
|
|
e4ecce30be | ||
|
|
0a8c70ccc1 | ||
|
|
ef2d13b0e2 | ||
|
|
12ffe77f19 | ||
|
|
d685b50f17 | ||
|
|
42d62047cb | ||
|
|
38a19b35ed | ||
|
|
37171ecaa6 | ||
|
|
c4dbe8ef5a | ||
|
|
e60178869a | ||
|
|
3686b4169f | ||
|
|
cc39fd8094 | ||
|
|
71076aaa9c | ||
|
|
263871a6b8 | ||
|
|
ab3b80fd42 | ||
|
|
a6045cf24e | ||
|
|
8083b24b9c | ||
|
|
773057ee11 | ||
|
|
7c495468e7 | ||
|
|
0a5c34cdb3 | ||
|
|
c7a789f5f5 | ||
|
|
9cec81310b | ||
|
|
7fcee1c500 | ||
|
|
df96242c7e | ||
|
|
1e6a20e9e0 | ||
|
|
5437824ad2 | ||
|
|
4b49454956 | ||
|
|
23d3acde55 | ||
|
|
f4cf1f151d | ||
|
|
3c12ab138c | ||
|
|
233d83750b | ||
|
|
dc9e507df5 | ||
|
|
fecd479db2 | ||
|
|
d35ae463b5 | ||
|
|
302126b5f4 | ||
|
|
b0115be27d | ||
|
|
7e66305e16 | ||
|
|
c0dfd22ddb | ||
|
|
a73471643e | ||
|
|
bfd1681932 | ||
|
|
7d545b56f5 | ||
|
|
f0e5f9c782 | ||
|
|
35afebac37 | ||
|
|
9bc22acb3f | ||
|
|
6dcb54bfc7 | ||
|
|
2bdfc80c58 | ||
|
|
09b4a8f870 | ||
|
|
ace267cf7b | ||
|
|
b4a2bb9e7f | ||
|
|
ea736d4707 | ||
|
|
6a78e8cf84 | ||
|
|
1b5fc9f49b | ||
|
|
d37ca2d3d8 | ||
|
|
8a320392f4 | ||
|
|
e3263eabcd | ||
|
|
0246b885ad | ||
|
|
3ef9fa1210 | ||
|
|
7d07b88395 | ||
|
|
08f4da8343 | ||
|
|
a2ce89e46a | ||
|
|
6ceec09f0d | ||
|
|
47dc66ac79 | ||
|
|
4afed447e8 | ||
|
|
a999ddd582 | ||
|
|
38005bc214 | ||
|
|
bb221d3a07 | ||
|
|
ef7d44d4d0 | ||
|
|
16984d5906 | ||
|
|
49c4451d7d | ||
|
|
68a712c9d6 | ||
|
|
220618bc4f | ||
|
|
1c6b9eab4d | ||
|
|
07a78d3ad2 | ||
|
|
dc7ca5f2cc | ||
|
|
6351444ffc | ||
|
|
843bb0d72b | ||
|
|
b2c79dff79 | ||
|
|
e6f24c67dd | ||
|
|
459ba34789 | ||
|
|
1d80b5d0ef | ||
|
|
2519c6f961 | ||
|
|
60315f2849 | ||
|
|
280ca04a44 | ||
|
|
74f5ae0fb3 | ||
|
|
ef3944a4a6 | ||
|
|
c300da8b25 | ||
|
|
957b5d8a06 | ||
|
|
74b77919e7 | ||
|
|
be44c96847 | ||
|
|
c7c40c83a9 | ||
|
|
1f2228a991 | ||
|
|
96f5d04839 | ||
|
|
ebb88e255b | ||
|
|
2b4d85d1da | ||
|
|
dc999354ca | ||
|
|
cdc7c587a8 | ||
|
|
fe08144bf5 | ||
|
|
054a7b3926 | ||
|
|
765ceddcb9 | ||
|
|
0700c0b613 | ||
|
|
68b2c59c1f | ||
|
|
a5871d6390 | ||
|
|
f0c7b3725e | ||
|
|
ea9d7c72aa | ||
|
|
cff59eb342 | ||
|
|
a5ef302fa4 | ||
|
|
1515e9e1f3 | ||
|
|
924668c1fd | ||
|
|
971d025910 | ||
|
|
7e29add93e | ||
|
|
91cd6bb716 | ||
|
|
b46ae1db0f | ||
|
|
6e3033086f | ||
|
|
b44546d755 | ||
|
|
b6ace61817 | ||
|
|
e140ed9514 | ||
|
|
516da45523 | ||
|
|
f1462d92b7 | ||
|
|
b90a00c28c | ||
|
|
5bff5b7d12 | ||
|
|
4a2fc9e0d3 | ||
|
|
37f5929511 | ||
|
|
7fca82784e | ||
|
|
dfb057bfbf | ||
|
|
ff83788463 | ||
|
|
c223983f28 | ||
|
|
71bf5e5ab8 | ||
|
|
40d85b3873 | ||
|
|
f5b2b29376 | ||
|
|
8c10378fa5 | ||
|
|
c416945abb | ||
|
|
0279ecae84 | ||
|
|
0d29cfffac | ||
|
|
0d56b5bf03 | ||
|
|
77a0c55176 | ||
|
|
a527c3f507 | ||
|
|
3f4b2eb9eb | ||
|
|
883632adb9 | ||
|
|
48964a4b25 | ||
|
|
5cdfd79fe5 | ||
|
|
80f5a499b7 | ||
|
|
4fd5dadb0f | ||
|
|
ba7deb6725 | ||
|
|
3341323db3 | ||
|
|
e1ec21332c | ||
|
|
d52ca0dd0c | ||
|
|
bc23dde9fe | ||
|
|
bb0f2913b5 | ||
|
|
9e068b1bbc | ||
|
|
6cf118a3b1 | ||
|
|
963092a1cf | ||
|
|
92f48895e2 | ||
|
|
72a827ab6d | ||
|
|
ae86a49fd6 | ||
|
|
68d0bc9bc5 | ||
|
|
cf98bc8d95 | ||
|
|
85fad15233 | ||
|
|
2cc6edda2e | ||
|
|
fa8d52a1a9 | ||
|
|
17cb3e5acf | ||
|
|
beda918d52 | ||
|
|
a7607ab939 | ||
|
|
ec55c189c4 | ||
|
|
809e15214b | ||
|
|
3e1fae8e5d | ||
|
|
8da2c9ad92 | ||
|
|
7025c87394 | ||
|
|
977283136a | ||
|
|
f376065a54 | ||
|
|
30fbdf3c9b | ||
|
|
d4de7df987 | ||
|
|
0c183165fc | ||
|
|
12574f3f64 | ||
|
|
50f3e98002 | ||
|
|
0789c3ac27 | ||
|
|
3f7ec1b4d5 | ||
|
|
f3a9d39226 | ||
|
|
1e8ffe10c1 | ||
|
|
2374995356 | ||
|
|
d132de8de5 | ||
|
|
8ca94f5cf8 | ||
|
|
46904e1a6b | ||
|
|
52bcbcb550 | ||
|
|
9c22750a26 | ||
|
|
61a4ee8f52 | ||
|
|
fbe4635d6c | ||
|
|
641fd1c65d | ||
|
|
167067a90c | ||
|
|
822d41be97 | ||
|
|
5e26d5c6fc | ||
|
|
62a57a3445 | ||
|
|
e94c2b63d2 | ||
|
|
c1ecbdeb1a | ||
|
|
62b6d00fcc | ||
|
|
f9e4575e07 | ||
|
|
207aee279b | ||
|
|
6615362c61 | ||
|
|
0be3a775d7 | ||
|
|
8bdb75f776 | ||
|
|
4e45e1f43d | ||
|
|
e967cdca54 | ||
|
|
c4347b747b | ||
|
|
cf7cb474e4 | ||
|
|
d42e307187 | ||
|
|
e12b2b9fa4 | ||
|
|
f58c5ae67f | ||
|
|
4d07f96e0b | ||
|
|
6a5a53b142 | ||
|
|
7f346c70d5 | ||
|
|
08c706bcfb | ||
|
|
7be1b74cf9 | ||
|
|
192822b062 | ||
|
|
c738f3fbb5 | ||
|
|
00fe7d2943 | ||
|
|
92ac9bc692 | ||
|
|
dcf14d58b8 | ||
|
|
f6f1497847 | ||
|
|
b06c2f2d5b | ||
|
|
6f57e8fb60 | ||
|
|
30311afda1 | ||
|
|
fea9dc1570 | ||
|
|
0e242e4b90 | ||
|
|
bb8920b68c | ||
|
|
e3911fc56c | ||
|
|
6bb1499842 | ||
|
|
ef838c65c7 | ||
|
|
eea2c21153 | ||
|
|
d984bba156 | ||
|
|
db2022e3cf | ||
|
|
abafdd5c5d | ||
|
|
af5c4bae3a | ||
|
|
7929039bd4 | ||
|
|
a78e66a69a | ||
|
|
77cedac33f | ||
|
|
30ecb09e48 | ||
|
|
da440fdbda | ||
|
|
7dc7db4fe4 | ||
|
|
d7995abfa7 | ||
|
|
72aa309dda | ||
|
|
d198f6f410 | ||
|
|
d6dcad85c5 | ||
|
|
573169b6c2 | ||
|
|
cb09bf0137 | ||
|
|
d80d0baaa5 | ||
|
|
28b6d77279 | ||
|
|
78b9bd06c4 | ||
|
|
907117573b | ||
|
|
17b4f21317 | ||
|
|
c256ad2bec | ||
|
|
3d4fa22127 | ||
|
|
0aaf395f1b | ||
|
|
5599e187e7 | ||
|
|
da9bbdb58f | ||
|
|
75a4bc17b4 | ||
|
|
dcac2cd2ba | ||
|
|
e7a0fcabc7 | ||
|
|
bd0ab0013f | ||
|
|
54c89b4488 | ||
|
|
443dd8ab93 | ||
|
|
d3c1253bb9 | ||
|
|
3b22d451d8 | ||
|
|
c62039d0fe | ||
|
|
a4bfcb5921 | ||
|
|
d9bb6e4db9 | ||
|
|
ea8e230d76 | ||
|
|
c200028bc0 | ||
|
|
e985752eae | ||
|
|
82029e6f81 | ||
|
|
e5ca34021a | ||
|
|
737ebc6321 | ||
|
|
f8a1ff2e92 | ||
|
|
933ddf4221 | ||
|
|
f8a94d186a | ||
|
|
408d8dc635 | ||
|
|
97c2325b95 | ||
|
|
ca215608d6 | ||
|
|
ab97df91ef | ||
|
|
ee4425a4c0 | ||
|
|
15ba187aa3 | ||
|
|
7b14ba476f | ||
|
|
4af5047907 | ||
|
|
f498144f5e | ||
|
|
6c6208aa7e | ||
|
|
8cf865de84 | ||
|
|
22bf9de635 | ||
|
|
461b6ba700 | ||
|
|
69567af795 | ||
|
|
f7f20a8ff8 | ||
|
|
717d5e3da5 | ||
|
|
4ad20c7687 | ||
|
|
e14c8b18c8 | ||
|
|
2cfc8ee74c | ||
|
|
73047a6114 | ||
|
|
bb41dec4f6 | ||
|
|
c1193fcda0 | ||
|
|
b1f1214534 | ||
|
|
7b050209a8 | ||
|
|
74c26ba715 | ||
|
|
fb2d0fb0f9 | ||
|
|
d307231325 | ||
|
|
5ca4abb05c | ||
|
|
86c3bfe43f | ||
|
|
e1f344b79f | ||
|
|
5214a155ba | ||
|
|
2b06e251dc | ||
|
|
b789a73e14 | ||
|
|
4d25b5acd2 | ||
|
|
dac90a3298 | ||
|
|
6f38d5f199 | ||
|
|
a795d948d9 | ||
|
|
4529897377 | ||
|
|
4784863c70 | ||
|
|
d884da1207 | ||
|
|
f334ae8925 | ||
|
|
bd521a56ca | ||
|
|
247b50d27f | ||
|
|
810b2d2193 | ||
|
|
10a5141b4c | ||
|
|
5514cd4118 | ||
|
|
7883618dbc | ||
|
|
e80a8b36ac | ||
|
|
60287821a6 | ||
|
|
18481bee41 | ||
|
|
48c11963f8 | ||
|
|
6619c4ef47 | ||
|
|
3df4d69b98 | ||
|
|
4956838f8f | ||
|
|
ae214249a3 | ||
|
|
bc30990044 | ||
|
|
69a2c7176e | ||
|
|
b910e72d40 | ||
|
|
8af467d970 | ||
|
|
0e1df36451 | ||
|
|
9c0faf4e70 | ||
|
|
b1e7c758a7 | ||
|
|
16a92ecdb2 | ||
|
|
47ff6e0f9e | ||
|
|
ecca22e07a | ||
|
|
97002dd7aa | ||
|
|
7c5b5d66ff | ||
|
|
c757aca483 | ||
|
|
8a71408485 | ||
|
|
bf62773448 | ||
|
|
f1124be5eb | ||
|
|
6d0ef3dff5 | ||
|
|
fa8f90d8c3 | ||
|
|
edc0d4df00 | ||
|
|
b958a809c5 | ||
|
|
0a3cd3f04b | ||
|
|
170e21e0c8 | ||
|
|
4a3dcc890f | ||
|
|
091a714713 | ||
|
|
fb4b0f9cc0 | ||
|
|
0f96683e24 | ||
|
|
19ae780bb6 | ||
|
|
9012dabb3e | ||
|
|
fcc7c4cd2a | ||
|
|
1ece8598da | ||
|
|
bd2ac5a2ef | ||
|
|
45d9564e95 | ||
|
|
3d600876a1 | ||
|
|
4f654e2f53 | ||
|
|
38adf360ef | ||
|
|
def409af3f | ||
|
|
9cc764fc12 | ||
|
|
d3d578ae26 | ||
|
|
a9b3660403 | ||
|
|
1c0b129391 | ||
|
|
7cc8a4055b | ||
|
|
dfa86d81fe | ||
|
|
eec038c519 | ||
|
|
ec10e794be | ||
|
|
75d096a5ee | ||
|
|
cab99c5f26 | ||
|
|
aea6325487 | ||
|
|
88084a581c | ||
|
|
5c5d77d125 | ||
|
|
0f4bbf7aa4 | ||
|
|
6bbede0a65 | ||
|
|
6f325a59db | ||
|
|
68b6b3fbcd | ||
|
|
2ec47dff76 | ||
|
|
c00dd838c6 | ||
|
|
71a6e1c79b | ||
|
|
794822c542 | ||
|
|
2e1918b793 | ||
|
|
c9c28030c6 | ||
|
|
046044645d | ||
|
|
a534e28c31 | ||
|
|
5d0b6bb4c3 | ||
|
|
a3c08af485 | ||
|
|
2018b1d0f3 | ||
|
|
9939880334 | ||
|
|
537746a6cb | ||
|
|
8e4394b44b | ||
|
|
520a62c289 | ||
|
|
85cd595267 | ||
|
|
84c6632093 | ||
|
|
c4ec620e04 | ||
|
|
9339fa9b79 | ||
|
|
81a05cba11 | ||
|
|
a472002822 | ||
|
|
fa927dd63c | ||
|
|
a9d952ef37 | ||
|
|
b00207c6c0 | ||
|
|
bedb598793 | ||
|
|
6d8e1ce97f | ||
|
|
22fba56a6a | ||
|
|
07361d978e | ||
|
|
c2a932cbcd | ||
|
|
816abc1044 | ||
|
|
a6ef57cb83 | ||
|
|
19649f8028 | ||
|
|
bc5212dc9b | ||
|
|
b4e0d5e83d | ||
|
|
997378062c | ||
|
|
c0906d1ce1 | ||
|
|
4edf3d63f3 | ||
|
|
af81e6b0ab | ||
|
|
7ef19365a9 | ||
|
|
04070fe852 | ||
|
|
fa47916247 | ||
|
|
d8e0311ca7 | ||
|
|
8267b80214 | ||
|
|
2bc8ed274b | ||
|
|
e628a7137a | ||
|
|
ce7aadca21 | ||
|
|
f69c8ced98 | ||
|
|
92ffd3ce73 | ||
|
|
28cb6d17ed | ||
|
|
4d3b881959 | ||
|
|
1166bede86 | ||
|
|
ac451e6519 | ||
|
|
a5a564327a | ||
|
|
10360bf14a | ||
|
|
ee978ab20d | ||
|
|
30aa8ca1bf | ||
|
|
539bd67014 | ||
|
|
b4440f585b | ||
|
|
d91e8d0575 | ||
|
|
37ee6f7988 | ||
|
|
31c80cec44 | ||
|
|
b34a52faf4 | ||
|
|
5b2e634acf | ||
|
|
acd2667ba5 | ||
|
|
a364eccb10 | ||
|
|
2052ac2810 | ||
|
|
fd7e3074bc | ||
|
|
adc624ce0b | ||
|
|
3dc5184c62 | ||
|
|
0deb6d5788 | ||
|
|
5042a8e4b8 | ||
|
|
98b4077c07 | ||
|
|
b9e06dbc54 | ||
|
|
d58005764c | ||
|
|
2fa50318d1 | ||
|
|
91689206db | ||
|
|
c3e9c66d77 | ||
|
|
9726ec12a6 | ||
|
|
c5e047ae5b | ||
|
|
78e493ff49 | ||
|
|
3e59d1ea92 | ||
|
|
163fb2348e | ||
|
|
dcd450b076 | ||
|
|
4cef4af1e9 | ||
|
|
894bfd951b | ||
|
|
1f42836ba4 | ||
|
|
59e42aa77a | ||
|
|
28cf4d06ab | ||
|
|
703230968b | ||
|
|
ac7bb1f70a | ||
|
|
5b7578aefb | ||
|
|
248925e652 | ||
|
|
1859648bae | ||
|
|
554b691f3e | ||
|
|
93432fc48c | ||
|
|
c3feb330b6 | ||
|
|
44f5d56d96 | ||
|
|
b8b3ecdc63 | ||
|
|
6881bffcde | ||
|
|
66f4dea749 | ||
|
|
c80486d31e | ||
|
|
3b3c28847f | ||
|
|
a54458b70a | ||
|
|
5ea535acd2 | ||
|
|
527da92e4a | ||
|
|
215bc793bf | ||
|
|
f7a3ed8f28 | ||
|
|
f2853f428f | ||
|
|
51e944c98f | ||
|
|
f9a067d2f4 | ||
|
|
055d6a826b | ||
|
|
e90ef74523 | ||
|
|
001bf396df | ||
|
|
24daf39f6d | ||
|
|
efc92da96e | ||
|
|
7adf5800b0 | ||
|
|
f170b1395a | ||
|
|
7c0997f6f3 | ||
|
|
789baaf316 | ||
|
|
540b228247 | ||
|
|
f584e872ce | ||
|
|
5308132ff8 | ||
|
|
d5889d1c22 | ||
|
|
05fcc6dbd1 | ||
|
|
8002db31d2 | ||
|
|
a2bed82c91 | ||
|
|
3765ab5565 | ||
|
|
6f2918b34c | ||
|
|
49b3f28b36 | ||
|
|
d7667dbcde | ||
|
|
29b67cb2a3 | ||
|
|
b86fd1a6f2 | ||
|
|
4a69f141e9 | ||
|
|
596cfe44b3 | ||
|
|
bf5f4a86d9 | ||
|
|
0a5f3f9e7d | ||
|
|
37b7d5b846 | ||
|
|
87cb0d3160 | ||
|
|
6beb13e21d | ||
|
|
42611ca3b7 | ||
|
|
627a6ee08b | ||
|
|
cf8f1ea43b |
@@ -1,3 +1,4 @@
|
||||
liberapay: marcpartensky
|
||||
patreon: marcpartensky
|
||||
github: marcpartensky
|
||||
custom:
|
||||
|
||||
@@ -23,4 +23,5 @@ jobs:
|
||||
run: make merge
|
||||
- name: Validate docker-compose.yml
|
||||
# run: docker-compose -f stacks/docker-compose.yml config
|
||||
run: /opt/validator/validator-cli.py -f stacks/docker-compose.yml
|
||||
# run: /opt/validator/validator-cli.py -f stacks/docker-compose.yml
|
||||
run: docker-compose -f stacks/docker-compose.yml ps
|
||||
|
||||
+38
-2
@@ -1,8 +1,9 @@
|
||||
*.env
|
||||
data/secrets/*.env
|
||||
!data/secrets/*.template.env
|
||||
docker-compose.yml
|
||||
data/openvpn
|
||||
data/secrets
|
||||
data/certbot
|
||||
data/traefik
|
||||
data/searx
|
||||
data/jenkins
|
||||
data/beef
|
||||
@@ -13,5 +14,40 @@ data/matrix
|
||||
data/heimdall
|
||||
data/pihole/etc-pihole
|
||||
data/pxe
|
||||
data/postgres/certs
|
||||
data/wireguard
|
||||
data/vaultwarden
|
||||
data/filebrowser
|
||||
data/focalboard
|
||||
data/openvpn_*
|
||||
data/mailcow
|
||||
data/dockvpn
|
||||
data/hydra
|
||||
data/yt-dlp
|
||||
data/mongo
|
||||
data/gpg
|
||||
data/redis
|
||||
data/fdroid
|
||||
data/grafana
|
||||
data/qbittorrent
|
||||
data/webdav
|
||||
data/pufferpanel
|
||||
data/dockge
|
||||
data/ocis
|
||||
data/owncloud
|
||||
data/wg-easy
|
||||
data/nextcloud
|
||||
data/casdoor
|
||||
data/stash
|
||||
data/code-server
|
||||
data/gotify
|
||||
data/apprise
|
||||
data/calibre
|
||||
data/codeserver
|
||||
data/consul
|
||||
data/zitadel
|
||||
data.tar.gz
|
||||
data.7z
|
||||
data.7z.gpg
|
||||
services/template.yml
|
||||
data/traefik/dynamic/oidc.yml
|
||||
|
||||
@@ -8,9 +8,25 @@ mswarm: merge
|
||||
docker stack deploy -c stacks/docker-compose.yml vps
|
||||
down:
|
||||
docker stack rm vps
|
||||
pull:
|
||||
for file in services/*; do docker-compose -f $$file pull; done
|
||||
export:
|
||||
tar cvzf data.tgz data
|
||||
gpg --encrypt --recipient 'marc.partensky@gmail.com' data.tgz
|
||||
rm data.tgz
|
||||
network:
|
||||
docker network create --driver overlay --attachable caddy
|
||||
7z a -p data.7z data
|
||||
import:
|
||||
7z x -p data.7z
|
||||
sign:
|
||||
gpg --encrypt --sign --recipient 'marc@marcpartensky.com' data.7z
|
||||
# rm data.tgz
|
||||
networks:
|
||||
docker network create --attachable caddy || true
|
||||
docker network create --attachable ldap || true
|
||||
docker network create --attachable postgres || true
|
||||
docker network create --attachable mongo || true
|
||||
docker network create --attachable vpn || true
|
||||
docker network create --attachable redis || true
|
||||
docker network create --attachable mqtt || true
|
||||
docker network create --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
|
||||
docker network create --subnet 10.22.69.0/24 --gateway 10.22.69.1 --attachable pritunl || true
|
||||
node:
|
||||
docker node update --label-add net=web contabo
|
||||
docker node update --label-add net=none tower
|
||||
|
||||
@@ -1,70 +1,221 @@
|
||||
[](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml)
|
||||
|
||||
# Docker
|
||||
|
||||
## Domains
|
||||
- https://marcpartensky.com
|
||||
- https://pandoc.marcpartensky.com
|
||||
- https://ialab.marcpartensky.com
|
||||
- https://notebook.marcpartensky.com
|
||||
- https://searx.marcpartensky.com
|
||||
- https://cloud.marcpartensky.com
|
||||
- https://wordpress.marcpartensky.com
|
||||
- https://git.marcpartensky.com
|
||||
- https://gitlab.marcpartensky.com
|
||||
- https://todolist.marcpartensky.com
|
||||
- https://api.todolist.marcpartensky.com
|
||||
- https://uml.marcpartensky.com
|
||||
- https://grafana.marcpartensky.com
|
||||
- https://prometheus.marcpartensky.com
|
||||
- https://swarm.marcpartensky.com
|
||||
- https://auth.marcpartensky.com
|
||||
- https://seafile.marcpartensky.com
|
||||
- https://mail.marcpartensky.com
|
||||
- https://arch.marcpartensky.com
|
||||
<!-- - https://dns.marcpartensky.com -->
|
||||
<!-- - https://glou.marcpartensky.com -->
|
||||
<!-- - https://minecraft.marcpartensky.com -->
|
||||
[](https://heimdall.marcpartensky.com)
|
||||
|
||||
## Reverse proxy
|
||||
The `docker-compose.yml` configuration is compatible with the following reverse-proxies:
|
||||
- traefik
|
||||
- caddy
|
||||
- nginx
|
||||
Self-hosted infrastructure managing 150+ services via Docker Compose, deployed on a personal VPS with automated merge/deploy tooling and multi reverse-proxy support (Traefik, Caddy, Nginx).
|
||||
|
||||
All services are in the `services/` folder as individual Compose files, ready to deploy standalone or merged into a single stack.
|
||||
|
||||
## Services
|
||||
|
||||
|
||||
|
||||
| Service | Description |
|
||||
| --- | --- |
|
||||
| [adguard](services/adguard/compose.yml) | Network-wide DNS ad blocker |
|
||||
| [authentik](services/authentik/compose.yml) | SSO / identity provider |
|
||||
| [authentik_ldap](services/authentik_ldap/compose.yml) | Authentik LDAP outpost |
|
||||
| [authelia](services/authelia/compose.yml) | Lightweight SSO and 2FA gateway |
|
||||
| [casdoor](services/casdoor/compose.yml) | OAuth2 / OIDC identity platform |
|
||||
| [keycloak](services/keycloak/compose.yml) | Enterprise identity and access management |
|
||||
| [ldap](services/ldap/compose.yml) | OpenLDAP directory server |
|
||||
| [ldap-manager](services/ldap-manager/compose.yml) | LDAP management UI |
|
||||
| [zitadel](services/zitadel/compose.yml) | Cloud-native identity platform |
|
||||
| [hydra](services/hydra/compose.yml) | OAuth2 server (ORY Hydra) |
|
||||
| [traefik](services/traefik/compose.yml) | Reverse proxy and automatic TLS termination |
|
||||
| [caddy](services/caddy/compose.yml) | Modern reverse proxy with auto-HTTPS |
|
||||
| [nginx](services/nginx/compose.yml) | Classic HTTP reverse proxy |
|
||||
| [pangolin](services/pangolin/compose.yml) | Tunneled reverse proxy for private networks |
|
||||
| [cloudflare](services/cloudflare/compose.yml) | Cloudflare tunnel / DDNS integration |
|
||||
| [sslh](services/sslh/compose.yml) | SSL/SSH multiplexer on port 443 |
|
||||
| [wireguard](services/wireguard/compose.yml) | WireGuard VPN server |
|
||||
| [wireguard-client](services/wireguard-client/compose.yml) | WireGuard VPN client |
|
||||
| [openvpn](services/openvpn/compose.yml) | OpenVPN server |
|
||||
| [openvpn_client](services/openvpn_client/compose.yml) | OpenVPN client |
|
||||
| [dockvpn](services/dockvpn/compose.yml) | VPN-in-Docker setup |
|
||||
| [ipsec](services/ipsec/compose.yml) | IPSec VPN (strongSwan) |
|
||||
| [libreswan](services/libreswan/compose.yml) | IPSec VPN (Libreswan) |
|
||||
| [pritunl](services/pritunl/compose.yml) | OpenVPN management platform |
|
||||
| [gluetun](services/gluetun/compose.yml) | VPN client container with killswitch |
|
||||
| [wstunnel](services/wstunnel/compose.yml) | WebSocket tunneling |
|
||||
| [tunnel](services/tunnel/compose.yml) | Generic tunnel service |
|
||||
| [grafana](services/grafana/compose.yml) | Metrics and monitoring dashboards |
|
||||
| [prometheus](services/prometheus/compose.yml) | Time-series metrics collection |
|
||||
| [cadvisor](services/cadvisor/compose.yml) | Container resource usage monitoring |
|
||||
| [signoz](services/signoz/compose.yml) | OpenTelemetry observability platform |
|
||||
| [uptime](services/uptime/compose.yml) | Uptime Kuma - service health monitoring |
|
||||
| [diun](services/diun/compose.yml) | Docker image update notifier |
|
||||
| [wud](services/wud/compose.yml) | What's Up Docker - image update tracker |
|
||||
| [fail2ban](services/fail2ban/compose.yml) | Intrusion prevention via log analysis |
|
||||
| [portainer](services/portainer/compose.yml) | Docker container management UI |
|
||||
| [dockge](services/dockge/compose.yml) | Docker Compose stack manager UI |
|
||||
| [rancher](services/rancher/compose.yml) | Kubernetes / multi-cluster management |
|
||||
| [swarmpit](services/swarmpit/compose.yml) | Docker Swarm management UI |
|
||||
| [swarm-visualizer](services/swarm-visualizer/compose.yml) | Docker Swarm topology visualizer |
|
||||
| [mobydock](services/mobydock/compose.yml) | Docker management dashboard |
|
||||
| [dockerdash](services/dockerdash/compose.yml) | Docker container dashboard |
|
||||
| [docker](services/docker/compose.yml) | Docker-in-Docker setup |
|
||||
| [registry](services/registry/compose.yml) | Private Docker image registry |
|
||||
| [sablier](services/sablier/compose.yml) | On-demand container startup |
|
||||
| [gitea](services/gitea/compose.yml) | Lightweight self-hosted Git service |
|
||||
| [gitlab](services/gitlab/compose.yml) | Full DevOps platform with CI/CD |
|
||||
| [jenkins](services/jenkins/compose.yml) | CI/CD automation server |
|
||||
| [gitbook](services/gitbook/compose.yml) | Git-based documentation platform |
|
||||
| [bookstack](services/bookstack/compose.yml) | Wiki and knowledge base |
|
||||
| [wikijs](services/wikijs/compose.yml) | Modern wiki platform |
|
||||
| [docuwiki](services/docuwiki/compose.yml) | DokuWiki flat-file wiki |
|
||||
| [outline](services/outline/compose.yml) | Team knowledge base and wiki |
|
||||
| [documize](services/documize/compose.yml) | Enterprise document management |
|
||||
| [logseq](services/logseq/compose.yml) | Local-first knowledge graph |
|
||||
| [mermaid](services/mermaid/compose.yml) | Diagram rendering service |
|
||||
| [jupyterlab](services/jupyterlab/compose.yml) | Interactive Python notebook environment |
|
||||
| [jupyterhub](services/jupyterhub/compose.yml) | Multi-user JupyterHub server |
|
||||
| [code-server](services/code-server/compose.yml) | VS Code in the browser |
|
||||
| [streamlit](services/streamlit/compose.yml) | Streamlit app hosting |
|
||||
| [ialab](services/ialab/compose.yml) | AI/ML experimentation environment |
|
||||
| [ia](services/ia/compose.yml) | AI service deployment |
|
||||
| [mistral](services/mistral/compose.yml) | Self-hosted Mistral LLM |
|
||||
| [open-webui](services/open-webui/compose.yml) | Web UI for local LLMs (Ollama) |
|
||||
| [real-esrgan](services/real-esrgan/compose.yml) | AI image upscaling service |
|
||||
| [chatgpt](services/chatgpt/compose.yml) | ChatGPT API proxy / UI |
|
||||
| [serge](services/serge/compose.yml) | LLaMA chat interface |
|
||||
| [nextcloud](services/nextcloud/compose.yml) | Cloud storage and collaboration suite |
|
||||
| [owncloud](services/owncloud/compose.yml) | Self-hosted file storage platform |
|
||||
| [ocis](services/ocis/compose.yml) | ownCloud Infinite Scale |
|
||||
| [seafile](services/seafile/compose.yml) | High-performance file sync and share |
|
||||
| [filebrowser](services/filebrowser/compose.yml) | Web-based file manager |
|
||||
| [syncthing](services/syncthing/compose.yml) | Peer-to-peer file synchronization |
|
||||
| [minio](services/minio/compose.yml) | S3-compatible object storage |
|
||||
| [webdav](services/webdav/compose.yml) | WebDAV file server |
|
||||
| [vaultwarden](services/vaultwarden/compose.yml) | Bitwarden-compatible password manager |
|
||||
| [paperless](services/paperless/compose.yml) | Paperless-ngx document management and OCR |
|
||||
| [docuseal](services/docuseal/compose.yml) | Document signing platform |
|
||||
| [pandoc](services/pandoc/compose.yml) | Universal document converter |
|
||||
| [calibre](services/calibre/compose.yml) | E-book library and converter |
|
||||
| [wallabag](services/wallabag/compose.yml) | Read-it-later / article archiver |
|
||||
| [linkding](services/linkding/compose.yml) | Minimalist bookmark manager |
|
||||
| [linkwarden](services/linkwarden/compose.yml) | Collaborative bookmark manager |
|
||||
| [yourls](services/yourls/compose.yml) | Self-hosted URL shortener |
|
||||
| [kutt](services/kutt/compose.yml) | Modern URL shortener |
|
||||
| [postgres](services/postgres/compose.yml) | PostgreSQL database |
|
||||
| [pgadmin](services/pgadmin/compose.yml) | PostgreSQL admin UI |
|
||||
| [pgweb](services/pgweb/compose.yml) | Lightweight PostgreSQL web client |
|
||||
| [postgrest](services/postgrest/compose.yml) | REST API auto-generated from PostgreSQL schema |
|
||||
| [pg-backup](services/pg-backup/compose.yml) | Automated PostgreSQL backup |
|
||||
| [mysql](services/mysql/compose.yml) | MySQL database |
|
||||
| [mongo](services/mongo/compose.yml) | MongoDB database |
|
||||
| [mongo_express](services/mongo_express/compose.yml) | MongoDB web admin UI |
|
||||
| [mongo_backup](services/mongo_backup/compose.yml) | Automated MongoDB backup |
|
||||
| [redis](services/redis/compose.yml) | In-memory key-value store |
|
||||
| [elasticsearch](services/elasticsearch/compose.yml) | Full-text search and analytics engine |
|
||||
| [kibana](services/kibana/compose.yml) | Elasticsearch visualization UI |
|
||||
| [dbdesigner](services/dbdesigner/compose.yml) | Database schema design tool |
|
||||
| [nocodb](services/nocodb/compose.yml) | Airtable-like interface over any SQL database |
|
||||
| [n8n](services/n8n/compose.yml) | Workflow automation platform |
|
||||
| [apprise](services/apprise/compose.yml) | Multi-platform push notification service |
|
||||
| [gotify](services/gotify/compose.yml) | Self-hosted push notification server |
|
||||
| [ntfy](services/ntfy/compose.yml) | Simple pub/sub notification service |
|
||||
| [mosquitto](services/mosquitto/compose.yml) | MQTT message broker |
|
||||
| [matrix](services/matrix/compose.yml) | Matrix homeserver (Synapse) |
|
||||
| [conduit](services/conduit/compose.yml) | Lightweight Matrix homeserver |
|
||||
| [rocketchat](services/rocketchat/compose.yml) | Self-hosted team chat platform |
|
||||
| [ssh-chat](services/ssh-chat/compose.yml) | Chat over SSH |
|
||||
| [discord-bot](services/discord-bot/compose.yml) | Discord bot deployment |
|
||||
| [discord_chatgpt](services/discord_chatgpt/compose.yml) | Discord bot with ChatGPT integration |
|
||||
| [jellyfin](services/jellyfin/compose.yml) | Media server (video, music, photos) |
|
||||
| [plex](services/plex/compose.yml) | Plex media server |
|
||||
| [peertube](services/peertube/compose.yml) | Self-hosted video platform |
|
||||
| [audiobookshelf](services/audiobookshelf/compose.yml) | Audiobook and podcast server |
|
||||
| [minidlna](services/minidlna/compose.yml) | DLNA media streaming server |
|
||||
| [stash](services/stash/compose.yml) | Media organizer (self-hosted) |
|
||||
| [yt-dlp](services/yt-dlp/compose.yml) | YouTube / video downloader service |
|
||||
| [playlistdl](services/playlistdl/compose.yml) | Playlist download automation |
|
||||
| [invidious](services/invidious/compose.yml) | Privacy-friendly YouTube frontend |
|
||||
| [home-assistant](services/home-assistant/compose.yml) | Home automation platform |
|
||||
| [pihole](services/pihole/compose.yml) | DNS-based ad blocker |
|
||||
| [ankisyncserver](services/ankisyncserver/compose.yml) | Self-hosted Anki flashcard sync server |
|
||||
| [ffsync](services/ffsync/compose.yml) | Firefox Sync server |
|
||||
| [etesync](services/etesync/compose.yml) | Encrypted contacts and calendar sync |
|
||||
| [open-web-calendar](services/open-web-calendar/compose.yml) | Web-based calendar aggregator |
|
||||
| [appflowy](services/appflowy/compose.yml) | Open-source Notion alternative |
|
||||
| [focalboard](services/focalboard/compose.yml) | Project management and Kanban boards |
|
||||
| [todolist](services/todolist/compose.yml) | To-do list service |
|
||||
| [izitdone](services/izitdone/compose.yml) | Task completion tracker |
|
||||
| [moodle](services/moodle/compose.yml) | E-learning platform |
|
||||
| [openedx](services/openedx/compose.yml) | Open edX learning management system |
|
||||
| [frappelms](services/frappelms/compose.yml) | Frappe-based LMS |
|
||||
| [wger](services/wger/compose.yml) | Workout and fitness tracker |
|
||||
| [time-assistant](services/time-assistant/compose.yml) | Time tracking assistant |
|
||||
| [minecraft_bedrock](services/minecraft_bedrock/compose.yml) | Minecraft Bedrock edition server |
|
||||
| [minecraft_champi](services/minecraft_champi/compose.yml) | Custom Minecraft server |
|
||||
| [minecraft_jungle](services/minecraft_jungle/compose.yml) | Custom Minecraft server |
|
||||
| [crafty-controller](services/crafty-controller/compose.yml) | Minecraft server manager |
|
||||
| [mcmyadmin](services/mcmyadmin/compose.yml) | Minecraft server admin panel |
|
||||
| [mc-router](services/mc-router/compose.yml) | Minecraft reverse proxy/router |
|
||||
| [satisfactory](services/satisfactory/compose.yml) | Satisfactory dedicated game server |
|
||||
| [pxe](services/pxe/compose.yml) | PXE boot server for network installs |
|
||||
| [arch](services/arch/compose.yml) | Arch Linux container environment |
|
||||
| [nixos](services/nixos/compose.yml) | NixOS container environment |
|
||||
| [android](services/android/compose.yml) | Android emulator in Docker |
|
||||
| [vnc](services/vnc/compose.yml) | VNC remote desktop server |
|
||||
| [web-terminal](services/web-terminal/compose.yml) | Browser-based terminal (Wetty) |
|
||||
| [rustdesk](services/rustdesk/compose.yml) | Self-hosted remote desktop server |
|
||||
| [sshpiperd](services/sshpiperd/compose.yml) | SSH proxy and multiplexer |
|
||||
| [ipfs](services/ipfs/compose.yml) | IPFS distributed storage node |
|
||||
| [monero-node](services/monero-node/compose.yml) | Monero full node |
|
||||
| [monero-miner](services/monero-miner/compose.yml) | Monero mining setup |
|
||||
| [bisq](services/bisq/compose.yml) | Decentralized Bitcoin exchange |
|
||||
| [cowrie](services/cowrie/compose.yml) | SSH honeypot |
|
||||
| [beef](services/beef/compose.yml) | Browser exploitation framework (pentesting lab) |
|
||||
| [burpsuite](services/burpsuite/compose.yml) | Web security testing proxy |
|
||||
| [feroxbuster](services/feroxbuster/compose.yml) | Web content discovery tool |
|
||||
| [sqlmap](services/sqlmap/compose.yml) | SQL injection testing tool |
|
||||
| [kippo](services/kippo/compose.yml) | SSH honeypot (legacy) |
|
||||
| [duplicati](services/duplicati/compose.yml) | Encrypted cloud backup |
|
||||
| [backrest](services/backrest/compose.yml) | Restic backup management UI |
|
||||
| [airbyte](services/airbyte/compose.yml) | Data integration and ETL platform |
|
||||
| [fuseki](services/fuseki/compose.yml) | Apache Jena Fuseki SPARQL server |
|
||||
| [suitecrm](services/suitecrm/compose.yml) | Open-source CRM |
|
||||
| [wordpress](services/wordpress/compose.yml) | WordPress CMS (multiple instances) |
|
||||
| [resume](services/resume/compose.yml) | Reactive Resume - self-hosted CV builder |
|
||||
| [clipshare](services/clipshare/compose.yml) | Clipboard sharing service |
|
||||
| [webshot](services/webshot/compose.yml) | URL screenshot service |
|
||||
| [fdroid](services/fdroid/compose.yml) | F-Droid self-hosted app repository |
|
||||
| [lrclib](services/lrclib/compose.yml) | Lyrics database service |
|
||||
| [ebook2audiobookxtts](services/ebook2audiobookxtts/compose.yml) | E-book to audiobook converter (TTS) |
|
||||
|
||||
## Reverse Proxy
|
||||
|
||||
Compatible with Traefik, Caddy, and Nginx. Labels are included in each Compose file for automatic route registration.
|
||||
|
||||
## Run few services at once
|
||||
- Example : run a monero node
|
||||
```sh
|
||||
docker-compose -f services/monero-node.yml up -d
|
||||
```
|
||||
|
||||
- Example : run multiple a wordpress website behind a proxy
|
||||
```sh
|
||||
# create a global network
|
||||
docker network create --attachable caddy # add '--driver overlay' for swarm
|
||||
# then deploy both services
|
||||
# Example: Caddy + WordPress behind reverse proxy
|
||||
docker network create --attachable caddy
|
||||
docker-compose -f services/caddy.yml -f services/wordpress.yml up -d
|
||||
```
|
||||
|
||||
## Deploy lots of services at once
|
||||
- Select your services by putting those in ./env/vps.txt
|
||||
## Deployment
|
||||
|
||||
**Run a single service:**
|
||||
```sh
|
||||
docker-compose -f services/<service>/compose.yml up -d
|
||||
```
|
||||
|
||||
**Merge and deploy multiple services at once:**
|
||||
```sh
|
||||
# 1. Select services
|
||||
nvim ./env/vps.txt
|
||||
|
||||
# 2. Generate merged stack
|
||||
./bin/docker-setup.sh merge vps
|
||||
|
||||
# 3. Deploy as a Compose stack
|
||||
docker-compose -f ./stacks/docker-compose.yml up -d
|
||||
|
||||
# or as a Swarm stack
|
||||
docker stack deploy -c ./stack/docker-compose.yml vps
|
||||
```
|
||||
|
||||
- Generate a ./stack/docker-compose.yml with all merged configurations
|
||||
```sh
|
||||
./bin/docker-setup.sh merge vps # or make merge
|
||||
```
|
||||
## Related
|
||||
|
||||
- Deploy
|
||||
```sh
|
||||
# as a swarm stack
|
||||
docker stack deploy -c ./stack/docker-compose.yml vps # or make mswarm
|
||||
|
||||
# or using docker-compose
|
||||
docker-compose -f ./stacks/docker-compose.yml up -d
|
||||
```
|
||||
|
||||
### Links
|
||||
[vpn](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md)
|
||||
- [OpenVPN via Docker](https://github.com/kylemanna/docker-openvpn/blob/master/docs/docker-compose.md)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
3.12
|
||||
+11
-8
@@ -5,10 +5,13 @@ export COMPOSE_PATH_SEPARATOR=":"
|
||||
export COMPOSE_FILE=$(find $PROJECT_PATH/services/*.yml | xargs -I @ echo -n @:)
|
||||
export COMPOSE_FILE=${COMPOSE_FILE::-1}
|
||||
|
||||
# tool=podman-compose
|
||||
tool=docker-compose
|
||||
|
||||
|
||||
if [ "$1" = "-f" ]
|
||||
then
|
||||
docker-compose --file $@
|
||||
$tool --file $@
|
||||
exit
|
||||
fi
|
||||
|
||||
@@ -16,10 +19,10 @@ if [ -f $PWD/docker-compose.yml ]
|
||||
then
|
||||
if [ "$#" = 0 ]
|
||||
then
|
||||
docker-compose ps
|
||||
$tool ps
|
||||
exit
|
||||
fi
|
||||
docker-compose --file $PWD/docker-compose.yml $@
|
||||
$tool --file $PWD/docker-compose.yml $@
|
||||
exit
|
||||
fi
|
||||
|
||||
@@ -29,19 +32,19 @@ then
|
||||
exit
|
||||
fi
|
||||
|
||||
docker-compose $@
|
||||
$tool $@
|
||||
if [ "$1" = "up" ]
|
||||
then
|
||||
if [ "$2" = "-d" ]
|
||||
then
|
||||
docker-compose logs -f ${@: 3}
|
||||
$tool logs -f ${@: 3}
|
||||
else
|
||||
docker-compose logs -f ${@: 2}
|
||||
$tool logs -f ${@: 2}
|
||||
fi
|
||||
elif [ "$1" = "start" ]
|
||||
then
|
||||
docker-compose logs -f ${@: 2}
|
||||
$tool logs -f ${@: 2}
|
||||
elif [ "$1" = "restart" ]
|
||||
then
|
||||
docker-compose logs -f ${@: 2}
|
||||
$tool logs -f ${@: 2}
|
||||
fi
|
||||
|
||||
+4
-1
@@ -1,5 +1,8 @@
|
||||
#!/bin/sh
|
||||
|
||||
# tool=podman-compose
|
||||
tool="docker compose"
|
||||
|
||||
if [ $1 = merge ]
|
||||
then
|
||||
cat ./env/$2.txt | xargs -I @ echo ./services/@.yml | xargs ./bin/docker-merge.py > ./stacks/docker-compose.yml
|
||||
@@ -26,7 +29,7 @@ config_files() {
|
||||
|
||||
if [ -z $STACK ]
|
||||
then
|
||||
cmd="docker compose $(config_files) up -d"
|
||||
cmd="$tool $(config_files) up -d --force-recreate"
|
||||
else
|
||||
cmd="docker stack deploy $(config_files) $STACK"
|
||||
fi
|
||||
|
||||
Executable
+119
@@ -0,0 +1,119 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import fire
|
||||
import yaml
|
||||
from pathlib import Path
|
||||
|
||||
def update_env_paths(compose_path, original_base):
|
||||
"""Modifie les chemins env_file vers .env"""
|
||||
try:
|
||||
with open(compose_path, 'r') as f:
|
||||
compose_data = yaml.safe_load(f) or {}
|
||||
except Exception as e:
|
||||
print(f"Erreur lecture YAML: {compose_path} - {str(e)}")
|
||||
return
|
||||
|
||||
modified = False
|
||||
|
||||
if 'services' in compose_data:
|
||||
for srv_name, srv_config in compose_data['services'].items():
|
||||
if 'volumes' in srv_config:
|
||||
volumes = srv_config['volumes']
|
||||
|
||||
for i,volume in enumerate(volumes):
|
||||
if 'data' in volume:
|
||||
volumes[i] = "../" + volume
|
||||
print("volume:", srv_name, volume, "->", volumes[i])
|
||||
|
||||
|
||||
if 'env_file' in srv_config:
|
||||
new_env_files = []
|
||||
env_files = srv_config['env_file']
|
||||
env_files = [env_files] if isinstance(env_files, str) else env_files
|
||||
|
||||
for ef in env_files:
|
||||
file_name = os.path.basename(ef)
|
||||
|
||||
if file_name.startswith(original_base):
|
||||
new_path = ".env"
|
||||
if file_name.endswith(".template.env"):
|
||||
new_path = ".env.template"
|
||||
|
||||
print(f"Modification: {ef} → {new_path}")
|
||||
new_env_files.append(new_path)
|
||||
modified = True
|
||||
else:
|
||||
new_env_files.append(ef)
|
||||
|
||||
srv_config['env_file'] = new_env_files[0] if len(new_env_files) == 1 else new_env_files
|
||||
|
||||
if modified:
|
||||
try:
|
||||
with open(compose_path, 'w') as f:
|
||||
yaml.dump(compose_data, f, sort_keys=False, default_flow_style=False)
|
||||
print(f"✓ Fichier mis à jour avec chemin relatif propre\n")
|
||||
except Exception as e:
|
||||
print(f"Erreur écriture YAML: {compose_path} - {str(e)}")
|
||||
|
||||
def process_compose_files(source, output_dir):
|
||||
"""Convertit les fichiers Docker Compose avec mise à jour des chemins"""
|
||||
for filename in os.listdir(source):
|
||||
if filename.lower().endswith(('.yml', '.yaml')):
|
||||
src_path = os.path.join(source, filename)
|
||||
base_name = os.path.splitext(filename)[0]
|
||||
service_name = re.sub(r'\d+$', '', base_name)
|
||||
|
||||
target_dir = os.path.join(output_dir, service_name)
|
||||
# os.makedirs(target_dir, exist_ok=True)
|
||||
|
||||
dst_path = os.path.join(output_dir, filename, 'compose.yml')
|
||||
# shutil.copy2(src_path, dst_path)
|
||||
|
||||
print(f"\n🔧 Traitement de {filename}:")
|
||||
update_env_paths(dst_path, filename)
|
||||
|
||||
def process_env_files(source, output_dir):
|
||||
"""Convertit les fichiers d'environnement"""
|
||||
for filename in os.listdir(source):
|
||||
src_path = os.path.join(source, filename)
|
||||
target_file = None
|
||||
|
||||
if filename.lower().endswith('.template.env'):
|
||||
base_name = filename[:-len('.template.env')]
|
||||
target_file = '.env.template'
|
||||
elif filename.lower().endswith('.env'):
|
||||
base_name = filename[:-len('.env')]
|
||||
target_file = '.env'
|
||||
else:
|
||||
continue
|
||||
|
||||
service_name = re.sub(r'\d+$', '', base_name)
|
||||
target_dir = os.path.join(output_dir, service_name)
|
||||
os.makedirs(target_dir, exist_ok=True)
|
||||
|
||||
dst_path = os.path.join(target_dir, target_file)
|
||||
shutil.copy2(src_path, dst_path)
|
||||
print(f"Conversion env: {filename} → {dst_path}")
|
||||
|
||||
def main(compose_source, env_source=None, output_dir=None):
|
||||
"""
|
||||
Args:
|
||||
compose_source: Dossier source des compose files
|
||||
env_source: Dossier source des fichiers d'environnement (défaut: compose_source)
|
||||
output_dir: Dossier de sortie (défaut: compose_source)
|
||||
"""
|
||||
output_dir = output_dir or compose_source
|
||||
Path(output_dir).mkdir(parents=True, exist_ok=True)
|
||||
|
||||
print("⏳ Traitement des fichiers docker-compose...")
|
||||
process_compose_files(compose_source, output_dir)
|
||||
|
||||
env_source = env_source or compose_source
|
||||
print("\n⏳ Traitement des fichiers d'environnement...")
|
||||
process_env_files(env_source, output_dir)
|
||||
|
||||
if __name__ == "__main__":
|
||||
fire.Fire(main)
|
||||
@@ -0,0 +1,10 @@
|
||||
[project]
|
||||
name = "bin"
|
||||
version = "0.1.0"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.12"
|
||||
dependencies = [
|
||||
"fire>=0.7.0",
|
||||
"pyyaml>=6.0.2",
|
||||
]
|
||||
Generated
+61
@@ -0,0 +1,61 @@
|
||||
version = 1
|
||||
requires-python = ">=3.12"
|
||||
|
||||
[[package]]
|
||||
name = "bin"
|
||||
version = "0.1.0"
|
||||
source = { virtual = "." }
|
||||
dependencies = [
|
||||
{ name = "fire" },
|
||||
{ name = "pyyaml" },
|
||||
]
|
||||
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "fire", specifier = ">=0.7.0" },
|
||||
{ name = "pyyaml", specifier = ">=6.0.2" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fire"
|
||||
version = "0.7.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "termcolor" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/6b/b6/82c7e601d6d3c3278c40b7bd35e17e82aa227f050aa9f66cb7b7fce29471/fire-0.7.0.tar.gz", hash = "sha256:961550f07936eaf65ad1dc8360f2b2bf8408fad46abbfa4d2a3794f8d2a95cdf", size = 87189 }
|
||||
|
||||
[[package]]
|
||||
name = "pyyaml"
|
||||
version = "6.0.2"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/54/ed/79a089b6be93607fa5cdaedf301d7dfb23af5f25c398d5ead2525b063e17/pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", size = 130631 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/86/0c/c581167fc46d6d6d7ddcfb8c843a4de25bdd27e4466938109ca68492292c/PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", size = 183873 },
|
||||
{ url = "https://files.pythonhosted.org/packages/a8/0c/38374f5bb272c051e2a69281d71cba6fdb983413e6758b84482905e29a5d/PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", size = 173302 },
|
||||
{ url = "https://files.pythonhosted.org/packages/c3/93/9916574aa8c00aa06bbac729972eb1071d002b8e158bd0e83a3b9a20a1f7/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", size = 739154 },
|
||||
{ url = "https://files.pythonhosted.org/packages/95/0f/b8938f1cbd09739c6da569d172531567dbcc9789e0029aa070856f123984/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", size = 766223 },
|
||||
{ url = "https://files.pythonhosted.org/packages/b9/2b/614b4752f2e127db5cc206abc23a8c19678e92b23c3db30fc86ab731d3bd/PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", size = 767542 },
|
||||
{ url = "https://files.pythonhosted.org/packages/d4/00/dd137d5bcc7efea1836d6264f049359861cf548469d18da90cd8216cf05f/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", size = 731164 },
|
||||
{ url = "https://files.pythonhosted.org/packages/c9/1f/4f998c900485e5c0ef43838363ba4a9723ac0ad73a9dc42068b12aaba4e4/PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", size = 756611 },
|
||||
{ url = "https://files.pythonhosted.org/packages/df/d1/f5a275fdb252768b7a11ec63585bc38d0e87c9e05668a139fea92b80634c/PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", size = 140591 },
|
||||
{ url = "https://files.pythonhosted.org/packages/0c/e8/4f648c598b17c3d06e8753d7d13d57542b30d56e6c2dedf9c331ae56312e/PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", size = 156338 },
|
||||
{ url = "https://files.pythonhosted.org/packages/ef/e3/3af305b830494fa85d95f6d95ef7fa73f2ee1cc8ef5b495c7c3269fb835f/PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", size = 181309 },
|
||||
{ url = "https://files.pythonhosted.org/packages/45/9f/3b1c20a0b7a3200524eb0076cc027a970d320bd3a6592873c85c92a08731/PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", size = 171679 },
|
||||
{ url = "https://files.pythonhosted.org/packages/7c/9a/337322f27005c33bcb656c655fa78325b730324c78620e8328ae28b64d0c/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", size = 733428 },
|
||||
{ url = "https://files.pythonhosted.org/packages/a3/69/864fbe19e6c18ea3cc196cbe5d392175b4cf3d5d0ac1403ec3f2d237ebb5/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", size = 763361 },
|
||||
{ url = "https://files.pythonhosted.org/packages/04/24/b7721e4845c2f162d26f50521b825fb061bc0a5afcf9a386840f23ea19fa/PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", size = 759523 },
|
||||
{ url = "https://files.pythonhosted.org/packages/2b/b2/e3234f59ba06559c6ff63c4e10baea10e5e7df868092bf9ab40e5b9c56b6/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", size = 726660 },
|
||||
{ url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 },
|
||||
{ url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 },
|
||||
{ url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termcolor"
|
||||
version = "3.0.1"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/f8/b6/8e2aaa8aeb570b5cc955cd913b083d96c5447bbe27eaf330dfd7cc8e3329/termcolor-3.0.1.tar.gz", hash = "sha256:a6abd5c6e1284cea2934443ba806e70e5ec8fd2449021be55c280f8a3731b611", size = 12935 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/a6/7e/a574ccd49ad07e8b117407bac361f1e096b01f1b620365daf60ff702c936/termcolor-3.0.1-py3-none-any.whl", hash = "sha256:da1ed4ec8a5dc5b2e17476d859febdb3cccb612be1c36e64511a6f2485c10c69", size = 7157 },
|
||||
]
|
||||
@@ -1 +0,0 @@
|
||||
mail._domainkey.marcpartensky.com marcpartensky.com:mail:/etc/opendkim/keys/marcpartensky.com/mail.private
|
||||
@@ -1 +0,0 @@
|
||||
*@marcpartensky.com mail._domainkey.marcpartensky.com
|
||||
@@ -1,2 +0,0 @@
|
||||
127.0.0.1
|
||||
localhost
|
||||
@@ -1,51 +0,0 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIJKAIBAAKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsiv
|
||||
U7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LV
|
||||
GfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8
|
||||
KQh5gyAdvokbnmq+r9VqOyiFbZ03JzyW+RPMTQxMu2kid+KH336/j5Tvza8ITN3v
|
||||
qZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBt
|
||||
IXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYS
|
||||
obuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4r
|
||||
WQ85kKcQYfl60FyReCKrrBGiFi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyr
|
||||
OyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywq
|
||||
tqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4Qsyxp
|
||||
PTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEA
|
||||
AQKCAgBUDv7kYjnomvY2V0+5W4ow2g3blr46U3MMR9h6LYTcMhthVgcEUvs1v8R2
|
||||
RYXsN50a9I8kMHaIqy5Y4BmDljd9hiZGhcGTSiTlU/3Rqzu6OU+JbRmDlsmJIjYD
|
||||
Yl8zEisc+/XuUSWh01CYtniitMQenh3e/rBQoDiXSSIsqETVmNgRVsUB99mdDUnM
|
||||
Nb0G91cILj3v4W1Zr7Pyj5XpW4omiJ5gaFTdQQ2VDDeWxOkrX5QM9sri3CVx88Uv
|
||||
SCC62Nbqz9ySg5Yv2k1UGTs52fQC1UogLQMfLWI0WHU6d5ClFwI5Jkfq5soH9uH9
|
||||
CkK1ijoG6n+k+a01qTLq7Nq09uj+s6T0BFb6703ZATVxdTNxc3xaFcYm9ZpuDnCr
|
||||
U8P6sVClCa9axjMZk1Kjl7OKSyp8LlRWPacxO4GXqlNmhyMUEldKj8cBmmxzC7fj
|
||||
1fMXAve3EodVRM5Z6S+c/PO96TuJrSkddImWhPawd35/rrtBA+7ToPNYzy7aWk/N
|
||||
UZ9uFkwPMLaDZeRG590natPOUkB0FZ7F8EEjwMbUhf1iyoPvLPiixofVk1NKTWMr
|
||||
8DEN6bSH85v/lQaAQhmFFNRjdeyXts9+a7Kmsxos3AfW8hsmNHFxTuoXZ8AjvVAs
|
||||
P7hlPFoJultoUwX/ZpMZtsEwFW3FUSw33Onsdblezp7Lb12icQKCAQEAzVKid6vv
|
||||
TWGltBkL1XTtzYSNUTBIZfoOjKxTsrqSKNAR6i2lmN2bPKKTksPdloBoaQ/FHK6R
|
||||
/+mebfgmnyulY6zWo8EUewi3LFyL9KhXe0K38/jUUokKWSq1Ob5D8Kjq6MuTCfuS
|
||||
M5XnYfIZuIAZLE0244+Q8L03mc2f7uvl3KWaAZOVUsfHu/ETzTm6lgG8Liq5a0Fw
|
||||
thCVVupKVeSLjRa/RWFVR9E9jvIjplo+SVAUJWyYwlOfPDVr76gqrF5P+4lOQpAQ
|
||||
dzwhi4LHhvdgp9Y/Gw3s5vByA/7Ogh3QI5jS36w2EMCFYZpAe4HBQk1UOYVNBpeD
|
||||
58m3venG5pBy4wKCAQEAyxglzQhZSBNkkukoRm7zzmNAx9/M0ROu7uwmJ9t02Q94
|
||||
/3fpV2zVYA7rQKZcCgW5Dnhe4GaeyASRXq4x3v7F6iLCUjxbJ8e+YRhsNrp0WmYU
|
||||
Xk6+06EQgLBICqDQeMDDeR+KQzaJonuMSrGyUb8krR6RB+/W3LqK/0CQSSaHozzN
|
||||
6mxejoFoNhf7rfIP9JJD8QwpBsTJBQNCDvHo1lIA8e3nTngFzLJ56tRVwjaP8EPT
|
||||
qJ7RfoVxdTyUTZTq/8EGOqNrzLgB/FehXq3eTz89tdlHOTT+mJ8H23AEtepxpLFx
|
||||
5kN/eisi4PjUgCp11IHnmG8qnJr48uDlORdrqL424wKCAQBX/DVK+w7NJi8QAjuj
|
||||
+Tt+enLke8BKkuFxPtePG4xOmPtUUsNHwo8naLO8jNqEB/q2Kt/Y7qX5+G6/yTsj
|
||||
slxpXkOMYM0Z/B4ikHYZHZp/Y5PYpKS3yan5k+edGv+aPYiMwc/80yVPnclNm6WR
|
||||
/rLK3TvMQFVoFG2jJw6GH+icqQpZ6phupNXen+xQYZCnf47Yac6TO7PFEU4ttLCu
|
||||
JgX3K+xDGvakk/HBM9o7Cyjt2bcIYoUDoTn3Xx0l0faXbsLvk2NJ+tpTfh0R37UJ
|
||||
DTEKOzFHsqv2OsthEuwDrirnVjHnT7DLdPSzYpqHUo8yjlitXYYocP1BcpuecnOd
|
||||
kgDpAoIBAQCtLi4to8zeFQtR6teZF8t2VlRLG5+/ORWWTnBK1GvTG8qFrW6gSgG5
|
||||
I3+fZTxen3qpyCK/H0KONLbxEYEdMgr6GCGzlhv00/KXQQglsuC8pQcBVAyM0W8N
|
||||
DUShK3gZP+ZvRmHT5pF+p/N9TgFMi71ukf4B0pZZKgiUmC1w8xX+MD82gqouwlJm
|
||||
rhTCwwKv/nlI9qGVUABJ8flGXSm6d7qukbsHwnjPj/E+OUnXjkc3Dd9Sjfr99DRH
|
||||
UBz1+uJYq/Pv1KJ7svyefOrxnTlQQhERG/IL6hCffBxrFh4uMXgug9EoFK6DMn1P
|
||||
cV9i2tIXH56o8UJYwB1Anl1YTYxUG78ZAoIBAD748NDDIj5yxjzW7UzNajLs9iB2
|
||||
aiywcxPZCKo38Yi7KIaxIy8YeHqJ6chenvTl5S4ElB+sJ0SnYEvBqxceOXiM9l5i
|
||||
HrDxIc3gzwY0lN0h2ZEiSKBQgjCtFW6gZ+6KmPonk98S8l8hbFW0vL+nS4EE9vtO
|
||||
3cFhz/HPVB1ZY5ofy7/rLRd7GiISof9WcvrnOvE9BKFF0rNKZUjrf2PM3c2rObvj
|
||||
5rgLvUiX/Mn9ND/XHTjT/UVptmkmcnjFyRvQwXXA4ns7gxBWYfYB1bqwh6WRfEU6
|
||||
x3ykDol24hgohvpEnKMZDUTmLrxgF8hbJTP/57P2Yyy0faxZ/z/MER1qy28=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
@@ -1,4 +0,0 @@
|
||||
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
|
||||
"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsivU7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LVGfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8KQh5gyAdvokbnmq+r9VqOyiFbZ03Jz"
|
||||
"yW+RPMTQxMu2kid+KH336/j5Tvza8ITN3vqZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBtIXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYSobuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4rWQ85kKcQYfl60FyReCKrrBGi"
|
||||
"Fi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyrOyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywqtqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4QsyxpPTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEAAQ==" ) ; ----- DKIM key mail for marcpartensky.com
|
||||
@@ -1 +0,0 @@
|
||||
marc@marcpartensky.com|{SHA512-CRYPT}$6$G1SLI/9La3kXrkrt$9MdkaLuUEoa2n8mVVZoCwmy0g6MrvlHDL0i2FVrUakAXi3pgPfo/HNz/mLWRFS6nG1oOeP8IMbTGM.JptPR../
|
||||
@@ -0,0 +1,200 @@
|
||||
http:
|
||||
pprof:
|
||||
port: 6060
|
||||
enabled: false
|
||||
address: 0.0.0.0:3000
|
||||
session_ttl: 720h
|
||||
users:
|
||||
- name: marc
|
||||
password: $2a$10$E9cknJr/bTLtSUJ9EaW8r.Gw30FX8Plm8jgq.LaYxMwiX4DEuDK7O
|
||||
auth_attempts: 5
|
||||
block_auth_min: 15
|
||||
http_proxy: ""
|
||||
language: ""
|
||||
theme: auto
|
||||
dns:
|
||||
bind_hosts:
|
||||
- 0.0.0.0
|
||||
port: 53
|
||||
anonymize_client_ip: false
|
||||
ratelimit: 20
|
||||
ratelimit_subnet_len_ipv4: 24
|
||||
ratelimit_subnet_len_ipv6: 56
|
||||
ratelimit_whitelist: []
|
||||
refuse_any: true
|
||||
upstream_dns:
|
||||
- https://dns10.quad9.net/dns-query
|
||||
upstream_dns_file: ""
|
||||
bootstrap_dns:
|
||||
- 9.9.9.10
|
||||
- 149.112.112.10
|
||||
- 2620:fe::10
|
||||
- 2620:fe::fe:10
|
||||
fallback_dns: []
|
||||
upstream_mode: load_balance
|
||||
fastest_timeout: 1s
|
||||
allowed_clients: []
|
||||
disallowed_clients: []
|
||||
blocked_hosts:
|
||||
- version.bind
|
||||
- id.server
|
||||
- hostname.bind
|
||||
trusted_proxies:
|
||||
- 127.0.0.0/8
|
||||
- ::1/128
|
||||
cache_size: 4194304
|
||||
cache_ttl_min: 0
|
||||
cache_ttl_max: 0
|
||||
cache_optimistic: false
|
||||
bogus_nxdomain: []
|
||||
aaaa_disabled: false
|
||||
enable_dnssec: false
|
||||
edns_client_subnet:
|
||||
custom_ip: ""
|
||||
enabled: false
|
||||
use_custom: false
|
||||
max_goroutines: 300
|
||||
handle_ddr: true
|
||||
ipset: []
|
||||
ipset_file: ""
|
||||
bootstrap_prefer_ipv6: false
|
||||
upstream_timeout: 10s
|
||||
private_networks: []
|
||||
use_private_ptr_resolvers: true
|
||||
local_ptr_upstreams: []
|
||||
use_dns64: false
|
||||
dns64_prefixes: []
|
||||
serve_http3: false
|
||||
use_http3_upstreams: false
|
||||
serve_plain_dns: true
|
||||
hostsfile_enabled: true
|
||||
tls:
|
||||
enabled: false
|
||||
server_name: ""
|
||||
force_https: false
|
||||
port_https: 443
|
||||
port_dns_over_tls: 853
|
||||
port_dns_over_quic: 853
|
||||
port_dnscrypt: 0
|
||||
dnscrypt_config_file: ""
|
||||
allow_unencrypted_doh: false
|
||||
certificate_chain: ""
|
||||
private_key: ""
|
||||
certificate_path: ""
|
||||
private_key_path: ""
|
||||
strict_sni_check: false
|
||||
querylog:
|
||||
dir_path: ""
|
||||
ignored: []
|
||||
interval: 2160h
|
||||
size_memory: 1000
|
||||
enabled: true
|
||||
file_enabled: true
|
||||
statistics:
|
||||
dir_path: ""
|
||||
ignored: []
|
||||
interval: 24h
|
||||
enabled: true
|
||||
filters:
|
||||
- enabled: true
|
||||
url: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
|
||||
name: AdGuard DNS filter
|
||||
id: 1
|
||||
- enabled: true
|
||||
url: https://adaway.org/hosts.txt
|
||||
name: AdAway Default Blocklist
|
||||
id: 2
|
||||
- enabled: true
|
||||
url: https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
|
||||
name: WindowsSpyBlocker - Hosts spy rules
|
||||
id: 1668812860
|
||||
- enabled: true
|
||||
url: https://malware-filter.gitlab.io/malware-filter/phishing-filter-agh.txt
|
||||
name: Phishing URL Blocklist (PhishTank and OpenPhish)
|
||||
id: 1668812861
|
||||
- enabled: true
|
||||
url: https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV-AGH.txt
|
||||
name: Perflyst and Dandelion Sprout's Smart-TV Blocklist
|
||||
id: 1668812862
|
||||
- enabled: true
|
||||
url: https://raw.githubusercontent.com/mitchellkrogza/The-Big-List-of-Hacked-Malware-Web-Sites/master/hosts
|
||||
name: The Big List of Hacked Malware Web Sites
|
||||
id: 1668812863
|
||||
whitelist_filters: []
|
||||
user_rules: []
|
||||
dhcp:
|
||||
enabled: false
|
||||
interface_name: ""
|
||||
local_domain_name: lan
|
||||
dhcpv4:
|
||||
gateway_ip: ""
|
||||
subnet_mask: ""
|
||||
range_start: ""
|
||||
range_end: ""
|
||||
lease_duration: 86400
|
||||
icmp_timeout_msec: 1000
|
||||
options: []
|
||||
dhcpv6:
|
||||
range_start: ""
|
||||
lease_duration: 86400
|
||||
ra_slaac_only: false
|
||||
ra_allow_slaac: false
|
||||
filtering:
|
||||
blocking_ipv4: ""
|
||||
blocking_ipv6: ""
|
||||
blocked_services:
|
||||
schedule:
|
||||
time_zone: UTC
|
||||
ids: []
|
||||
protection_disabled_until: null
|
||||
safe_search:
|
||||
enabled: false
|
||||
bing: true
|
||||
duckduckgo: true
|
||||
ecosia: true
|
||||
google: true
|
||||
pixabay: true
|
||||
yandex: true
|
||||
youtube: true
|
||||
blocking_mode: default
|
||||
parental_block_host: family-block.dns.adguard.com
|
||||
safebrowsing_block_host: standard-block.dns.adguard.com
|
||||
rewrites:
|
||||
- domain: medium.com
|
||||
answer: 0.0.0.0
|
||||
- domain: marc
|
||||
answer: marcpartensky.com
|
||||
safe_fs_patterns:
|
||||
- /opt/adguardhome/work/data/userfilters/*
|
||||
safebrowsing_cache_size: 1048576
|
||||
safesearch_cache_size: 1048576
|
||||
parental_cache_size: 1048576
|
||||
cache_time: 30
|
||||
filters_update_interval: 24
|
||||
blocked_response_ttl: 10
|
||||
filtering_enabled: true
|
||||
parental_enabled: false
|
||||
safebrowsing_enabled: false
|
||||
protection_enabled: true
|
||||
clients:
|
||||
runtime_sources:
|
||||
whois: true
|
||||
arp: true
|
||||
rdns: true
|
||||
dhcp: true
|
||||
hosts: true
|
||||
persistent: []
|
||||
log:
|
||||
enabled: true
|
||||
file: ""
|
||||
max_backups: 0
|
||||
max_size: 100
|
||||
max_age: 3
|
||||
compress: false
|
||||
local_time: false
|
||||
verbose: false
|
||||
os:
|
||||
group: ""
|
||||
user: ""
|
||||
rlimit_nofile: 0
|
||||
schema_version: 29
|
||||
@@ -0,0 +1,156 @@
|
||||
# Minimal nginx configuration for AppFlowy-Cloud
|
||||
# Self Hosted AppFlowy Cloud user should alter this file to suit their needs
|
||||
|
||||
events {
|
||||
worker_connections 1024;
|
||||
}
|
||||
|
||||
http {
|
||||
# docker dns resolver
|
||||
resolver 127.0.0.11 valid=10s;
|
||||
|
||||
map $http_upgrade $connection_upgrade {
|
||||
default upgrade;
|
||||
'' close;
|
||||
}
|
||||
|
||||
server {
|
||||
listen 8080;
|
||||
|
||||
# https://github.com/nginxinc/nginx-prometheus-exporter
|
||||
location = /stub_status {
|
||||
stub_status;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
server {
|
||||
# ssl_certificate /etc/nginx/ssl/certificate.crt;
|
||||
#ssl_certificate_key /etc/nginx/ssl/private_key.key;
|
||||
|
||||
listen 80;
|
||||
listen 443 ssl;
|
||||
client_max_body_size 10M;
|
||||
|
||||
underscores_in_headers on;
|
||||
|
||||
# GoTrue
|
||||
location /gotrue/ {
|
||||
set $gotrue gotrue;
|
||||
proxy_pass http://$gotrue:9999;
|
||||
|
||||
rewrite ^/gotrue(/.*)$ $1 break;
|
||||
|
||||
# Allow headers like redirect_to to be handed over to the gotrue
|
||||
# for correct redirecting
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_pass_request_headers on;
|
||||
}
|
||||
|
||||
# WebSocket
|
||||
location /ws {
|
||||
set $appflowy_cloud appflowy_cloud;
|
||||
proxy_pass http://$appflowy_cloud:8000;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "Upgrade";
|
||||
proxy_set_header Host $host;
|
||||
proxy_read_timeout 86400;
|
||||
}
|
||||
|
||||
# AppFlowy-Cloud
|
||||
# created a separate location block for handling CORS preflight (OPTIONS) requests specifically for the /api endpoint.
|
||||
location = /api/options {
|
||||
if ($http_origin ~* (http://127.0.0.1:8000)) {
|
||||
add_header 'Access-Control-Allow-Origin' $http_origin;
|
||||
}
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE, PATCH';
|
||||
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version';
|
||||
add_header 'Access-Control-Max-Age' 3600;
|
||||
add_header 'Content-Type' 'text/plain; charset=utf-8';
|
||||
add_header 'Content-Length' 0;
|
||||
return 204;
|
||||
}
|
||||
|
||||
location /api {
|
||||
set $appflowy_cloud appflowy_cloud;
|
||||
proxy_pass http://$appflowy_cloud:8000;
|
||||
|
||||
proxy_set_header X-Request-Id $request_id;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# Set CORS headers for other requests
|
||||
if ($http_origin ~* (http://127.0.0.1:8000)) {
|
||||
add_header 'Access-Control-Allow-Origin' $http_origin always;
|
||||
}
|
||||
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH' always;
|
||||
add_header 'Access-Control-Allow-Headers' 'Content-Type, Authorization, Accept, Client-Version' always;
|
||||
add_header 'Access-Control-Max-Age' 3600 always;
|
||||
}
|
||||
|
||||
# Minio Web UI
|
||||
# Derive from: https://min.io/docs/minio/linux/integrations/setup-nginx-proxy-with-minio.html
|
||||
# Optional Module, comment this section if you are did not deploy minio in docker-compose.yml
|
||||
location /minio/ {
|
||||
set $minio minio;
|
||||
proxy_pass http://$minio:9001;
|
||||
|
||||
rewrite ^/minio/(.*) /$1 break;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-NginX-Proxy true;
|
||||
|
||||
## This is necessary to pass the correct IP to be hashed
|
||||
real_ip_header X-Real-IP;
|
||||
|
||||
proxy_connect_timeout 300;
|
||||
|
||||
## To support websockets in MinIO versions released after January 2023
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
# Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
|
||||
# Uncomment the following line to set the Origin request to an empty string
|
||||
# proxy_set_header Origin '';
|
||||
|
||||
chunked_transfer_encoding off;
|
||||
}
|
||||
|
||||
# PgAdmin
|
||||
# Optional Module, comment this section if you are did not deploy pgadmin in docker-compose.yml
|
||||
location /pgadmin/ {
|
||||
set $pgadmin pgadmin;
|
||||
proxy_pass http://$pgadmin:80;
|
||||
|
||||
proxy_set_header X-Script-Name /pgadmin;
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header Host $host;
|
||||
proxy_redirect off;
|
||||
}
|
||||
|
||||
# Portainer
|
||||
# Optional Module, comment this section if you are did not deploy portainer in docker-compose.yml
|
||||
location /portainer/ {
|
||||
set $portainer portainer;
|
||||
proxy_pass http://$portainer:9000;
|
||||
|
||||
rewrite ^/portainer/(.*) /$1 break;
|
||||
}
|
||||
|
||||
# Admin Frontend
|
||||
# Optional Module, comment this section if you are did not deploy admin_frontend in docker-compose.yml
|
||||
location / {
|
||||
set $admin_frontend admin_frontend;
|
||||
proxy_pass http://$admin_frontend:3000;
|
||||
|
||||
proxy_set_header X-Scheme $scheme;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,35 @@
|
||||
[ req ]
|
||||
default_bits = 8192
|
||||
default_keyfile = privkey.pem
|
||||
distinguished_name = req_distinguished_name
|
||||
attributes = req_attributes
|
||||
x509_extensions = v3_ca
|
||||
|
||||
dirstring_type = nobmp
|
||||
|
||||
[ req_distinguished_name ]
|
||||
countryName = FR
|
||||
countryName_default = FR
|
||||
countryName_min = 2
|
||||
countryName_max = 2
|
||||
|
||||
localityName = Europe/Paris
|
||||
|
||||
organizationalUnitName = Marc Partensky Corp
|
||||
|
||||
commonName = Marc Partensky
|
||||
commonName_max = 64
|
||||
|
||||
emailAddress = marc@marcpartensky.com
|
||||
emailAddress_max = 40
|
||||
|
||||
# [ req_attributes ]
|
||||
# challengePassword = A challenge password
|
||||
# challengePassword_min = 4
|
||||
# challengePassword_max = 20
|
||||
|
||||
[ v3_ca ]
|
||||
|
||||
subjectKeyIdentifier=hash
|
||||
authorityKeyIdentifier=keyid:always,issuer:always
|
||||
basicConstraints = CA:true
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER marc PASSWORD ZGQ4ZDk5OWEwYjNlMDJlNmQ5NmE1NjM5;
|
||||
GRANT ALL PRIVILEGES ON DATABASE * TO marc;
|
||||
EOSQL
|
||||
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
cd /var/lib/postgresql/certs
|
||||
|
||||
# private key and certificate from it
|
||||
openssl req -new -text -newkey rsa:8192 -passout pass:$POSTGRES_PASSWORD -subj /CN=localhost -out server.req -keyout privkey.pem
|
||||
# self signed root certificate
|
||||
openssl rsa -in privkey.pem -passin pass:$POSTGRES_PASSWORD -out server.key
|
||||
# derived certificate
|
||||
openssl req -x509 -in server.req -text -key server.key -out server.crt
|
||||
|
||||
# change permissions to the root certificate for postgres
|
||||
chmod 600 server.key
|
||||
chown postgres:postgres server.key
|
||||
@@ -1,19 +1,34 @@
|
||||
global:
|
||||
scrape_interval: 15s # By default, scrape targets every 15 seconds.
|
||||
evaluation_interval: 15s
|
||||
|
||||
# Attach these labels to any time series or alerts when communicating with
|
||||
# external systems (federation, remote storage, Alertmanager).
|
||||
external_labels:
|
||||
monitor: 'codelab-monitor'
|
||||
|
||||
rule_files:
|
||||
# Fichier de règle
|
||||
- 'alert.rules'
|
||||
|
||||
# A scrape configuration containing exactly one endpoint to scrape:
|
||||
# Here it's Prometheus itself.
|
||||
scrape_configs:
|
||||
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
|
||||
- job_name: 'prometheus'
|
||||
|
||||
# Override the global default and scrape targets from this job every 5 seconds.
|
||||
scrape_interval: 5s
|
||||
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
- targets: ['node-exporter:9100']
|
||||
|
||||
- job_name: cadvisor
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets:
|
||||
- cadvisor:8080
|
||||
|
||||
- job_name: 'traefik'
|
||||
scrape_interval: 5s
|
||||
static_configs:
|
||||
- targets: ['traefik:3000']
|
||||
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# This file only contains Docker relevant variables.## The only exception to the non-default rule are env vars related to scaling.## See https://github.com/airbytehq/airbyte/blob/master/airbyte-config/config-models/src/main/java/io/airbyte/config/Configs.java# for the latest environment variables.## # Contributors - please organise this env file according to the above linked file.
|
||||
|
||||
### SHARED ###VERSION= # Example: 0.50.5
|
||||
|
||||
# When using the airbyte-db via default docker imageCONFIG_ROOT= # Example: /data
|
||||
DATA_DOCKER_MOUNT= # Example: airbyte_data
|
||||
DB_DOCKER_MOUNT= # Example: airbyte_db
|
||||
|
||||
# Workspace storage for running jobs (logs, etc)WORKSPACE_ROOT= # Example: /tmp/workspace
|
||||
WORKSPACE_DOCKER_MOUNT= # Example: airbyte_workspace
|
||||
|
||||
# Local mount to access local files from filesystem# todo (cgardens) - when we are mount raw directories instead of named volumes, *_DOCKER_MOUNT must# be the same as *_ROOT.# Issue: https://github.com/airbytehq/airbyte/issues/578LOCAL_ROOT= # Example: /tmp/airbyte_local
|
||||
LOCAL_DOCKER_MOUNT= # Example: /tmp/airbyte_local
|
||||
# todo (cgardens) - hack to handle behavior change in docker compose. *_PARENT directories MUST# already exist on the host filesystem and MUST be parents of *_ROOT.# Issue: https://github.com/airbytehq/airbyte/issues/577HACK_LOCAL_ROOT_PARENT= # Example: /tmp
|
||||
|
||||
# Proxy Configuration# Set to empty values, e.g. "" to disable basic authBASIC_AUTH_USERNAME= # Example: username
|
||||
BASIC_AUTH_PASSWORD= # Example: Passw0rd
|
||||
BASIC_AUTH_PROXY_TIMEOUT= # Example: 900
|
||||
|
||||
### DATABASE ###DATABASE_USER= # Example: username
|
||||
DATABASE_PASSWORD= # Example: Passw0rd
|
||||
DATABASE_HOST= # Example: db
|
||||
DATABASE_PORT= # Example: 5432
|
||||
DATABASE_DB= # Example: airbyte
|
||||
DATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION= # Example: 0.40.26.001
|
||||
|
||||
# Airbyte Internal Config Database, defaults to Job Database if empty. Explicitly left empty to mute docker compose warnings.CONFIG_DATABASE_USER= # Example: username
|
||||
CONFIG_DATABASE_PASSWORD= # Example: Passw0rd
|
||||
CONFIG_DATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION= # Example: 0.40.23.002
|
||||
|
||||
### AIRBYTE SERVICES ###TEMPORAL_HOST= # Example: airbyte-temporal:7233
|
||||
INTERNAL_API_HOST= # Example: airbyte-server:8001
|
||||
CONNECTOR_BUILDER_API_HOST= # Example: airbyte-connector-builder-server:80
|
||||
WEBAPP_URL= # Example: protocol://user:password@host:port/path
|
||||
# Although not present as an env var, required for webapp configuration.CONNECTOR_BUILDER_API_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
### JOBS #### Relevant to scaling.SYNC_JOB_MAX_ATTEMPTS= # Example: 3
|
||||
SYNC_JOB_MAX_TIMEOUT_DAYS= # Example: 3
|
||||
SYNC_JOB_INIT_RETRY_TIMEOUT_MINUTES= # Example: 5
|
||||
JOB_MAIN_CONTAINER_CPU_REQUEST=
|
||||
JOB_MAIN_CONTAINER_CPU_LIMIT=
|
||||
JOB_MAIN_CONTAINER_MEMORY_REQUEST=
|
||||
JOB_MAIN_CONTAINER_MEMORY_LIMIT=
|
||||
|
||||
NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_LIMIT=
|
||||
NORMALIZATION_JOB_MAIN_CONTAINER_MEMORY_REQUEST=
|
||||
NORMALIZATION_JOB_MAIN_CONTAINER_CPU_LIMIT=
|
||||
NORMALIZATION_JOB_MAIN_CONTAINER_CPU_REQUEST=
|
||||
|
||||
### LOGGING/MONITORING/TRACKING ###TRACKING_STRATEGY= # Example: segment
|
||||
JOB_ERROR_REPORTING_STRATEGY= # Example: logging
|
||||
# Although not present as an env var, expected by Log4J configuration.LOG_LEVEL= # Example: INFO
|
||||
|
||||
|
||||
### APPLICATIONS #### Worker #WORKERS_MICRONAUT_ENVIRONMENTS= # Example: control-plane
|
||||
# Cron #CRON_MICRONAUT_ENVIRONMENTS= # Example: control-plane
|
||||
# Relevant to scaling.MAX_SYNC_WORKERS= # Example: 5
|
||||
MAX_SPEC_WORKERS= # Example: 5
|
||||
MAX_CHECK_WORKERS= # Example: 5
|
||||
MAX_DISCOVER_WORKERS= # Example: 5
|
||||
MAX_NOTIFY_WORKERS= # Example: 5
|
||||
SHOULD_RUN_NOTIFY_WORKFLOWS= # Example: true
|
||||
# Temporal Activity configurationACTIVITY_MAX_ATTEMPT=
|
||||
ACTIVITY_INITIAL_DELAY_BETWEEN_ATTEMPTS_SECONDS=
|
||||
ACTIVITY_MAX_DELAY_BETWEEN_ATTEMPTS_SECONDS=
|
||||
WORKFLOW_FAILURE_RESTART_DELAY_SECONDS=
|
||||
|
||||
### FEATURE FLAGS ###AUTO_DISABLE_FAILING_CONNECTIONS= # Example: false
|
||||
|
||||
FEATURE_FLAG_CLIENT= # Example: myhiddensecret
|
||||
|
||||
### MONITORING FLAGS #### Accepted values are datadog and otel (open telemetry)METRIC_CLIENT= # Example: myhiddensecret
|
||||
OTEL_COLLECTOR_ENDPOINT= # Example: "http://host.docker.internal:4317"
|
||||
|
||||
USE_STREAM_CAPABLE_STATE= # Example: true
|
||||
AUTO_DETECT_SCHEMA= # Example: true
|
||||
|
||||
# To test local catalog changes, set the below variable to the path of your local catalog.# https://docs.airbyte.com/connector-development/testing-connectors/testing-a-local-catalog-in-developmentLOCAL_CONNECTOR_CATALOG_PATH=
|
||||
@@ -0,0 +1,57 @@
|
||||
MINIO_BROWSER_REDIRECT_URL= # Example: protocol://user:password@host:port/path
|
||||
MINIO_ROOT_USER= # Example: username
|
||||
MINIO_ROOT_PASSWORD= # Example: Passw0rd
|
||||
|
||||
GOTRUE_SITE_URL= # Example: protocol://user:password@host:port/path
|
||||
URI_ALLOW_LIST= # Example: protocol://user:password@host:port/path
|
||||
GOTRUE_JWT_SECRET= # Example: myhiddensecret
|
||||
GOTRUE_JWT_EXP= # Example: ${GOTRUE_JWT_EXP}
|
||||
GOTRUE_DB_DRIVER= # Example: postgres
|
||||
API_EXTERNAL_URL= # Example: protocol://user:password@host:port/path
|
||||
DATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
PORT= # Example: 9999
|
||||
|
||||
GOTRUE_SMTP_HOST= # Example: ${GOTRUE_SMTP_HOST}
|
||||
GOTRUE_SMTP_PORT= # Example: ${GOTRUE_SMTP_PORT}
|
||||
GOTRUE_SMTP_USER= # Example: username
|
||||
GOTRUE_SMTP_PASS= # Example: Passw0rd
|
||||
|
||||
GOTRUE_MAILER_URLPATHS_CONFIRMATION= # Example: protocol://user:password@host:port/path
|
||||
GOTRUE_MAILER_URLPATHS_INVITE= # Example: protocol://user:password@host:port/path
|
||||
GOTRUE_MAILER_URLPATHS_RECOVERY= # Example: protocol://user:password@host:port/path
|
||||
GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE= # Example: protocol://user:password@host:port/path
|
||||
GOTRUE_SMTP_ADMIN_EMAIL= # Example: user.name@gmail.com
|
||||
GOTRUE_SMTP_MAX_FREQUENCY= # Example: ${GOTRUE_SMTP_MAX_FREQUENCY:-1ns}
|
||||
GOTRUE_MAILER_AUTOCONFIRM= # Example: user.name@gmail.com
|
||||
# Google OAuth configGOTRUE_EXTERNAL_GOOGLE_ENABLED= # Example: ${GOTRUE_EXTERNAL_GOOGLE_ENABLED}
|
||||
GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID= # Example: myhiddenid
|
||||
GOTRUE_EXTERNAL_GOOGLE_SECRET= # Example: myhiddensecret
|
||||
GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI= # Example: protocol://user:password@host:port/path
|
||||
# GITHUB OAuth configGOTRUE_EXTERNAL_GITHUB_ENABLED= # Example: ${GOTRUE_EXTERNAL_GITHUB_ENABLED}
|
||||
GOTRUE_EXTERNAL_GITHUB_CLIENT_ID= # Example: myhiddenid
|
||||
GOTRUE_EXTERNAL_GITHUB_SECRET= # Example: myhiddensecret
|
||||
GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI= # Example: protocol://user:password@host:port/path
|
||||
# Discord OAuth configGOTRUE_EXTERNAL_DISCORD_ENABLED= # Example: ${GOTRUE_EXTERNAL_DISCORD_ENABLED}
|
||||
GOTRUE_EXTERNAL_DISCORD_CLIENT_ID= # Example: myhiddenid
|
||||
GOTRUE_EXTERNAL_DISCORD_SECRET= # Example: myhiddensecret
|
||||
GOTRUE_EXTERNAL_DISCORD_REDIRECT_URI= # Example: protocol://user:password@host:port/path
|
||||
|
||||
RUST_LOG= # Example: info
|
||||
APPFLOWY_ENVIRONMENT= # Example: production
|
||||
APPFLOWY_DATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
APPFLOWY_REDIS_URI= # Example: protocol://user:password@host:port/path
|
||||
APPFLOWY_GOTRUE_JWT_SECRET= # Example: myhiddensecret
|
||||
APPFLOWY_GOTRUE_JWT_EXP= # Example: ${GOTRUE_JWT_EXP}
|
||||
APPFLOWY_GOTRUE_BASE_URL= # Example: protocol://user:password@host:port/path
|
||||
APPFLOWY_GOTRUE_EXT_URL= # Example: protocol://user:password@host:port/path
|
||||
APPFLOWY_GOTRUE_ADMIN_EMAIL= # Example: user.name@gmail.com
|
||||
APPFLOWY_GOTRUE_ADMIN_PASSWORD= # Example: Passw0rd
|
||||
APPFLOWY_S3_USE_MINIO= # Example: ${APPFLOWY_S3_USE_MINIO}
|
||||
APPFLOWY_S3_MINIO_URL= # Example: protocol://user:password@host:port/path
|
||||
APPFLOWY_S3_ACCESS_KEY= # Example: myhiddenkey
|
||||
APPFLOWY_S3_SECRET_KEY= # Example: myhiddenkey
|
||||
APPFLOWY_S3_BUCKET= # Example: ${APPFLOWY_S3_BUCKET}
|
||||
APPFLOWY_S3_REGION= # Example: ${APPFLOWY_S3_REGION}
|
||||
RUST_LOG= # Example: info
|
||||
ADMIN_FRONTEND_REDIS_URL= # Example: protocol://user:password@host:port/path
|
||||
ADMIN_FRONTEND_GOTRUE_URL= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,10 @@
|
||||
|
||||
|
||||
apprise_config_dir= # Example: /config
|
||||
apprise_attach_dir= # Example: /attach
|
||||
# apprise_stateful_mode=apprise_config_lock= # Example: no
|
||||
# apprise_deny_services=# apprise_allow_services=allowed_hosts= # Example: *
|
||||
apprise_recursion_max= # Example: 1
|
||||
# apprise_worker_count=base_url= # Example: protocol://user:password@host:port/path
|
||||
log_level= # Example: DEBUG
|
||||
debug= # Example: yes
|
||||
@@ -0,0 +1,23 @@
|
||||
AUTHENTIK_POSTGRESQL__HOST= # Example: postgres
|
||||
AUTHENTIK_POSTGRESQL__NAME= # Example: authentik
|
||||
AUTHENTIK_POSTGRESQL__USER= # Example: username
|
||||
AUTHENTIK_POSTGRESQL__PASSWORD= # Example: Passw0rd
|
||||
AUTHENTIK_DEBUG= # Example: true
|
||||
PG_PASS= # Example: Passw0rd
|
||||
AUTHENTIK_REDIS__HOST= # Example: redis
|
||||
AUTHENTIK_SECRET_KEY= # Example: myhiddenkey
|
||||
AUTHENTIK_EMAIL__HOST= # Example: user.name@gmail.com
|
||||
AUTHENTIK_EMAIL__PORT= # Example: user.name@gmail.com
|
||||
AUTHENTIK_EMAIL__USERNAME= # Example: user.name@gmail.com
|
||||
AUTHENTIK_EMAIL__PASSWORD= # Example: Passw0rd
|
||||
# # Use StartTLSAUTHENTIK_EMAIL__USE_TLS= # Example: user.name@gmail.com
|
||||
# # Use SSLAUTHENTIK_EMAIL__FROM= # Example: user.name@gmail.com
|
||||
AK_ADMIN_PASS= # Example: Passw0rd
|
||||
AUTHENTIK_LISTEN__HTTP= # Example: 0.0.0.0:80
|
||||
AUTHENTIK_LISTEN__HTTPS= # Example: 0.0.0.0:443
|
||||
AUTHENTIK_LISTEN__LDAP= # Example: 0.0.0.0:389
|
||||
AUTHENTIK_LISTEN__LDAPS= # Example: 0.0.0.0:636
|
||||
|
||||
AUTHENTIK_HOST= # Example: http://authentik
|
||||
AUTHENTIK_INSECURE= # Example: true
|
||||
AUTHENTIK_TOKEN= # Example: myhiddentoken
|
||||
@@ -0,0 +1,3 @@
|
||||
AUTHENTIK_LISTEN__LDAP= # Example: 0.0.0.0:389
|
||||
AUTHENTIK_LISTEN__LDAPS= # Example: 0.0.0.0:636
|
||||
AUTHENTIK_TOKEN= # Example: myhiddentoken
|
||||
@@ -0,0 +1,15 @@
|
||||
PUID= # Example: myhiddenid
|
||||
PGID= # Example: myhiddenid
|
||||
TZ= # Example: Etc/UTC
|
||||
|
||||
APP_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
APP_KEY= # Example: myhiddenkey
|
||||
|
||||
DB_CONNECTION= # Example: postgresql
|
||||
DB_HOST= # Example: postgres
|
||||
DB_PORT= # Example: 5432
|
||||
DB_DATABASE= # Example: bookstack
|
||||
DB_USERNAME= # Example: username
|
||||
DB_PASSWORD= # Example: Passw0rd
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
WORDPRESS_DB_HOST= # Example: business_mysql
|
||||
WORDPRESS_DB_NAME= # Example: business
|
||||
WORDPRESS_DB_USER= # Example: username
|
||||
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
|
||||
# WORDPRESS_TABLE_PREFIX=...MYSQL_DATABASE= # Example: business
|
||||
MYSQL_USER= # Example: username
|
||||
MYSQL_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,9 @@
|
||||
TUNNEL_TOKEN= # Example: myhiddentoken
|
||||
CLOUDFLARED_TOKEN= # Example: myhiddentoken
|
||||
CLOUDFLARE_API_TOKEN= # Example: myhiddentoken
|
||||
CLOUDFLARE_ACCOUNT_ID= # Example: myhiddenid
|
||||
CLOUDFLARE_TUNNEL_ID= # Example: myhiddenid
|
||||
CLOUDFLARE_ZONE_ID= # Example: myhiddenid
|
||||
# DOMAIN_NAME=traefik.marcpartensky.comTRAEFIK_API_ENDPOINT= # Example: http://traefik:8080
|
||||
TRAEFIK_SERVICE_ENDPOINT= # Example: http://traefik:80
|
||||
TRAEFIK_ENTRYPOINT= # Example: web
|
||||
@@ -0,0 +1,35 @@
|
||||
DISCORD_PREFIX= # Example: .
|
||||
DISCORD_TOKEN= # Example: myhiddentoken
|
||||
DISCORD_CLIENT_ID= # Example: myhiddenid
|
||||
DISCORD_MONGO_CLUSTER= # Example: discord-cluster-5ckni.mongodb.net/test
|
||||
DISCORD_MONGO_USERNAME= # Example: username
|
||||
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
|
||||
# DISCORD_MONGO_CLUSTER=discord_bot_mongo/testWOLFRAM_ALPHA_ID= # Example: myhiddenid
|
||||
FACEBOOK_MAIL= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD= # Example: Passw0rd
|
||||
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD_2= # Example: Passw0rd
|
||||
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
|
||||
MISCORD_DASHBOARD_USERNAME= # Example: username
|
||||
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
|
||||
PYGITHUB_TOKEN= # Example: myhiddentoken
|
||||
GITHUB_TOKEN= # Example: myhiddentoken
|
||||
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
|
||||
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
|
||||
LEEKWARS_USERNAME= # Example: username
|
||||
BRAWLSTARS_ID= # Example: myhiddenid
|
||||
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
|
||||
BRAWLSTARS_PASSWORD= # Example: Passw0rd
|
||||
BRAWLSTARS_TOKEN= # Example: myhiddentoken
|
||||
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
|
||||
DISCORD_BOT_HOST= # Example: 0.0.0.0
|
||||
DISCORD_BOT_PORT= # Example: 8000
|
||||
SHORTENER_URL= # Example: protocol://user:password@host:port/path
|
||||
IALAB_URL= # Example: protocol://user:password@host:port/path
|
||||
POSTGRES_DB= # Example: website
|
||||
POSTGRES_USER= # Example: username
|
||||
POSTGRES_HOST= # Example: postgres
|
||||
POSTGRES_PORT= # Example: 5432
|
||||
POSTGRES_PASSWORD= # Example: Passw0rd
|
||||
CHANNEL_ID_NOTIF= # Example: myhiddenid
|
||||
@@ -0,0 +1,2 @@
|
||||
MONGO_INITDB_ROOT_USERNAME= # Example: username
|
||||
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,3 @@
|
||||
ME_CONFIG_BASICAUTH_USERNAME= # Example: username
|
||||
ME_CONFIG_BASICAUTH_PASSWORD= # Example: Passw0rd
|
||||
ME_CONFIG_MONGODB_URL= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,3 @@
|
||||
DISCORD_TOKEN= # Example: myhiddentoken
|
||||
OPENAI_EMAIL= # Example: user.name@gmail.com
|
||||
OPENAI_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,26 @@
|
||||
DJANKISERV_MAINDB_ENGINE= # Example: django.db.backends.postgresql
|
||||
DJANKISERV_MAINDB_NAME= # Example: djankiserv
|
||||
DJANKISERV_MAINDB_USER= # Example: username
|
||||
DJANKISERV_MAINDB_PASSWORD= # Example: Passw0rd
|
||||
DJANKISERV_MAINDB_HOST= # Example: postgres
|
||||
DJANKISERV_MAINDB_PORT= # Example: 5432
|
||||
|
||||
DJANKISERV_USERDB_ENGINE= # Example: username
|
||||
DJANKISERV_USERDB_NAME= # Example: username
|
||||
DJANKISERV_USERDB_USER= # Example: username
|
||||
DJANKISERV_USERDB_PASSWORD= # Example: Passw0rd
|
||||
DJANKISERV_USERDB_HOST= # Example: username
|
||||
DJANKISERV_USERDB_PORT= # Example: username
|
||||
|
||||
HOST= # Example: 0.0.0.0
|
||||
PORT= # Example: 8000
|
||||
|
||||
DJANKISERV_DEBUG= # Example: True
|
||||
# DJANKISERV_DATA_ROOT=/code/dataDJANKISERV_SECRET_KEY= # Example: myhiddenkey
|
||||
# DJANKISERV_ALLOWED_HOSTS='djankiserv.marcpartensky.com'DJANKISERV_ALLOWED_HOSTS= # Example: "*"
|
||||
DJANKISERV_HOSTS= # Example: djankiserv
|
||||
DJANGO_DEBUG= # Example: 1
|
||||
# DJANGO_ALLOWED_HOSTS="*,localhost"# ALLOWED_HOSTS="*,localhost"ALLOWED_HOSTS= # Example: *
|
||||
DJANGO_SETTINGS_MODULE= # Example: djankiserv_api.settings
|
||||
PYTHON_APP= # Example: /app/src
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
NODE_ENV= # Example: docker
|
||||
ADMIN_NAME= # Example: marc
|
||||
ADMIN_PASSWORD= # Example: Passw0rd
|
||||
JWT_SECRET= # Example: myhiddensecret
|
||||
DB_HOST= # Example: postgres
|
||||
DB_USER= # Example: username
|
||||
DB_PASSWORD= # Example: Passw0rd
|
||||
DB_NAME= # Example: dockerdash
|
||||
@@ -0,0 +1,28 @@
|
||||
DISCORD_PREFIX= # Example: .
|
||||
DISCORD_TOKEN= # Example: myhiddentoken
|
||||
DISCORD_CLIENT_ID= # Example: myhiddenid
|
||||
# DISCORD_MONGO_CLUSTER=discord-cluster-5ckni.mongodb.net/testDISCORD_MONGO_USERNAME= # Example: username
|
||||
DISCORD_MONGO_CLUSTER= # Example: discord_bot_mongo
|
||||
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
|
||||
WOLFRAM_ALPHA_ID= # Example: myhiddenid
|
||||
FACEBOOK_MAIL= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD= # Example: Passw0rd
|
||||
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD_2= # Example: Passw0rd
|
||||
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
|
||||
MISCORD_DASHBOARD_USERNAME= # Example: username
|
||||
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
|
||||
PYGITHUB_TOKEN= # Example: myhiddentoken
|
||||
GITHUB_TOKEN= # Example: myhiddentoken
|
||||
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
|
||||
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
|
||||
LEEKWARS_USERNAME= # Example: username
|
||||
BRAWLSTARS_ID= # Example: myhiddenid
|
||||
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
|
||||
BRAWLSTARS_PASSWORD= # Example: Passw0rd
|
||||
BRAWLSTARS_TOKEN= # Example: myhiddentoken
|
||||
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
|
||||
DISCORD_BOT_HOST= # Example: 0.0.0.0
|
||||
DISCORD_BOT_PORT= # Example: 8000
|
||||
SHORTENER_URL= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,13 @@
|
||||
DB_ENGINE= # Example: postgres
|
||||
DATABASE_NAME= # Example: etesync
|
||||
DATABASE_USER= # Example: username
|
||||
DATABASE_HOST= # Example: postgres
|
||||
DATABASE_PASSWORD= # Example: Passw0rd
|
||||
DATABASE_PORT= # Example: 5432
|
||||
SUPER_USER= # Example: username
|
||||
SUPER_PASS= # Example: Passw0rd
|
||||
SUPER_EMAIL= # Example: user.name@gmail.com
|
||||
SECRET_KEY= # Example: myhiddenkey
|
||||
DEBUG= # Example: False
|
||||
AUTO_UPDATE= # Example: true
|
||||
# ALLOWED_HOSTS=etesync.marcpartensky.fr,etesync.marcpartensky.comALLOWED_HOSTS= # Example: etesync.marcpartensky.fr
|
||||
@@ -0,0 +1,14 @@
|
||||
ADMIN_PASSWORD= # Example: Passw0rd
|
||||
DB_TYPE= # Example: postgres
|
||||
DB_USER= # Example: username
|
||||
DB_HOST= # Example: postgres
|
||||
DB_PORT= # Example: 5432
|
||||
DB_PASS= # Example: Passw0rd
|
||||
DB_NAME= # Example: etherpad
|
||||
DB_CHARSET= # Example: utf8mb4
|
||||
# REQUIRE_AUTHENTICATION=trueREQUIRE_AUTHENTICATION= # Example: false
|
||||
|
||||
# ne marche pasSSO_ISSUER= # Example: https://authentik.marcpartensky.com
|
||||
ADMIN_CLIENT= # Example: myhiddensecret
|
||||
ADMIN_SECRET= # Example: myhiddensecret
|
||||
COMMIT_RATE_LIMIT_POINTS= # Example: 150
|
||||
@@ -0,0 +1,12 @@
|
||||
TZ= # Example: Europe/Paris
|
||||
|
||||
F2B_LOG_TARGET= # Example: STDOUT
|
||||
F2B_LOG_LEVEL= # Example: INFO
|
||||
F2B_DB_PURGE_AGE= # Example: 1d
|
||||
|
||||
SSMTP_HOST= # Example: smtp.gmail.com
|
||||
SSMTP_PORT= # Example: 587
|
||||
SSMTP_HOSTNAME= # Example: gmail.com
|
||||
SSMTP_USER= # Example: username
|
||||
SSMTP_PASSWORD= # Example: Passw0rd
|
||||
SSMTP_TLS= # Example: YES
|
||||
@@ -0,0 +1,6 @@
|
||||
SYNCSERVER_PUBLIC_URL= # Example: protocol://user:password@host:port/path
|
||||
SYNCSERVER_SECRET= # Example: myhiddensecret
|
||||
SYNCSERVER_SQLURI= # Example: protocol://user:password@host:port/path
|
||||
SYNCSERVER_BATCH_UPLOAD_ENABLED= # Example: true
|
||||
SYNCSERVER_FORCE_WSGI_ENVIRON= # Example: false
|
||||
PORT= # Example: 5000
|
||||
@@ -0,0 +1 @@
|
||||
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1 @@
|
||||
ADMIN_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,8 @@
|
||||
POSTGRES_USER= # Example: username
|
||||
POSTGRES_PASSWORD= # Example: Passw0rd
|
||||
POSTGRES_DB= # Example: gitea
|
||||
GITEA__database__TYPE= # Example: postgres
|
||||
GITEA__database__HOST= # Example: postgres
|
||||
GITEA__database__NAME= # Example: gitea
|
||||
GITEA__database__USER= # Example: username
|
||||
GITEA__database__PASSWD= # Example: Passw0rd
|
||||
@@ -0,0 +1,7 @@
|
||||
# SERVER_COUNTRIES: France# WireguardVPN_TYPE= # Example: 0.0.0.0
|
||||
VPN_SERVICE_PROVIDER= # Example: myhiddenid
|
||||
VPN_ENDPOINT_IP= # Example: 0.0.0.0
|
||||
VPN_ENDPOINT_PORT= # Example: 0.0.0.0
|
||||
WIREGUARD_PUBLIC_KEY= # Example: myhiddenkey
|
||||
WIREGUARD_PRIVATE_KEY= # Example: myhiddenkey
|
||||
WIREGUARD_ADDRESSES= # Example: 192.168.6.78/32
|
||||
@@ -0,0 +1,40 @@
|
||||
GF_INSTALL_PLUGINS= # Example: grafana-mqtt-datasource,redis-datasource,cloudflare-app
|
||||
|
||||
GF_SERVER_ROOT_URL= # Example: protocol://user:password@host:port/path
|
||||
GF_SERVER_DOMAIN= # Example: grafana.marcpartensky.com
|
||||
GF_SECURITY_ALLOW_EMBEDDING= # Example: protocol://user:password@host:port/path
|
||||
GF_AUTH_ANONYMOUS_ENABLED= # Example: True
|
||||
|
||||
# GF_SERVER_SERVE_FROM_SUB_PATH=false# GF_SERVER_ENFORCE_DOMAIN=true# GF_REVERSE_PROXY_HEADERS_X_FORWARDED_PROTO=true# GF_REVERSE_PROXY_HEADER_X_FORWARDED_HOST=true
|
||||
|
||||
# PostgresGF_DATABASE_TYPE= # Example: postgres
|
||||
GF_DATABASE_HOST= # Example: postgres
|
||||
GF_DATABASE_NAME= # Example: grafana
|
||||
GF_DATABASE_USER= # Example: username
|
||||
GF_DATABASE_PASSWORD= # Example: Passw0rd
|
||||
GF_DATABASE_SSL_MODE= # Example: disable
|
||||
|
||||
GF_AUTH_GENERIC_OAUTH_ENABLED= # Example: true
|
||||
GF_AUTH_OAUTH_AUTO_LOGIN= # Example: true
|
||||
GF_AUTH_GENERIC_OAUTH_NAME= # Example: Authentik
|
||||
GF_AUTH_GENERIC_OAUTH_CLIENT_ID= # Example: myhiddenid
|
||||
GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET= # Example: myhiddensecret
|
||||
GF_AUTH_GENERIC_OAUTH_SCOPES= # Example: openid profile email
|
||||
GF_AUTH_GENERIC_OAUTH_AUTH_URL= # Example: protocol://user:password@host:port/path
|
||||
GF_AUTH_GENERIC_OAUTH_TOKEN_URL= # Example: myhiddentoken
|
||||
GF_AUTH_GENERIC_OAUTH_API_URL= # Example: protocol://user:password@host:port/path
|
||||
GF_AUTH_SIGNOUT_REDIRECT_URL= # Example: protocol://user:password@host:port/path
|
||||
GF_AUTH_GENERIC_OAUTH_ROLE_ATTRIBUTE_PATH= # Example: "contains(groups, 'Grafana Admins') && 'Admin' || contains(groups, 'Grafana Editors') && 'Editor' || 'Viewer'"
|
||||
|
||||
|
||||
|
||||
# # Enable LDAP# GF_AUTH_LDAP_ENABLED=true
|
||||
# # LDAP Server Configuration# GF_AUTH_LDAP_CONFIG_SERVERS_0_HOST=ldap# GF_AUTH_LDAP_CONFIG_SERVERS_0_PORT=389# GF_AUTH_LDAP_CONFIG_SERVERS_0_USE_SSL=false
|
||||
# # Bind Credentials# GF_AUTH_LDAP_CONFIG_SERVERS_0_BIND_DN=cn=ldapservice,dc=ldap,dc=goauthentik,dc=io
|
||||
# GF_AUTH_LDAP_CONFIG_SERVERS_0_SEARCH_FILTER=(cn=%s)# GF_AUTH_LDAP_CONFIG_SERVERS_0_SEARCH_BASE_DNS=dc=ldap,dc=goauthentik,dc=io
|
||||
|
||||
|
||||
|
||||
|
||||
# # Group Mapping# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_0_GROUP_DN=cn=admins,ou=groups,dc=example,dc=com# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_0_ORG_ROLE=Admin# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_1_GROUP_DN=cn=editors,ou=groups,dc=example,dc=com# - GF_AUTH_LDAP_CONFIG_SERVERS_0_GROUP_MAPPINGS_1_ORG_ROLE=Editor
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
DB_NAME= # Example: brainperformer
|
||||
DB_USER= # Example: username
|
||||
DB_PASSWORD= # Example: Passw0rd
|
||||
DB_HOST= # Example: 0.0.0.0
|
||||
RECAPTCHA_SECRET_KEY= # Example: myhiddenkey
|
||||
MAIL= # Example: user.name@gmail.com
|
||||
MAIL_PASSWORD= # Example: Passw0rd
|
||||
|
||||
MYSQL_DATABASE= # Example: brainperformer
|
||||
MYSQL_USER= # Example: username
|
||||
MYSQL_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_ROOT_HOST= # Example: 0.0.0.0
|
||||
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,3 @@
|
||||
ACCOUNT_EMAIL= # Example: user.name@gmail.com
|
||||
ACCOUNT_PASSWORD= # Example: Passw0rd
|
||||
DEVICE_NAME= # Example: vps
|
||||
@@ -0,0 +1,29 @@
|
||||
DISCORD_PREFIX= # Example: .
|
||||
DISCORD_TOKEN= # Example: myhiddentoken
|
||||
DISCORD_CLIENT_ID= # Example: myhiddenid
|
||||
DISCORD_MONGO_CLUSTER= # Example: discord-cluster-5ckni.mongodb.net/test
|
||||
DISCORD_MONGO_USERNAME= # Example: username
|
||||
DISCORD_MONGO_PASSWORD= # Example: Passw0rd
|
||||
# DISCORD_MONGO_CLUSTER=discord_bot_mongo/testWOLFRAM_ALPHA_ID= # Example: myhiddenid
|
||||
FACEBOOK_MAIL= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD= # Example: Passw0rd
|
||||
FACEBOOK_MAIL_2= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD_2= # Example: Passw0rd
|
||||
FACEBOOK_MAIL_MISCORD= # Example: user.name@gmail.com
|
||||
FACEBOOK_PASSWORD_MISCORD= # Example: Passw0rd
|
||||
MISCORD_DASHBOARD_USERNAME= # Example: username
|
||||
MISCORD_DASHBOARD_PASSWORD= # Example: Passw0rd
|
||||
PYGITHUB_TOKEN= # Example: myhiddentoken
|
||||
GITHUB_TOKEN= # Example: myhiddentoken
|
||||
CAPTCHA_WEBSITE_KEY= # Example: myhiddenkey
|
||||
CAPTCHA_SECRET_KEY= # Example: myhiddenkey
|
||||
LEEKWARS_USERNAME= # Example: username
|
||||
BRAWLSTARS_ID= # Example: myhiddenid
|
||||
BRAWLSTARS_MAIL= # Example: user.name@gmail.com
|
||||
BRAWLSTARS_PASSWORD= # Example: Passw0rd
|
||||
BRAWLSTARS_TOKEN= # Example: myhiddentoken
|
||||
DOCKER_API_URL= # Example: protocol://user:password@host:port/path
|
||||
DISCORD_BOT_HOST= # Example: 0.0.0.0
|
||||
DISCORD_BOT_PORT= # Example: 8000
|
||||
SHORTENER_URL= # Example: protocol://user:password@host:port/path
|
||||
IALAB_URL= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,2 @@
|
||||
KEYCLOAK_ADMIN= # Example: myhiddenkey
|
||||
KEYCLOAK_ADMIN_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,2 @@
|
||||
LDAP_ADMIN_BIND_PWD= # Example: Passw0rd
|
||||
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,2 @@
|
||||
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
|
||||
LDAP_CONFIG_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,122 @@
|
||||
# mariadbMYSQL_ROOT_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_DATABASE= # Example: mailcow
|
||||
MYSQL_USER= # Example: username
|
||||
MYSQL_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_INITDB_SKIP_TZINFO= # Example: 0.0.0.0
|
||||
|
||||
# ------------------------------# ------------------------------
|
||||
MAILCOW_HOSTNAME= # Example: user.name@gmail.com
|
||||
|
||||
MAILCOW_PASS_SCHEME= # Example: Passw0rd
|
||||
|
||||
# ------------------------------# SQL database configuration# ------------------------------
|
||||
DBNAME= # Example: mailcow
|
||||
DBUSER= # Example: username
|
||||
|
||||
# Please use long, random alphanumeric strings (A-Za-z0-9)
|
||||
DBPASS= # Example: Passw0rd
|
||||
DBROOT= # Example: 8v5tSifRaAjLRVObkRbe1F0qjm11
|
||||
|
||||
# ------------------------------# HTTP/S Bindings# ------------------------------
|
||||
# You should use HTTPS, but in case of SSL offloaded reverse proxies:# Might be important: This will also change the binding within the container.# If you use a proxy within Docker, point it to the ports you set below.# IMPORTANT: Do not use port 8081, 9081 or 65510!# Example: HTTP_BIND=1.2.3.4
|
||||
HTTP_PORT= # Example: 80
|
||||
HTTP_BIND=
|
||||
|
||||
HTTPS_PORT= # Example: 443
|
||||
HTTPS_BIND=
|
||||
|
||||
# ------------------------------# Other bindings# ------------------------------# You should leave that alone# Format: 11.22.33.44:25 or 12.34.56.78:465 etc.
|
||||
SMTP_PORT= # Example: 25
|
||||
SMTPS_PORT= # Example: 465
|
||||
SUBMISSION_PORT= # Example: 587
|
||||
IMAP_PORT= # Example: 143
|
||||
IMAPS_PORT= # Example: 993
|
||||
POP_PORT= # Example: 110
|
||||
POPS_PORT= # Example: 995
|
||||
SIEVE_PORT= # Example: 4190
|
||||
DOVEADM_PORT= # Example: 127.0.0.1:19991
|
||||
SQL_PORT= # Example: 127.0.0.1:13306
|
||||
SOLR_PORT= # Example: 127.0.0.1:18983
|
||||
REDIS_PORT= # Example: 127.0.0.1:7654
|
||||
|
||||
# Your timezone# Use the row named 'TZ database name' + pay attention for 'Notes' row
|
||||
TZ= # Example: Europe/Paris
|
||||
|
||||
# Fixed project name# Please use lowercase letters only
|
||||
COMPOSE_PROJECT_NAME= # Example: mailcow
|
||||
|
||||
ACL_ANYONE= # Example: disallow
|
||||
|
||||
# Garbage collector cleanup# How long should objects remain in the garbage until they are being deleted? (value in minutes)
|
||||
MAILDIR_GC_TIME= # Example: user.name@gmail.com
|
||||
|
||||
# Additional SAN for the certificate##ADDITIONAL_SAN=imap.*,smtp.*# This will expand the certificate to "imap.example.com", "smtp.example.com", "imap.example.net", "smtp.example.net"# plus every domain you add in the future.## You can also just add static names...#ADDITIONAL_SAN=srv1.example.net# ...or combine wildcard and static names:#ADDITIONAL_SAN=imap.*,srv1.example.com#
|
||||
ADDITIONAL_SAN= # Example: marcpartensky.com
|
||||
|
||||
## You can understand this as server_name directive in Nginx.# Comma separated list without spaces! Example: ADDITIONAL_SERVER_NAMES=a.b.c,d.e.f
|
||||
ADDITIONAL_SERVER_NAMES=
|
||||
|
||||
|
||||
SKIP_LETS_ENCRYPT= # Example: 0.0.0.0
|
||||
|
||||
# Create seperate certificates for all domains - y/nENABLE_SSL_SNI= # Example: n
|
||||
|
||||
|
||||
SKIP_IP_CHECK= # Example: 0.0.0.0
|
||||
|
||||
|
||||
SKIP_HTTP_VERIFICATION= # Example: 0.0.0.0
|
||||
|
||||
|
||||
SKIP_CLAMD= # Example: 0.0.0.0
|
||||
|
||||
|
||||
SKIP_SOGO= # Example: 0.0.0.0
|
||||
|
||||
|
||||
SKIP_SOLR= # Example: 0.0.0.0
|
||||
|
||||
# Solr heap size in MB, there is no recommendation, please see Solr docs.# Solr is a prone to run OOM and should be monitored. Unmonitored Solr setups are not recommended.
|
||||
SOLR_HEAP= # Example: 1024
|
||||
|
||||
|
||||
ALLOW_ADMIN_EMAIL_LOGIN= # Example: user.name@gmail.com
|
||||
|
||||
|
||||
USE_WATCHDOG= # Example: y
|
||||
|
||||
# CAUTION:
|
||||
|
||||
WATCHDOG_NOTIFY_BAN= # Example: n
|
||||
|
||||
#WATCHDOG_SUBJECT=
|
||||
# No data is collected. Opt-in and anonymous.WATCHDOG_EXTERNAL_CHECKS= # Example: n
|
||||
|
||||
# Enable watchdog verbose loggingWATCHDOG_VERBOSE= # Example: n
|
||||
|
||||
# Max log lines per service to keep in Redis logs
|
||||
LOG_LINES= # Example: 9999
|
||||
|
||||
|
||||
IPV4_NETWORK= # Example: 0.0.0.0
|
||||
|
||||
|
||||
IPV6_NETWORK= # Example: 0.0.0.0
|
||||
|
||||
|
||||
#SNAT_TO_SOURCE=
|
||||
|
||||
#SNAT6_TO_SOURCE=
|
||||
|
||||
#API_ALLOW_FROM=172.22.1.1,127.0.0.1
|
||||
MAILDIR_SUB= # Example: user.name@gmail.com
|
||||
|
||||
# SOGo session timeout in minutesSOGO_EXPIRE_SESSION= # Example: 480
|
||||
|
||||
# LEAVE EMPTY IF UNSUREDOVECOT_MASTER_USER= # Example: username
|
||||
# LEAVE EMPTY IF UNSUREDOVECOT_MASTER_PASS= # Example: Passw0rd
|
||||
|
||||
# Let's Encrypt registration contact information# Optional: Leave empty for none# This value is only used on first order!# Setting it at a later point will require the following steps:ACME_CONTACT=
|
||||
|
||||
# WebAuthn device manufacturer verification# After setting WEBAUTHN_ONLY_TRUSTED_VENDORS=y only devices from trusted manufacturers are allowedWEBAUTHN_ONLY_TRUSTED_VENDORS= # Example: n
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
MINIO_ROOT_USER= # Example: username
|
||||
MINIO_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,8 @@
|
||||
NODE_ENV= # Example: docker
|
||||
ADMIN_NAME= # Example: marc
|
||||
ADMIN_PASSWORD= # Example: Passw0rd
|
||||
JWT_SECRET= # Example: myhiddensecret
|
||||
DB_HOST= # Example: postgres
|
||||
DB_USER= # Example: username
|
||||
DB_PASSWORD= # Example: Passw0rd
|
||||
DB_NAME= # Example: dockerdash
|
||||
@@ -0,0 +1 @@
|
||||
WALLET= # Example: 43J2XmRtjDPRLD35UsYGH2AZamFBQz7dt4VdvZXVm3SuadTrvcoXUXBRUNHqukFte23Q5TWXqhbwaLJJgoVQzzbe2AJDANQ
|
||||
@@ -0,0 +1,2 @@
|
||||
MONGO_INITDB_ROOT_USERNAME= # Example: username
|
||||
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,7 @@
|
||||
MONGODB_HOST= # Example: mongo
|
||||
MONGODB_PORT= # Example: 27017
|
||||
MONGODB_USER= # Example: username
|
||||
MONGODB_PASS= # Example: Passw0rd
|
||||
CRON_TIME= # Example: "0 5 * * *"
|
||||
INIT_BACKUP= # Example: 1
|
||||
# MAX_BACKUPS the number of backups to keep. When reaching the limit, the old backup will be discarded. No limit, by default
|
||||
@@ -0,0 +1,3 @@
|
||||
ME_CONFIG_MONGODB_URL= # Example: protocol://user:password@host:port/path
|
||||
ME_CONFIG_AUTH_USERNAME= # Example: username
|
||||
ME_CONFIG_AUTH_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1 @@
|
||||
PBM_MONGODB_URI= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,27 @@
|
||||
N8N_HOST= # Example: 0.0.0.0
|
||||
N8N_PORT= # Example: 5678
|
||||
WEBHOOK_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
DB_TYPE= # Example: postgresdb
|
||||
DB_POSTGRESDB_HOST= # Example: postgres
|
||||
DB_POSTGRESDB_PORT= # Example: 5432
|
||||
DB_POSTGRESDB_DATABASE= # Example: n8n
|
||||
DB_POSTGRESDB_USER= # Example: username
|
||||
DB_POSTGRESDB_PASSWORD= # Example: Passw0rd
|
||||
GENERIC_TIMEZONE= # Example: Europe/Paris
|
||||
TZ= # Example: Europe/Paris
|
||||
|
||||
N8N_DIAGNOSTICS_ENABLED= # Example: false
|
||||
N8N_VERSION_NOTIFICATIONS_ENABLED= # Example: false
|
||||
N8N_TEMPLATES_ENABLED= # Example: false
|
||||
|
||||
N8N_BASIC_AUTH_ACTIVE= # Example: false
|
||||
|
||||
# N8N_PROTOCOL=${N8N_PROTOCOL}
|
||||
EXECUTIONS_MODE= # Example: queue
|
||||
QUEUE_BULL_REDIS_HOST= # Example: redis
|
||||
QUEUE_HEALTH_CHECK_ACTIVE= # Example: true
|
||||
|
||||
N8N_ENCRYPTION_KEY= # Example: myhiddenkey
|
||||
|
||||
N8N_RUNNERS_ENABLED= # Example: true
|
||||
@@ -0,0 +1,5 @@
|
||||
POSTGRES_ROOT_PASSWORD= # Example: Passw0rd
|
||||
POSTGRES_PASSWORD= # Example: Passw0rd
|
||||
POSTGRES_DATABASE= # Example: nextcloud
|
||||
POSTGRES_USER= # Example: username
|
||||
POSTGRES_HOST= # Example: postgres
|
||||
@@ -0,0 +1 @@
|
||||
NC_DB= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,52 @@
|
||||
APP_NAME= # Example: "Numéris ISEP"
|
||||
APP_ENV= # Example: production
|
||||
APP_KEY= # Example: myhiddenkey
|
||||
APP_DEBUG= # Example: false
|
||||
APP_URL= # Example: protocol://user:password@host:port/path
|
||||
FRONT_APP_URL= # Example: protocol://user:password@host:port/path
|
||||
production= # Example: 1
|
||||
|
||||
LOG_CHANNEL= # Example: stack
|
||||
|
||||
DB_CONNECTION= # Example: mysql
|
||||
DB_HOST= # Example: numeris_mysql
|
||||
DB_PORT= # Example: 3306
|
||||
DB_DATABASE= # Example: numeris
|
||||
DB_USERNAME= # Example: username
|
||||
DB_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
|
||||
PMA_HOST= # Example: numeris_mysql
|
||||
PMA_USER= # Example: username
|
||||
PMA_PASSWORD= # Example: Passw0rd
|
||||
|
||||
BROADCAST_DRIVER= # Example: log
|
||||
CACHE_DRIVER= # Example: file
|
||||
SESSION_DRIVER= # Example: file
|
||||
SESSION_LIFETIME= # Example: 120
|
||||
QUEUE_DRIVER= # Example: sync
|
||||
|
||||
REDIS_HOST= # Example: 127.0.0.1
|
||||
REDIS_PASSWORD= # Example: Passw0rd
|
||||
REDIS_PORT= # Example: 6379
|
||||
|
||||
MAIL_DRIVER= # Example: user.name@gmail.com
|
||||
MAIL_HOST= # Example: user.name@gmail.com
|
||||
MAIL_PORT= # Example: user.name@gmail.com
|
||||
MAIL_USERNAME= # Example: user.name@gmail.com
|
||||
MAIL_PASSWORD= # Example: Passw0rd
|
||||
MAIL_ENCRYPTION= # Example: user.name@gmail.com
|
||||
MAIL_FROM_ADDRESS= # Example: user.name@gmail.com
|
||||
MAIL_FROM_NAME= # Example: user.name@gmail.com
|
||||
|
||||
PUSHER_APP_ID= # Example: myhiddenid
|
||||
PUSHER_APP_KEY= # Example: myhiddenkey
|
||||
PUSHER_APP_SECRET= # Example: myhiddensecret
|
||||
PUSHER_APP_CLUSTER= # Example: mt1
|
||||
|
||||
MIX_PUSHER_APP_KEY= # Example: myhiddenkey
|
||||
MIX_PUSHER_APP_CLUSTER= # Example: "${PUSHER_APP_CLUSTER}"
|
||||
|
||||
JWT_SECRET= # Example: myhiddensecret
|
||||
|
||||
GOOGLE_RECAPTCHA_KEY= # Example: myhiddenkey
|
||||
GOOGLE_RECAPTCHA_SECRET= # Example: myhiddensecret
|
||||
@@ -0,0 +1,4 @@
|
||||
LDAP_ADMIN_USERNAME= # Example: username
|
||||
LDAP_ADMIN_PASSWORD= # Example: Passw0rd
|
||||
LDAP_USERS= # Example: username
|
||||
LDAP_PASSWORDS= # Example: Passw0rd
|
||||
@@ -0,0 +1 @@
|
||||
VPN= # Example: 0.0.0.0
|
||||
@@ -0,0 +1,122 @@
|
||||
# –––––––––––––––– REQUIRED ––––––––––––––––
|
||||
NODE_ENV= # Example: production
|
||||
|
||||
# in your terminal to generate a random value.SECRET_KEY= # Example: myhiddenkey
|
||||
|
||||
# `openssl rand -hex 32` in your terminal to produce this.UTILS_SECRET= # Example: myhiddensecret
|
||||
|
||||
# For production point these at your databases, in development the default# should work out of the box.DATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
DATABASE_CONNECTION_POOL_MIN=
|
||||
DATABASE_CONNECTION_POOL_MAX=
|
||||
# Uncomment this to disable SSL for connecting to PostgresPGSSLMODE= # Example: disable
|
||||
|
||||
REDIS_URL= # Example: protocol://user:password@host:port/path
|
||||
# use a base64 encoded JSON connection option object. Refer to the ioredis documentation# for a list of available options.# Example: Use Redis Sentinel for high availability# {"sentinels":[{"host":"sentinel-0","port":26379},{"host":"sentinel-1","port":26379}],"name":"mymaster"}
|
||||
URL= # Example: protocol://user:password@host:port/path
|
||||
PORT= # Example: 3000
|
||||
|
||||
# See [documentation](docs/SERVICES.md) on running a separate collaboration# server, for normal operation this does not need to be set.COLLABORATION_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
# Specify what storage system to use. Possible value is one of "s3" or "local".# For "local", the avatar images and document attachments will be saved on local disk.FILE_STORAGE= # Example: local
|
||||
|
||||
# If "local" is configured for FILE_STORAGE above, then this sets the parent directory under# which all attachments/images go. Make sure that the process has permissions to create# this path and also to write files to it.FILE_STORAGE_LOCAL_ROOT_DIR= # Example: /var/lib/outline/data
|
||||
|
||||
# Maximum allowed size for the uploaded attachment.FILE_STORAGE_UPLOAD_MAX_SIZE= # Example: 262144000
|
||||
|
||||
# than the document attachment maximum size.FILE_STORAGE_IMPORT_MAX_SIZE=
|
||||
|
||||
# and the files are temporary being automatically deleted after a period of time.FILE_STORAGE_WORKSPACE_IMPORT_MAX_SIZE=
|
||||
|
||||
# To support uploading of images for avatars and document attachments in a distributed# architecture an s3-compatible storage can be configured if FILE_STORAGE=s3 above.AWS_ACCESS_KEY_ID= # Example: myhiddenid
|
||||
AWS_SECRET_ACCESS_KEY= # Example: myhiddenkey
|
||||
AWS_REGION= # Example: xx-xxxx-x
|
||||
AWS_S3_ACCELERATE_URL= # Example: protocol://user:password@host:port/path
|
||||
AWS_S3_UPLOAD_BUCKET_URL= # Example: protocol://user:password@host:port/path
|
||||
AWS_S3_UPLOAD_BUCKET_NAME= # Example: bucket_name_here
|
||||
AWS_S3_FORCE_PATH_STYLE= # Example: true
|
||||
AWS_S3_ACL= # Example: private
|
||||
|
||||
# –––––––––––––– AUTHENTICATION ––––––––––––––
|
||||
# Third party signin credentials, at least ONE OF EITHER Google, Slack,# or Microsoft is required for a working installation or you'll have no sign-in# options.
|
||||
# To configure Slack auth, you'll need to create an Application at# => https://api.slack.com/apps#SLACK_CLIENT_ID= # Example: myhiddenid
|
||||
SLACK_CLIENT_SECRET= # Example: myhiddensecret
|
||||
|
||||
# => https://console.cloud.google.com/apis/credentials#GOOGLE_CLIENT_ID= # Example: myhiddenid
|
||||
GOOGLE_CLIENT_SECRET= # Example: myhiddensecret
|
||||
|
||||
# => https://wiki.generaloutline.com/share/dfa77e56-d4d2-4b51-8ff8-84ea6608faa4AZURE_CLIENT_ID= # Example: myhiddenid
|
||||
AZURE_CLIENT_SECRET= # Example: myhiddensecret
|
||||
AZURE_RESOURCE_APP_ID= # Example: myhiddenid
|
||||
|
||||
|
||||
OIDC_CLIENT_ID= # Example: myhiddenid
|
||||
OIDC_CLIENT_SECRET= # Example: myhiddenid
|
||||
OIDC_AUTH_URI= # Example: myhiddenid
|
||||
OIDC_TOKEN_URI= # Example: myhiddenid
|
||||
OIDC_USERINFO_URI= # Example: myhiddenid
|
||||
OIDC_LOGOUT_URI= # Example: myhiddenid
|
||||
OIDC_USERNAME_CLAIM= # Example: myhiddenid
|
||||
OIDC_DISPLAY_NAME= # Example: myhiddenid
|
||||
OIDC_SCOPES= # Example: myhiddenid
|
||||
|
||||
OIDC_USERNAME_CLAIM= # Example: myhiddenid
|
||||
|
||||
OIDC_DISPLAY_NAME= # Example: myhiddenid
|
||||
|
||||
# Space separated auth scopes.
|
||||
# To configure the GitHub integration, you'll need to create a GitHub App at# => https://github.com/settings/apps#GITHUB_CLIENT_ID= # Example: myhiddenid
|
||||
GITHUB_CLIENT_SECRET= # Example: myhiddensecret
|
||||
GITHUB_APP_NAME=
|
||||
GITHUB_APP_ID= # Example: myhiddenid
|
||||
GITHUB_APP_PRIVATE_KEY= # Example: myhiddenkey
|
||||
|
||||
# To configure Discord auth, you'll need to create a Discord Application at# => https://discord.com/developers/applications/#DISCORD_CLIENT_ID= # Example: myhiddenid
|
||||
DISCORD_CLIENT_SECRET= # Example: myhiddensecret
|
||||
|
||||
# integrated with.# metadata such as nicknames, server icon and name.DISCORD_SERVER_ID= # Example: myhiddenid
|
||||
|
||||
# allowed to access Outline. If this is not set, all members of the server# will be allowed to access Outline.DISCORD_SERVER_ROLES=
|
||||
|
||||
# –––––––––––––––– OPTIONAL ––––––––––––––––
|
||||
# required if you do not use an external reverse proxy. See documentation:# https://wiki.generaloutline.com/share/1c922644-40d8-41fe-98f9-df2b67239d45SSL_KEY= # Example: myhiddenkey
|
||||
SSL_CERT=
|
||||
|
||||
# If using a Cloudfront/Cloudflare distribution or similar it can be set below.CDN_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
# Auto-redirect to https in production. The default is true but you may set to# false if you can be sure that SSL is terminated at an external loadbalancer.FORCE_HTTPS= # Example: true
|
||||
|
||||
# Have the installation check for updates by sending anonymized statistics to# the maintainersENABLE_UPDATES= # Example: true
|
||||
|
||||
# available memory by 512 for a rough estimateWEB_CONCURRENCY= # Example: 1
|
||||
|
||||
# You can remove this line if your reverse proxy already logs incoming http# requests and this ends up being duplicativeDEBUG= # Example: http
|
||||
|
||||
# Configure lowest severity level for server logs. Should be one of# error, warn, info, http, verbose, debug and sillyLOG_LEVEL= # Example: info
|
||||
|
||||
# For a complete Slack integration with search and posting to channels the# following configs are also needed, some more details# => https://wiki.generaloutline.com/share/be25efd1-b3ef-4450-b8e5-c4a4fc11e02a#SLACK_VERIFICATION_TOKEN= # Example: myhiddentoken
|
||||
SLACK_APP_ID= # Example: myhiddenid
|
||||
SLACK_MESSAGE_ACTIONS= # Example: true
|
||||
|
||||
# and do not forget to whitelist your domain name in the app settingsDROPBOX_APP_KEY= # Example: myhiddenkey
|
||||
|
||||
# Optionally enable Sentry (sentry.io) to track errors and performance,SENTRY_DSN=
|
||||
SENTRY_TUNNEL=
|
||||
|
||||
SMTP_HOST=
|
||||
SMTP_PORT=
|
||||
SMTP_USERNAME= # Example: username
|
||||
SMTP_PASSWORD= # Example: Passw0rd
|
||||
SMTP_FROM_EMAIL= # Example: user.name@gmail.com
|
||||
SMTP_REPLY_EMAIL= # Example: user.name@gmail.com
|
||||
SMTP_TLS_CIPHERS= # Example: 0.0.0.0
|
||||
SMTP_SECURE= # Example: true
|
||||
|
||||
# The default interface language. See translate.getoutline.com for a list of# available language codes and their rough percentage translated.# DEFAULT_LANGUAGE=en_USDEFAULT_LANGUAGE= # Example: fr_FR
|
||||
|
||||
# Optionally enable rate limiter at application web serverRATE_LIMITER_ENABLED= # Example: true
|
||||
|
||||
# Configure default throttling parameters for rate limiterRATE_LIMITER_REQUESTS= # Example: 1000
|
||||
RATE_LIMITER_DURATION_WINDOW= # Example: 60
|
||||
|
||||
# Iframely API configIFRAMELY_URL= # Example: protocol://user:password@host:port/path
|
||||
IFRAMELY_API_KEY= # Example: myhiddenkey
|
||||
@@ -0,0 +1,8 @@
|
||||
WORDPRESS_DB_HOST= # Example: oxivia_mysql
|
||||
WORDPRESS_DB_NAME= # Example: oxivia
|
||||
WORDPRESS_DB_USER= # Example: username
|
||||
WORDPRESS_DB_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_DATABASE= # Example: oxivia
|
||||
MYSQL_USER= # Example: username
|
||||
MYSQL_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,5 @@
|
||||
FLASK_APP= # Example: /app/server.py
|
||||
FLASK_ENV= # Example: debug
|
||||
FLASK_DEBUG= # Example: 1
|
||||
FLASK_HOST= # Example: pandoc
|
||||
FLASK_PORT= # Example: 80
|
||||
@@ -0,0 +1,3 @@
|
||||
EMAIL= # Example: user.name@gmail.com
|
||||
PASSWORD= # Example: Passw0rd
|
||||
DEVICE_NAME= # Example: contabo
|
||||
@@ -0,0 +1,25 @@
|
||||
# Database / Postgres service configurationPOSTGRES_USER= # Example: username
|
||||
POSTGRES_PASSWORD= # Example: Passw0rd
|
||||
# Postgres database name "peertube"POSTGRES_DB= # Example: peertube
|
||||
# Editable only with a suffix :#POSTGRES_DB=peertube_prod#PEERTUBE_DB_SUFFIX=_prodPEERTUBE_DB_USERNAME= # Example: username
|
||||
PEERTUBE_DB_PASSWORD= # Example: Passw0rd
|
||||
PEERTUBE_DB_SSL= # Example: false
|
||||
# Default to Postgres service name "postgres" in docker-compose.ymlPEERTUBE_DB_HOSTNAME= # Example: postgres
|
||||
|
||||
# Server configurationPEERTUBE_WEBSERVER_HOSTNAME= # Example: peertube.marcpartensky.fr
|
||||
# If you do not use https and a reverse-proxy in docker-compose.ymlPEERTUBE_WEBSERVER_PORT= # Example: 80
|
||||
PEERTUBE_WEBSERVER_HTTPS= # Example: false
|
||||
PEERTUBE_TRUST_PROXY= # Example: ["127.0.0.1", "loopback", "172.16.0.0/12", "192.168.0.0/16", "10.0.0.0/8"]
|
||||
|
||||
# If you use a Custom SMTP server# Default to Postfix service name "postfix" in docker-compose.yml# May be the hostname of your Custom SMTP serverPEERTUBE_SMTP_HOSTNAME= # Example: marcpartensky.com
|
||||
PEERTUBE_SMTP_PORT= # Example: 25
|
||||
PEERTUBE_SMTP_FROM= # Example: noreply@marcpartensky.com
|
||||
PEERTUBE_SMTP_TLS= # Example: false
|
||||
PEERTUBE_SMTP_DISABLE_STARTTLS= # Example: false
|
||||
PEERTUBE_ADMIN_EMAIL= # Example: user.name@gmail.com
|
||||
|
||||
# Postfix service configurationPOSTFIX_myhostname= # Example: marcpartensky.com
|
||||
OPENDKIM_DOMAINS= # Example: marcpartensky.com
|
||||
# see https://github.com/wader/postfix-relay/pull/18OPENDKIM_RequireSafeKeys= # Example: myhiddenkey
|
||||
|
||||
# /!\ Prefer to use the PeerTube admin interface to set the following configurations /!\#PEERTUBE_SIGNUP_ENABLED=true#PEERTUBE_TRANSCODING_ENABLED=true#PEERTUBE_CONTACT_FORM_ENABLED=truePEERTUBE_SECRET= # Example: myhiddensecret
|
||||
@@ -0,0 +1,5 @@
|
||||
POSTGRES_USER= # Example: username
|
||||
POSTGRES_PASS= # Example: Passw0rd
|
||||
POSTGRES_PORT= # Example: 5432
|
||||
POSTGRES_HOST= # Example: postgres
|
||||
# DBLISTCRON_SCHEDULE= # Example: "0 5 * * *"
|
||||
@@ -0,0 +1,2 @@
|
||||
PGADMIN_DEFAULT_EMAIL= # Example: user.name@gmail.com
|
||||
PGADMIN_DEFAULT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,10 @@
|
||||
POSTGRES_HOST= # Example: postgres
|
||||
POSTGRES_DB= # Example: authentik dockerdash etesync etherpad focalboard gitea grafana matrix nextcloud owncloud peertube postgres vaultwarden wallabag website wger
|
||||
POSTGRES_USER= # Example: username
|
||||
POSTGRES_PASSWORD= # Example: Passw0rd
|
||||
POSTGRES_EXTRA_OPTS= # Example: -Z6 --schema=public --blobs
|
||||
SCHEDULE= # Example: @daily
|
||||
BACKUP_KEEP_DAYS= # Example: 7
|
||||
BACKUP_KEEP_WEEKS= # Example: 4
|
||||
BACKUP_KEEP_MONTHS= # Example: 6
|
||||
HEALTHCHECK_PORT= # Example: 8080
|
||||
@@ -0,0 +1 @@
|
||||
DATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,3 @@
|
||||
POSTGRES_DB= # Example: website
|
||||
POSTGRES_USER= # Example: username
|
||||
POSTGRES_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,3 @@
|
||||
PGRST_DB_URI= # Example: protocol://user:password@host:port/path
|
||||
PGRST_DB_SCHEMA= # Example: public
|
||||
PGRST_DB_ANON_ROLE= # Example: izitdone
|
||||
@@ -0,0 +1,2 @@
|
||||
MONGO_INITDB_ROOT_USERNAME= # Example: username
|
||||
MONGO_INITDB_ROOT_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,3 @@
|
||||
MYSQL_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_ROOT_PASSWORD= # Example: Passw0rd
|
||||
DB_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,2 @@
|
||||
REGISTRY_HTTP_SECRET= # Example: myhiddensecret
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
RP_EMAIL= # Example: user.name@gmail.com
|
||||
RP_PASSWORD= # Example: Passw0rd
|
||||
@@ -0,0 +1,30 @@
|
||||
# POSTGRES_HOST=postgres# POSTGRES_PORT=5432# POSTGRES_DB=postgres# POSTGRES_SSL_CERT=
|
||||
|
||||
PUBLIC_URL= # Example: protocol://user:password@host:port/path
|
||||
__DEV__CLIENT_URL= # Example: myhiddensecret
|
||||
# NODE_ENV=productionNODE_ENV= # Example: development
|
||||
PORT= # Example: 3000
|
||||
|
||||
# PrinterCHROME_TOKEN= # Example: myhiddentoken
|
||||
TOKEN= # Example: myhiddentoken
|
||||
CHROME_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
# RedisREDIS_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
# PostgresDATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
SECRET_KEY= # Example: myhiddenkey
|
||||
ACCESS_TOKEN_SECRET= # Example: myhiddentoken
|
||||
REFRESH_TOKEN_SECRET= # Example: myhiddentoken
|
||||
|
||||
JWT_SECRET= # Example: myhiddensecret
|
||||
JWT_EXPIRY_TIME= # Example: 604800
|
||||
STORAGE_BUCKET= # Example: default
|
||||
# STORAGE_REGION=# STORAGE_ENDPOINT=# STORAGE_USE_SSL=false# PDF_DELETION_TIME=## -- Storage (Minio) --STORAGE_URL= # Example: protocol://user:password@host:port/path
|
||||
STORAGE_ENDPOINT= # Example: minio
|
||||
STORAGE_PORT= # Example: 9000
|
||||
# STORAGE_REGION: us-east-1 # OptionalSTORAGE_BUCKET= # Example: resume
|
||||
STORAGE_ACCESS_KEY= # Example: myhiddenkey
|
||||
STORAGE_SECRET_KEY= # Example: myhiddenkey
|
||||
STORAGE_USE_SSL= # Example: false
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
MYSQL_HOST= # Example: 192.168.0.145
|
||||
MYSQL_DATABASE= # Example: prospectix
|
||||
MYSQL_USER= # Example: username
|
||||
MYSQL_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_RANDOM_ROOT_PASSWORD= # Example: Passw0rd
|
||||
DATA_PATH= # Example: "data.yaml"
|
||||
SCHTROUMPFIX_JS= # Example: "schtroumpfix.js"
|
||||
@@ -0,0 +1,10 @@
|
||||
# dbMYSQL_ROOT_PASSWORD= # Example: Passw0rd
|
||||
MYSQL_LOG_CONSOLE= # Example: true
|
||||
|
||||
# seafileDB_HOST= # Example: db
|
||||
DB_ROOT_PASSWD= # Example: Passw0rd
|
||||
# # Optional, default is UTC. Should be uncomment and set to your local time zone.TIME_ZONE= # Example: Europe/Paris
|
||||
SEAFILE_ADMIN_EMAIL= # Example: user.name@gmail.com
|
||||
SEAFILE_ADMIN_PASSWORD= # Example: Passw0rd
|
||||
# Whether to use https or not.SEAFILE_SERVER_LETSENCRYPT= # Example: false
|
||||
# Specifies your host name if https is enabled.SEAFILE_SERVER_HOSTNAME= # Example: seafile.marcpartensky.com
|
||||
@@ -0,0 +1,29 @@
|
||||
# This is a template dotenv file. You should copy it and then modify it to fit# your setup. These environment variables won't do anything unless copied into# a file called `.env.test`. There, they'll be used to determine information# about the test environment.## This is useful because we want the test environment to have a different# configuration from the development environment. That way, we can run# the automated test suites without worrying about their impact on the database# we use for development.## For more information, see the Automated Testing Documentation.# https://docs.suitecrm.com/developer/automatedtesting/
|
||||
#== Install Test Suite:
|
||||
# MYSQL or MSSQLDATABASE_DRIVER= # Example: MYSQL
|
||||
|
||||
# Path to database serverDATABASE_HOST= # Example: localhost
|
||||
|
||||
# Name of the databaseDATABASE_NAME= # Example: automated_tests
|
||||
|
||||
DATABASE_USER= # Example: username
|
||||
|
||||
DATABASE_PASSWORD= # Example: Passw0rd
|
||||
|
||||
#== Acceptance, API, and Install Test Suites:
|
||||
INSTANCE_URL= # Example: protocol://user:password@host:port/path
|
||||
|
||||
INSTANCE_ADMIN_USER= # Example: username
|
||||
|
||||
INSTANCE_ADMIN_PASSWORD= # Example: Passw0rd
|
||||
|
||||
#== API Test Suite:
|
||||
INSTANCE_CLIENT_ID= # Example: myhiddenid
|
||||
|
||||
INSTANCE_CLIENT_SECRET= # Example: myhiddensecret
|
||||
|
||||
# Default web browser for acceptance and install testsBROWSER= # Example: chrome
|
||||
|
||||
# Webdriver hostname (Selenium, Local or Cloud Testing)WEBDRIVER_HOST= # Example: 127.0.0.1
|
||||
|
||||
# Webdriver port (Selenium, Local or Cloud Testing)WEBDRIVER_PORT= # Example: 4444
|
||||
@@ -0,0 +1,5 @@
|
||||
SYNC_HOST= # Example: 0.0.0.0
|
||||
SYNC_MASTER_SECRET= # Example: myhiddensecret
|
||||
SYNC_TOKENSERVER__DATABASE_URL= # Example: myhiddentoken
|
||||
SYNC_TOKENSERVER__RUN_MIGRATIONS= # Example: myhiddentoken
|
||||
SYNC_DATABASE_URL= # Example: protocol://user:password@host:port/path
|
||||
@@ -0,0 +1,5 @@
|
||||
TABLEAU_USERNAME= # Example: username
|
||||
TABLEAU_PASSWORD= # Example: Passw0rd
|
||||
TSM_REMOTE_UID= # Example: myhiddenid
|
||||
TSM_REMOTE_USERNAME= # Example: username
|
||||
LICENSE_KEY= # Example: myhiddenkey
|
||||
Executable
+114
@@ -0,0 +1,114 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import glob
|
||||
|
||||
url = "protocol://user:password@host:port/path"
|
||||
ip = "0.0.0.0"
|
||||
mail = "user.name@gmail.com"
|
||||
user = "username"
|
||||
password = "Passw0rd"
|
||||
id = "myhiddenid"
|
||||
key = "myhiddenkey"
|
||||
token = "myhiddentoken"
|
||||
secret = "myhiddensecret"
|
||||
|
||||
secret_keywords = {
|
||||
"password": password,
|
||||
"pass": password,
|
||||
"pwd": password,
|
||||
"pw": password,
|
||||
"id": id,
|
||||
"key": key,
|
||||
"token": token,
|
||||
"client": secret,
|
||||
"secret": secret,
|
||||
"url": url,
|
||||
"uri": url,
|
||||
"nc_db": url,
|
||||
"ip": ip,
|
||||
"vpn": ip,
|
||||
"mail": mail,
|
||||
"user": user,
|
||||
}
|
||||
|
||||
def create_template_from_env_file(
|
||||
file_path,
|
||||
):
|
||||
"""
|
||||
Crée un fichier template à partir d'un fichier .env.
|
||||
Pour chaque variable, si la clé ne contient pas de mot sensible, la valeur est affichée en commentaire.
|
||||
Sinon, seule la clé est indiquée avec une valeur vide.
|
||||
"""
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
template_lines = []
|
||||
for line in lines:
|
||||
sensitive = False
|
||||
stripped = line.strip()
|
||||
|
||||
# Conserver les lignes vides
|
||||
if not stripped:
|
||||
template_lines.append(line)
|
||||
continue
|
||||
|
||||
# If it is a comment
|
||||
if stripped.startswith("#"):
|
||||
|
||||
# that doesn't contain sensitive information
|
||||
for keyword in secret_keywords.keys():
|
||||
if keyword in stripped.lower():
|
||||
sensitive = True
|
||||
break
|
||||
|
||||
# then add it
|
||||
if not sensitive:
|
||||
template_lines.append(stripped)
|
||||
continue
|
||||
|
||||
# If not a comment and doesnt contain "=" it is an error dont add the line but print it
|
||||
if "=" not in stripped:
|
||||
print("Error:", file_path, stripped)
|
||||
continue
|
||||
|
||||
# Traiter les lignes de variables
|
||||
key, value = line.split("=", 1)
|
||||
key_part = key.strip()
|
||||
value_part = value.split('#')[0].strip() # Ignorer les commentaires en fin de ligne
|
||||
|
||||
# Vérifier si la clé contient un mot sensible
|
||||
for keyword in secret_keywords.keys():
|
||||
if keyword in key_part.lower():
|
||||
sensitive = True
|
||||
break
|
||||
|
||||
if sensitive:
|
||||
template_lines.append(f"{key_part}= # Example: {secret_keywords[keyword]}\n")
|
||||
continue
|
||||
|
||||
# Si la clé ne contient pas de mot sensible
|
||||
if value_part:
|
||||
template_lines.append(f"{key_part}= # Example: {value_part}\n")
|
||||
else:
|
||||
template_lines.append(f"{key_part}=\n")
|
||||
|
||||
# Générer le nom du fichier template
|
||||
base_name = os.path.basename(file_path)
|
||||
file_name = base_name.split('.')[0]
|
||||
template_file = f"{file_name}.template.env"
|
||||
|
||||
with open(template_file, 'w', encoding='utf-8') as f:
|
||||
f.writelines(template_lines)
|
||||
|
||||
print(f"{template_file}")
|
||||
|
||||
def main():
|
||||
# Rechercher tous les fichiers .env sauf les templates existants
|
||||
env_files = glob.glob("*.env")
|
||||
for file in env_files:
|
||||
if not file.endswith(".template.env"):
|
||||
create_template_from_env_file(file)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,13 @@
|
||||
TIMEASSISTANT_NEXTCLOUD_URL= # Example: protocol://user:password@host:port/path
|
||||
TIMEASSISTANT_NEXTCLOUD_USER= # Example: username
|
||||
TIMEASSISTANT_NEXTCLOUD_PASSWORD= # Example: Passw0rd
|
||||
TIMEASSISTANT_NEXTCLOUD_BOARD= # Example: "-Todolist"
|
||||
|
||||
|
||||
GRANIAN_RELOAD= # Example: 0
|
||||
|
||||
GRANIAN_INTERFACE= # Example: asgi
|
||||
GRANIAN_HOST= # Example: 0.0.0.0
|
||||
GRANIAN_PORT= # Example: 8000
|
||||
GRANIAN_LOGLEVEL= # Example: info
|
||||
GRANIAN_LOG_ACCESS_ENABLED= # Example: 1
|
||||
@@ -0,0 +1,4 @@
|
||||
POSTGRES_DB= # Example: todoapp
|
||||
POSTGRES_USER= # Example: username
|
||||
POSTGRES_PASSWORD= # Example: Passw0rd
|
||||
# POSTGRES_PORT=5432
|
||||
@@ -0,0 +1,16 @@
|
||||
TRAEFIK_PROVIDERS_DOCKER= # Example: myhiddenid
|
||||
TRAEFIK_PROVIDERS_FILE_FILENAME= # Example: myhiddenid
|
||||
CLOUDFLARE_DNS_API_TOKEN= # Example: myhiddentoken
|
||||
CLOUDFLARE_ZONE_API_TOKEN= # Example: myhiddentoken
|
||||
TRAEFIK_API_INSECURE= # Example: false
|
||||
TRAEFIK_API_DASHBOARD= # Example: true
|
||||
## API Settings - https://docs.traefik.io/operations/api/, endpoints - https://docs.traefik.io/operations/api/#endpoints ##TRAEFIK_API_DEBUG= # Example: true
|
||||
TRAEFIK_ENTRYPOINT_WEB_ADDRESS= # Example: :80
|
||||
TRAEFIK_ENTRYPOINT_WEBSECURE_ADDRESS= # Example: :443
|
||||
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_TLSCHALLENGE= # Example: true
|
||||
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_EMAIL= # Example: user.name@gmail.com
|
||||
TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_STORAGE= # Example: /letsencrypt/acme.json
|
||||
TRAEFIK_LOG_LEVEL= # Example: DEBUG
|
||||
## Entrypoints Settings - https://docs.traefik.io/routing/entrypoints/#configuration ##TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_TO= # Example: websecure
|
||||
TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_SCHEME= # Example: https
|
||||
TRAEFIK_ENTRYPOINTS_WEB_HTTP_REDIRECTIONS_ENTRYPOINT_PERMANENT= # Example: true
|
||||
@@ -0,0 +1 @@
|
||||
TOKEN= # Example: myhiddentoken
|
||||
@@ -0,0 +1 @@
|
||||
SECRET_KEY= # Example: myhiddenkey
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user