488 Commits
Author SHA1 Message Date
marc 233d83750b fix serge
Check docker compose files / build (push) Canceled after 0s
2023-11-17 15:20:49 +08:00
marc dc9e507df5 network_mode: noen 2023-11-12 10:36:05 +01:00
marc fecd479db2 website exact tag 2023-11-01 16:53:32 +01:00
marc d35ae463b5 exact tag 2023-11-01 03:25:15 +01:00
marc b0115be27d dont check validity 2023-09-18 14:21:24 +02:00
marc 7e66305e16 openssl config file to maybe add in the future 2023-09-18 14:19:45 +02:00
marc c0dfd22ddb postgres new openssl script 2023-09-18 14:15:46 +02:00
marc a73471643e create-ssl-keys.sh 2023-09-18 13:49:47 +02:00
marc bfd1681932 no shown 70 2023-09-18 13:45:57 +02:00
marc 7d545b56f5 clean postgres 2023-09-18 13:41:23 +02:00
marc f0e5f9c782 key again 2023-09-18 13:40:43 +02:00
marc 35afebac37 changed names 2023-09-18 13:38:58 +02:00
marc 9bc22acb3f postgres entrypoints 2023-09-18 13:37:02 +02:00
marc 6dcb54bfc7 only ignore postgres certs not entrypoint 2023-09-18 13:35:08 +02:00
marc 2bdfc80c58 req 2023-09-18 13:28:19 +02:00
marc 09b4a8f870 certs folder 2023-09-18 13:22:16 +02:00
marc ace267cf7b test 2023-09-14 20:14:29 +02:00
marc b4a2bb9e7f pgagent for automatic backup in postgre 2023-09-14 20:08:23 +02:00
marc ea736d4707 logseq 2023-09-14 19:11:13 +02:00
marc 6a78e8cf84 cloudflare caddy 2023-08-27 20:22:10 +02:00
marc 1b5fc9f49b cloudflare tunnel 2023-08-17 15:19:46 +02:00
marc d37ca2d3d8 resume url env vars in compose 2023-06-13 22:38:56 +02:00
marc 8a320392f4 fuseki for semantic web 2023-06-07 01:45:09 +02:00
marc e3263eabcd configured etherpad for real with postgres db 2023-06-07 00:50:50 +02:00
marc 0246b885ad working on wger 2023-05-30 16:53:06 +02:00
marc 3ef9fa1210 clean agenda militant 2023-05-19 19:06:11 +02:00
marc 7d07b88395 ldap backup 2023-05-18 17:54:56 +02:00
marc 08f4da8343 ok adguard 2023-05-18 17:54:07 +02:00
marc a2ce89e46a nextcloud 2023-05-18 17:53:18 +02:00
marc 6ceec09f0d pritunl 2023-05-18 17:53:11 +02:00
marc 47dc66ac79 resume 2023-05-18 17:53:05 +02:00
marc 4afed447e8 gitea fr com 2023-05-18 17:42:54 +02:00
marc a999ddd582 adguard cloudflare 2023-05-18 17:39:20 +02:00
marc 38005bc214 filebrowser.yml fr 2023-05-18 17:39:05 +02:00
marc bb221d3a07 resume 2023-05-18 17:34:18 +02:00
marc ef7d44d4d0 wallabag tls 2023-05-18 17:30:14 +02:00
marc 16984d5906 crontab cloudflare 2023-05-18 17:26:14 +02:00
marc 49c4451d7d ytdlp fr com 2023-05-18 17:18:49 +02:00
marc 68a712c9d6 duplicati fix 2023-05-18 17:18:33 +02:00
marc 220618bc4f etesync fr for now 2023-05-18 17:18:19 +02:00
marc 1c6b9eab4d etherpad cloudflare 2023-05-18 17:12:36 +02:00
marc 07a78d3ad2 etherpad fr com 2023-05-18 17:11:40 +02:00
marc dc7ca5f2cc pandoc fr com 2023-05-18 17:06:00 +02:00
marc 6351444ffc yt-dlp.yml fr com 2023-05-18 17:05:43 +02:00
marc 843bb0d72b adguard.yml 2023-05-18 16:59:29 +02:00
marc b2c79dff79 grafana fr com 2023-05-18 16:58:07 +02:00
marc e6f24c67dd homer 2023-05-18 16:57:28 +02:00
marc 459ba34789 jellyfin fr com 2023-05-18 16:57:12 +02:00
marc 1d80b5d0ef etesync fr com 2023-05-18 16:56:27 +02:00
marc 2519c6f961 prometheus fr com 2023-05-18 16:55:45 +02:00
marc 60315f2849 fix serge 2023-05-18 16:54:24 +02:00
marc 280ca04a44 vaultwarden.com 2023-05-18 16:54:05 +02:00
marc 74f5ae0fb3 mongo 2023-05-18 16:53:23 +02:00
marc ef3944a4a6 serge com 2023-05-18 16:52:54 +02:00
marc c300da8b25 pandoc rm useless labels 2023-05-18 16:49:07 +02:00
marc 957b5d8a06 homer 2023-05-18 16:48:19 +02:00
marc 74b77919e7 whoami com et fr 2023-05-18 16:46:37 +02:00
marc be44c96847 pandoc fr 2023-05-18 16:44:58 +02:00
marc c7c40c83a9 mongo com 2023-05-18 16:44:46 +02:00
marc 1f2228a991 portainer change 2023-05-16 00:40:40 +02:00
marc 96f5d04839 com 2023-05-10 19:58:00 +02:00
marc ebb88e255b cloudflare 2023-05-10 19:56:34 +02:00
marc 2b4d85d1da swarm.marcpartensky.com 2023-05-10 19:55:13 +02:00
marc dc999354ca serge that works 2023-04-20 18:19:57 +02:00
marc cdc7c587a8 vaultwarden.com 2023-04-18 20:27:54 +02:00
marc fe08144bf5 .com 2023-04-16 18:46:19 +02:00
marc 054a7b3926 env_file svp 2023-04-16 18:36:32 +02:00
marc 765ceddcb9 tls provider 2023-04-16 18:36:15 +02:00
marc 0700c0b613 resume back to before 2023-04-14 17:35:01 +02:00
marc 68b2c59c1f makefile network pritunl 2023-04-14 16:13:29 +02:00
marc a5871d6390 beef fr 2023-04-14 16:13:04 +02:00
marc f0c7b3725e cadvisor thats work but is not optimal 2023-04-14 02:33:41 +02:00
marc ea9d7c72aa less logs 2023-04-14 02:33:25 +02:00
marc cff59eb342 jupyterlab conf 2023-04-14 02:33:12 +02:00
marc a5ef302fa4 grafana data 2023-04-14 02:32:56 +02:00
marc 1515e9e1f3 incomplete grafana 2023-04-14 02:32:43 +02:00
marc 924668c1fd prometheus thats useful 2023-04-14 02:32:33 +02:00
marc 971d025910 jupyterhub that works but could be better 2023-04-14 02:32:08 +02:00
marc 7e29add93e jupyterlab that works 2023-04-14 02:31:54 +02:00
marc 91cd6bb716 minidlna.yml 2023-04-10 18:16:57 +02:00
marc b46ae1db0f seafile 2023-04-07 20:30:19 +02:00
marc 6e3033086f numeris staging 2023-04-04 02:42:42 +02:00
marc b44546d755 rip redis password 2023-04-04 02:00:39 +02:00
marc b6ace61817 vps 2023-04-04 01:58:06 +02:00
marc e140ed9514 external redis 2023-04-04 01:45:43 +02:00
marc 516da45523 redis health 2023-04-04 01:43:15 +02:00
marc f1462d92b7 better peertube but no peertube without postfix 2023-04-04 01:42:56 +02:00
marc b90a00c28c website that works with external redis 2023-04-04 01:28:08 +02:00
marc 5bff5b7d12 redis that works 2023-04-04 01:25:25 +02:00
marc 4a2fc9e0d3 authentik is back 2023-04-04 01:25:03 +02:00
marc 37f5929511 redis port 2023-04-03 20:23:01 +02:00
marc 7fca82784e redis network 2023-04-03 20:20:15 +02:00
marc dfb057bfbf redis 2023-04-03 20:19:31 +02:00
marc ff83788463 fix vaultwarden.yml 2023-04-02 01:52:01 +02:00
marc c223983f28 /etc/traefik 2023-04-02 01:51:44 +02:00
marc 71bf5e5ab8 signoz to configure later 2023-03-31 05:25:53 +02:00
marc 40d85b3873 wallabag that works 2023-03-31 05:23:47 +02:00
marc f5b2b29376 useless 2023-03-31 04:12:41 +02:00
marc 8c10378fa5 postgres healthcheck 2023-03-31 04:11:37 +02:00
marc c416945abb introducing wallabag 2023-03-31 04:02:16 +02:00
marc 0279ecae84 trying to fix jupyterlab 2023-03-31 03:24:33 +02:00
marc 0d29cfffac trying to fix jupyterhub 2023-03-31 03:24:21 +02:00
marc 0d56b5bf03 jupyterhub custom image 2023-03-27 16:31:24 +02:00
marc 77a0c55176 hide gpg 2023-03-27 12:30:43 +02:00
marc a527c3f507 crontab docker control 2023-03-27 12:30:05 +02:00
marc 3f4b2eb9eb ipfs fr 2023-03-27 12:29:39 +02:00
marc 883632adb9 dope gpg project 2023-03-23 08:28:25 +01:00
marc 48964a4b25 vaultwarden cloudflare 2023-03-23 03:39:29 +01:00
marc 5cdfd79fe5 pritunl with mongo 2023-03-23 03:01:08 +01:00
marc 80f5a499b7 added mc-backup 2023-03-23 03:01:08 +01:00
marc 4fd5dadb0f mc-backup.yml useless 2023-03-23 03:01:08 +01:00
marc ba7deb6725 filebrowser.yml fr 2023-03-23 03:01:08 +01:00
marc 3341323db3 ipfs.yml fr 2023-03-23 03:01:08 +01:00
marc e1ec21332c pgadmin fr 2023-03-23 03:01:08 +01:00
marc d52ca0dd0c ignore mongo conf 2023-03-23 03:01:08 +01:00
marc bc23dde9fe filebrowser.yml 2023-03-23 03:01:08 +01:00
marc bb0f2913b5 matrix with postgres 2023-03-23 03:01:08 +01:00
marc 9e068b1bbc backups 2023-03-23 03:01:08 +01:00
marc 6cf118a3b1 mc-backup.yml 2023-03-23 03:01:08 +01:00
marc 963092a1cf postgres backups that work 2023-03-23 03:01:08 +01:00
marc 92f48895e2 pufferpannel.yml 2023-03-23 03:01:08 +01:00
marc 72a827ab6d crafty-controller.yml 2023-03-23 03:01:08 +01:00
marc ae86a49fd6 whoami fr 2023-03-23 03:01:08 +01:00
marc 68d0bc9bc5 mongod.conff 2023-03-23 03:01:08 +01:00
marc cf98bc8d95 mcmyadmin.fr 2023-03-23 03:01:08 +01:00
marc 85fad15233 yt-dlp multiple playlists 2023-03-23 03:01:08 +01:00
marc 2cc6edda2e fr 2023-03-11 01:08:37 +01:00
marc fa8d52a1a9 fix hydra 2023-03-11 01:08:37 +01:00
marc 17cb3e5acf pgbackups 2023-03-08 16:08:45 +01:00
marc beda918d52 makefile 2023-03-08 03:01:47 +01:00
marc a7607ab939 portainer fr 2023-03-08 02:45:28 +01:00
marc ec55c189c4 etesync that works 2023-03-08 02:27:14 +01:00
marc 809e15214b etesync 2023-03-08 01:43:09 +01:00
marc 3e1fae8e5d min.yml 2023-03-07 22:46:45 +01:00
marc 8da2c9ad92 web shit 2023-03-07 22:45:13 +01:00
marc 7025c87394 fix that shit 2023-03-07 22:45:13 +01:00
marc 977283136a minidlna.yml 2023-03-07 22:45:13 +01:00
marc f376065a54 crontabs volume 2023-03-07 22:45:13 +01:00
marc 30fbdf3c9b yt-dlp 2023-03-07 12:30:38 +01:00
marc d4de7df987 container name yt-dlp.yml 2023-03-07 12:30:38 +01:00
marc 0c183165fc tableau 2023-03-06 19:01:34 +01:00
marc 12574f3f64 jellyfin.yml that works 2023-03-03 16:32:55 +01:00
marc 50f3e98002 yt.marcpartensky.fr 2023-02-28 20:07:04 +01:00
marc 0789c3ac27 ytdlp webui 2023-02-28 20:05:50 +01:00
marc 3f7ec1b4d5 nextcloud that works with fr 2023-02-28 19:46:52 +01:00
marc f3a9d39226 vaultwarden that actually works 2023-02-28 19:24:34 +01:00
marc 1e8ffe10c1 postgres.yml 2023-02-27 18:05:34 +01:00
marc 2374995356 etherpad fr 2023-02-25 18:45:32 +01:00
marc d132de8de5 yt-dlp pls 2023-02-24 18:01:26 +01:00
marc 8ca94f5cf8 honeygaijn 2023-02-23 18:19:19 +01:00
marc 46904e1a6b discord chatgpt 2023-02-21 10:51:43 +01:00
marc 52bcbcb550 chatgpt.yml 2023-02-21 10:18:44 +01:00
marc 9c22750a26 focalboard with postgres 2023-02-19 19:59:46 +01:00
marc 61a4ee8f52 good 2023-02-16 18:03:13 +01:00
marc fbe4635d6c ignore dockvpn stuff 2023-02-14 16:20:31 +01:00
marc 641fd1c65d gitea.yml 2023-02-14 16:19:35 +01:00
marc 167067a90c dockvpn that changes everytime 2023-02-14 16:19:25 +01:00
marc 822d41be97 dock vpn 2023-02-14 10:15:11 +01:00
marc 5e26d5c6fc openvpn.yml 2023-02-14 10:08:53 +01:00
marc 62a57a3445 openvpn server 2023-02-14 10:01:56 +01:00
marc e94c2b63d2 wireguard 2023-02-13 14:53:57 +01:00
marc c1ecbdeb1a attempting to fix sqlmap 2023-02-10 11:07:04 +01:00
marc 62b6d00fcc fix postgres 2023-02-10 11:06:33 +01:00
marc f9e4575e07 android 2023-02-09 17:50:21 +01:00
marc 207aee279b android 2023-02-09 17:46:35 +01:00
marc 6615362c61 sqlmap attempt 2023-02-09 17:25:26 +01:00
marc 0be3a775d7 burpsuite that doesnt work 2023-02-09 17:22:03 +01:00
marc 8bdb75f776 feroxbuster.yml 2023-02-07 16:08:09 +01:00
marc 4e45e1f43d limit to 0.1 cpu cuz fuck ipfs 2023-02-07 12:43:26 +01:00
marc e967cdca54 ipfs cpu limits 2023-02-07 12:28:43 +01:00
marc c4347b747b sablier maybe 2023-02-07 11:53:09 +01:00
marc cf7cb474e4 ignore mailcow data 2023-02-07 11:51:55 +01:00
marc d42e307187 searx fr 2023-02-07 11:50:28 +01:00
marc e12b2b9fa4 link for doc 2023-02-07 10:19:14 +01:00
marc f58c5ae67f traefik allow ssl backend 2023-02-07 10:16:43 +01:00
marc 4d07f96e0b ldap manager go fr 2023-02-06 07:26:53 +01:00
marc 6a5a53b142 ldap manager go fr 2023-02-06 07:24:48 +01:00
marc 7f346c70d5 duplicati fr 2023-02-06 07:23:55 +01:00
marc 08c706bcfb ldap manager fr 2023-02-06 07:23:43 +01:00
marc 7be1b74cf9 matrix fr cloudflare 2023-02-06 07:01:43 +01:00
marc 192822b062 ipfs cloudflare resolver 2023-02-06 06:58:04 +01:00
marc c738f3fbb5 ipfs fr 2023-02-06 06:57:03 +01:00
marc 00fe7d2943 traefik.yml 2023-02-06 06:51:50 +01:00
marc 92ac9bc692 using cloudflare as cert resolver too now 2023-02-06 06:49:16 +01:00
marc dcf14d58b8 ldap manager fr 2023-02-06 06:48:01 +01:00
marc f6f1497847 whoami fr 2023-02-06 06:35:41 +01:00
marc b06c2f2d5b uptime fr 2023-02-06 06:34:47 +01:00
marc 6f57e8fb60 duplcati fw 2023-02-06 01:32:15 +01:00
marc 30311afda1 mailcow attempt 2023-02-06 01:28:56 +01:00
marc fea9dc1570 attemps on vault 2023-02-06 01:28:42 +01:00
marc 0e242e4b90 owncloud fr 2023-02-02 19:42:44 +01:00
marc bb8920b68c ignore focalboard 2023-02-02 19:38:23 +01:00
marc e3911fc56c focalboard that works 2023-02-02 19:37:52 +01:00
marc 6bb1499842 vaultwarden 2023-02-02 19:37:20 +01:00
marc ef838c65c7 seafile 2023-02-02 19:36:30 +01:00
marc eea2c21153 traefik with ldap 2023-02-02 19:33:36 +01:00
marc d984bba156 focalboard with my postgres 2023-02-02 19:19:10 +01:00
marc db2022e3cf seafile fr 2023-01-29 04:03:10 +01:00
marc abafdd5c5d mobydock fr 2023-01-29 04:01:51 +01:00
marc af5c4bae3a .fr 2023-01-29 04:00:48 +01:00
marc 7929039bd4 multiple links 2023-01-29 03:59:53 +01:00
marc a78e66a69a mobydock 2023-01-21 22:40:47 +01:00
marc 77cedac33f tunnel 2023-01-19 15:12:15 +01:00
marc 30ecb09e48 ialab.yml 2023-01-18 21:02:05 +01:00
marc da440fdbda discord.yml 2023-01-18 21:00:42 +01:00
marc 7dc7db4fe4 ignore 2023-01-18 19:05:23 +01:00
marc d7995abfa7 ok 2023-01-18 19:05:13 +01:00
marc 72aa309dda no openvpn data 2023-01-18 19:04:11 +01:00
marc d198f6f410 discord bot env 2023-01-18 19:03:31 +01:00
marc d6dcad85c5 filebrowser data 2023-01-18 19:02:52 +01:00
marc 573169b6c2 makefile 2023-01-18 19:01:25 +01:00
marc cb09bf0137 bye 2023-01-18 19:00:09 +01:00
marc d80d0baaa5 etienne 2023-01-18 18:59:37 +01:00
marc 28b6d77279 etherpad using pad.marcpartensky.com 2023-01-10 15:24:36 +01:00
marc 78b9bd06c4 web-terminal.yml 2023-01-09 15:29:09 +01:00
marc 907117573b read docker sock 2023-01-07 12:17:24 +01:00
marc 17b4f21317 vol 2023-01-04 00:16:59 +01:00
marc c256ad2bec openvpnclient4.yml 2023-01-04 00:16:26 +01:00
marc 3d4fa22127 openvpnclient3.yml 2023-01-04 00:16:14 +01:00
marc 0aaf395f1b openvpnclient2.yml 2023-01-04 00:16:07 +01:00
marc 5599e187e7 owncloud 2023-01-03 18:18:50 +01:00
marc da9bbdb58f filebrowser.yml 2023-01-03 18:14:12 +01:00
marc 75a4bc17b4 uptime kuma 2023-01-01 23:55:46 +01:00
marc dcac2cd2ba official openvpnclient 2023-01-01 18:04:04 +01:00
marc e7a0fcabc7 fix port 2023-01-01 16:27:23 +01:00
marc bd0ab0013f caddy network 2023-01-01 16:27:04 +01:00
marc 54c89b4488 gluetun.yml 2023-01-01 16:26:10 +01:00
marc 443dd8ab93 vpn 2023-01-01 16:00:53 +01:00
marc d3c1253bb9 Update README.md 2022-12-27 13:45:13 +01:00
marc 3b22d451d8 ldap network to nextcloud 2022-12-26 16:23:20 +01:00
marc c62039d0fe env_file 2022-12-26 16:02:10 +01:00
marc a4bfcb5921 env var 2022-12-26 15:58:12 +01:00
marc d9bb6e4db9 ldap go 2022-12-26 15:53:07 +01:00
marc ea8e230d76 nixos 2022-12-26 15:51:03 +01:00
marc c200028bc0 mongo 2022-12-26 15:47:59 +01:00
marc e985752eae ignore vaultwarden data 2022-12-26 02:22:57 +01:00
marc 82029e6f81 mongo that works 2022-12-26 02:22:24 +01:00
marc e5ca34021a vaultwarden that works 2022-12-26 02:22:02 +01:00
marc 737ebc6321 network vaultwarden 2022-12-26 01:04:45 +01:00
marc f8a1ff2e92 vaultwarden ldap 2022-12-26 00:59:30 +01:00
marc 933ddf4221 vol 2022-12-26 00:47:56 +01:00
marc f8a94d186a multiple vols 2022-12-21 00:58:19 +01:00
marc 408d8dc635 filebrowser.yml 2022-12-21 00:51:43 +01:00
marc 97c2325b95 filebrowser.yml 2022-12-20 22:57:16 +01:00
marc ca215608d6 filebrowser.yml 2022-12-20 22:55:52 +01:00
marc ab97df91ef ipfs 2022-12-18 18:41:45 +01:00
marc ee4425a4c0 ipfs 2022-12-18 18:33:50 +01:00
marc 15ba187aa3 ipfs 2022-12-18 18:28:53 +01:00
marc 7b14ba476f test front rule 2022-12-18 18:25:54 +01:00
marc 4af5047907 ipfs 2022-12-18 17:59:22 +01:00
marc f498144f5e try replacement 2022-12-18 17:52:26 +01:00
marc 6c6208aa7e /webui 2022-12-18 17:38:39 +01:00
marc 8cf865de84 ldap 2022-12-18 17:21:23 +01:00
marc 22bf9de635 net and vol 2022-12-18 17:19:56 +01:00
marc 461b6ba700 ipfs 2022-12-18 17:16:53 +01:00
marc 69567af795 makefile 2022-12-16 20:27:21 +01:00
marc f7f20a8ff8 jellyfin.yml 2022-12-16 20:26:56 +01:00
marc 717d5e3da5 pawns 2022-12-16 20:26:49 +01:00
marc 4ad20c7687 homeassistant.yml 2022-12-16 20:25:12 +01:00
marc e14c8b18c8 remove ugly pgweb 2022-12-13 03:48:18 +01:00
marc 2cfc8ee74c custom pgweb 2022-12-13 03:47:54 +01:00
marc 73047a6114 pgweb as good as before 2022-12-13 03:37:44 +01:00
marc bb41dec4f6 good postgres 2022-12-13 02:53:16 +01:00
marc c1193fcda0 gitea.yml 2022-12-13 02:02:23 +01:00
marc b1f1214534 earnapp 2022-12-13 00:22:05 +01:00
marc 7b050209a8 limits 2022-12-13 00:17:58 +01:00
marc 74c26ba715 constraints 2022-12-13 00:12:42 +01:00
marc fb2d0fb0f9 miner 2022-12-13 00:08:33 +01:00
marc d307231325 money 2022-12-12 23:47:44 +01:00
marc 5ca4abb05c earnapp.yml 2022-12-12 23:46:38 +01:00
marc 86c3bfe43f peer2profit.yml 2022-12-12 23:46:29 +01:00
marc e1f344b79f money 2022-12-12 23:46:13 +01:00
marc 5214a155ba repocket 2022-12-12 23:45:47 +01:00
marc 2b06e251dc traffmonetizer.yml 2022-12-12 23:09:16 +01:00
marc b789a73e14 packetstream.yml 2022-12-12 22:31:07 +01:00
marc 4d25b5acd2 numeris 2022-12-12 22:06:43 +01:00
marc dac90a3298 numeris 2022-12-12 22:05:46 +01:00
marc 6f38d5f199 tried honeygain 2022-12-12 22:03:01 +01:00
marc a795d948d9 honeygain.yml 2022-12-12 21:49:42 +01:00
marc 4529897377 liberapay 2022-12-12 19:42:58 +01:00
marc 4784863c70 5432 localhost 2022-12-12 19:06:08 +01:00
marc d884da1207 postgres verbose pls 2022-12-08 19:04:47 +01:00
marc f334ae8925 almost fix todolist 2022-12-08 19:04:20 +01:00
marc bd521a56ca swarm visualizer shortcut 2022-12-08 19:04:11 +01:00
marc 247b50d27f fuck ERROR: You must set the environment variables GEOIPUPDATE_ACCOUNT_ID, GEOIPUPDATE_LICENSE_KEY, and GEOIPUPDATE_EDITION_IDS! 2022-12-06 00:49:23 +01:00
marc 810b2d2193 custom ip 2022-12-06 00:46:41 +01:00
marc 10a5141b4c no ipv4 2022-12-05 23:57:34 +01:00
marc 5514cd4118 clean net and service name 2022-12-05 23:48:16 +01:00
marc 7883618dbc deploy labels 2022-12-05 23:17:39 +01:00
marc e80a8b36ac mailcow 2022-12-05 23:16:22 +01:00
marc 60287821a6 bye oxivia 2022-12-05 22:56:30 +01:00
marc 18481bee41 adgaurd 2022-12-05 01:42:07 +01:00
marc 48c11963f8 wireguard client 2022-11-29 03:59:24 +01:00
marc 6619c4ef47 bye 2022-11-29 03:57:25 +01:00
marc 3df4d69b98 wireguard conf 2022-11-29 03:57:05 +01:00
marc 4956838f8f wireguard conf 2022-11-29 03:56:33 +01:00
marc ae214249a3 node labels 2022-11-29 03:23:52 +01:00
marc bc30990044 moved 2022-11-29 03:23:36 +01:00
marc 69a2c7176e valentin 2022-11-29 03:04:43 +01:00
marc b910e72d40 website 2022-11-29 02:32:25 +01:00
marc 8af467d970 health 2022-11-29 01:35:44 +01:00
marc 0e1df36451 seafile that works 2022-11-29 01:12:58 +01:00
marc 9c0faf4e70 no miner 2022-11-28 16:51:51 +01:00
marc b1e7c758a7 no arch for now 2022-11-28 16:50:04 +01:00
marc 16a92ecdb2 valentin 2022-11-28 16:49:37 +01:00
marc 47ff6e0f9e oxivia 2022-11-28 15:12:50 +01:00
marc ecca22e07a traefik is default now 2022-11-28 15:10:04 +01:00
marc 97002dd7aa might as well start first 2022-11-28 14:37:57 +01:00
marc 7c5b5d66ff bye todolist 2022-11-28 14:35:11 +01:00
marc c757aca483 soon mysql alone 2022-11-23 10:56:59 +01:00
marc 8a71408485 numeris.yml 2022-11-23 10:37:02 +01:00
marc bf62773448 numeris 2022-11-23 10:32:10 +01:00
marc f1124be5eb numeris 2022-11-23 10:30:58 +01:00
marc 6d0ef3dff5 numeris 2022-11-23 10:30:07 +01:00
marc fa8f90d8c3 numeris on top 2022-11-23 10:24:09 +01:00
marc edc0d4df00 numeris v1 2022-11-23 10:19:33 +01:00
marc b958a809c5 streamlit 2022-11-21 16:18:15 +01:00
marc 0a3cd3f04b streamlit 2022-11-21 16:09:13 +01:00
marc 170e21e0c8 seax 2022-11-21 16:05:15 +01:00
marc 4a3dcc890f streamlit 2022-11-21 16:03:23 +01:00
marc 091a714713 adguard config 2022-11-21 16:03:11 +01:00
marc fb4b0f9cc0 port 2022-11-21 15:54:00 +01:00
marc 0f96683e24 searx 2022-11-21 15:44:37 +01:00
marc 19ae780bb6 adguard clean 2022-11-18 23:59:13 +01:00
marc 9012dabb3e gitbook.yml 2022-11-18 23:52:01 +01:00
marc fcc7c4cd2a gitbook custom image 2022-11-18 23:38:13 +01:00
marc 1ece8598da gitbook 2022-11-18 21:22:46 +01:00
marc bd2ac5a2ef no 3000 open 2022-11-18 02:11:32 +01:00
marc 45d9564e95 docker craft 2022-11-18 02:02:55 +01:00
marc 3d600876a1 messed up 2022-11-18 02:00:49 +01:00
marc 4f654e2f53 link 2022-11-18 01:59:46 +01:00
marc 38adf360ef discord 2022-11-18 01:58:34 +01:00
marc def409af3f reade 2022-11-18 01:57:13 +01:00
marc 9cc764fc12 README.md 2022-11-18 01:56:10 +01:00
marc d3d578ae26 swarm visualizer that works 2022-11-18 01:54:30 +01:00
marc a9b3660403 kippo.yml 2022-11-18 01:54:18 +01:00
marc 1c0b129391 webshot.yml 2022-11-18 01:49:30 +01:00
marc 7cc8a4055b swarm-visualizer.yml 2022-11-18 01:31:08 +01:00
marc dfa86d81fe registry.yml 2022-11-18 01:13:01 +01:00
marc eec038c519 cowrie.yml 2022-11-18 00:45:22 +01:00
marc ec10e794be cowrie.yml 2022-11-18 00:42:48 +01:00
marc 75d096a5ee fix volume 2022-11-17 23:54:15 +01:00
marc cab99c5f26 cowrie.cfg 2022-11-17 23:07:54 +01:00
marc aea6325487 cowrie 2022-11-17 23:05:10 +01:00
marc 88084a581c wireguard.yml 2022-11-17 22:47:19 +01:00
marc 5c5d77d125 satisfactory.yml 2022-11-17 22:39:28 +01:00
marc 0f4bbf7aa4 fix port 2022-11-17 18:52:11 +01:00
marc 6bbede0a65 board.marcpartensky.com 2022-11-17 18:51:17 +01:00
marc 6f325a59db focalboard.yml 2022-11-17 18:49:33 +01:00
marc 68b6b3fbcd todolist deploy labels 2022-11-14 10:31:41 +01:00
marc 2ec47dff76 vaultwarden deploy labels 2022-11-14 06:35:22 +01:00
marc c00dd838c6 adguard deploy labels + ldap 2022-11-14 06:30:12 +01:00
marc 71a6e1c79b mongo express 2022-11-14 06:28:15 +01:00
marc 794822c542 heimdall with ldap 2022-11-14 06:23:37 +01:00
marc 2e1918b793 phpmyadmin too 2022-11-14 06:20:18 +01:00
marc c9c28030c6 wordpress deploy labels 2022-11-14 06:19:00 +01:00
marc 046044645d keycloak deploy labels 2022-11-14 06:17:35 +01:00
marc a534e28c31 sslh with traefik 2022-11-14 06:12:38 +01:00
marc 5d0b6bb4c3 fix peertube 2022-11-14 05:58:02 +01:00
marc a3c08af485 being gentle with gitlab 2022-11-14 05:57:03 +01:00
marc 2018b1d0f3 fix mistake 2022-11-14 05:54:27 +01:00
marc 9939880334 gitlab ram is 512 2022-11-14 05:53:27 +01:00
marc 537746a6cb gitlab deploy labels 2022-11-14 05:50:56 +01:00
marc 8e4394b44b secured pgweb 2022-11-14 05:48:23 +01:00
marc 520a62c289 ldap options once and for all 2022-11-14 05:37:44 +01:00
marc 85cd595267 fuck pgweb health 2022-11-14 05:33:00 +01:00
marc 84c6632093 pgweb is its own thing 2022-11-14 05:31:37 +01:00
marc c4ec620e04 pandoc.yml deploy labels 2022-11-14 05:28:01 +01:00
marc 9339fa9b79 mcmyadmin deploy labels 2022-11-14 05:27:11 +01:00
marc 81a05cba11 pritunl comment 2022-11-14 05:18:50 +01:00
marc a472002822 fix homer port 2022-11-14 05:09:36 +01:00
marc fa927dd63c pritunl deploy labels 2022-11-14 05:09:02 +01:00
marc a9d952ef37 homer deploy lables 2022-11-14 05:07:23 +01:00
marc b00207c6c0 swarmpit deploylabels 2022-11-14 05:06:19 +01:00
marc bedb598793 portainer deploy labels 2022-11-14 04:47:50 +01:00
marc 6d8e1ce97f pgadmin deploy labels 2022-11-14 04:45:27 +01:00
marc 22fba56a6a deploy labels 2022-11-14 04:42:52 +01:00
marc 07361d978e deploy labels 2022-11-14 04:39:31 +01:00
marc c2a932cbcd agenda militant deploy labels 2022-11-14 04:37:57 +01:00
marc 816abc1044 ialab.yml 2022-11-14 04:36:16 +01:00
marc a6ef57cb83 gitea deploy labels 2022-11-14 04:35:06 +01:00
marc 19649f8028 logs are back 2022-11-14 04:33:18 +01:00
marc bc5212dc9b marcpartensky/valentin-website 2022-11-14 04:31:20 +01:00
marc b4e0d5e83d deploy labels 2022-11-14 04:23:53 +01:00
marc 997378062c jupyterhub deploy labels 2022-11-14 04:22:05 +01:00
marc c0906d1ce1 valentin website 2022-11-14 04:18:36 +01:00
marc 4edf3d63f3 sablier 2022-11-13 07:32:56 +01:00
marc af81e6b0ab deploy labels 2022-11-13 07:17:47 +01:00
marc 7ef19365a9 sablier and souin 2022-11-13 06:57:41 +01:00
marc 04070fe852 unsecure for now 2022-11-13 06:55:37 +01:00
marc fa47916247 i tried 2022-11-13 06:11:44 +01:00
marc d8e0311ca7 attempt to secure 2022-11-13 06:09:27 +01:00
marc 8267b80214 need to be insecure 2022-11-13 05:40:50 +01:00
marc 2bc8ed274b fix whoami 2022-11-13 05:38:07 +01:00
marc e628a7137a fix port 2022-11-13 05:34:28 +01:00
marc ce7aadca21 port too 2022-11-13 05:31:17 +01:00
marc f69c8ced98 enable 2022-11-13 05:28:56 +01:00
marc 92ffd3ce73 3.9 2022-11-13 05:28:30 +01:00
marc 28cb6d17ed whoami 2022-11-13 05:27:58 +01:00
marc 4d3b881959 whoami 2022-11-13 05:27:04 +01:00
marc 1166bede86 port 2022-11-13 05:23:49 +01:00
marc ac451e6519 deploy labels 2022-11-13 05:21:06 +01:00
marc a5a564327a deploy labels 2022-11-13 05:19:05 +01:00
marc 10360bf14a swarm labels 2022-11-13 05:17:58 +01:00
marc ee978ab20d swarm 2022-11-13 05:15:51 +01:00
marc 30aa8ca1bf fix typo 2022-11-13 05:13:33 +01:00
marc 539bd67014 /usr/local/bin 2022-11-13 05:04:51 +01:00
marc b4440f585b traefik is in path 2022-11-13 05:02:11 +01:00
marc d91e8d0575 enabling ping for traefik healthcheck 2022-11-13 05:00:02 +01:00
marc 37ee6f7988 traefik 2022-11-13 04:53:05 +01:00
marc 31c80cec44 traefik default net 2022-11-13 04:31:50 +01:00
marc b34a52faf4 traefik swarm labels 2022-11-13 04:31:33 +01:00
marc 5b2e634acf traefik config is now public 2022-11-13 04:15:31 +01:00
marc acd2667ba5 comments 2022-11-13 04:13:25 +01:00
marc a364eccb10 clean 2022-11-13 04:09:51 +01:00
marc 2052ac2810 adguard home 2022-11-13 04:09:24 +01:00
marc fd7e3074bc traefik 2022-11-08 07:05:55 +01:00
marc adc624ce0b jupyterhub config that works 2022-11-08 06:00:59 +01:00
marc 3dc5184c62 traefik for now 2022-11-08 01:56:30 +01:00
marc 0deb6d5788 ldap 2022-11-04 22:07:29 +01:00
marc 5042a8e4b8 ldap 2022-11-04 22:07:25 +01:00
marc 98b4077c07 healthcheck 2022-11-04 20:05:50 +01:00
marc b9e06dbc54 tiny 2022-11-04 17:54:58 +01:00
marc d58005764c string 2022-11-02 20:27:19 +01:00
marc 2fa50318d1 ok 2022-11-02 20:26:54 +01:00
marc 91689206db tiny 2022-11-02 01:39:47 +01:00
marc c3e9c66d77 restart 2022-11-01 23:44:12 +01:00
marc 9726ec12a6 clean 2022-11-01 23:42:13 +01:00
marc c5e047ae5b conf 2022-11-01 23:32:42 +01:00
marc 78e493ff49 env file 2022-11-01 23:28:00 +01:00
marc 3e59d1ea92 fix 2022-11-01 23:18:39 +01:00
marc 163fb2348e seafile-tiny.yml 2022-11-01 23:10:03 +01:00
marc dcd450b076 nextcloud in postgres network 2022-11-01 18:29:44 +01:00
marc 4cef4af1e9 2 docker-compose files 2022-10-26 01:46:40 +02:00
marc 894bfd951b ignore postgres 2022-10-26 01:45:15 +02:00
marc 1f42836ba4 srv postgres 2022-10-26 01:36:41 +02:00
marc 59e42aa77a fix caddy 2022-10-26 01:33:08 +02:00
marc 28cf4d06ab env vars everywhere 2022-10-26 01:27:02 +02:00
marc 703230968b pgadmin 2022-10-26 01:20:50 +02:00
marc ac7bb1f70a applying version 14 2022-10-26 00:59:10 +02:00
marc 5b7578aefb same applies for caddy 2022-10-26 00:52:59 +02:00
marc 248925e652 dont depend on unexisting project 2022-10-26 00:52:43 +02:00
marc 1859648bae bye useless volume 2022-10-26 00:51:43 +02:00
marc 554b691f3e forgot postgres network 2022-10-26 00:50:17 +02:00
marc 93432fc48c postgres 2022-10-26 00:49:15 +02:00
marc c3feb330b6 postgres external true 2022-10-26 00:48:33 +02:00
marc 44f5d56d96 make network 2022-10-26 00:47:18 +02:00
marc b8b3ecdc63 mount sql scripts why not 2022-10-26 00:45:02 +02:00
marc 6881bffcde start optimized 2022-10-26 00:35:08 +02:00
marc 66f4dea749 start for prod 2022-10-26 00:34:14 +02:00
marc c80486d31e forgot ps 2022-10-26 00:32:01 +02:00
marc 3b3c28847f matrix 2022-10-26 00:31:13 +02:00
marc a54458b70a changing ci 2022-10-26 00:30:30 +02:00
marc 5ea535acd2 start dev comment 2022-10-26 00:29:41 +02:00
marc 527da92e4a fix and start prod 2022-10-26 00:29:16 +02:00
marc 215bc793bf keycloak.yml 2022-10-26 00:25:41 +02:00
marc f7a3ed8f28 path != dir 2022-10-26 00:01:32 +02:00
marc f2853f428f yml 2022-10-26 00:00:51 +02:00
marc 51e944c98f matrix healthcheck 2022-10-25 23:59:58 +02:00
marc f9a067d2f4 languagetool 2022-10-17 05:06:21 +02:00
marc 055d6a826b jupyterlab that actually works for once 2022-10-03 11:13:04 +02:00
marc e90ef74523 jupyterhub_config.py 2022-10-02 23:51:23 +02:00
marc 001bf396df fix port 2022-10-02 23:41:16 +02:00
marc 24daf39f6d libreswan 2022-09-30 23:03:14 +02:00
marc efc92da96e ipsec 2022-09-30 22:14:46 +02:00
marc 7adf5800b0 volumes 2022-09-30 22:08:45 +02:00
marc f170b1395a ipsec 2022-09-30 22:06:00 +02:00
marc 7c0997f6f3 duplicati with traefik 2022-09-21 11:46:03 +02:00
marc 789baaf316 fix dumb mongo express mistake 2022-09-21 11:42:23 +02:00
marc 540b228247 agenda militant 2022-09-19 22:24:01 +02:00
marc f584e872ce experimenting with traefik 2022-09-12 02:07:39 +02:00
marc 5308132ff8 change 2022-09-12 01:13:26 +02:00
marc d5889d1c22 back 2022-09-12 01:08:31 +02:00
marc 05fcc6dbd1 static.yml 2022-09-12 00:36:46 +02:00
marc 8002db31d2 command 2022-09-12 00:02:20 +02:00
marc a2bed82c91 fix pgweb traefik conf 2022-09-12 00:02:20 +02:00
marc 3765ab5565 node = manager 2022-09-11 23:46:22 +02:00
marc 6f2918b34c traefik.env 2022-09-01 21:55:44 +02:00
marc 49b3f28b36 no conf file 2022-08-25 21:25:42 +02:00
marc d7667dbcde ldap network 2022-08-25 21:04:45 +02:00
marc 29b67cb2a3 Merge branch 'master' into traefik-static 2022-08-24 18:15:41 +02:00
marc b86fd1a6f2 bye homeserver.yaml from matrix 2022-08-24 18:15:27 +02:00
marc 4a69f141e9 traefik static conf file ignored 2022-08-24 18:15:12 +02:00
marc 596cfe44b3 traefik.yml 2022-08-24 08:07:27 +02:00
marc bf5f4a86d9 trafik static 2022-08-24 08:05:36 +02:00
marc 0a5f3f9e7d trying with heimdall 2022-08-23 08:46:41 +02:00
marc 37b7d5b846 fix mistake 2022-08-23 08:47:37 +02:00
marc 87cb0d3160 trying auth middleware in traefik conf 2022-08-23 08:42:17 +02:00
139 changed files with 6827 additions and 3660 deletions
+1
View File
@@ -1,3 +1,4 @@
liberapay: marcpartensky
patreon: marcpartensky
github: marcpartensky
custom:
+2 -1
View File
@@ -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
+15 -1
View File
@@ -2,7 +2,6 @@ docker-compose.yml
data/openvpn
data/secrets
data/certbot
data/traefik
data/searx
data/jenkins
data/beef
@@ -13,5 +12,20 @@ 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.tar.gz
data.7z
data.7z.gpg
services/template.yml
+16 -4
View File
@@ -8,9 +8,21 @@ 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
7z a -p data.7z data
gpg --encrypt --sign --recipient 'marc@marcpartensky.com' data.7z
rm data.tgz
network:
docker network create --driver overlay --attachable caddy
networks:
docker network create --driver overlay --attachable caddy || true
docker network create --driver overlay --attachable ldap || true
docker network create --driver overlay --attachable postgres || true
docker network create --driver overlay --attachable mongo || true
docker network create --driver overlay --attachable vpn || true
docker network create --driver overlay --attachable redis || true
docker network create --driver overlay --subnet 172.22.1.0/24 --gateway 172.22.1.1 --attachable mailcow || true
docker network create --driver overlay --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
+4 -1
View File
@@ -1,6 +1,7 @@
[![Docker Swarm Deployed](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml/badge.svg)](https://github.com/MarcPartensky/Docker/actions/workflows/docker-swarm-deploy.yml)
# Docker
[![Docker Swarm Services](https://cdn.discordapp.com/attachments/809914059981586462/1042966875514077227/unknown.png)](https://swarm.marcpartensky.com)
## Domains
- https://marcpartensky.com
@@ -8,7 +9,6 @@
- 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
@@ -20,8 +20,11 @@
- https://swarm.marcpartensky.com
- https://auth.marcpartensky.com
- https://seafile.marcpartensky.com
- https://cloud.marcpartensky.com
- https://mail.marcpartensky.com
- https://arch.marcpartensky.com
- https://matrix.marcpartensky.com
- https://vault.marcpartensky.com
<!-- - https://dns.marcpartensky.com -->
<!-- - https://glou.marcpartensky.com -->
<!-- - https://minecraft.marcpartensky.com -->
+183
View File
@@ -0,0 +1,183 @@
bind_host: 0.0.0.0
bind_port: 3000
users:
- name: marc
password: $2a$10$E9cknJr/bTLtSUJ9EaW8r.Gw30FX8Plm8jgq.LaYxMwiX4DEuDK7O
auth_attempts: 5
block_auth_min: 15
http_proxy: ""
language: ""
theme: auto
debug_pprof: false
web_session_ttl: 720
dns:
bind_hosts:
- 0.0.0.0
port: 53
anonymize_client_ip: false
protection_enabled: true
blocking_mode: default
blocking_ipv4: ""
blocking_ipv6: ""
blocked_response_ttl: 10
protection_disabled_until: null
parental_block_host: family-block.dns.adguard.com
safebrowsing_block_host: standard-block.dns.adguard.com
ratelimit: 20
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
all_servers: false
fastest_addr: false
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
filtering_enabled: true
filters_update_interval: 24
parental_enabled: false
safebrowsing_enabled: false
safebrowsing_cache_size: 1048576
safesearch_cache_size: 1048576
parental_cache_size: 1048576
cache_time: 30
safe_search:
enabled: false
bing: true
duckduckgo: true
google: true
pixabay: true
yandex: true
youtube: true
rewrites:
- domain: medium.com
answer: 0.0.0.0
- domain: marc
answer: marcpartensky.com
blocked_services: []
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
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:
ignored: []
interval: 2160h
size_memory: 1000
enabled: true
file_enabled: true
statistics:
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
clients:
runtime_sources:
whois: true
arp: true
rdns: true
dhcp: true
hosts: true
persistent: []
log_file: ""
log_max_backups: 0
log_max_size: 100
log_max_age: 3
log_compress: false
log_localtime: false
verbose: false
os:
group: ""
user: ""
rlimit_nofile: 0
schema_version: 20
+11
View File
@@ -0,0 +1,11 @@
[database]
type = postgres
host = postgres:5432
name = grafana
user = grafana
password = ZTliY2MwOWQ5ZjNiMzUyMTc5YWMwNmJi
ssl_mode = disable
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
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
+35
View File
@@ -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
+8
View File
@@ -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
+14
View File
@@ -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
+7 -3
View File
@@ -11,9 +11,13 @@ global:
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
+7
View File
@@ -0,0 +1,7 @@
http:
middlewares:
basic:
basicAuth:
users:
- test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/
# usersFile: etc/traefik/.htpasswd
+98
View File
@@ -0,0 +1,98 @@
# https://doc.traefik.io/traefik/routing/overview/
global:
checkNewVersion: true
sendAnonymousUsage: false
api:
# insecure: false # = secure
insecure: true
dashboard: true
# debug: true
debug: false
providers:
docker:
swarmMode: true
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false # traefik enabled containers only
network: caddy
file:
filename: dynamic.yml
serversTransport: # enable ssl backend
insecureSkipVerify: true
certificatesResolvers:
# https://community.traefik.io/t/help-with-multiple-certificate-resolvers/15134
tls:
acme:
tlsChallenge: {}
email: marc.partensky@gmail.com
storage: /config/acme.json
cloudflare:
acme:
email: marc.partensky@gmail.com
storage: /config/acme.json
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
ping: {} # mandatory for healthcheck
log:
level: debug
# level: error
entryPoints:
websecure:
address: ':443'
forwardedHeaders:
insecure: true
# http3:
# advertisedPort: 443
http:
tls:
certResolver: tls
# middlewares:
# - ldap
# http3:
# advertisedPort: 443
web:
address: ':80'
forwardedHeaders:
insecure: true
# forwardedHeaders:
# trustedIPs:
# - "127.0.0.1/32"
# - "192.168.1.7"
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
priority: 10
experimental:
# http3: true
plugins:
ldapAuth:
moduleName: "github.com/wiltonsr/ldapAuth"
version: "v0.0.19"
souin:
moduleName: "github.com/darkweak/souin"
version: "v1.6.22"
sablier:
moduleName: "github.com/acouvreur/sablier"
version: "v1.0.0"
# ldap entreprise https://doc.traefik.io/traefik-enterprise/operations/static-configuration/
# authSources:
# ldapSource:
# ldap:
# url: ldaps://marcpartensky.com:636
# startTLS: true
# insecureSkipVerify: true
# bindDN: cn=admin,dc=admin,dc=org
# - --providers.docker.network=web # <== Operate on the docker network named web
## API Settings - https://docs.traefik.io/operations/api/, endpoints - https://docs.traefik.io/operations/api/#endpoints ##
# TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_TLSCHALLENGE=true
# TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_EMAIL=marc.partensky@gmail.com
# TRAEFIK_CERTIFICATESRESOLVERS_TLS_ACME_STORAGE=/letsencrypt/acme.json # log settings (options: error, debug, panic, fatal, warn, info) - https://docs.traefik.io/observability/logs/ ##
## Provider Settings - https://docs.traefik.io/providers/docker/#provider-configuration ##
## Entrypoints Settings - https://docs.traefik.io/routing/entrypoints/#configuration ##
Vendored
+6 -9
View File
@@ -1,26 +1,23 @@
caddy
traefik
website
arch
valentin
open-web-calendar
oxivia
wordpress-oxivia
adguard
servant
discord-bot
ia
discord
docker-api
ialab
portainer
authentik
todolist
nextcloud
jenkins
seafile
matrix
etherpad
monero-miner
monero-node
pritunl
pritunl-mongo
fail2ban
ldap
ldap-manager
vaultwarden
authentik
+43
View File
@@ -0,0 +1,43 @@
version: "3.9"
services:
adguard:
image: adguard/adguardhome
restart: unless-stopped
ports:
- 53:53/tcp
- 53:53/udp
- 67:67/udp
- 68:68/udp # adguard home as dhcp
# - 80:80/tcp # https/dns-over-https
# - 443:443/tcp
# - 443:443/udp
# - 3000:3000/tcp # adguard home's admin
- 853:853/tcp # dns-over-tls
- 784:784/udp # dns-over-quic
- 853:853/udp
- 8853:8853/udp
- 5443:5443/tcp # dnscrypt server
- 5443:5443/udp
volumes:
- adguard:/opt/adguardhome/work
- ../data/adguard:/opt/adguardhome/conf
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.adguard.rule: >
Host(`adguard.marcpartensky.com`) ||
Host(`adguard.marcpartensky.fr`)
traefik.http.routers.adguard.entrypoints: websecure
traefik.http.routers.adguard.tls.certresolver: cloudflare
traefik.http.services.adguard.loadbalancer.server.port: 3000
traefik.http.routers.adguard.middlewares: ldap_auth
volumes:
adguard:
networks:
caddy:
external: true
+19
View File
@@ -0,0 +1,19 @@
version: "3.9"
services:
agenda_militant:
image: marcpartensky/agenda-militant
restart: unless-stopped
networks:
- caddy
deploy:
labels:
caddy: agenda.militant.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.agenda_militant.rule: Host(`agenda.militant.marcpartensky.com`)
traefik.http.routers.agenda_militant.entrypoints: websecure
traefik.http.routers.agenda_militant.tls.certresolver: tls
traefik.http.services.agenda_militant.loadbalancer.server.port: 8080
networks:
caddy:
external: true
+15 -1
View File
@@ -4,10 +4,24 @@ services:
image: budtmo/docker-android-x86-12.0
restart: unless-stopped
privileged: true
networks:
- caddy
ports:
- "6080:6080"
# - "6080:6080"
- "5554:5554"
- "5555:5555"
- "4723:4723"
environment:
DEVICE: "Samsung Galaxy S6"
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.android.rule: >
Host(`android.marcpartensky.fr`)
traefik.http.routers.android.entrypoints: websecure
traefik.http.routers.android.tls.certresolver: cloudflare
traefik.http.services.android.loadbalancer.server.port: 6080
networks:
caddy:
external: true
+38 -8
View File
@@ -7,20 +7,50 @@ services:
- "5900:5900"
networks:
- caddy
- ldap
volumes:
- arch:/home/marc
labels:
caddy: arch.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.arch.rule: Host(`arch.marcpartensky.com`)
traefik.http.routers.arch.entrypoints: websecure
traefik.http.routers.arch.tls.certresolver: tls
traefik.http.services.arch.loadbalancer.server.port: 8080
deploy:
labels:
caddy: arch.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.arch.rule: Host(`arch.marcpartensky.com`)
traefik.http.routers.arch.entrypoints: websecure
traefik.http.routers.arch.tls.certresolver: tls
traefik.http.services.arch.loadbalancer.server.port: 8080
# traefik.http.routers.arch.middlewares: ldap_auth, sablier
#
# # sablier
# # The sablier URL service, must be reachable from the Traefik instance
# traefik.http.middlewares.sablier.plugin.sablierUrl: http://sablier:10000
# # Comma separated names of containers/services/deployments etc.
# traefik.http.middlewares.sablier.plugin.names: arch
# # The session duration after which containers/services/deployments instances are shutdown
# traefik.http.middlewares.sablier.plugin.sessionDuration: 1m
# # You can only use one strategy at a time
# # To do so, only declare `dynamic` or `blocking`
#
# # Dynamic strategy, provides the waiting webui
# # (Optional) Defaults to the middleware name
# traefik.http.middlewares.sablier.plugin.dynamic.displayName: Starting application
# # (Optional) Set to true or false to show details specifcally for this middleware, unset to use Sablier server defaults
# traefik.http.middlewares.sablier.plugin.dynamic.showDetails: "true"
# # (Optional) The theme to use
# traefik.http.middlewares.sablier.plugin.dynamic.theme: hacker-terminal
# # (Optional) The loading page refresh frequency
# traefik.http.middlewares.sablier.plugin.dynamic.refreshFrequency: 5s
#
# # Blocking strategy, waits until services are up and running
# # but will not wait more than `timeout`
# # blocking:
# # timeout: 1m
volumes:
arch:
networks:
ldap:
external: true
caddy:
external: true
+71 -55
View File
@@ -6,98 +6,114 @@ services:
restart: unless-stopped
command: server
environment:
AUTHENTIK_REDIS__HOST: authentik_redis
AUTHENTIK_POSTGRESQL__HOST: authentik_postgres
AUTHENTIK_DEBUG: "true"
AUTHENTIK_ERROR_REPORTING__ENABLED: "false"
AUTHENTIK_DEFAULT_USER_CHANGE_USERNAME: admin
# WORKERS: 2
volumes:
- authentik_media:/media
- authentik_templates:/templates
- authentik_geoip:/geoip
env_file:
- ../data/secrets/authentik.env
# ports:
# - "0.0.0.0:${AUTHENTIK_PORT_HTTP:-9000}:9000"
# - "0.0.0.0:${AUTHENTIK_PORT_HTTPS:-9443}:9443"
depends_on:
- authentik_postgres
- authentik_redis
- authentik_worker
volumes:
- media:/media
- templates:/templates
- geoip:/geoip
# depends_on:
# - postgres
# - redis
# - worker
networks:
- authentik
- caddy
- postgres
- redis
- ldap
labels:
caddy: authentik.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 9000}}"
traefik.enable: "true"
traefik.http.routers.authentik.rule: Host(`authentik.marcpartensky.com`)
traefik.http.routers.authentik.entrypoints: websecure
traefik.http.routers.authentik.tls.certresolver: tls
traefik.http.services.authentik.loadbalancer.server.port: 9000
# traefik.http.routers.authentik.rule: Host(`authentik.marcpartensky.com`)
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.authentik.rule: Host(`authentik.marcpartensky.fr`)
traefik.http.routers.authentik.entrypoints: websecure
traefik.http.routers.authentik.tls.certresolver: cloudflare
traefik.http.services.authentik.loadbalancer.server.port: 9000
authentik_postgres:
image: postgres:alpine
restart: unless-stopped
volumes:
- authentik_postgres:/var/lib/postgresql/data
env_file:
- ../data/secrets/authentik.env
networks:
- authentik
authentik_redis:
image: redis:alpine
restart: unless-stopped
networks:
- authentik
authentik_worker:
worker:
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.2.1}
restart: unless-stopped
user: root
command: worker
environment:
AUTHENTIK_REDIS__HOST: authentik_redis
AUTHENTIK_POSTGRESQL__HOST: authentik_postgres
AUTHENTIK_REDIS__HOST: redis
AUTHENTIK_POSTGRESQL__HOST: postgres
AUTHENTIK_ERROR_REPORTING__ENABLED: "false"
# This is optional, and can be removed. If you remove this, the following will happen
# - The permissions for the /backups and /media folders aren't fixed, so make sure they are 1000:1000
# - The docker socket can't be accessed anymore
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- authentik_backups:/backups
- authentik_media:/media
- authentik_certs:/certs
- authentik_templates:/templates
- authentik_geoip:/geoip
- /srv/authentik:/backups
- media:/media
- certs:/certs
- templates:/templates
- geoip:/geoip
env_file:
- ../data/secrets/authentik.env
networks:
- authentik
- postgres
- redis
authentik_geoipupdate:
image: maxmindinc/geoipupdate:latest
restart: unless-stopped
volumes:
- authentik_geoip:/usr/share/GeoIP
environment:
GEOIPUPDATE_EDITION_IDS: "GeoLite2-City"
GEOIPUPDATE_FREQUENCY: "8"
# env_file:
# - ../data/secrets/authentik.env
# authentik_geoipupdate:
# image: maxmindinc/geoipupdate:latest
# restart: unless-stopped
# volumes:
# - authentik_geoip:/usr/share/GeoIP
# environment:
# GEOIPUPDATE_EDITION_IDS: "GeoLite2-City"
# GEOIPUPDATE_FREQUENCY: "8"
# # env_file:
# # - ../data/secrets/authentik.env
# networks:
# - authentik
# version: "3.5"
ldap:
image: ghcr.io/goauthentik/ldap
ports:
- 3389:389
- 6636:636
# Optionally specify which networks the container should be
# might be needed to reach the core authentik server
networks:
- authentik
environment:
AUTHENTIK_DEBUG: "true"
AUTHENTIK_HOST: http://authentik:9000
# AUTHENTIK_HOST: https://authentik:9443
# AUTHENTIK_HOST: https://authentik.marcpartensky.fr
AUTHENTIK_INSECURE: "false"
env_file:
- ../data/secrets/authentik_ldap.env
volumes:
authentik_postgres:
authentik_backups:
authentik_media:
authentik_certs:
authentik_templates:
authentik_geoip:
# backups:
postgres:
media:
certs:
templates:
geoip:
networks:
authentik:
ldap:
external: true
redis:
external: true
postgres:
external: true
caddy:
external: true
+2 -1
View File
@@ -21,7 +21,8 @@ services:
caddy.@ws.1_header: "Upgrade websocket"
caddy.0_reverse_proxy: "@ws {{upstreams 61985}}"
traefik.enable: "true"
traefik.http.routers.beef.rule: Host(`beef.marcpartensky.com`)
# traefik.http.routers.beef.rule: Host(`beef.marcpartensky.com`)
traefik.http.routers.beef.rule: Host(`beef.marcpartensky.fr`)
traefik.http.routers.beef.entrypoints: websecure
traefik.http.routers.beef.tls.certresolver: tls
traefik.http.services.beef.loadbalancer.server.port: 3000
+26
View File
@@ -0,0 +1,26 @@
version: "3.9"
services:
burpserver:
image: pschiffe/burp-server
ports:
- "4971:4971"
volumes:
- conf:/etc/burp
- data:/var/spool/burp
environment:
BURP_CLIENTS_CONFIG: "host1:pass1 host2:pass2 host3:pass3"
tmpfs:
- /run
- /tmp
privileged: true
# deploy:
# labels:
# traefik.enable: "true"
# traefik.http.routers.burpserver.rule: Host(`burp.marcpartensky.fr`)
# traefik.http.routers.burpserver.entrypoints: websecure
# traefik.http.routers.burpserver.tls.certresolver: tls
# traefik.http.services.burpserver.loadbalancer.server.port: 4971
volumes:
conf:
data:
+1 -1
View File
@@ -11,7 +11,7 @@ services:
image: marcpartensky/caddy
ports:
- "80:80"
- "443:443"
# - "443:443"
environment:
CADDY_INGRESS_NETWORKS: caddy
volumes:
+54
View File
@@ -0,0 +1,54 @@
version: '3'
services:
cadvisor:
# image: google/cadvisor:v0.39.0
# image: google/cadvisor
image: gcr.io/cadvisor/cadvisor
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker:/var/lib/docker:ro
command:
- '-docker_only'
- '-logtostderr'
# - '-storage-driver=influxdb'
# - '-storage-opt=host=swarm-manager1:8086'
# - '-storage-opt=database=cadvisor'
# - '-storage-opt=retention=1d'
# - '-storage-opt=user=root'
# - '-storage-opt=password=yourpassword'
# - '-housekeeping_interval=5s'
# - '-enable_load_reader'
# - '-cpu_global_percentage=true'
# - '-cpu_historic_interval=1m'
# - '-docker_label_enable'
networks:
- caddy
deploy:
placement:
constraints:
- node.role == manager
resources:
limits:
memory: 1g
reservations:
memory: 512m
restart_policy:
condition: on-failure
mode: global
labels:
traefik.enable: "true"
traefik.http.routers.cadvisor.rule: Host(`cadvisor.marcpartensky.fr`)
# traefik.http.routers.cadvisor.rule: >
# Host(`cadvisor.marcpartensky.com`) || Host(`cadvisor.marcpartensky.fr`)
traefik.http.routers.cadvisor.entrypoints: websecure
traefik.http.routers.cadvisor.tls.certresolver: tls
traefik.http.services.cadvisor.loadbalancer.server.port: 8080
traefik.http.routers.cadvisor.middlewares: ldap_auth
networks:
caddy:
external: true
+6
View File
@@ -0,0 +1,6 @@
version: "3.9"
services:
chatgpt:
image: wongsaang/chatgpt-ui:latest
ports:
- "8000:80"
+11
View File
@@ -0,0 +1,11 @@
version: "3.9"
services:
cloudflare:
image: cloudflare/cloudflared:latest
env_file: ../data/secrets/cloudflare.env
command: tunnel --no-autoupdate run
networks:
- caddy
networks:
caddy:
external: true
+17
View File
@@ -0,0 +1,17 @@
version: "3.9"
services:
cowrie:
image: rayson/cowrie:20160907-1
user: cowrie
ports:
- "22:2222/tcp"
- "23:2223/tcp"
environment:
COWRIE_TELNET_ENABLED: "yes"
volumes:
- cowrie:/opt/cowrie/data:Z
- cowrie-log:/opt/cowrie/log:Z
volumes:
cowrie:
cowrie-log:
+21
View File
@@ -0,0 +1,21 @@
version: "3.9"
services:
controller:
image: cybercube/crafty-controller
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.services.controller.loadbalancer.server.port: 8000
traefik.http.routers.controller.rule: Host(`controller.marcpartensky.fr`)
# traefik.http.routers.controller.rule: >
# Host(`controller.marcpartensky.com`) || Host(`controller.marcpartensky.fr`)
traefik.http.routers.controller.entrypoints: websecure
# traefik.http.routers.controller.tls.certresolver: tls
traefik.http.routers.controller.tls.certresolver: cloudflare
# traefik.http.routers.controller.middlewares: ldap_auth
networks:
caddy:
external: true
+29
View File
@@ -0,0 +1,29 @@
version: "3.9"
services:
ui:
image: alseambusher/crontab-ui
networks:
- caddy
# ports:
# - 8000:8000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- crontabs:/crontab-ui/crontabs
deploy:
labels:
traefik.enable: "true"
traefik.http.services.ui.loadbalancer.server.port: 8000
traefik.http.routers.ui.rule: >
Host(`cron.marcpartensky.com`) ||
Host(`cron.marcpartensky.fr`)
traefik.http.routers.ui.entrypoints: websecure
# traefik.http.routers.ui.tls.certresolver: tls
traefik.http.routers.ui.tls.certresolver: cloudflare
traefik.http.routers.ui.middlewares: ldap_auth
volumes:
crontabs:
networks:
caddy:
external: true
-19
View File
@@ -1,19 +0,0 @@
version: "3.9"
services:
discord-bot:
image: marcpartensky/discord-bot
restart: unless-stopped
ports:
- "7010:8000"
networks:
- discord
depends_on:
- docker_api
env_file:
- ../data/secrets/esclave.env
deploy:
replicas: 1
networks:
discord:
+34
View File
@@ -0,0 +1,34 @@
version: "3.9"
services:
bot:
image: marcpartensky/discord-bot:v107.be20e90.2022-05-21
restart: unless-stopped
ports:
- "7010:8000"
networks:
- discord
env_file:
- ../data/secrets/discord-bot.env
deploy:
replicas: 1
ia:
image: marcpartensky/discord-bot
restart: unless-stopped
ports:
- "7011:8000"
networks:
- discord
env_file:
- ../data/secrets/ia.env
deploy:
replicas: 1
chatgpt:
image: xxxbrian/discord_chatgpt_bot:latest
env_file:
- ../data/secrets/discord_chatgpt.env
networks:
discord:
-13
View File
@@ -1,13 +0,0 @@
version: "3.9"
services:
docker_api:
image: marcpartensky/docker-api
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- discord
networks:
discord:
+22
View File
@@ -0,0 +1,22 @@
version: "3.9"
services:
docker_api:
image: marcpartensky/docker-api
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- discord
# db:
# image: postgres
# container_name: docker-app-db
# restart: unless-stopped
# environment:
# POSTGRES_USER: docker_user
# POSTGRES_PASSWORD: d3kTrklm54208
# POSTGRES_DB: docker
networks:
discord:
+8
View File
@@ -0,0 +1,8 @@
version: "3.3"
services:
dockercraft:
image: gaetan/dockercraft
ports:
- "25567:25565"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:Z
+28
View File
@@ -0,0 +1,28 @@
version: "3.9"
services:
dockvpn:
image: alekslitvinenk/openvpn
cap_add:
- NET_ADMIN
networks:
- caddy
devices:
- /dev/net/tun
ports:
- 1194:1194/udp
- 8080:8080/tcp
volumes:
- ../data/dockvpn:/opt/Dockovpn_data/clients
environment:
HOST_ADDR: vpn.marcpartensky.fr
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.dockvpn.rule: >
Host(`dockvpn.marcpartensky.fr`)
traefik.http.routers.dockvpn.entrypoints: websecure
traefik.http.routers.dockvpn.tls.certresolver: cloudflare
traefik.http.services.dockvpn.loadbalancer.server.port: 8080
networks:
caddy:
external: true
+11 -3
View File
@@ -15,9 +15,17 @@ services:
- duplicati_source:/source
networks:
- caddy
labels:
caddy: duplicati.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8200}}"
deploy:
labels:
traefik.enable: "true"
traefik.http.services.duplicati.loadbalancer.server.port: 8200
traefik.http.routers.duplicati.rule: >
Host(`duplicati.marcpartensky.com`) ||
Host(`duplicati.marcpartensky.fr`)
traefik.http.routers.duplicati.entrypoints: websecure
traefik.http.routers.duplicati.tls.certresolver: tls
# traefik.http.routers.duplicati.tls.certresolver: cloudflare
# traefik.http.routers.duplicati.middlewares: ldap_auth
volumes:
duplicati_config:
+7
View File
@@ -0,0 +1,7 @@
version: "3.9"
services:
image: fazalfarhan01/earnapp:lite
volumes:
- earnapp:/etc/earnapp
environment:
EARNAPP_UUID: $EARNAPP_DEVICE_ID
+34
View File
@@ -0,0 +1,34 @@
version: "3.9"
services:
etesync:
image: victorrds/etesync
restart: unless-stopped
networks:
- caddy
- postgres
env_file:
- ../data/secrets/etesync.env
volumes:
- static:/srv/etebase/static
- media:/data/media
deploy:
labels:
traefik.enable: "true"
traefik.http.services.etesync.loadbalancer.server.port: 3735
traefik.http.routers.etesync.rule: >
# Host(`etesync.marcpartensky.com`) ||
Host(`etesync.marcpartensky.fr`)
traefik.http.routers.etesync.entrypoints: websecure
traefik.http.routers.etesync.tls.certresolver: tls
# traefik.http.routers.etesync.tls.certresolver: cloudflare
# traefik.http.routers.etesync.middlewares: ldap_auth
networks:
postgres:
external: true
caddy:
external: true
volumes:
static:
media:
+28 -11
View File
@@ -4,19 +4,36 @@ services:
etherpad:
image: etherpad/etherpad
restart: unless-stopped
environment:
ADMIN_PASSWORD: supersecret
env_file:
- ../data/secrets/etherpad.env
# environment:
# SETTINGS_PATH: /etc/etherpad/settings.json
networks:
- caddy
labels:
caddy: etherpad.marcpartensky.com, pad.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 9001}}"
traefik.enable: "true"
traefik.http.routers.etherpad.rule: Host(`etherpad.marcpartensky.com`)
traefik.http.routers.etherpad.entrypoints: websecure
traefik.http.routers.etherpad.tls.certresolver: tls
traefik.http.services.etherpad.loadbalancer.server.port: 9001
- caddy
- postgres
# volumes:
# - data:/opt/etherpad-lite/var
# volumes:
# - ../data/etherpad/settings.json:/opt/etherpad-lite/settings.json
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.etherpad.rule: >
Host(`pad.marcpartensky.com`) ||
Host(`pad.marcpartensky.fr`)
traefik.http.routers.etherpad.entrypoints: websecure
traefik.http.routers.etherpad.tls.certresolver: cloudflare
traefik.http.services.etherpad.loadbalancer.server.port: 9001
traefik.http.middlewares.redirect-pad-com.redirectregex.regex: "^https://etherpad.marcpartensky.com/(.*)"
traefik.http.middlewares.redirect-pad-com.redirectregex.replacement: "https://pad.marcpartensky.com/$${1}"
traefik.http.middlewares.redirect-pad-fr.redirectregex.regex: "^https://etherpad.marcpartensky.fr/(.*)"
traefik.http.middlewares.redirect-pad-fr.redirectregex.replacement: "https://pad.marcpartensky.fr/$${1}"
# volumes:
# data:
networks:
caddy:
external: true
postgres:
external: true
+10
View File
@@ -0,0 +1,10 @@
version: "3.9"
services:
feroxbuster:
image: epi052/feroxbuster
volumes:
- /srv/feroxbuster:/srv
command: >
-u http://ravens-pu8yvgzavpu7ooyr.francecentral.cloudapp.azure.com
-x php
--wordlist /srv/rockyou.txt
+31
View File
@@ -0,0 +1,31 @@
version: "3.9"
services:
filebrowser:
image: hurlenko/filebrowser
restart: unless-stopped
# user: "${UID}:${GID}"
volumes:
- /root/Videos:/data
- ../data/filebrowser:/config
# environment:
# FB_BASEURL: /filebrowser
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.filebrowser.rule: >
Host(`file.marcpartensky.fr`) ||
Host(`file.marcpartensky.com`)
traefik.http.routers.filebrowser.entrypoints: websecure
traefik.http.routers.filebrowser.tls.certresolver: tls
traefik.http.services.filebrowser.loadbalancer.server.port: 8080
traefik.http.routers.filebrowser.middlewares: ldap_auth
networks:
caddy:
external: true
volumes:
data:
+31
View File
@@ -0,0 +1,31 @@
version: "3.9"
services:
focalboard:
image: mattermost/focalboard
volumes:
- data:/opt/focalboard/data
- pack:/opt/focalboard/pack
- ../data/focalboard/config.json:/opt/focalboard/config.json
environment:
EXCLUDE_ENTERPRISE: "1"
networks:
- caddy
- postgres
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.focalboard.rule: >
Host(`board.marcpartensky.com`) || Host(`board.marcpartensky.fr`)
traefik.http.routers.focalboard.entrypoints: websecure
# traefik.http.routers.focalboard.tls.certresolver: tls
traefik.http.services.focalboard.loadbalancer.server.port: 8000
# traefik.http.routers.focalboard.middlewares: ldap_auth
volumes:
data:
pack:
networks:
postgres:
external: true
caddy:
external: true
+31
View File
@@ -0,0 +1,31 @@
version: "3.9"
services:
fuseki:
image: stain/jena-fuseki
volumes:
# - ./config:/fuseki/configuration
- data:/fuseki/databases
# environment:
# - FUSEKI_HOME=/fuseki
# - FUSEKI_BASE=/fuseki/databases
env_file:
- ../data/secrets/fuseki.env
networks:
- caddy
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
labels:
traefik.enable: "true"
traefik.http.routers.fuseki.rule: Host(`fuseki.marcpartensky.com`)
traefik.http.services.fuseki.loadbalancer.server.port: 3030
networks:
caddy:
external: true
volumes:
data:
+25
View File
@@ -0,0 +1,25 @@
version: "3.9"
services:
gitbook:
image: marcpartensky/gitbook
# image: billryan/gitbook
# image: yanqd0/gitbook
restart: unless-stopped
# volumes:
# - ../data/gitbook:/gitbook
environment:
# BOOK_URL: https://github.com/marcpartensky/docker
BOOK_URL: https://github.com/marcpartensky/markdown
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.gitbook.rule: Host(`gitbook.marcpartensky.com`)
traefik.http.routers.gitbook.entrypoints: websecure
traefik.http.routers.gitbook.tls.certresolver: tls
traefik.http.services.gitbook.loadbalancer.server.port: 4000
networks:
caddy:
external: true
-19
View File
@@ -1,19 +0,0 @@
version: "3.9"
services:
gitea_postgres:
image: postgres
restart: unless-stopped
env_file:
- ../data/secrets/gitea.env
networks:
- caddy
- gitea
volumes:
- gitea_postgres:/var/lib/postgresql/data
volumes:
gitea_postgres:
networks:
gitea:
+26 -17
View File
@@ -13,29 +13,38 @@ services:
- ../data/secrets/gitea.env
networks:
- caddy
- gitea
- postgres
volumes:
- gitea_ssh:/data/git/.ssh
- gitea:/data
- ssh:/data/git/.ssh
- data:/data
# - /etc/localtime:/etc/localtime:ro
ports:
- "7012:22"
depends_on:
- gitea_postgres
labels:
caddy: gitea.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 3000}}"
traefik.enable: "true"
traefik.http.routers.gitea.rule: Host(`git.marcpartensky.com`)
traefik.http.routers.gitea.entrypoints: websecure
traefik.http.routers.gitea.tls.certresolver: tls
traefik.http.services.gitea.loadbalancer.server.port: 3000
- "42070:22"
# labels:
# caddy: gitea.marcpartensky.com
# caddy.reverse_proxy: "{{upstreams 3000}}"
# traefik.enable: "true"
# traefik.http.routers.gitea.rule: Host(`git.marcpartensky.com`)
# traefik.http.routers.gitea.entrypoints: websecure
# traefik.http.routers.gitea.tls.certresolver: tls
# traefik.http.services.gitea.loadbalancer.server.port: 3000
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.gitea.rule: >
Host(`git.marcpartensky.com`) ||
Host(`git.marcpartensky.fr`)
traefik.http.routers.gitea.entrypoints: websecure
# traefik.http.routers.gitea.tls.certresolver: tls
traefik.http.routers.gitea.tls.certresolver: cloudflare
traefik.http.services.gitea.loadbalancer.server.port: 3000
volumes:
gitea:
gitea_ssh:
data:
ssh:
networks:
gitea:
postgres:
external: true
caddy:
external: true
+14 -2
View File
@@ -17,7 +17,6 @@ services:
- gitlab_config:/etc/gitlab
- gitlab_log:/var/log/gitlab
- gitlab_data:/var/opt/gitlab
shm_size: '256m'
labels:
caddy: gitlab.marcpartensky.com
caddy.reverse_proxy: "{{upstreams http 80}}"
@@ -26,13 +25,26 @@ services:
traefik.http.routers.gitlab.entrypoints: websecure
traefik.http.routers.gitlab.tls.certresolver: tls
traefik.http.services.gitlab.loadbalancer.server.port: 80
# shm_size: '512m'
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.gitlab.rule: Host(`gitlab.marcpartensky.com`)
traefik.http.routers.gitlab.entrypoints: websecure
traefik.http.routers.gitlab.tls.certresolver: tls
traefik.http.services.gitlab.loadbalancer.server.port: 80
resources:
reservations:
cpus: "1"
# memory: "512M"
memory: "3G"
gitlab-runner:
image: gitlab/gitlab-runner:alpine
restart: unless-stopped
deploy:
mode: replicated
replicas: 4
replicas: 2
volumes:
gitlab_config:
+36
View File
@@ -0,0 +1,36 @@
version: "3.9"
services:
gluetun:
image: qmcgaw/gluetun
cap_add:
- NET_ADMIN
env_file:
- ../data/secrets/gluetun.env
# environment:
# # VPN_SERVICE_PROVIDER: protonvpn
# # VPN_SERVICE_PROVIDER: openvpn
# OPENVPN_USER: marcpartensky
# OPENVPN_PASSWORD: Lxxxxxxxxxyyyyyxxxxn
# # SERVER_COUNTRIES: France
# # FREE_ONLY: on # Only required when using ProtonVPN's free service
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp # Application container's ports to be published
networks:
- vpn
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.services.gluetun.loadbalancer.server.port: 8000
traefik.http.routers.gluetun.rule: Host(`gluetun.marcpartensky.com`)
traefik.http.routers.gluetun.entrypoints: websecure
traefik.http.routers.gluetun.tls.certresolver: tls
traefik.http.routers.gluetun.middlewares: ldap_auth
networks:
vpn:
external: true
caddy:
external: true
+7
View File
@@ -0,0 +1,7 @@
version: "3.9"
services:
gpg:
image: marcpartensky/gpg
volumes:
- /srv:/srv
- ../data/gpg:/root/keys
+38
View File
@@ -0,0 +1,38 @@
version: "3.9"
services:
grafana:
image: grafana/grafana
restart: unless-stopped
env_file:
- ../data/secrets/grafana.env
# environment:
# GF_INSTALL_PLUGINS: grafana-ldap-auth
volumes:
- ../data/grafana:/etc/grafana
- grafana:/var/lib/grafana
networks:
- caddy
- postgres
- ldap
deploy:
labels:
caddy: grafana.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 3000}}"
traefik.enable: "true"
traefik.http.routers.grafana.rule: >
Host(`grafana.marcpartensky.fr`) ||
Host(`grafana.marcpartensky.com`)
traefik.http.routers.grafana.entrypoints: websecure
traefik.http.routers.grafana.tls.certresolver: tls
traefik.http.services.grafana.loadbalancer.server.port: 3000
volumes:
grafana:
networks:
ldap:
external: true
postgres:
external: true
caddy:
external: true
+10
View File
@@ -19,8 +19,18 @@ services:
traefik.http.routers.heimdall.rule: Host(`heimdall.marcpartensky.com`)
traefik.http.routers.heimdall.entrypoints: websecure
traefik.http.routers.heimdall.tls: "true"
# traefik.http.middlewares.test-ldap-auth.plugin.ldapAuth.source: marcpartensky.com
# traefik.http.middlewares.test-ldap-auth.plugin.ldapAuth.baseDN: dc=marcpartensky,dc=com
# traefik.http.services.heimdall.loadbalancer.server.port: 80
# traefik.http.routers.heimdall.middlewares: authelia-basic@docker
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.heimdall.rule: Host(`heimdall.marcpartensky.com`)
traefik.http.routers.heimdall.entrypoints: websecure
traefik.http.routers.heimdall.tls.certresolver: tls
traefik.http.services.heimdall.loadbalancer.server.port: 80
traefik.http.routers.duplicati.middlewares: ldap_auth
networks:
caddy:
+10
View File
@@ -0,0 +1,10 @@
version: "3.9"
services:
homeassistant:
restart: unless-stopped
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- config:/config
- /etc/localtime:/etc/localtime:ro
privileged: true
network_mode: host
+9
View File
@@ -12,6 +12,15 @@ services:
labels:
caddy: homer.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.homer.rule: >
Host(`homer.marcpartensky.com`) ||
Host(`homer.marcpartensky.fr`)
traefik.http.routers.homer.entrypoints: websecure
traefik.http.routers.homer.tls.certresolver: tls
traefik.http.services.homer.loadbalancer.server.port: 8080
volumes:
homer:
+6
View File
@@ -0,0 +1,6 @@
version: "3.9"
services:
honeygain:
image: marcpartensky/honeygain
env_file:
- ../data/secrets/honeygain.env
+16
View File
@@ -0,0 +1,16 @@
version: "3.9"
services:
hydra:
image: marcpartensky/hydra:latest
network_mode: host
env_file:
- ../data/secrets/hydra.env
# command: -P /rockyou.txt -L /usernames.txt ssh://192.168.252.18
# workdir: /root
volumes:
- ../data/hydra/rockyou.txt:/rockyou.txt
- ../data/hydra/usernames.txt:/usernames.txt
- hydra:/root
volumes:
hydra:
+14 -15
View File
@@ -2,19 +2,11 @@ version: "3.9"
services:
ialab:
image: marcpartensky/ialab
user: nobody
restart: unless-stopped
environment:
FLASK_APP: server.py
# entrypoint: "gunicorn server:app"
# entrypoint: "gunicorn --chdir /app server:app"
volumes:
- ialab:/app
image: marcpartensky/ialab:latest
# volumes:
# - ialab:/app
networks:
- caddy
depends_on:
- caddy
labels:
caddy: ialab.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8000}}"
@@ -22,11 +14,18 @@ services:
traefik.http.routers.ialab.rule: Host(`ialab.marcpartensky.com`)
traefik.http.routers.ialab.entrypoints: websecure
traefik.http.routers.ialab.tls.certresolver: tls
traefik.http.services.ialab.loadbalancer.server.port: 8000
volumes:
ialab:
traefik.http.services.ialab.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.ialab.rule: Host(`ialab.marcpartensky.com`)
traefik.http.routers.ialab.entrypoints: websecure
traefik.http.routers.ialab.tls.certresolver: tls
traefik.http.services.ialab.loadbalancer.server.port: 80
# volumes:
# ialab:
#
networks:
caddy:
external: true
+65
View File
@@ -0,0 +1,65 @@
version: "3.9"
services:
ipfs:
restart: unless-stopped
image: lscr.io/linuxserver/ipfs
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Paris
volumes:
- ipfs:/config
- /srv/:/srv
networks:
- caddy
ports:
# - 80:80 #dumb http client
# - 443:443 #optional
- 4001:4001
- 5001:5001
- 8080:8080
deploy:
resources:
limits:
cpus: '0.1'
memory: 500M
# reservations:
# cpus: '0.1'
# memory: 100M
labels:
traefik.enable: "true"
# traefik.http.routers.ipfs.rule: Host(`ipfs.marcpartensky.com`)
traefik.http.routers.ipfs.rule: Host(`ipfs.marcpartensky.fr`)
# traefik.http.routers.ipfs.rule: >
# Host(`ipfs.marcpartensky.com`) || Host(`ipfs.marcpartensky.fr`)
# traefik.http.routers.ipfs.entrypoints: websecure
# traefik.http.routers.ipfs.tls.certresolver: tls
traefik.http.routers.ipfs.tls.certresolver: cloudflare
traefik.http.services.ipfs.loadbalancer.server.port: 5001
traefik.http.routers.ifps.middlewares: ldap_auth
# traefik.frontend.redirect.regex: ^https://ipfs.marcpartensky.com$$
# the middleware 'add-context' must be defined so that the regex rules can be attached to it
# traefik.http.routers.ifps.middlewares: add-context
#
# # here is the logic provided by gustavomtborges of this gist:
# traefik.http.middlewares.add-context.redirectregex.regex: ^https:\\/\\/([^\\/]+)\\/?$$
# traefik.http.middlewares.add-context.redirectregex.replacement: https://$$1/webui
#
traefik.http.routers.ipfs.middlewares: custom_repath
traefik.http.middlewares.custom_repath.replacepathregex.regex: ^/$$
traefik.http.middlewares.custom_repath.replacepathregex.replacement: /webui
# the middleware 'add-context' must be defined so that the regex rules can be attached to it
traefik.http.routers.ipfs.middlewares: add-context
# here is the logic provided by gustavomtborges of this gist:
traefik.http.middlewares.add-context.redirectregex.regex: ^https:\\/\\/([^\\/]+)\\/?$$
traefik.http.middlewares.add-context.redirectregex.replacement: https://$$1/webui
volumes:
ipfs:
networks:
caddy:
external: true
+15
View File
@@ -0,0 +1,15 @@
version: "3.9"
services:
ipsec:
image: hwdsl2/ipsec-vpn-server
restart: unless-stopped
privileged: true
ports:
- "500:500/udp"
- "4500:4500/udp"
volumes:
- ikev2-vpn:/etc/ipsec.d
- /lib/modules:/lib/modules:ro
volumes:
ikev2-vpn:
+47
View File
@@ -0,0 +1,47 @@
version: "3.9"
services:
jellyfin:
image: jellyfin/jellyfin:latest
environment:
# PUID: 1000
# PGID: 1000
# TZ: Europe/Paris
JELLYFIN_PublishedServerUrl: jellyfin.marcpartensky.fr
devices:
- /dev/dri
volumes:
- config:/config
- cache:/cache
- media:/media
- movies:/movies
- musics:/musics
- photos:/photos
- ~/Videos/Youtube:/videos
# ports:
# - 8920:8920 #optional https self signed
# - 7359:7359/udp #optional lan discovery
# - 1900:1900/udp #optional dnla
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.jellyfin.rule: >
Host(`jellyfin.marcpartensky.fr`) ||
Host(`jellyfin.marcpartensky.com`)
traefik.http.routers.jellyfin.entrypoints: websecure
traefik.http.routers.jellyfin.tls.certresolver: tls
traefik.http.services.jellyfin.loadbalancer.server.port: 8096
volumes:
config:
cache:
media:
movies:
musics:
photos:
videos:
networks:
caddy:
external: true
+24 -5
View File
@@ -2,17 +2,22 @@ version: "3.9"
services:
jupyterhub:
image: jupyterhub/jupyterhub
image: marcpartensky/jupyterhub
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ../data/jupyterhub/jupyterhub_config.py:/srv/jupyterhub/jupyterhub_config.py
# - jupyterhub:/srv/jupyterhub
networks:
- caddy
- ldap
- caddy
- jupyterhub
environment:
DOCKER_JUPYTER_IMAGE: marcpartensky/jupyterlab
DOCKER_NETWORK_NAME: jupyterhub
# DOCKER_IMAGE: marcpartensky/jupyterlab
DOCKER_IMAGE: jupyterhub/singleuser
DOCKER_NETWORK_NAME: caddy
HUB_IP: jupyterhub
DOCKER_HOST: unix:///var/run/docker.sock
labels:
caddy: jupyterhub.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8000}}"
@@ -20,8 +25,22 @@ services:
traefik.http.routers.jupyterhub.rule: Host(`jupyterhub.marcpartensky.com`)
traefik.http.routers.jupyterhub.entrypoints: websecure
traefik.http.routers.jupyterhub.tls.certresolver: tls
traefik.http.services.jupyterhub.loadbalancer.server.port: 3000
traefik.http.services.jupyterhub.loadbalancer.server.port: 8000
# traefik.docker.network: jupyterhub_default
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.jupyterhub.rule: Host(`jupyterhub.marcpartensky.com`)
traefik.http.routers.jupyterhub.rule: Host(`hub.marcpartensky.fr`)
traefik.http.routers.jupyterhub.entrypoints: websecure
traefik.http.routers.jupyterhub.tls.certresolver: tls
traefik.http.services.jupyterhub.loadbalancer.server.port: 8000
networks:
jupyterhub:
name: jupyterhub
driver: overlay
caddy:
external: true
ldap:
external: true
+30 -10
View File
@@ -2,23 +2,41 @@ version: "3.9"
services:
jupyterlab:
# image: jupyter/datascience-notebook:latest
image: marcpartensky/jupyterlab
restart: unless-stopped
# restart: unless-stopped
environment:
# - GEN_CERT=yes
JUPYTER_ENABLE_LAB: "yes"
GRANT_SUDO: "yes"
entrypoint: start.sh jupyter lab --user root
JUPYTER_CONFIG_DIR: /home/jupyter/.jupyter
# entrypoint: python -m jupyter lab
# entrypoint: start.sh jupyter lab --user root
networks:
- caddy
labels:
caddy: lab.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8888}}"
traefik.enable: "true"
traefik.http.routers.jupyterlab.rule: Host(`lab.marcpartensky.com`)
traefik.http.routers.jupyterlab.entrypoints: websecure
traefik.http.routers.jupyterlab.tls.certresolver: tls
traefik.http.services.jupyterlab.loadbalancer.server.port: 8888
# labels:
# caddy: lab.marcpartensky.com
# caddy.reverse_proxy: "{{upstreams 8888}}"
# traefik.enable: "true"
# traefik.http.routers.jupyterlab.rule: Host(`lab.marcpartensky.com`)
# traefik.http.routers.jupyterlab.entrypoints: websecure
# traefik.http.routers.jupyterlab.tls.certresolver: tls
# traefik.http.services.jupyterlab.loadbalancer.server.port: 8888
# volumes:
# - jupyterlab:/home/jupyter
# - ../data/jupyterlab/:/home/jupyter/.jupyter/
deploy:
placement:
constraints:
- node.role == manager
labels:
traefik.enable: "true"
# traefik.http.routers.jupyterlab.rule: Host(`lab.marcpartensky.fr`)
traefik.http.routers.jupyterlab.rule: >
Host(`lab.marcpartensky.fr`) && Host(`lab.marcpartensky.com`)
traefik.http.routers.jupyterlab.entrypoints: websecure
traefik.http.routers.jupyterlab.tls.certresolver: cloudflare
traefik.http.services.jupyterlab.loadbalancer.server.port: 8888
# entrypoint: start-notebook.sh \
# --NotebookApp.keyfile=key/0000_key-certbot.pem
# --NotebookApp.certfile=cert/0000_csr-certbot.pem
@@ -27,6 +45,8 @@ services:
# - /etc/letsencrypt/csr:/home/jovyan/work/cert
# - /etc/letsencrypt:/etc/letsencrypt
#
volumes:
jupyterlab:
networks:
caddy:
+29
View File
@@ -0,0 +1,29 @@
version: "3.9"
services:
keycloak:
image: quay.io/keycloak/keycloak:19.0.3
env_file:
- ../data/secrets/keycloak.env
networks:
- caddy
# command: start-dev
command: start --optimized
labels:
caddy: keycloak.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8080}}"
traefik.enable: "true"
traefik.http.routers.keycloak.rule: Host(`keycloak.marcpartensky.com`)
traefik.http.routers.keycloak.entrypoints: websecure
traefik.http.routers.keycloak.tls.certresolver: tls
traefik.http.services.keycloak.loadbalancer.server.port: 8080
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.keycloak.rule: Host(`keycloak.marcpartensky.com`)
traefik.http.routers.keycloak.entrypoints: websecure
traefik.http.routers.keycloak.tls.certresolver: tls
traefik.http.services.keycloak.loadbalancer.server.port: 8080
networks:
caddy:
external: true
+6
View File
@@ -0,0 +1,6 @@
version: "3.9"
services:
kippo:
image: tomdesinto/kippo
ports:
- "22:22"
+14
View File
@@ -0,0 +1,14 @@
version: "3.9"
services:
languagetool:
image: erikvl87/languagetool
restart: unless-stopped
networks:
- caddy
labels:
caddy: languagetoo.marcpartensky.com
caddy.reverse_proxy: "{{ upstreams 8010 }}"
networks:
caddy:
external: true
+48
View File
@@ -0,0 +1,48 @@
version: "3.9"
services:
ldap_manager_go:
image: romnn/ldap-manager
# command: --generate
env_file:
- ../data/secrets/ldap_manager_go.env
networks:
- ldap
- caddy
environment:
HTTP_PORT: 80
LDAP_HOST: "ldap"
LDAP_PORT: 636
# LDAP_ADMIN_PASSWORD: admin
# LDAP_CONFIG_PASSWORD: config
LDAP_ORGANIZATION: Marc Partensky
# LDAP_DOMAIN: marcpartensky.com
LDAP_DOMAIN: marcpartensky.fr
DAP_BASE_DN: dc=admin,dc=org
# DEFAULT_ADMIN_USERNAME: ldapadmin
# DEFAULT_ADMIN_PASSWORD: changeme
# FORCE_CREATE_ADMIN: "true"
LDAP_TLS: "false"
LDAP_USE_RFC2307BIS: "true"
ISSUER: ldap@marcpartensky.com
AUDIENCE: marcpartensky.com
GENERATE: "true" # ports:
# - 9090:9090
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.ldap_manager_go.rule: Host(`ldapgo.marcpartensky.com`)
traefik.http.routers.ldap_manager_go.rule: >
Host(`ldapgo.marcpartensky.com`) || Host(`ldapgo.marcpartensky.fr`)
traefik.http.routers.ldap_manager_go.entrypoints: websecure
traefik.http.routers.ldap_manager_go.tls.certresolver: tls
traefik.http.services.ldap_manager_go.loadbalancer.server.port: 80
networks:
ldap:
external: true
caddy:
external: true
+18 -8
View File
@@ -20,16 +20,26 @@ services:
networks:
- ldap
- caddy
labels:
caddy: auth.marcpartensky.com
caddy.reverse_proxy: "{{upstreams}}"
traefik.enable: "true"
traefik.http.routers.ldap_manager.rule: Host(`auth.marcpartensky.com`)
traefik.http.routers.ldap_manager.entrypoints: websecure
traefik.http.routers.ldap_manager.tls.certresolver: tls
traefik.http.services.ldap_manager.loadbalancer.server.port: 80
# labels:
# caddy: auth.marcpartensky.com
# caddy.reverse_proxy: "{{upstreams}}"
# traefik.enable: "true"
# traefik.http.routers.ldap_manager.rule: Host(`auth.marcpartensky.com`)
# traefik.http.routers.ldap_manager.entrypoints: websecure
# traefik.http.routers.ldap_manager.tls.certresolver: tls
# traefik.http.services.ldap_manager.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.ldap_manager.rule: >
Host(`auth.marcpartensky.com`) || Host(`auth.marcpartensky.fr`)
traefik.http.routers.ldap_manager.entrypoints: websecure
# traefik.http.routers.ldap_manager.tls.certresolver: tls
traefik.http.routers.ldap_manager.tls.certresolver: cloudflare
traefik.http.services.ldap_manager.loadbalancer.server.port: 80
networks:
ldap:
external: true
caddy:
external: true
+8
View File
@@ -20,9 +20,17 @@ services:
- ldap:/var/lib/ldap
- ldap_slapd:/etc/ldap/slapd.d
backup:
image: osixia/openldap-backup:1.5.0
environment:
LDAP_BACKUP_CONFIG_CRON_EXP: "0 5 * * *"
LDAP_BACKUP_DATA_CRON_EXP: "0 5 * * *"
volumes:
ldap:
ldap_slapd:
networks:
ldap:
external: true
+16
View File
@@ -0,0 +1,16 @@
version: "3.9"
services:
libreswan:
image: ibotty/ipsec-libreswan
restart: unless-stopped
privileged: true
environment:
HOST: /host
IMAGE: ipsec-libreswan
NAME: libreswan
entrypoint: /bin/sh
command: /bin/install.sh
volumes:
- libreswan:/host
volumes:
libreswan:
+29
View File
@@ -0,0 +1,29 @@
version: "3.9"
services:
logseq:
image: ghcr.io/logseq/logseq-webapp:latest
# volumes:
networks:
- traefik
- postgres
labels:
traefik.enable: "true"
# traefik.http.routers.focalboard.rule: >
# Host(`board.marcpartensky.com`) || Host(`board.marcpartensky.fr`)
traefik.http.routers.logseq.service: logseq
traefik.http.routers.logseq.rule: >
Host(`logseq.marcpartensky.com`)
traefik.http.routers.logseq.tls: true
traefik.http.routers.logseq.entrypoints: web-secure
traefik.http.routers.logseq.tls.certresolver: default
traefik.http.services.logseq.loadbalancer.server.port: 80
# traefik.http.routers.focalboard.middlewares: ldap_auth
volumes:
data:
pack:
networks:
postgres:
external: true
traefik:
external: true
+427 -382
View File
File diff suppressed because it is too large Load Diff
+20 -1
View File
@@ -8,11 +8,20 @@ services:
# SYNAPSE_REPORT_STATS: "no"
# SYNAPSE_SERVER_NAME: matrix.marcpartensky.com
# SYNAPSE_ENABLE_REGISTRATION: "true"
environment:
SYNAPSE_CONFIG_PATH: /data/homeserver.yml
volumes:
- ../data/matrix:/data
# - matrix:/data
networks:
- caddy
- caddy
- postgres
healthcheck:
test: ["CMD", "curl", "-fSs", "http://localhost:8008/health"]
interval: 15s
timeout: 5s
retries: 3
start_period: 5s
labels:
caddy: matrix.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8008}}"
@@ -21,7 +30,17 @@ services:
traefik.http.routers.matrix.entrypoints: websecure
traefik.http.routers.matrix.tls.certresolver: tls
traefik.http.services.matrix.loadbalancer.server.port: 8008
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.matrix.rule: >
Host(`matrix.marcpartensky.com`) || Host(`matrix.marcpartensky.fr`)
traefik.http.routers.matrix.entrypoints: websecure
traefik.http.routers.matrix.tls.certresolver: tls
traefik.http.services.matrix.loadbalancer.server.port: 8008
networks:
postgres:
external: true
caddy:
external: true
+3 -3
View File
@@ -1,7 +1,7 @@
version: "3.9"
services:
backups:
backup:
image: itzg/mc-backup
environment:
BACKUP_INTERVAL: "1d"
@@ -9,7 +9,7 @@ services:
SERVE_PORT: 25565
RCON_HOST: minecraft
RCON_PORT: 25575
PAUSE_IF_NO_PLAYER: true
PAUSE_IF_NO_PLAYER: "true"
PLAYERS_ONLINE_CHECK_INTERVAL: 1h
TZ: Europe/Paris
DEST_DIR: /backups
@@ -18,6 +18,6 @@ services:
- /srv/minecraft/champi:/data:ro
# use a host attached directory so that it in turn can be backed up
# to external/cloud storage
- ./mc-backups:/backups
- /srv/mcbackups:/backups
# share network namespace with server to simplify rcon access
# network_mode: "service:mc"
+12 -4
View File
@@ -20,10 +20,18 @@ services:
caddy.reverse_proxy: "{{upstreams 8080}}"
authorize.with: marc
traefik.enable: "true"
traefik.http.routers.minecraft.rule: Host(`mcadmin.marcpartensky.com`)
traefik.http.routers.minecraft.entrypoints: websecure
traefik.http.routers.minecraft.tls.certresolver: tls
traefik.http.services.minecraft.loadbalancer.server.port: 8080
traefik.http.routers.mcmyadmin.rule: Host(`mcmyadmin.marcpartensky.com`)
traefik.http.routers.mcmyadmin.entrypoints: websecure
traefik.http.routers.mcmyadmin.tls.certresolver: tls
traefik.http.services.mcmyadmin.loadbalancer.server.port: 8080
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.mcmyadmin.rule: Host(`mcmyadmin.marcpartensky.com`)
traefik.http.routers.mcmyadmin.rule: Host(`mcmyadmin.marcpartensky.fr`)
traefik.http.routers.mcmyadmin.entrypoints: websecure
traefik.http.routers.mcmyadmin.tls.certresolver: tls
traefik.http.services.mcmyadmin.loadbalancer.server.port: 8080
volumes:
mcmyadmin:
+24 -1
View File
@@ -1,7 +1,7 @@
version: "3.9"
services:
minecraft_champi:
server:
image: itzg/minecraft-server
restart: unless-stopped
environment:
@@ -29,6 +29,29 @@ services:
networks:
- minecraft
backup:
image: itzg/mc-backup
environment:
BACKUP_INTERVAL: "1d"
# instead of network_mode below, could declare RCON_HOST
SERVE_PORT: 25565
RCON_HOST: server
RCON_PORT: 25575
PAUSE_IF_NO_PLAYER: "true"
PLAYERS_ONLINE_CHECK_INTERVAL: 1h
TZ: Europe/Paris
DEST_DIR: /backups
networks:
- minecraft
volumes:
# mount the same volume used by server, but read-only
- /srv/minecraft/champi:/data:ro
# use a host attached directory so that it in turn can be backed up
# to external/cloud storage
- /srv/mcbackups:/backups
# share network namespace with server to simplify rcon access
# network_mode: "service:mc"
# volumes:
# minecraft:
+33
View File
@@ -0,0 +1,33 @@
version: "3.9"
services:
minidlna:
image: geekduck/minidlna
volumes:
- music:/opt/Music
- videos:/opt/Videos
- pictures:/opt/Pictures
- db:/var/cache/minidlna
# - ../data/minidlna/minidlna.conf:/etc/minidlna.conf
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
traefik.http.services.minidlna.loadbalancer.server.port: 8200
traefik.http.routers.minidlna.rule: Host(`minidlna.marcpartensky.fr`)
# traefik.http.routers.minidlna.rule: >
# Host(`minidlna.marcpartensky.com`) || Host(`minidlna.marcpartensky.fr`)
traefik.http.routers.minidlna.entrypoints: websecure
# traefik.http.routers.minidlna.tls.certresolver: tls
traefik.http.routers.minidlna.tls.certresolver: cloudflare
# traefik.http.routers.minidlna.middlewares: ldap_auth
volumes:
music:
videos:
pictures:
db:
networks:
caddy:
external: true
+45
View File
@@ -0,0 +1,45 @@
version: "3.9"
services:
master:
image: efaviere/mobydock-master:lastest
# image: marcpartensky/mobidock-master:latest
# depends_on:
# - db
env_file:
- ../data/secrets/mobydock.env
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- caddy
- postgres
deploy:
labels:
traefik.enable: "true"
traefik.http.services.svc_mobydock.loadbalancer.server.port: 8080
traefik.http.routers.mobydock.service: svc_mobydock
traefik.http.routers.mobydock.rule: >
Host(`mobydock.marcpartensky.com`) || Host(`mobydock.marcpartensky.fr`)
traefik.http.routers.mobydock.entrypoints: websecure
# traefik.http.routers.dockerdash.middlewares: ldap_auth
traefik.http.services.svc_mobydockwss.loadbalancer.server.port: 8000
traefik.http.routers.mobydockwss.service: svc_mobydockwss
traefik.http.routers.mobydockwss.rule: >
Host(`wss.mobydock.marcpartensky.com`) || Host(`wss.mobydock.marcpartensky.fr`)
traefik.http.routers.mobydockwss.entrypoints: websecure
worker:
image: efaviere/mobidock-worker:latest
environment:
# MASTER_HOST: "https://mobydock.marcpartensky.com:8000"
MASTER_HOST: "https://wss.mobydock.marcpartensky.com"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
discord:
postgres:
external: true
caddy:
external: true
+12 -1
View File
@@ -1,7 +1,7 @@
version: "3.9"
services:
monero_miner:
miner:
image: giansalex/monero-miner
restart: unless-stopped
env_file:
@@ -11,3 +11,14 @@ services:
# -u $WALLET \
# -k \
# --cpu-priority=2
deploy:
resources:
# reservations:
# cpus: "2"
# # memory: "512M"
# memory: "5G"
limits:
cpus: "4"
# memory: "512M"
memory: "5G"
+33
View File
@@ -0,0 +1,33 @@
version: "3.9"
services:
honeygain:
image: marcpartensky/honeygain
env_file:
- ../data/secrets/honeygain.env
repocket:
image: repocket/repocket
env_file:
- ../data/secrets/repocket.env
traffmonetizer:
image: marcpartensky/traffmonetizer
env_file:
- ../data/secrets/traffmonetizer.env
packetstream:
image: packetstream/psclient:latest
environment:
CID: 4bYb
peer2profit:
image: peer2profit/peer2profit_x86_64:latest
environment:
P2P_EMAIL: marc@marcpartensky.com
# earnapp:
# image: fazalfarhan01/earnapp:lite
# volumes:
# - earnapp:/etc/earnapp
# environment:
# EARNAPP_UUID: $EARNAPP_DEVICE_ID
+17 -2
View File
@@ -5,6 +5,8 @@ services:
image: mongo
restart: unless-stopped
volumes:
- ../data/mongo/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
- ../data/mongo/config:/etc/mongo
- mongo:/data/db
networks:
- mongo
@@ -15,7 +17,7 @@ services:
# healthcheck:
# test: CMD echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
mongo_express:
express:
image: mongo-express
restart: unless-stopped
environment:
@@ -34,13 +36,26 @@ services:
traefik.http.routers.mongo.rule: Host(`mongo.marcpartensky.com`)
traefik.http.routers.mongo.entrypoints: websecure
traefik.http.routers.mongo.tls.certresolver: tls
traefik.http.services.mongo.loadbalancer.server.port: 80
traefik.http.services.mongo.loadbalancer.server.port: 8081
traefik.http.routers.duplicati.middlewares: ldap_auth
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.mongo.rule: Host(`mongo.marcpartensky.com`)
traefik.http.routers.mongo.rule: >
Host(`mongo.marcpartensky.fr`) ||
Host(`mongo.marcpartensky.com`)
traefik.http.routers.mongo.entrypoints: websecure
traefik.http.routers.mongo.tls.certresolver: tls
traefik.http.services.mongo.loadbalancer.server.port: 8081
traefik.http.routers.mongo.middlewares: ldap_auth
volumes:
mongo:
networks:
mongo:
external: true
caddy:
external: true
attachable: true
+11
View File
@@ -0,0 +1,11 @@
version: "3.9"
services:
mysql:
image: mysql
restart: unless-stopped
networks:
- mysql
volumes:
- mysql:/var/lib/mysql
env_file:
- ../data/secrets/mysql.env
+26 -16
View File
@@ -5,31 +5,41 @@ services:
image: nextcloud
restart: unless-stopped
volumes:
- nextcloud:/var/www/html
# - nextcloud:/var/www/html/data
# - nextcloud_theme:/var/www/html/themes/<YOUR_CUSTOM_THEME>
# - nextcloud_apps:/var/www/html/custom_apps
# - nextcloud_config:/var/www/html/config
# - nextcloud:/var/www/html
- data:/var/www/html/data
- config:/var/www/html/config
- themes:/var/www/html/themes
- apps:/var/www/html/custom_apps
env_file:
- ../data/secrets/nextcloud.env
networks:
- caddy
- nextcloud
- postgres
- ldap
# depends_on:
# - nextcloud_mariadb
labels:
caddy: cloud.marcpartensky.com
caddy.reverse_proxy: "{{upstreams http 80}}"
traefik.enable: "true"
traefik.http.routers.nextcloud.rule: Host(`cloud.marcpartensky.com`)
traefik.http.routers.nextcloud.entrypoints: websecure
traefik.http.routers.nextcloud.tls.certresolver: tls
traefik.http.services.nextcloud.loadbalancer.server.port: 80
deploy:
labels:
caddy: cloud.marcpartensky.com
caddy.reverse_proxy: "{{upstreams http 80}}"
traefik.enable: "true"
traefik.http.routers.nextcloud.rule: >
Host(`cloud.marcpartensky.com`) ||
Host(`cloud.marcpartensky.fr`)
traefik.http.routers.nextcloud.entrypoints: websecure
traefik.http.routers.nextcloud.tls.certresolver: tls
traefik.http.services.nextcloud.loadbalancer.server.port: 80
volumes:
nextcloud:
data:
config:
themes:
apps:
networks:
nextcloud:
ldap:
external: true
caddy:
external: true
postgres:
external: true
+5
View File
@@ -0,0 +1,5 @@
version: "3.9"
services:
nixos:
image: nixos/nix
restart: unless-stopped
+105
View File
@@ -0,0 +1,105 @@
version: "3.9"
services:
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: unless-stopped
env_file:
- ../data/secrets/numeris.env
links:
- mysql:db
networks:
- caddy
- numeris
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.phpmyadmin.rule: Host(`phpmyadmin.numeris.marcpartensky.fr`)
traefik.http.routers.phpmyadmin.entrypoints: websecure
traefik.http.routers.phpmyadmin.tls.certresolver: tls
traefik.http.services.phpmyadmin.loadbalancer.server.port: 80
traefik.http.routers.phpmyadmin.middlewares: ldap_auth
mysql:
image: mysql:5.7
restart: unless-stopped
networks:
- numeris
volumes:
- numeris:/var/lib/mysql
env_file:
- ../data/secrets/numeris.env
back:
image: numerisisep/numeris-back:prod
networks:
- caddy
- numeris
env_file:
- ../data/secrets/numeris.env
# volumes:
# - .env:/home/numeris/.env
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.back.rule: Host(`api.numeris.marcpartensky.com`)
traefik.http.routers.back.rule: Host(`api.numeris.marcpartensky.fr`)
traefik.http.routers.back.entrypoints: websecure
traefik.http.routers.back.tls.certresolver: tls
traefik.http.services.back.loadbalancer.server.port: 80
front:
image: numerisisep/numeris-front:prod
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.front.rule: Host(`numeris.marcpartensky.com`)
traefik.http.routers.front.rule: Host(`numeris.marcpartensky.fr`)
traefik.http.routers.front.entrypoints: websecure
traefik.http.routers.front.tls.certresolver: tls
traefik.http.services.front.loadbalancer.server.port: 80
traefik.http.routers.front.middlewares: ldap_auth
back-staging:
image: numerisisep/numeris-back:staging
networks:
- caddy
- numeris
env_file:
- ../data/secrets/numeris.env
# volumes:
# - .env:/home/numeris/.env
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.back.rule: Host(`api.numeris.marcpartensky.com`)
traefik.http.routers.back.rule: Host(`staging.api.numeris.marcpartensky.fr`)
traefik.http.routers.back.entrypoints: websecure
traefik.http.routers.back.tls.certresolver: tls
traefik.http.services.back.loadbalancer.server.port: 80
front-staging:
image: numerisisep/numeris-front:staging
networks:
- caddy
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.front.rule: Host(`numeris.marcpartensky.com`)
traefik.http.routers.front.rule: Host(`staging.numeris.marcpartensky.fr`)
traefik.http.routers.front.entrypoints: websecure
traefik.http.routers.front.tls.certresolver: tls
traefik.http.services.front.loadbalancer.server.port: 80
traefik.http.routers.front.middlewares: ldap_auth
networks:
numeris:
caddy:
external: true
volumes:
numeris:
caddy_data:
mysql:
+28
View File
@@ -0,0 +1,28 @@
version: "3.9"
services:
openvpn:
image: ghcr.io/linuxserver/openvpn-as
cap_add:
- NET_ADMIN
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Paris
# INTERFACE: eth0 #optional
volumes:
- config:/config
ports:
# - 943:943 # web
# - 9443:9443
- 1194:1194/udp
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.openvpn.rule: >
Host(`vpn.marcpartensky.fr`)
traefik.http.routers.openvpn.entrypoints: websecure
traefik.http.routers.openvpn.tls.certresolver: tls
traefik.http.services.openvpn.loadbalancer.server.port: 943
volumes:
config:
+16
View File
@@ -0,0 +1,16 @@
version: "3.9"
services:
openvpn_client:
image: dperson/openvpn-client
device: /dev/net/tun
volumes:
- ../data/openvpn_client:/vpn
- 'vpn.server.name;username;password'
cap-add:
- NET_ADMIN
networks:
- vpn
# sudo cp /path/to/vpn.crt /some/path/vpn-ca.crt
networks:
vpn:
external: true
+19
View File
@@ -0,0 +1,19 @@
version: "3.9"
services:
openvpn_client2:
image: frauhottelmann/openvpn-client
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
command: --config /vpn/client.ovpn --askpass /vpn/client.pwd --auth-nocache --script-security 3 --data-ciphers AES-128-CBC
volumes:
- ../data/openvpn_client2:/vpn
networks:
- vpn
# network_mode: "bridge"
networks:
vpn:
external: true
+10
View File
@@ -0,0 +1,10 @@
version: "3.9"
services:
openvpn-client:
image: ghcr.io/wfg/openvpn-client
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
volumes:
- ../data/openvpn_client3:/data/vpn
+20
View File
@@ -0,0 +1,20 @@
version: "3.9"
services:
openvpnclient:
image: haugene/transmission-openvpn
cap-add:
- NET_ADMIN
ports:
- 9091:9091
environment:
OPENVPN_PROVIDER: custom
OPENVPN_CONFIG: france
OPENVPN_USERNAME: user
OPENVPN_PASSWORD: pass
LOCAL_NETWORK: 192.168.0.0/16
volumes:
- data:/data
- ../data/openvpnclient4/:/config
volumes:
data:
+26
View File
@@ -0,0 +1,26 @@
version: "3.9"
services:
owncloud:
image: owncloud
networks:
- caddy
- postgres
volumes:
- data:/var/www/html/data
deploy:
labels:
traefik.enable: "true"
traefik.http.services.owncloud.loadbalancer.server.port: 80
traefik.http.routers.owncloud.rule: >
Host(`owncloud.marcpartensky.com`) || Host(`owncloud.marcpartensky.fr`)
traefik.http.routers.owncloud.entrypoints: websecure
traefik.http.routers.owncloud.tls.certresolver: tls
volumes:
data:
networks:
caddy:
external: true
postgres:
external: true
+7
View File
@@ -26,6 +26,13 @@ services:
traefik.http.routers.oxivia.entrypoints: websecure
traefik.http.routers.oxivia.tls.certresolver: tls
traefik.http.services.oxivia.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.oxivia.rule: Host(`oxivia.business.marcpartensky.com`)
traefik.http.routers.oxivia.entrypoints: websecure
traefik.http.routers.oxivia.tls.certresolver: tls
traefik.http.services.oxivia.loadbalancer.server.port: 80
networks:
oxivia:
+11
View File
@@ -0,0 +1,11 @@
version: "3.9"
services:
client:
image: packetstream/psclient:latest
environment:
CID: 4bYb
# watchtower:
# image: containrrr/watchtower
# command: --cleanup --include-stopped --revive-stopped --interval 60 ${_COMPOSE_PROJECT_NAME}_Packetstream_PsClient_${_COMPOSE_PROJECT_STACK_ID}
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock
+10 -10
View File
@@ -9,18 +9,18 @@ services:
- ../data/secrets/pandoc.env
volumes:
- pandoc:/app/files
labels:
caddy: pandoc.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
traefik.enable: "true"
traefik.http.routers.pandoc.rule: Host(`pandoc.marcpartensky.com`)
traefik.http.routers.pandoc.entrypoints: websecure
traefik.http.routers.pandoc.tls.certresolver: tls
traefik.http.services.pandoc.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.pandoc.rule: Host(`pandoc.marcpartensky.com`)
traefik.http.routers.pandoc.rule: >
Host(`pandoc.marcpartensky.com`) ||
Host(`pandoc.marcpartensky.fr`)
traefik.http.routers.pandoc.entrypoints: websecure
traefik.http.routers.pandoc.tls.certresolver: tls
traefik.http.services.pandoc.loadbalancer.server.port: 80
networks:
- caddy
depends_on:
- caddy
volumes:
pandoc:
+7
View File
@@ -0,0 +1,7 @@
version: "3.9"
services:
pawns:
image: marcpartensky/pawns
env_file:
- ../data/secrets/pawns.env
+6
View File
@@ -0,0 +1,6 @@
version: "3.9"
services:
peer2profit:
image: peer2profit/peer2profit_x86_64:latest
environment:
P2P_EMAIL: marc@marcpartensky.com
+53 -37
View File
@@ -1,63 +1,79 @@
version: "3.3"
version: "3.9"
services:
peertube:
image: chocobozzz/peertube:production-bullseye
restart: unless-stopped
networks:
- caddy
env_file:
- ../data/secrets/peertube.env
ports:
- "1935:1935" # If you don't want to use the live feature, you can comment this line
# - "9000:9000" # If you provide your own webserver and reverse-proxy, otherwise not suitable for production
volumes:
- peertube_assets:/app/client/dist
- peertube:/data
- assets:/app/client/dist
- data:/data
- ../data/peertube:/config
depends_on:
- peertube_postgres
- peertube_redis
- peertube_postfix
networks:
- peertube
- caddy
- postgres
- redis
# depends_on:
# - peertube_postgres
# - peertube_redis
# - peertube_postfix
labels:
caddy: peertube.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
traefik.enable: "true"
traefik.http.routers.gitea.rule: Host(`peertube.marcpartensky.com`)
traefik.http.routers.gitea.entrypoints: websecure
traefik.http.routers.gitea.tls.certresolver: tls
traefik.http.services.gitea.loadbalancer.server.port: 80
traefik.http.routers.peertube.rule: Host(`peertube.marcpartensky.com`)
traefik.http.routers.peertube.entrypoints: websecure
traefik.http.routers.peertube.tls.certresolver: tls
traefik.http.services.peertube.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.peertube.rule: Host(`peertube.marcpartensky.fr`)
traefik.http.routers.peertube.entrypoints: websecure
traefik.http.routers.peertube.tls.certresolver: tls
traefik.http.services.peertube.loadbalancer.server.port: 80
peertube_postgres:
image: postgres:13-alpine
restart: unless-stopped
env_file:
- ../data/secrets/peertube.env
volumes:
- peertube_postgres:/var/lib/postgresql/data
# peertube_postgres:
# image: postgres:13-alpine
# restart: unless-stopped
# env_file:
# - ../data/secrets/peertube.env
# volumes:
# - peertube_postgres:/var/lib/postgresql/data
peertube_redis:
image: redis:6-alpine
restart: unless-stopped
volumes:
- peertube_redis:/data
# peertube_redis:
# image: redis:6-alpine
# restart: unless-stopped
# volumes:
# - peertube_redis:/data
peertube_postfix:
image: mwader/postfix-relay
restart: unless-stopped
env_file:
- .env
volumes:
- peertube_postfix:/etc/opendkim/keys
# postfix:
# image: mwader/postfix-relay
# restart: unless-stopped
# networks:
# - peertube
# env_file:
# - .env
# volumes:
# - postfix:/etc/opendkim/keys
networks:
peertube:
postgres:
external: true
redis:
external: true
caddy:
external: true
volumes:
peertube:
peertube_assets:
peertube_postgres:
peertube_redis:
peertube_postfix:
data:
assets:
postgres:
postfix:
+16
View File
@@ -0,0 +1,16 @@
version: "3.9"
services:
pg_backup:
image: kartoza/pg-backup:14-3.1
env_file:
- ../data/secrets/pg_backup.env
# environment:
# POSTGRES_MAJOR_VERSION: 14
networks:
- postgres
volumes:
- /srv/pg-backup:/backups
networks:
postgres:
external: true
+47
View File
@@ -0,0 +1,47 @@
version: "3.9"
services:
pgadmin:
image: dpage/pgadmin4
restart: unless-stopped
env_file:
- ../data/secrets/pgadmin.env
environment:
PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION: "True"
# PGADMIN_CONFIG_LOGIN_BANNER: "Authorised users only!"
PGADMIN_CONFIG_CONSOLE_LOG_LEVEL: 10
networks:
- postgres
- caddy
volumes:
- /srv/pgadmin:/usr/local/
labels:
caddy: pgadmin.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
# caddy.reverse_proxy.header_up.Host: "{upstream_hostport}" # redundant
# caddy.reverse_proxy.header_up.X-Real-IP: "{host}"
# caddy.reverse_proxy.header_up.X-Forwarded-For: "{host}" # redundant
# caddy.basicauth: /* bcrypt
# caddy.basicauth.admin: JDJhJDEyJDVRUXdqQllCR2dCSEZ0ZUlaVUZTRE95WXpROFdUcFdXSm4wVGE2TmE4cEkxNHc5Si4venJxCg==
traefik.enable: "true"
traefik.http.routers.pgadmin.rule: Host(`pgadmin.marcpartensky.com`)
traefik.http.routers.pgadmin.entrypoints: websecure
traefik.http.routers.pgadmin.tls.certresolver: tls
traefik.http.services.pgadmin.loadbalancer.server.port: 80
deploy:
labels:
traefik.enable: "true"
# traefik.http.routers.pgadmin.rule: Host(`pgadmin.marcpartensky.com`)
traefik.http.routers.pgadmin.rule: Host(`pgadmin.marcpartensky.fr`)
traefik.http.routers.pgadmin.entrypoints: websecure
traefik.http.routers.pgadmin.tls.certresolver: tls
traefik.http.services.pgadmin.loadbalancer.server.port: 80
volumes:
postgres:
networks:
postgres:
external: true
caddy:
external: true
+40
View File
@@ -0,0 +1,40 @@
version: "3.9"
services:
pgweb:
image: marcpartensky/pgweb
restart: unless-stopped
env_file:
- ../data/secrets/pgweb.env
networks:
- postgres
- caddy
# depends_on:
# - postgres
labels:
caddy: pgweb.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8081}}"
# caddy.reverse_proxy.header_up.Host: "{upstream_hostport}" # redundant
# caddy.reverse_proxy.header_up.X-Real-IP: "{host}"
# caddy.reverse_proxy.header_up.X-Forwarded-For: "{host}" # redundant
caddy.basicauth: /* bcrypt
caddy.basicauth.admin: JDJhJDEyJDVRUXdqQllCR2dCSEZ0ZUlaVUZTRE95WXpROFdUcFdXSm4wVGE2TmE4cEkxNHc5Si4venJxCg==
traefik.enable: "true"
traefik.http.routers.pgweb.rule: Host(`pgweb.marcpartensky.com`)
traefik.http.routers.pgweb.entrypoints: websecure
traefik.http.routers.pgweb.tls.certresolver: tls
traefik.http.services.pgweb.loadbalancer.server.port: 8081
deploy:
labels:
traefik.enable: "true"
traefik.http.routers.pgweb.rule: Host(`pgweb.marcpartensky.com`)
traefik.http.routers.pgweb.entrypoints: websecure
traefik.http.routers.pgweb.tls.certresolver: tls
traefik.http.services.pgweb.loadbalancer.server.port: 8081
# ldapAuth Register Middleware ====================================================
traefik.http.routers.pgweb.middlewares: ldap_auth
networks:
postgres:
external: true
caddy:
external: true

Some files were not shown because too many files have changed in this diff Show More