429 Commits
Author SHA1 Message Date
marc 1ba21cb4ae docker-api 2022-03-06 17:22:19 +01:00
marc 02618af131 default username 2022-03-06 17:06:07 +01:00
marc 471a835135 fix oxivia 2022-03-06 16:58:26 +01:00
marc d17b564c9d fix 2022-03-06 16:56:23 +01:00
marc bbc80b24be vps.txt 2022-03-06 16:53:39 +01:00
marc 5eec1ed40f fix name 2022-03-06 16:50:27 +01:00
marc cf4b67c8e7 general clean 2022-03-06 16:48:42 +01:00
marc e12576a01a fix registry 2022-03-06 16:46:38 +01:00
marc b12ac2b233 authent 2022-03-06 16:46:05 +01:00
marc df5e820496 fix 2022-03-06 16:30:27 +01:00
marc 52e0602c48 networks 2022-03-06 16:29:21 +01:00
marc 7c10dce519 mapping 2022-03-06 16:27:09 +01:00
marc 053e21aa2f caddy support 2022-03-06 16:26:25 +01:00
marc ac67445f47 authentik 2022-03-06 16:24:13 +01:00
marc 0c40d6ccc7 mapping 2022-03-06 02:20:09 +01:00
marc 01c20b7dc2 cleaned open web calendar 2022-03-06 02:18:51 +01:00
marc a8b4c7ff48 open-web-calendar 2022-03-06 02:18:14 +01:00
marc 85f770353f cleaned ialab 2022-03-06 02:13:40 +01:00
marc 927cfe0ca4 depends on caddy 2022-03-06 02:11:03 +01:00
marc bdccc7d82c depends on caddy 2022-03-06 02:06:44 +01:00
marc 7e7d724854 clean registry 2022-03-06 02:05:53 +01:00
marc a6be409eb6 cleaned oxivia 2022-03-06 02:04:07 +01:00
marc 52fb92411f cleaned website 2022-03-06 01:52:27 +01:00
marc 79024c9f60 no argument 2022-03-06 01:50:54 +01:00
marc de8033affb less indent 2022-03-06 01:48:06 +01:00
marc f0c61d4779 cleaned docker kit 2022-03-06 01:29:20 +01:00
marc 1dff54e70b bye bridge 2022-03-06 01:28:31 +01:00
marc 19d8145043 fix 2022-03-06 01:28:05 +01:00
marc b442d0e3d3 .. 2022-03-06 01:26:40 +01:00
marc 9f7afe6b98 mongo express 2022-03-06 01:24:47 +01:00
marc eb67477449 docker-kit 2022-03-06 01:22:38 +01:00
marc 4f8e93b76b fuck user specific config 2022-03-06 00:48:22 +01:00
marc 2aec5a7e96 -m 750 2022-03-06 00:43:51 +01:00
marc 1298a0dcaf fix 2022-03-06 00:40:14 +01:00
marc 225089bfbd trying make install setup 2022-03-06 00:39:27 +01:00
marc 01c2d576e1 ialab 2022-03-06 00:23:12 +01:00
marc 395d4607d2 ialab 2022-03-05 23:49:22 +01:00
marc 105bbac4ef data 2022-03-05 23:40:12 +01:00
marc 519d9f1904 forgot s 2022-03-05 23:32:53 +01:00
marc 9f5f54063d docker-compose.yml in stacks 2022-03-05 23:30:01 +01:00
marc 8bae2213c3 legacy 2022-03-05 23:29:26 +01:00
marc 98a2862ddf clever merge 2022-03-05 23:27:54 +01:00
marc a74495111b dont log 2022-03-05 23:14:24 +01:00
marc 1a1a2b4a3a eval 2022-03-05 23:03:05 +01:00
marc e44d3ed58c docker-compose too 2022-03-05 23:02:33 +01:00
marc b2e07ae91d stacks 2022-03-05 23:02:07 +01:00
marc 79d4397c66 merge 2022-03-05 22:59:25 +01:00
marc 9c60b1f1fc bin 2022-03-05 22:52:58 +01:00
marc 8f45091819 merge.py 2022-03-05 22:52:14 +01:00
marc 90bc4f91e7 fix 2022-03-05 22:18:32 +01:00
marc b547bb877c dood 2022-03-05 22:15:07 +01:00
marc 64ed06aaf8 env 2022-03-05 22:12:54 +01:00
marc 774433b508 txt file as input 2022-03-05 22:08:18 +01:00
marc c985b43237 nginx 2022-03-05 16:30:42 +01:00
marc bf35024b28 nginx 2022-03-05 16:28:17 +01:00
marc 18c5a6b667 parent data folder 2022-03-05 16:22:38 +01:00
marc 7443039354 swarm mode or docker-compose 2022-03-05 15:34:49 +01:00
marc 65b0f97b5c moved oxiva 2022-03-05 15:24:38 +01:00
marc b2a7afce17 oxivia.yml 2022-03-05 15:11:55 +01:00
marc b436e6eda7 wordpress.yml 2022-03-05 06:46:19 +01:00
marc df294dd137 calendar 2022-03-05 06:41:27 +01:00
marc 3847b0d61e calendar 2022-03-05 06:41:15 +01:00
marc 81b333235d ialab.yml 2022-03-05 06:39:53 +01:00
marc 8215766d39 jupyterhub 2022-03-05 06:36:51 +01:00
marc 12565e35f3 jupyterlab.yml 2022-03-05 06:35:47 +01:00
marc 67ee42083b mongo 2022-03-05 06:32:27 +01:00
marc 796ad01b9e deleted useless networks 2022-03-04 11:03:56 +01:00
marc 0ec4274285 pandoc 2022-03-04 01:01:05 +01:00
marc a9a38505a0 servant.yml 2022-03-04 00:59:38 +01:00
marc eee3fa41b5 discord 2022-03-04 00:57:51 +01:00
marc ec7438ddfe mongo 2022-03-04 00:56:03 +01:00
marc 683e2dab16 bot 2022-03-03 23:37:45 +01:00
marc 5485bb3f7d discord-bot 2022-03-03 23:37:07 +01:00
marc 1f78f292a0 discord-bot 2022-03-03 23:36:55 +01:00
marc c4ed8629b2 sslh 2022-03-03 23:35:00 +01:00
marc 1561a83155 services 2022-03-03 23:32:10 +01:00
marc ec217851e2 stack 2022-03-03 23:31:09 +01:00
marc f708b9060d services 2022-03-03 23:30:01 +01:00
marc d22b2074af setup.sh 2022-03-03 23:29:23 +01:00
marc d2ee7ddf47 up.sh 2022-03-03 23:21:05 +01:00
marc b617b39870 registry.yml 2022-03-03 22:49:01 +01:00
marc 934ac113fd portainer.yml 2022-03-03 22:48:01 +01:00
marc b009a78180 website.yml 2022-03-03 22:47:04 +01:00
marc 84c9c787ab caddy.yml 2022-03-03 22:45:14 +01:00
marc 6a8c2c6127 vps folder 2022-03-03 22:45:03 +01:00
marc bed1b4201e update 2022-03-03 21:57:01 +01:00
marc 5d9bbb47f0 test 2022-03-03 21:52:57 +01:00
marc fadbacec91 deploy path 2022-03-03 21:28:30 +01:00
marc 226faa5366 git/docker 2022-03-03 21:26:00 +01:00
marc d59dfff7dd ssh host 2022-03-03 21:23:53 +01:00
marc 456998e63b swarm 2022-03-03 21:21:56 +01:00
marc 9eab510975 lab 2022-03-03 21:11:45 +01:00
marc cd6ef5917a removed healthcheck from mongo 2022-03-03 09:10:03 +01:00
marc da02278c9c ldap env file 2022-03-03 01:05:41 +01:00
marc 6c4f8e9252 ldap.env 2022-03-03 01:01:22 +01:00
marc 9ddc4fcbe6 636 2022-03-03 00:58:28 +01:00
marc b82f4b18ff entrypoint 2022-03-03 00:45:52 +01:00
marc 66623dacea wtf var log 2022-03-03 00:43:26 +01:00
marc 3569754088 bye website dev 2022-03-03 00:42:42 +01:00
marc 1ab7e8de2f vol 2022-03-03 00:13:40 +01:00
marc 339a9db1f6 less network conf 2022-03-03 00:13:20 +01:00
marc 74fed54f3d pritunl 2022-03-03 00:11:10 +01:00
marc cf5896a640 true true 2022-03-02 23:53:10 +01:00
marc 6a010781a5 true 2022-03-02 23:51:58 +01:00
marc e2ffeab158 fix true 2022-03-02 23:51:03 +01:00
marc 849bd680b4 trying without port 80 2022-03-02 23:49:38 +01:00
marc 8ada212d8f badge 2022-03-02 18:53:30 +01:00
marc 4d33340413 auth.marcpartensky.com 2022-03-02 18:45:27 +01:00
marc 7a0acbae7b docker-swarm-deploy 2022-03-02 18:37:08 +01:00
marc 6c3ce63c23 ldap 2022-03-02 18:25:08 +01:00
marc 06cec5866e rancher 2022-03-02 18:17:19 +01:00
marc 03d1b04a1d gitlab 2022-03-02 18:17:00 +01:00
marc cee2d0f075 jenkins 2022-03-02 18:16:31 +01:00
marc 906a9347be matrix etherpad 2022-03-02 18:15:42 +01:00
marc 65fb18cb1c pandoc 2022-03-02 18:14:53 +01:00
marc 0d66be0495 cleaned nextcoud 2022-03-02 18:13:29 +01:00
marc dd414440d8 cleaned oxivia 2022-03-02 18:10:56 +01:00
marc 85e3630f26 cleaned registry 2022-03-02 18:08:50 +01:00
marc 1648f59018 bye valentin 2022-03-02 18:06:43 +01:00
marc 35167a5d1f bye old thaiwara 2022-03-02 18:06:17 +01:00
marc 5f58cf6787 http 2022-03-02 18:00:25 +01:00
marc 35cbb4584b dont deal with https 2022-03-02 17:57:18 +01:00
marc 8921f435ae server hostname 2022-03-02 17:52:36 +01:00
marc dafc5d6239 no starttls 2022-03-02 17:48:27 +01:00
marc 5033dae87b dockerhost 2022-03-01 16:23:49 +01:00
marc 55cb64dfd5 contabo 2022-03-01 16:17:11 +01:00
marc 397457cbab better order 2022-03-01 16:15:46 +01:00
marc b487a902ba jupyterhub 2022-03-01 16:06:44 +01:00
marc b281bef3df jupyterhub 2022-03-01 15:59:47 +01:00
marc e7d4d60362 registry made right 2022-03-01 15:58:06 +01:00
marc 9576ce9600 registry is back 2022-03-01 15:56:17 +01:00
marc e592ded31a fix bad indent 2022-03-01 15:39:56 +01:00
marc 2c0225b57d matrix is secret 2022-03-01 15:39:10 +01:00
marc a9034507ae matrix stuf 2022-03-01 15:38:44 +01:00
marc 25458ffe3b jupyterhub 2022-03-01 15:37:14 +01:00
marc 3e38ea66c0 no 2022-02-27 16:37:21 +01:00
marc 887aa3f071 matrix update 2022-02-27 16:36:04 +01:00
marc 0b44e47fc6 ignoring mx puppet discord 2022-02-27 15:28:50 +01:00
marc 02dc4addd8 mx puppet discord 2022-02-27 15:26:27 +01:00
marc c030db86a9 network 2022-02-27 02:27:14 +01:00
marc 6e31a30715 2 cpus 2022-02-27 00:48:18 +01:00
marc 5468dceaa7 restrict gitlab 2022-02-26 00:17:05 +01:00
marc 7081bfb9c1 xmrchain 2022-02-25 17:12:46 +01:00
marc a1af35fd8c volume 2022-02-25 17:12:18 +01:00
marc 089c3fdfb7 fuck monero miner config 2022-02-25 17:11:58 +01:00
marc b5175252cf monero daemon 2022-02-25 17:09:16 +01:00
marc db2a64e153 monero daemon 2022-02-25 15:54:11 +01:00
marc 94a57de8ba bye wordpress 2022-02-24 01:39:03 +01:00
marc c6de0197a5 calendar 2022-02-24 01:38:14 +01:00
marc c89853d620 mongo express 2022-02-24 01:36:26 +01:00
marc 45d1c32902 seafile 2022-02-24 01:32:41 +01:00
marc a304124ee5 prison the daemon 2022-02-24 01:19:36 +01:00
marc 7204e881c5 volumes 2022-02-24 01:09:56 +01:00
marc 65fc2deaee calm gitlab 2022-02-24 01:08:27 +01:00
marc 32e7e6e20e jenkins 2022-02-24 01:01:12 +01:00
marc 46ef155acf free the miners 2022-02-24 00:54:41 +01:00
marc 7d39696084 calm down the daemon 2022-02-24 00:37:20 +01:00
marc 51dcc5e474 bye .d 2022-02-24 00:29:01 +01:00
marc 487abdc4e6 string 2022-02-24 00:28:11 +01:00
marc fd33ad6cdb no links 2022-02-24 00:27:17 +01:00
marc 163b475163 ldap volume + network 2022-02-24 00:22:10 +01:00
marc 613f6cae9d ldap 2022-02-24 00:20:59 +01:00
marc 5532aae308 funding 2022-02-23 23:56:33 +01:00
marc 6b0fffd01a tried to clean portainer 2022-02-23 23:40:36 +01:00
marc d20843f171 no build anymore 2022-02-23 23:38:14 +01:00
marc 3e2932bd60 double quotes 2022-02-23 23:23:29 +01:00
marc 212d7c2b26 websocket upstream 2022-02-23 23:22:05 +01:00
marc ced054fc7e breef 2022-02-23 23:19:31 +01:00
marc c91fc2d60b yaml config for beef 2022-02-23 22:51:52 +01:00
marc 9ee3bb5271 ignoring some beef 2022-02-23 22:51:04 +01:00
marc 98f77707b0 caddy network right 2022-02-23 19:28:22 +01:00
marc c1a71af69a some great beef volume 2022-02-23 19:15:32 +01:00
marc 4757a67bbd changed beef 2022-02-23 19:14:45 +01:00
marc f5388cfb49 fix ressources 2022-02-23 18:42:34 +01:00
marc 2deb507552 ressources 2022-02-23 18:41:35 +01:00
marc 8117b56a77 website and caddy first before all 2022-02-23 18:37:13 +01:00
marc 91b51025ec limit monero daemon 2022-02-23 18:34:08 +01:00
marc 46538106a8 novnc_fedora 2022-02-23 17:32:28 +01:00
marc 52e3e07088 monero_miner 2022-02-23 17:31:42 +01:00
marc 9bfafd1c0b monero daemon 2022-02-23 17:20:00 +01:00
marc 2bcea6a9c8 novnc-debian 2022-02-21 17:36:16 +01:00
marc 9216fe1f49 no entrypoint 2022-02-21 17:28:13 +01:00
marc 3d88f314bb vnc 2022-02-21 17:27:53 +01:00
marc b0693e2040 good image 2022-02-21 17:21:29 +01:00
marc b67d09d1d1 entryopint 2022-02-21 17:20:51 +01:00
marc e9bd448083 novnc arch i3 2022-02-21 17:19:24 +01:00
marc c9ad155b82 tower 2022-02-21 16:57:14 +01:00
marc 22dc3672b5 beef 2022-02-21 01:40:47 +01:00
marc 6f8440be32 telport 2022-02-21 01:37:07 +01:00
marc 546ead7187 teleport 2022-02-21 01:31:02 +01:00
marc ca8c11ffd7 monero miner 2022-02-20 20:57:51 +01:00
marc 2476422bec matrix 2022-02-20 20:15:33 +01:00
marc d3e7a42078 etherpad 2022-02-20 20:02:05 +01:00
marc 3e794a50f1 jenkins 2022-02-20 19:04:10 +01:00
marc 92455952ed rancher 2022-02-20 19:00:47 +01:00
marc 79f28c1dee removed useless 2022-02-20 18:57:25 +01:00
marc adfa0c9290 seafile 2022-02-20 18:57:10 +01:00
marc 3f09480fc9 fail2ban 2022-02-20 02:07:10 +01:00
marc 2ef40073d2 not overloading entrypoint for pandoc 2022-02-20 01:59:39 +01:00
marc 6b007d1a30 nextcloud too 2022-02-20 01:54:30 +01:00
marc 88bf9117a4 fix name 2022-02-20 01:51:21 +01:00
marc 7972b84503 fix naming 2022-02-20 01:49:18 +01:00
marc e4ccb07e14 forgot network 2022-02-20 01:45:04 +01:00
marc 3b7b71853b fix 2022-02-20 01:42:38 +01:00
marc 963745bd5a seafile 2022-02-20 01:04:00 +01:00
marc 20c95de427 seafile 2022-02-20 01:01:25 +01:00
marc 7c7061fbf7 docker socket mountd as bind mount inside novnc container 2022-02-16 14:03:30 +01:00
marc 35779c76e5 novnc 2022-02-16 13:48:37 +01:00
marc f7413b3060 commented wordpress 2022-02-14 01:14:37 +01:00
marc b7e4ffaa8f novnc var 2022-02-07 15:37:30 +01:00
marc a2a3d062bd 5900 2022-02-01 15:35:16 +01:00
marc 6e120feee2 duplicati test 2022-02-01 15:05:48 +01:00
marc b21e6bb557 vps.yml 2022-01-28 17:03:12 +01:00
marc 72cca72097 pritunl config that works 2022-01-21 23:24:46 +01:00
marc b13a5a2891 mcmyadmin port 2022-01-18 13:29:42 +01:00
marc fc8267c0f1 networks caddy tower.yml 2022-01-18 11:01:50 +01:00
marc 71ad5e5410 fix not well formed 2022-01-15 19:39:21 +01:00
marc 4fdfcae901 commented healthcheck 2022-01-15 19:30:15 +01:00
marc 60edd83103 healthchecks 2022-01-11 16:01:36 +01:00
marc afbf297c88 test 2022-01-11 13:59:54 +01:00
marc d2931aa17d cleaning containers 2022-01-11 13:59:14 +01:00
marc 466b26cd67 back to overloading the entrypoint 2022-01-11 04:00:27 +01:00
marc 124a5ea52a pgweb 2022-01-11 03:56:26 +01:00
marc 3ccc2e395b interactive does not exist 2022-01-09 23:37:59 +01:00
marc c4726def00 rancher port 2022-01-09 23:37:18 +01:00
marc f00265a248 minikube and rancher 2022-01-09 23:36:45 +01:00
marc 2522a96747 setup 2022-01-09 22:48:57 +01:00
marc bf7664a492 rancher/server 2022-01-09 22:43:33 +01:00
marc 372b67ca2d 8080 2022-01-09 22:15:20 +01:00
marc f6a55caa48 tried rancher 2022-01-09 22:14:09 +01:00
marc 4775e36f72 caddyfile 2022-01-02 20:14:11 +01:00
marc 9c8d739665 commented pritunl 2021-12-31 01:33:16 +01:00
marc eb2591af35 nextcloud volume 2021-12-31 01:12:30 +01:00
marc a20bc37cd8 trying deploy and getting rid of pritunl in vps.yml 2021-12-30 23:29:07 +01:00
marc 67311af9c0 expose http server of discord bot under firewall 2021-12-26 02:56:28 +01:00
marc dc85a0b53a tmate unix sock at /var/run/tmate.sock 2021-12-25 19:55:25 +01:00
marc 4860f6702e no environment variables when build the image 2021-12-24 23:56:27 +01:00
marc ae8f306f31 bye useless stack.yml 2021-12-21 22:30:31 +01:00
marc 169d0c4215 no-new-privileges:true 2021-12-20 02:19:15 +01:00
marc 539286bd2a why 2021-12-13 03:04:04 +01:00
marc 23f48c7925 added Caddyfile the right way 2021-12-13 02:22:14 +01:00
marc 858e3aa61b commenting unused services 2021-12-13 02:11:58 +01:00
marc ccd7fd0174 bye box 2021-12-10 11:01:21 +01:00
marc cd165019c3 tmate 2021-12-10 11:00:21 +01:00
marc 2013b69228 swarm.marcpartensky.com 2021-11-29 02:26:16 +01:00
marc aca70df681 attachable? 2021-11-29 02:14:17 +01:00
marc 4a6051f9fb marcpartensky honeypot 2021-11-29 02:01:41 +01:00
marc afdd9ba7c7 tried pritunl 2021-11-29 00:06:35 +01:00
marc 826a456b00 changing entrypoint once again 2021-11-26 22:42:53 +01:00
marc 0796cbbae0 bye container names that do not work in swarm 2021-11-22 23:43:30 +01:00
marc 4c8ead53c0 pandoc listens everywhere 2021-11-22 23:35:24 +01:00
marc 033b2886b7 wtf pritunl 2021-11-22 23:29:49 +01:00
marc 70c7613c89 focalboard 8000 2021-11-22 22:38:07 +01:00
marc 6480448695 valid confi 2021-11-22 22:34:03 +01:00
marc 0e50b6e2e4 pritunl 2021-11-22 22:10:18 +01:00
marc 0fbb10c358 other pritunl image 2021-11-22 22:07:19 +01:00
marc b89c87f5ca apt + focalboard 2021-11-22 18:31:27 +01:00
marc af183492cc focalboard not freeboard 2021-11-22 18:29:45 +01:00
marc 94bd257229 freeboard 2021-11-22 18:12:23 +01:00
marc 1f4bfa6c93 bye space 2021-11-21 20:34:12 +01:00
marc eca03e6a44 apt-repo-server 2021-11-21 20:33:09 +01:00
marc 5f33716038 tmatedb 2021-11-19 09:37:38 +01:00
marc e3ed13ce56 tmate network 2021-11-19 09:37:21 +01:00
marc 00fdcae63e pritunl docker-compose 2021-11-19 09:36:46 +01:00
marc 3e314c4bce salut 2021-11-15 20:17:41 +01:00
marc 063efcb3f4 tmate config 2021-11-15 09:54:57 +01:00
marc 2a13935c6c pritunl is sys admin 2021-11-15 02:05:22 +01:00
marc 8f94c1a6a9 healthcheck 2021-11-15 01:25:09 +01:00
marc 22dee54811 all interfaces 2021-11-15 01:21:27 +01:00
marc 61a7a19134 trying command 2021-11-15 01:17:59 +01:00
marc 7d0bba67fe forgot networks 2021-11-15 01:05:16 +01:00
marc 6eb04e91ab do not expose for no reason 2021-11-15 00:59:11 +01:00
marc 171de689f6 makefile 2021-11-15 00:57:41 +01:00
marc a1e68dc934 nextcloud maria volume 2021-11-15 00:52:48 +01:00
marc 494d54063f ambiance theme 2021-11-15 00:48:01 +01:00
marc 018530f679 no var 2021-11-15 00:43:21 +01:00
marc c73293f16b mongo 2021-11-15 00:42:25 +01:00
marc c348a88f62 ok 2021-11-15 00:38:26 +01:00
marc 8fc82a7b74 mongo 2021-11-15 00:02:37 +01:00
marc a0c23a1092 tmate 2021-11-14 23:57:17 +01:00
marc 99a9247762 registry auth 2021-11-14 23:42:36 +01:00
marc 16183075b7 really trying to make tmate work 2021-11-14 23:42:22 +01:00
marc c59b41d3f5 has no websocket 2021-11-14 23:36:43 +01:00
marc 32db73808a dockercompose 2021-11-14 23:29:51 +01:00
marc bdb96a80ba trying updated image 2021-11-14 23:21:21 +01:00
marc cd3a22debd trying again 2021-11-14 23:12:01 +01:00
marc c87f67e793 cap sys admin 2021-11-14 23:00:35 +01:00
marc c8c2cb1cee behind proxy 2021-11-14 22:50:12 +01:00
marc 19809e0021 bye the prod 2021-11-14 22:21:08 +01:00
marc 1b4125b99e tmate config done 2021-11-14 22:14:45 +01:00
marc 3cf65f4cb0 executable 2021-11-14 22:10:13 +01:00
marc 5f2bf2a53c tmate create keys 2021-11-14 22:09:53 +01:00
marc 5f697ef42e fix mistake 2021-11-14 21:45:28 +01:00
marc e879c7578d bye jenkins data 2021-11-14 21:35:21 +01:00
marc 27065fbe1d bye website entrypoint 2021-11-14 21:05:04 +01:00
marc 36c64662a5 deploy the stack 2021-11-14 20:59:29 +01:00
marc d92b35ea90 dockerfile 2021-11-14 14:53:14 -05:00
marc 71000c15f1 gitlabci 2021-11-14 20:39:57 +01:00
marc d3ce961559 wordpress arnaud volume 2021-11-14 14:27:26 -05:00
marc 35cb844733 wordpress business 2021-11-14 14:26:25 -05:00
marc d885f72a03 mongo server more precise 2021-11-14 20:23:44 +01:00
marc 771db07cc9 elasticsearch 2021-11-14 14:20:08 -05:00
marc de721af6f8 mongo express 2021-11-14 20:17:17 +01:00
marc 5cec195f09 postgres 2021-11-14 20:13:58 +01:00
marc bb32275e20 bye wordpress alex 2021-11-14 19:45:51 +01:00
marc 95654eee43 string 2021-11-14 18:48:07 +01:00
marc 66f1a8b905 not signign 2021-11-14 18:46:46 +01:00
marc d71493bef8 wordpres changed 2021-11-14 17:51:13 +01:00
marc 7f06554109 vps.yml 2021-11-14 17:50:44 +01:00
marc 02934a9714 done getting rid of bind mounts 2021-11-14 11:30:54 -05:00
marc 45d920c278 lots of changes 2021-11-14 11:30:54 -05:00
marc f4485e65d9 pritunl_zero 2021-11-12 18:09:46 +01:00
marc a554348ebb ankharak 2021-11-06 22:31:23 +01:00
marc 78ecce7dda messing with ports and privileges 2021-11-06 13:46:37 +01:00
marc bb8d154a1e pritunl config that works 2021-11-05 12:24:05 +01:00
marc 13339764b2 swarmpit 2021-11-04 23:01:25 +01:00
marc 2afcb256d1 deploy command in makefile 2021-11-03 15:11:10 +01:00
marc 9b60b1ebf0 novnc volume 2021-10-29 03:23:13 -04:00
marc b8ec47be56 commenting ialab + gitlab because too expensive in cpu and ram usage 2021-10-27 10:47:28 +02:00
marc f67a6e1857 website entrypoint.sh 2021-10-25 18:22:13 +02:00
marc 9423988512 adding networks to vps.yml 2021-10-23 12:56:24 +02:00
marc 4df0caebd8 no bind_mounts true volume 2021-10-23 02:18:45 +02:00
marc 947b1656ae trying to fix vps stack 2021-10-23 01:24:28 +02:00
marc cd62d7915d tower.yml 2021-10-22 15:53:37 -04:00
marc 829e2c63e4 lighter vps conf 2021-10-22 21:51:43 +02:00
marc f4c02b1af1 novnc 2021-10-22 13:26:04 -04:00
marc 97cb705e3d deleted searx data 2021-10-22 12:53:11 +02:00
marc b3d1b43590 new secret key 2021-10-21 19:47:56 +02:00
marc 2a86d7500d vps.yml 2021-10-21 19:37:42 +02:00
marc 2c1a3697bd bye container_name 2021-10-20 13:45:13 +02:00
marc d6269e7941 gitlabing the gitlab 2021-10-20 13:39:22 +02:00
marc 13fefd3bf2 reverse proxy to true 2021-10-20 13:35:47 +02:00
marc c51cf9cbb5 adding first gitlab config 2021-10-17 10:03:51 -04:00
marc 39316455dd tmating some tmate 2021-10-17 08:57:42 -04:00
marc 47f869c2ef working pritunl config for vps 2021-10-14 14:41:48 +02:00
marc 87096a131e changed port to compatible ones pritunl 2021-10-14 13:19:06 +02:00
marc a8d7cdb11d added port 443 2021-10-11 07:48:31 -04:00
marc 9f1a21a08a dépannage d'anaelle 2021-10-09 22:25:32 +02:00
marc f68d8ab1a8 pritunl 80 2021-10-09 16:24:14 -04:00
marc b58264aaba pritunl 2021-10-09 16:01:57 -04:00
marc 63b497df1c phpmyadmin alex 2021-10-08 02:19:30 +02:00
marc f8469174b0 dc ps 2021-10-08 00:31:37 +02:00
marc 3413e11e6f opening port 3000 2021-10-02 10:09:45 -04:00
marc f692355653 trying to change ssh keys path 2021-10-02 09:20:38 -04:00
marc 5875bc7284 changed port 2021-10-02 08:59:28 -04:00
marc 6477ecac9b no links 2021-09-29 10:36:51 +02:00
marc 8bf29de4d1 added volume and port to discord bot even though port sharing is temporary 2021-09-15 18:24:14 +02:00
marc 43e7e4486c trying to setup nextcloud 2021-09-14 22:55:24 +02:00
marc 2e53d25462 fix nextcloud volumes 2021-09-01 15:29:47 +02:00
marc f4f0e2807e valid nextcloud config 2021-09-01 15:28:14 +02:00
marc 18188f7047 nextcloud with hidrive volume 2021-09-01 15:27:35 +02:00
marc 225088ecb0 trying to migrate to one mysql database 2021-09-01 15:17:28 +02:00
marc 1b5ccb86e2 logging caddy 2021-08-22 22:42:57 +02:00
marc e7b485c0e9 updated gitea 2021-08-22 20:28:43 +02:00
marc 884f7fd1b5 links docker api 2021-08-22 14:08:54 +00:00
marc bd09144ae8 cleaned 2021-08-22 14:06:52 +00:00
marc 0986a544be using /root instead of /root 2021-08-22 13:55:53 +00:00
marc 6653823fa5 tried to fix things for kompose 2021-08-22 13:46:52 +00:00
marc 83bcaeeebf no esclave 2 2021-08-22 12:45:36 +00:00
marc 7f217a03f1 mounting mcvnc_usr 2021-08-20 13:07:07 +02:00
marc 2df1fd1523 fixed minecraft aventure 2021-08-20 12:41:39 +02:00
marc bf73c033be minecraft aventure 2021-08-20 12:36:19 +02:00
marc c28bb5e784 trying to use registries 2021-08-14 21:15:01 +00:00
marc 26cba7455c no pipfile or requirements.txt 2021-08-14 16:13:56 +02:00
marc b439d91d0e updated requirements.txt to pipfile.lock 2021-08-14 14:09:44 +00:00
marc 82de650b79 enabling snooper to disable telemetry 2021-08-14 16:02:49 +02:00
marc 45aedd9b18 mcmyadmin 2021-08-09 21:11:12 +02:00
marc f247d44230 updated caddy 2021-08-09 11:47:48 +00:00
marc fda4e23f56 different bind mount for 1.17 2021-08-09 00:08:57 +02:00
marc 006d03d73b minecraft 2 worlds 2021-08-08 23:58:36 +02:00
marc d978697dad bind mounts 2021-08-08 21:06:41 +02:00
marc 62684f48ab valentin.marcpartensky.com 2021-08-05 21:24:47 +00:00
marc acf8946506 openldap 2021-08-04 15:18:01 +00:00
marc 56d184abd6 ram usage from 2g to 1g for minecraft server 2021-08-04 00:22:20 +00:00
marc 35ea64604f wordpress arnaud 2021-08-03 23:39:53 +00:00
marc 1c99af96d5 website dev 2021-08-03 12:38:10 +00:00
marc 0e2d47097f not init-letsencrypt.sh 2021-08-02 01:52:20 +00:00
marc 0461e0c08c giving more build context to todolist containers 2021-08-01 23:58:51 +00:00
marc 5a10741a91 exporting data.tgz.gpg 2021-08-01 22:40:18 +00:00
marc 948d189305 ssh honeypot 2021-08-01 22:26:36 +00:00
marc 4ea3335b19 thai wara 2021-08-01 21:21:50 +00:00
marc 2af6a89315 using caddy as reverse proxy cuz it does not fail me 2021-08-01 16:34:25 +00:00
marc 0bdaa05577 no caddy cuz it does not work 2021-07-31 13:09:16 +00:00
marc e46bce5f85 trying to deploy docker registry 2021-07-27 11:43:07 +00:00
marc 817961dcf4 samy.github.io 2021-07-26 22:50:42 +00:00
marc c9252e9813 fixed gitea 2021-07-26 16:43:39 +00:00
marc 721dc5e924 fixed prometheus 2021-07-26 16:42:16 +00:00
marc b45e5e2df7 docker_data gpg 2021-07-26 16:29:51 +00:00
marc 92a6cdea42 using default network 2021-07-26 16:26:30 +00:00
marc a0e17b5834 oxivia business 2021-07-25 19:41:36 +00:00
marc 861d1fca09 mailserver 2021-07-25 01:41:54 +00:00
marc 770054a038 pandoc works again 2021-07-24 23:56:45 +00:00
marc 180943f4c5 trying some mailservers 2021-07-24 23:27:04 +00:00
marc fd01d5f787 traefik 2021-07-23 21:30:20 +00:00
marc 74b52adfdf schtroumpfix env 2021-07-19 20:17:48 +00:00
marc 6a0aedd1e5 image schtroumpfix 2021-07-19 20:11:03 +00:00
marc d80b0fba88 schtroumpfix 2021-07-19 20:10:32 +00:00
marc cf7d0ebd33 cleaned website config 2021-07-19 18:53:47 +00:00
marc a7cf9cc25b enabled http to https redirect 2021-07-19 12:00:26 +00:00
marc 81c7ff173a vnc 2021-07-19 02:55:12 +00:00
marc f3013f0ef8 updated readme links 2021-07-19 02:45:55 +00:00
marc a6a6ae6a5e docker api 2021-07-19 02:41:47 +00:00
marc 6e554926dc configured traefik for reverse proxy 2021-07-19 02:38:01 +00:00
marc b619989563 working caddy config 2021-07-19 00:58:13 +00:00
marc f506d48223 caddy proxy config that works 2021-07-19 00:38:19 +00:00
marc f869f5dbe3 updated reverse proxy from nginx-proxy to caddy-proxy 2021-07-17 16:51:36 +00:00
marc 0d93de311e tried to use traefik as reverse proxy but giving up and using nginx-proxy instead 2021-07-17 08:51:36 +00:00
marc dd7dc76c26 pihole soon 2021-07-02 18:55:46 +00:00
marc f38959bd46 wordpress for marc and alex 2021-06-20 13:11:18 +00:00
marc 183975e3cd exposing healingpath db 2021-06-18 08:37:36 +00:00
marc 87d2a0e1ef pihole 2021-06-12 00:52:14 +02:00
marc d1f4146564 commenting 2021-06-08 20:37:13 +02:00
marc 6359bbd88d changed jenkins jar location 2021-05-31 12:32:02 +00:00
marc b2840b342f changed root location 2021-05-31 12:30:00 +00:00
marc 883a045614 fixed jetodoapp 2021-05-26 03:42:21 +02:00
marc 08e064c1eb no leopold 2 2021-05-26 03:37:56 +02:00
marc ca33b0271c no leopold 2021-05-26 03:31:42 +02:00
marc ce94faa458 changing root to be home 2021-05-25 20:06:59 +02:00
marc c7b8e0659d trying centos 2021-05-25 18:09:18 +02:00
marc 74d775d7d6 added makefile 2021-05-25 16:08:56 +00:00
marc c18442e45c makefile 2021-05-25 16:06:13 +00:00
marc ed8436505a vnc conf 2021-05-25 01:03:38 +00:00
marc af3c127a81 vnc conf 2021-05-25 01:03:10 +00:00
marc 14f79d54de merge 2021-05-24 22:52:11 +00:00
marc 2d615e67c7 ignoring openvpn ovpn files 2021-05-22 11:24:23 +00:00
marc 32584a96da poiret 2021-05-01 17:52:34 +00:00
marc 46643abc4f poiret docker-compose 2021-04-27 22:12:19 +00:00
marc 2e0aa3d6dd Merge branch 'main' into poiret 2021-04-27 22:08:44 +00:00
marc 098ee388d2 poiret 2021-04-27 21:11:48 +00:00
57 changed files with 6687 additions and 941 deletions
+5
View File
@@ -0,0 +1,5 @@
patreon: marcpartensky
github: marcpartensky
custom:
# - monero:43J2XmRtjDPRLD35UsYGH2AZamFBQz7dt4VdvZXVm3SuadTrvcoXUXBRUNHqukFte23Q5TWXqhbwaLJJgoVQzzbe2AJDANQ
- https://paypal.me/marcpartensky
+20
View File
@@ -0,0 +1,20 @@
name: Docker Swarm Deployed
on:
push:
branches:
- master
tags:
- v*
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Update
run: apt-get update
- name: Install ssh
run: apt-get install openssh-client -y
- name: Setup ssh agent
run: eval $(ssh-agent -s) && ssh-add <(echo $SSH_PRIVATE_KEY)
- name: Deploy to Docker swarm
run: ssh -o StrictHostKeyChecking=no $SSH_REMOTE docker swarm deploy -c vps.yml vps
+12 -3
View File
@@ -1,3 +1,12 @@
data/secrets/
data/certbot/
data/traefik/
docker-compose.yml
data/openvpn
data/secrets
data/certbot
data/traefik
data/searx
data/jenkins
data/beef
data/tmate/keys
data/mx-puppet-discord
data/matrix
data.tar.gz
+18
View File
@@ -0,0 +1,18 @@
image: docker:stable
stages:
- deploy
services:
- docker:dind
before_script:
- apk update
- apk add py-pip python3-dev libffi-dev openssl-dev gcc libc-dev make
- pip install docker-compose
deploy_app:
stage: deploy
script:
- docker-compose down
- docker-compose up -d
+11
View File
@@ -0,0 +1,11 @@
FROM docker:dood
# RUN curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# RUN chmod +x /usr/local/bin/docker-compose
COPY docker-compose.yml docker-compose.yml
COPY vps.yml vps.yml
RUN docker stack deploy -c vps.yml vps
ENTRYPOINT ["docker"]
CMD ["service", "ls"]
+14
View File
@@ -0,0 +1,14 @@
compose:
cat ./env/vps.txt | xargs ./bin/docker-setup.sh
swarm:
cat ./env/vps.txt | STACK=vps xargs ./bin/docker-setup.sh
merge:
./bin/setup.sh merge vps
down:
docker stack rm vps
export:
tar cvzf data.tgz data
gpg --encrypt --recipient 'marc.partensky@gmail.com' data.tgz
rm data.tgz
network:
docker network create --driver overlay --attachable caddy
+20 -11
View File
@@ -1,8 +1,9 @@
[![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
## Domains
- https://marcpartensky.com
- https://www.marcpartensky.com
- https://pandoc.marcpartensky.com
- https://ialab.marcpartensky.com
- https://notebook.marcpartensky.com
@@ -10,20 +11,28 @@
- https://cloud.marcpartensky.com
- https://wordpress.marcpartensky.com
- https://git.marcpartensky.com
<!-- - https://dev.marcpartensky.com -->
<!-- - https://box.marcpartensky.com -->
<!-- - https://business.marcpartensky.com -->
- https://gitlab.marcpartensky.com
- https://todolist.marcpartensky.com
- https://api.todolist.marcpartensky.com
- https://uml.marcpartensky.com
- https://grafana.marcpartensky.com
- https://prometheus.marcpartensky.com
- https://swarm.marcpartensky.com
- https://auth.marcpartensky.com
<!-- - https://dns.marcpartensky.com -->
<!-- - https://glou.marcpartensky.com -->
<!-- - https://minecraft.marcpartensky.com -->
## Commands
```sh
certbot certonly -d newdomain.com -n --standalone
certbot -d domain name,subdomain.domain name,www.domain name --expand
```
## Reverse proxy
The `docker-compose.yml` configuration is compatible with the following reverse-proxies:
- traefik
- caddy
- nginx
```sh
docker exec -i docker_minecraft_1 rcon-cli
## Deploy the stack
```
docker stack deploy -c vps.yml vps
```
### Links
+47
View File
@@ -0,0 +1,47 @@
#!/bin/sh
PROJECT_PATH="$PROGRAMS_PATH/docker"
export COMPOSE_PATH_SEPARATOR=":"
export COMPOSE_FILE=$(find $PROJECT_PATH/services/*.yml | xargs -I @ echo -n @:)
export COMPOSE_FILE=${COMPOSE_FILE::-1}
if [ "$1" = "-f" ]
then
docker-compose --file $@
exit
fi
if [ -f $PWD/docker-compose.yml ]
then
if [ "$#" = 0 ]
then
docker-compose ps
exit
fi
docker-compose --file $PWD/docker-compose.yml $@
exit
fi
if [ "$#" = 0 ]
then
docker-compose ps
exit
fi
docker-compose $@
if [ "$1" = "up" ]
then
if [ "$2" = "-d" ]
then
docker-compose logs -f ${@: 3}
else
docker-compose logs -f ${@: 2}
fi
elif [ "$1" = "start" ]
then
docker-compose logs -f ${@: 2}
elif [ "$1" = "restart" ]
then
docker-compose logs -f ${@: 2}
fi
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env python
import sys
import yaml
import collections.abc
def update(d, u):
for k, v in u.items():
if isinstance(v, collections.abc.Mapping):
d[k] = update(d.get(k, {}), v)
else:
d[k] = v
return d
d = {}
for file in sys.argv[1:]:
with open(file, "r") as stream:
di = yaml.safe_load(stream)
d = update(d, di)
print(yaml.safe_dump(d))
+35
View File
@@ -0,0 +1,35 @@
#!/bin/sh
if [ $1 = merge ]
then
cat ./env/$2.txt | xargs -I @ echo ./services/@.yml | xargs ./bin/merge.py > ./stacks/docker-compose.yml
# export COMPOSE_FILE="$PWD/../docker-compose.yml"
exit
fi
if [ -z $STACK ]
then
sep="-f"
else
sep="-c"
fi
services=$@
config_files() {
for service in $services
do
echo -n "$sep services/$service.yml "
done
}
if [ -z $STACK ]
then
cmd="docker compose $(config_files) up -d"
else
cmd="docker stack deploy $(config_files) $STACK"
fi
echo $cmd
eval $cmd
-18
View File
@@ -1,18 +0,0 @@
FROM ubuntu:latest
# Escape from here if you can
RUN apt-get update
RUN apt-get install -y openssh-server neovim
RUN service ssh start
# RUN useradd $NAME -p $PASSWORD
# need to:
# nvim /etc/ssh/sshd_config
# service ssh restart
# docker run -it -p 7022:7022 --name box marcpartensky/box
# maybe change guest passwd
EXPOSE 22
-47
View File
@@ -1,47 +0,0 @@
version: "3.9"
services:
marc:
image: marcpartensky/dotfiles
build:
context: /root/git/dotfiles
networks:
- box
stdin_open: true
tty: true
samy:
# image: marcpartensky/box
build:
context: .
dockerfile: Dockerfile
networks:
- box
etienne:
# image: marcpartensky/box
build:
context: .
dockerfile: Dockerfile
networks:
- box
stdin_open: true
tty: true
valentin:
# image: marcpartensky/box
build:
context: .
dockerfile: Dockerfile
networks:
- box
alexandre:
# image: marcpartensky/box
build:
context: .
dockerfile: Dockerfile
networks:
- box
networks:
box:
+1
View File
@@ -0,0 +1 @@
mail._domainkey.marcpartensky.com marcpartensky.com:mail:/etc/opendkim/keys/marcpartensky.com/mail.private
+1
View File
@@ -0,0 +1 @@
*@marcpartensky.com mail._domainkey.marcpartensky.com
+2
View File
@@ -0,0 +1,2 @@
127.0.0.1
localhost
@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsiv
U7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LV
GfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8
KQh5gyAdvokbnmq+r9VqOyiFbZ03JzyW+RPMTQxMu2kid+KH336/j5Tvza8ITN3v
qZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBt
IXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYS
obuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4r
WQ85kKcQYfl60FyReCKrrBGiFi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyr
OyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywq
tqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4Qsyxp
PTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEA
AQKCAgBUDv7kYjnomvY2V0+5W4ow2g3blr46U3MMR9h6LYTcMhthVgcEUvs1v8R2
RYXsN50a9I8kMHaIqy5Y4BmDljd9hiZGhcGTSiTlU/3Rqzu6OU+JbRmDlsmJIjYD
Yl8zEisc+/XuUSWh01CYtniitMQenh3e/rBQoDiXSSIsqETVmNgRVsUB99mdDUnM
Nb0G91cILj3v4W1Zr7Pyj5XpW4omiJ5gaFTdQQ2VDDeWxOkrX5QM9sri3CVx88Uv
SCC62Nbqz9ySg5Yv2k1UGTs52fQC1UogLQMfLWI0WHU6d5ClFwI5Jkfq5soH9uH9
CkK1ijoG6n+k+a01qTLq7Nq09uj+s6T0BFb6703ZATVxdTNxc3xaFcYm9ZpuDnCr
U8P6sVClCa9axjMZk1Kjl7OKSyp8LlRWPacxO4GXqlNmhyMUEldKj8cBmmxzC7fj
1fMXAve3EodVRM5Z6S+c/PO96TuJrSkddImWhPawd35/rrtBA+7ToPNYzy7aWk/N
UZ9uFkwPMLaDZeRG590natPOUkB0FZ7F8EEjwMbUhf1iyoPvLPiixofVk1NKTWMr
8DEN6bSH85v/lQaAQhmFFNRjdeyXts9+a7Kmsxos3AfW8hsmNHFxTuoXZ8AjvVAs
P7hlPFoJultoUwX/ZpMZtsEwFW3FUSw33Onsdblezp7Lb12icQKCAQEAzVKid6vv
TWGltBkL1XTtzYSNUTBIZfoOjKxTsrqSKNAR6i2lmN2bPKKTksPdloBoaQ/FHK6R
/+mebfgmnyulY6zWo8EUewi3LFyL9KhXe0K38/jUUokKWSq1Ob5D8Kjq6MuTCfuS
M5XnYfIZuIAZLE0244+Q8L03mc2f7uvl3KWaAZOVUsfHu/ETzTm6lgG8Liq5a0Fw
thCVVupKVeSLjRa/RWFVR9E9jvIjplo+SVAUJWyYwlOfPDVr76gqrF5P+4lOQpAQ
dzwhi4LHhvdgp9Y/Gw3s5vByA/7Ogh3QI5jS36w2EMCFYZpAe4HBQk1UOYVNBpeD
58m3venG5pBy4wKCAQEAyxglzQhZSBNkkukoRm7zzmNAx9/M0ROu7uwmJ9t02Q94
/3fpV2zVYA7rQKZcCgW5Dnhe4GaeyASRXq4x3v7F6iLCUjxbJ8e+YRhsNrp0WmYU
Xk6+06EQgLBICqDQeMDDeR+KQzaJonuMSrGyUb8krR6RB+/W3LqK/0CQSSaHozzN
6mxejoFoNhf7rfIP9JJD8QwpBsTJBQNCDvHo1lIA8e3nTngFzLJ56tRVwjaP8EPT
qJ7RfoVxdTyUTZTq/8EGOqNrzLgB/FehXq3eTz89tdlHOTT+mJ8H23AEtepxpLFx
5kN/eisi4PjUgCp11IHnmG8qnJr48uDlORdrqL424wKCAQBX/DVK+w7NJi8QAjuj
+Tt+enLke8BKkuFxPtePG4xOmPtUUsNHwo8naLO8jNqEB/q2Kt/Y7qX5+G6/yTsj
slxpXkOMYM0Z/B4ikHYZHZp/Y5PYpKS3yan5k+edGv+aPYiMwc/80yVPnclNm6WR
/rLK3TvMQFVoFG2jJw6GH+icqQpZ6phupNXen+xQYZCnf47Yac6TO7PFEU4ttLCu
JgX3K+xDGvakk/HBM9o7Cyjt2bcIYoUDoTn3Xx0l0faXbsLvk2NJ+tpTfh0R37UJ
DTEKOzFHsqv2OsthEuwDrirnVjHnT7DLdPSzYpqHUo8yjlitXYYocP1BcpuecnOd
kgDpAoIBAQCtLi4to8zeFQtR6teZF8t2VlRLG5+/ORWWTnBK1GvTG8qFrW6gSgG5
I3+fZTxen3qpyCK/H0KONLbxEYEdMgr6GCGzlhv00/KXQQglsuC8pQcBVAyM0W8N
DUShK3gZP+ZvRmHT5pF+p/N9TgFMi71ukf4B0pZZKgiUmC1w8xX+MD82gqouwlJm
rhTCwwKv/nlI9qGVUABJ8flGXSm6d7qukbsHwnjPj/E+OUnXjkc3Dd9Sjfr99DRH
UBz1+uJYq/Pv1KJ7svyefOrxnTlQQhERG/IL6hCffBxrFh4uMXgug9EoFK6DMn1P
cV9i2tIXH56o8UJYwB1Anl1YTYxUG78ZAoIBAD748NDDIj5yxjzW7UzNajLs9iB2
aiywcxPZCKo38Yi7KIaxIy8YeHqJ6chenvTl5S4ElB+sJ0SnYEvBqxceOXiM9l5i
HrDxIc3gzwY0lN0h2ZEiSKBQgjCtFW6gZ+6KmPonk98S8l8hbFW0vL+nS4EE9vtO
3cFhz/HPVB1ZY5ofy7/rLRd7GiISof9WcvrnOvE9BKFF0rNKZUjrf2PM3c2rObvj
5rgLvUiX/Mn9ND/XHTjT/UVptmkmcnjFyRvQwXXA4ns7gxBWYfYB1bqwh6WRfEU6
x3ykDol24hgohvpEnKMZDUTmLrxgF8hbJTP/57P2Yyy0faxZ/z/MER1qy28=
-----END RSA PRIVATE KEY-----
@@ -0,0 +1,4 @@
mail._domainkey IN TXT ( "v=DKIM1; h=sha256; k=rsa; "
"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAouPk5YPodxb41YBVY4xdeJGRCzUXSrVYUZc2ukE2HqIqWsivU7vPgBFlclBzMMJVdrt/NAt3NnulzWyQg6V+A8wSYkCNpevGlsp2TvkL8Mcuf1LVGfNScjycJ8nC8LhRgHZZJ876yM97mEK+J4X4k8X1/IWzwUSmOOAB3EpfuQLMVQL8KQh5gyAdvokbnmq+r9VqOyiFbZ03Jz"
"yW+RPMTQxMu2kid+KH336/j5Tvza8ITN3vqZRVfZJjJzCJHvx4iKpWy2iOFxNThlUTbnZ93xFEA+36s+pU2hT22RGN8qzSQFBtIXKEqyNJ4KoJ/X53ukYc4ZSmpRAz/PhxX9eIgurUwKXrSwX5127+eCIanRT4aMYSobuue7IGlHixNI4dmZW4H0kMs5MwDItYzNQfmsv7HDjkfsRhBlFpV5LMES1g4L4rWQ85kKcQYfl60FyReCKrrBGi"
"Fi9H8iEK5gDIgOFJ37qNa3yLolll31YdkhONsFyrOyGrEAcCzRHOa9jq9KEa5p8QyRekG75aGEfGlRMntkM1KAhdyjuyixle3I7SYywqtqJfjAButWJdvhuPf1jWmqzs97AoJZb2mYzgP/ur9sqHR8EBJ8HN9thRgf4QsyxpPTO9tOU+4GtT9YSVSGjXHQ0SnPDAj8YxjOql5RDalmiP91NmAeGUfCbLwUkCAwEAAQ==" ) ; ----- DKIM key mail for marcpartensky.com
+1
View File
@@ -0,0 +1 @@
marc@marcpartensky.com|{SHA512-CRYPT}$6$G1SLI/9La3kXrkrt$9MdkaLuUEoa2n8mVVZoCwmy0g6MrvlHDL0i2FVrUakAXi3pgPfo/HNz/mLWRFS6nG1oOeP8IMbTGM.JptPR../
+16
View File
@@ -0,0 +1,16 @@
# first caddyfile
test.marcpartensky.com {
redir https://caddyserver.com/docs/caddyfile/patterns
}
authent.marcpartensky.com {
reverse_proxy authentik:9443 {
tls internal
}
}
# healthcheck
# :8080 {
# status 200 /
# }
+5
View File
@@ -0,0 +1,5 @@
# Please restart ClamAV after changing signatures
Example-Signature.Ignore-1
PUA.Win.Trojan.EmbeddedPDF-1
PUA.Pdf.Trojan.EmbeddedJavaScript-1
PUA.Pdf.Trojan.OpenActionObjectwithJavascript-1
+173
View File
@@ -0,0 +1,173 @@
# vim:ft=yaml
## TLS ##
# {% if not SYNAPSE_NO_TLS %}
# tls_certificate_path: "/data/{{ SYNAPSE_SERVER_NAME }}.tls.crt"
# tls_private_key_path: "/data/{{ SYNAPSE_SERVER_NAME }}.tls.key"
# {% endif %}
## Server ##
server_name: "matrix.marcpartensky.com"
pid_file: /homeserver.pid
web_client: False
soft_file_limit: 0
# log_config: "{{ SYNAPSE_LOG_CONFIG }}"
## Ports ##
listeners:
# Allow configuring in case we want to reverse proxy 8008
# using another process in the same container
- port: 8008
tls: false
bind_addresses: ['::']
type: http
x_forwarded: false
resources:
- names: [client]
compress: true
- names: [federation]
compress: false
## Database ##
# {% if POSTGRES_PASSWORD %}
# database:
# name: "psycopg2"
# args:
# user: "{{ POSTGRES_USER or "synapse" }}"
# password: "{{ POSTGRES_PASSWORD }}"
# database: "{{ POSTGRES_DB or "synapse" }}"
# host: "{{ POSTGRES_HOST or "db" }}"
# port: "{{ POSTGRES_PORT or "5432" }}"
# cp_min: 5
# cp_max: 10
# {% else %}
# database:
# name: "sqlite3"
# args:
# database: "/data/homeserver.db"
# {% endif %}
## Performance ##
event_cache_size: "10K"
## Ratelimiting ##
rc_messages_per_second: 0.2
rc_message_burst_count: 10.0
federation_rc_window_size: 1000
federation_rc_sleep_limit: 10
federation_rc_sleep_delay: 500
federation_rc_reject_limit: 50
federation_rc_concurrent: 3
## Files ##
media_store_path: "/data/media"
max_upload_size: "50M"
max_image_pixels: "32M"
dynamic_thumbnails: false
# List of thumbnail to precalculate when an image is uploaded.
thumbnail_sizes:
- width: 32
height: 32
method: crop
- width: 96
height: 96
method: crop
- width: 320
height: 240
method: scale
- width: 640
height: 480
method: scale
- width: 800
height: 600
method: scale
url_preview_enabled: False
max_spider_size: "10M"
## Captcha ##
# {% if SYNAPSE_RECAPTCHA_PUBLIC_KEY %}
# recaptcha_public_key: "{{ SYNAPSE_RECAPTCHA_PUBLIC_KEY }}"
# recaptcha_private_key: "{{ SYNAPSE_RECAPTCHA_PRIVATE_KEY }}"
# enable_registration_captcha: True
# recaptcha_siteverify_api: "https://www.google.com/recaptcha/api/siteverify"
# {% else %}
# recaptcha_public_key: "YOUR_PUBLIC_KEY"
# recaptcha_private_key: "YOUR_PRIVATE_KEY"
enable_registration_captcha: False
recaptcha_siteverify_api: "https://www.google.com/recaptcha/api/siteverify"
# {% endif %}
## Turn ##
# {% if SYNAPSE_TURN_URIS %}
# turn_uris:
# {% for uri in SYNAPSE_TURN_URIS.split(',') %} - "{{ uri }}"
# {% endfor %}
# turn_shared_secret: "{{ SYNAPSE_TURN_SECRET }}"
# turn_user_lifetime: "1h"
# turn_allow_guests: True
# {% else %}
turn_uris: []
turn_shared_secret: "marcsecret"
turn_user_lifetime: "1h"
turn_allow_guests: True
# {% endif %}
## Registration ##
enable_registration: "True"
registration_shared_secret: "marcregistrationsecret"
bcrypt_rounds: 12
allow_guest_access: "True"
enable_group_creation: true
## Metrics ###
# {% if SYNAPSE_REPORT_STATS.lower() == "yes" %}
# enable_metrics: True
# report_stats: True
# {% else %}
enable_metrics: False
report_stats: False
# {% endif %}
## API Configuration ##
# {% if SYNAPSE_APPSERVICES %}
app_service_config_files:
- "discord-registration.yaml"
# {% for appservice in SYNAPSE_APPSERVICES %} - "{{ appservice }}"
# {% endfor %}
# {% endif %}
macaroon_secret_key: "marcmacaronsecret"
expire_access_token: False
## Signing Keys ##
# signing_key_path: "/data/matrix.marcpartensky.com.signing.key"
old_signing_keys: {}
key_refresh_interval: "1d" # 1 Day.
# The trusted servers to download signing keys from.
trusted_key_servers:
- server_name: matrix.org
verify_keys:
"ed25519:auto": "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw"
password_config:
enabled: true
+16
View File
@@ -0,0 +1,16 @@
server {
listen 25565;
server_name mc.marcpartensky.com;
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location / {
proxy_pass http://marcpartensky.com:7065;
# proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
+30
View File
@@ -0,0 +1,30 @@
server {
listen 443 ssl http2;
server_name ialab.marcpartensky.com;
# ssl keys + letsencrypt
ssl_certificate /etc/letsencrypt/live/ialab.marcpartensky.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ialab.marcpartensky.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# logs
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
proxy_pass http://ialab;
# proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
+30
View File
@@ -0,0 +1,30 @@
server {
listen 443 ssl http2;
server_name poiret.marcpartensky.com;
# ssl keys + letsencrypt
ssl_certificate /etc/letsencrypt/live/poiret.marcpartensky.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/poiret.marcpartensky.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# logs
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
proxy_pass http://poiret:8000;
# proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
+30
View File
@@ -0,0 +1,30 @@
server {
listen 443 ssl http2;
server_name vnc.marcpartensky.com;
# ssl keys + letsencrypt
ssl_certificate /etc/letsencrypt/live/vnc.marcpartensky.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vnc.marcpartensky.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# logs
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
proxy_pass http://vnc:6901;
# proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
+30
View File
@@ -0,0 +1,30 @@
server {
listen 443 ssl http2;
server_name alex.wp.marcpartensky.com;
# ssl keys + letsencrypt
ssl_certificate /etc/letsencrypt/live/alex.wp.marcpartensky.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/alex.wp.marcpartensky.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# logs
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
proxy_pass http://wordpress_alex;
# proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
+30
View File
@@ -0,0 +1,30 @@
server {
listen 443 ssl http2;
server_name marc.wp.marcpartensky.com;
# ssl keys + letsencrypt
ssl_certificate /etc/letsencrypt/live/marc.wp.marcpartensky.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/marc.wp.marcpartensky.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# logs
access_log /var/log/nginx/reverse-access.log;
error_log /var/log/nginx/reverse-error.log;
location /.well-known/acme-challenge/ {
allow all;
root /var/www/certbot;
}
location / {
proxy_pass http://wordpress_marc;
# proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
-1
View File
@@ -1 +0,0 @@
settings.yml
-47
View File
@@ -1,47 +0,0 @@
[uwsgi]
# Who will run the code
uid = searx
gid = searx
# Number of workers (usually CPU count)
workers = 4
# The right granted on the created socket
chmod-socket = 666
# Plugin to use and interpretor config
single-interpreter = true
master = true
plugin = python3
lazy-apps = true
enable-threads = true
# Module to import
module = searx.webapp
# Virtualenv and python path
pythonpath = /usr/local/searx/
chdir = /usr/local/searx/searx/
# Disable logging for privacy
disable-logging=True
# But keep errors for 2 days
touch-logrotate = /run/uwsgi-logrotate
unique-cron = 15 0 -1 -1 -1 { touch /run/uwsgi-logrotate }
log-backupname = /var/log/uwsgi/uwsgi.log.1
logto = /var/log/uwsgi/uwsgi.log
# No keep alive
# See https://github.com/searx/searx-docker/issues/24
add-header = Connection: close
# uwsgi serves the static files
# expires set to one day as Flask does
static-map = /static=/usr/local/searx/searx/static
static-expires = /* 864000
static-gzip-all = True
offload-threads = %k
# Cache
cache2 = name=searxcache,items=2000,blocks=2000,blocksize=4096,bitmap=1
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/env bash
KEYS_PATH="./data/tmate/keys"
set -eu
gen_key() {
keytype=$1
ks="${keytype}_"
key="$KEYS_PATH/ssh_host_${ks}key"
if [ ! -e "${key}" ] ; then
ssh-keygen -t "${keytype}" -f "${key}" -N ''
echo ""
fi
SIG=$(ssh-keygen -l -E SHA256 -f "$key.pub" | cut -d ' ' -f 2)
}
mkdir -p $KEYS_PATH
gen_key rsa
RSA_SIG=$SIG
gen_key ed25519
ED25519_SIG=$SIG
echo "You may use the following settings this in your .tmate.conf:"
echo ""
echo "set -g tmate-server-host localhost"
echo "set -g tmate-server-port 22"
echo "set -g tmate-server-rsa-fingerprint $RSA_SIG"
echo "set -g tmate-server-ed25519-fingerprint $ED25519_SIG"
-734
View File
@@ -1,734 +0,0 @@
version: "3.9"
services:
traefik:
image: traefik
restart: unless-stopped
user: root
command:
## Provider Settings - https://docs.traefik.io/providers/docker/#provider-configuration ##
# - --providers.docker.exposedbydefault=false # <== Don't expose every container to traefik, only expose enabled ones
- --providers.file.filename=/dynamic.yaml # <== Referring to a dynamic configuration file
# - --providers.docker.network=web # <== Operate on the docker network named web
- --providers.docker=true # <== Enabling docker as the provider for traefik
## API Settings - https://docs.traefik.io/operations/api/, endpoints - https://docs.traefik.io/operations/api/#endpoints ##
- --api.insecure=true # <== Enabling insecure api, NOT RECOMMENDED FOR PRODUCTION
- --api.dashboard=true # <== Enabling the dashboard to view services, middlewares, routers, etc...
- --api.debug=true # <== Enabling additional endpoints for debugging and profiling
## Entrypoints Settings - https://docs.traefik.io/routing/entrypoints/#configuration ##
- --entrypoints.websecure.address=:443
## Certificate Settings (Let's Encrypt) - https://docs.traefik.io/https/acme/#configuration-examples ##
- --certificatesresolvers.tls.acme.tlschallenge=true # <== Enable TLS-ALPN-01 to generate and renew ACME certs
- --certificatesresolvers.tls.acme.email=marc.partensky@gmail.com # <== Setting email for certs
- --certificatesresolvers.tls.acme.storage=/letsencrypt/acme.json # <== Defining acme file to store cert information
## Log Settings (options: ERROR, DEBUG, PANIC, FATAL, WARN, INFO) - https://docs.traefik.io/observability/logs/ ##
- --log.level=DEBUG # <== Setting the level of the logs from traefik
ports:
- "8081:443"
- "8080:8080" # The Web UI (enabled by --api.insecure=true)
volumes:
- ./data/traefik/letsencrypt:/letsencrypt
- ./data/traefik/dynamic.yaml:/dynamic.yaml
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`traefik.marcpartensky.com`)"
- "traefik.http.routers.api.service=api@internal" # <== Enabling the api to be a service to access
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.tls.certresolver=tls"
whoami:
image: traefik/whoami
restart: unless-stopped
user: nobody
labels:
- "traefik.http.routers.whoami.rule=Host(`whoami.marcpartensky.com`)"
- "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.tls.certresolver=tls"
nginx:
image: nginx
restart: unless-stopped
ports:
- "80:80"
- "443:443"
# - "2222:2222"
volumes:
- ./data/nginx:/etc/nginx/conf.d
- /etc/letsencrypt:/etc/letsencrypt
- /var/log/nginx:/var/log/nginx
# - ./data/certbot/conf:/etc/letsencrypt
# - ./data/certbot/www:/var/www/certbot
# - type: bind
# source: /home/my-user/elk-stack/.htpasswd
# target: /etc/nginx/.htpasswd
command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
networks:
- nginx
- box
portainer:
image: portainer/portainer-ce
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /srv/portainer:/data
networks:
- nginx
command:
- --logo
- https://marcpartensky.com/static/home/assets/img/white-orchid.svg
labels:
- "traefik.http.routers.portainer.rule=Host(`docker.marcpartensky.com`)"
- "traefik.http.routers.portainer.entrypoints=websecure"
- "traefik.http.routers.portainer.tls.certresolver=tls"
# registry:
# restart: unless-stopped
# image: registry:latest
# ports:
# - 5000:5000
# environment:
# REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
# REGISTRY_HTTP_TLS_KEY: /certs/domain.key
# REGISTRY_AUTH: htpasswd
# REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
# REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
# volumes:
# - /path/data:/var/lib/registry
# - /path/certs:/certs
# - /path/auth:/auth
# registry:
# image: registry:latest
# restart: unless-stopped
# volumes:
# - /srv/registry:/var/lib/registry
# - "$(pwd)"/certs:/certs
# ports:
# - "5000:7000"
# environment:
# - REGISTRY_HTTP_ADDR=0.0.0.0:443 \
# - REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
# - REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
# -p 443:443
website:
image: marcpartensky/website
restart: unless-stopped
env_file:
- ./data/secrets/website.env
environment:
- DEBUG=false
# - KEY=/app/privkey.pem
# - CERT=/app/fullchain.pem
working_dir: /app
tty: true
# - ./manage.py collectstatic --noinput
entrypoint: >
sh -c "./manage.py migrate;
./manage.py createsuperuser --noinput;
daphne django_project.asgi:application --port 80 --bind 0.0.0.0 -v2"
# entrypoint: "daphne -e ssl:7000:privateKey=$$KEY:certKey=$$CERT django_project.asgi:application"
# entrypoint: daphne -b website -e ssl:443:privateKey=/app/privkey.pem:certKey=/app/fullchain.pem django_project.asgi:application
links:
- redis
- postgres
volumes:
- /srv/website/media:/app/media
networks:
- website
- nginx
depends_on:
- redis
- postgres
postgres:
image: postgres
restart: unless-stopped
volumes:
- /srv/postgres/dump:/srv/postgresql/dump
env_file:
- data/secrets/postgres.env
networks:
- website
redis:
image: redis:alpine
restart: unless-stopped
networks:
- website
# certbot:
# image: certbot/certbot
# volumes:
# - ./data/certbot/conf:/etc/letsencrypt
# - ./data/certbot/www:/var/www/certbot
# entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
# certbot_nginx:
# restart: unless-stopped
# image: staticfloat/nginx-certbot
# ports:
# - "80:80/tcp"
# - "443:443/tcp"
# environment:
# CERTBOT_EMAIL: marc.partensky@gmail.com
# # variable names are space-separated
# ENVSUBST_VARS: FQDN
# FQDN: marcpartensky.com
# volumes:
# - ./conf.d:/etc/nginx/user.conf.d:ro
# - letsencrypt:/etc/letsencrypt
esclave:
image: marcpartensky/discord-bot
restart: unless-stopped
networks:
- discord
env_file:
- ./data/secrets/esclave.env
ia:
image: marcpartensky/discord-bot
restart: unless-stopped
networks:
- discord
env_file:
- ./data/secrets/ia.env
esclave2:
image: marcpartensky/discord-bot
restart: unless-stopped
env_file:
- ./data/secrets/esclave2.env
networks:
- discord
depends_on:
- discord_bot_mongo
discord_bot_mongo:
image: mongo
restart: unless-stopped
networks:
- discord
env_file:
- ./data/secrets/discord_bot_mongo.env
docker_api:
image: marcpartensky/docker-api
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- discord
servant:
image: marcpartensky/servitor
restart: unless-stopped
pandoc:
image: marcpartensky/pandoc-api
restart: unless-stopped
working_dir: /app
env_file:
- ./data/secrets/pandoc.env
entrypoint: "flask run --host pandoc --port 80"
volumes:
- /srv/pandoc:/app
- /var/log/nginx:/var/log/nginx
networks:
- nginx
# https://github.com/itzg/docker-minecraft-server/blob/master/README.md
# minecraft_aventure:
# image: itzg/minecraft-server
# restart: always
# environment:
# - TZ=Europe/Paris
# - OPS=MazexRedstone
# - EULA=TRUE
# - ENABLE_AUTOPAUSE=TRUE
# - ENABLE_COMMAND_BLOCK=TRUE
# - MEMORY=2G
# - VERSION=1.13.2
# - ICON=https://cdn.discordapp.com/attachments/507519157387132940/816443237384454144/maxime.png
# - MOTD=Venez jouer sur le serveur de Marc Partensky. Venez! On est bien!
# - WORLD=https://download2342.mediafire.com/89adsak3r96g/xavlx2bmrypq2s0/Across+The+Time+II+-+Time+For+Regrets+%28release+1.0.4%29.zip
# # - MODS=https://www.example.com/mods/mod1.jar,https://www.example.com/mods/mod2.jar
# tty: true
# stdin_open: true
# volumes:
# - /srv/minecraft/data:/data
# ports:
# - "25565:25565"
minecraft:
image: itzg/minecraft-server
restart: unless-stopped
environment:
- TZ=Europe/Paris
- EULA=TRUE
- OPS=MazexRedstone
- ENABLE_COMMAND_BLOCK=TRUE
- MEMORY=2G
- VERSION=1.16.5
- ICON=https://cdn.discordapp.com/attachments/611251401514811392/818288635199225886/server.png
- MOTD=Venez jouer sur le serveur de Marc Partensky. Venez! On est bien!
- ANNOUNCE_PLAYER_ACHIEVEMENTS=TRUE
- LEVEL=Server
- ONLINE_MODE=FALSE # no need for an account
- DIFFICULTY=hard
- VIEW_DISTANCE=32
- GID=1002
- UID=1002
# - WORLD=/srv/minecraft/zip/Server.zip
# - SNOOPER_ENABLED=false
tty: true
stdin_open: true
volumes:
- ~/.minecraft/minecraft/data/:/data:Z
ports:
- "25565:25565"
# pterodactyl:
# restart: unless-stopped
# networks:
# - nginx
notebook:
image: jupyter/base-notebook
restart: unless-stopped
ports:
- "8888:8888"
environment:
# - GEN_CERT=yes
- JUPYTER_ENABLE_LAB=yes
- GRANT_SUDO=yes
entrypoint: start.sh jupyter lab --user root
# entrypoint: start-notebook.sh \
# --NotebookApp.keyfile=key/0000_key-certbot.pem
# --NotebookApp.certfile=cert/0000_csr-certbot.pem
# volumes:
# - /etc/letsencrypt/keys:/home/jovyan/work/key
# - /etc/letsencrypt/csr:/home/jovyan/work/cert
# - /etc/letsencrypt:/etc/letsencrypt
# env:
# image: marcpartensky/env
# ports:
# - "22:7020"
# - "8022:7021"
# volumes:
# elasticsearch:
# image: docker.elastic.co/elasticsearch/elasticsearch:7.11.1
# image: docker.elastic.co/elasticsearch/elasticsearch:latest
# image: elasticsearch:latest
# environment:
# - discovery.type=single-node
# - ES_ENABLE_SECURITY=true
# env_file:
# - ./data/secrets/elasticsearch.env
# volumes:
# - /srv/elasticsearch/data:/srv/elasticsearch/data
# # - elasticsearch:/usr/share/elasticsearch/data
# networks:
# - nginx
# - elk
# ports:
# - "9200:9200"
# - "9300:9300"
# ulimits:
# memlock:
# soft: -1
# hard: -1
# kibana:
# image: docker.elastic.co/kibana/kibana:latest
# image: kibana:latest
# ports:
# - "5601:5601"
# env_file:
# - ./data/secrets/kibana.env
# depends_on:
# - elasticsearch
# networks:
# - nginx
ialab:
image: marcpartensky/ialab
user: nobody
restart: unless-stopped
environment:
- FLASK_APP=server.py
# - FLASK_APP=/app/server.py
# - FLASK_APP=/app/wsgi.py
# env_file:
# - /root/git/ialab/.flaskenv
# working_dir: /app
entrypoint: flask run --host ialab --port 80
# entrypoint: "gunicorn server:app"
# entrypoint: "gunicorn --chdir /app server:app"
volumes:
- /srv/ialab:/app
networks:
- nginx
open_web_calendar:
image: marcpartensky/open_web_calendar
restart: unless-stopped
working_dir: /app
environment:
- HOST=open_web_calendar
- PORT=80
networks:
- nginx
entrypoint: python app.py
# discord_voice_recorder:
# image: drv
# volumes:
# - /srv/discord-voice-recorder/recordings:/usr/src/bot/recordings
wordpress:
image: wordpress
restart: unless-stopped
networks:
- nginx
- wordpress
env_file:
- data/secrets/wordpress.env
volumes:
- /srv/wordpress:/var/www/html
depends_on:
- wordpress_mysql
wordpress_mysql:
image: mysql
restart: unless-stopped
env_file:
- data/secrets/wordpress.env
networks:
- wordpress
volumes:
- /srv/wordpress_mysql:/var/lib/mysql
business:
image: wordpress
restart: unless-stopped
networks:
- nginx
- business
env_file:
- data/secrets/business.env
volumes:
- /srv/business:/var/www/html
depends_on:
- business_mysql
business_mysql:
image: mysql
restart: unless-stopped
env_file:
- data/secrets/business.env
networks:
- business
volumes:
- /srv/business_mysql:/var/lib/mysql
oxivia:
image: wordpress
restart: unless-stopped
env_file:
- data/secrets/oxivia.env
volumes:
- /srv/oxivia:/var/www/html
- ./data/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
networks:
- nginx
- oxivia
depends_on:
- oxivia_mysql
oxivia_mysql:
image: mysql
restart: unless-stopped
env_file:
- data/secrets/oxivia.env
ports:
- "3307:3306"
volumes:
- /srv/oxivia_mysql:/var/lib/mysql
networks:
- oxivia
samba:
image: dperson/samba
restart: unless-stopped
volumes:
- /:/mount
ports:
- "139:139"
- "445:445"
plantuml:
image: plantuml/plantuml-server:tomcat
restart: unless-stopped
networks:
- nginx
nextcloud:
image: nextcloud
restart: unless-stopped
volumes:
- nextcloud:/var/www/html
env_file:
- ./data/secrets/nextcloud.env
networks:
- nextcloud
- nginx
depends_on:
- nextcloud_mariadb
nextcloud_mariadb:
image: mariadb
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- nextcloud_mariadb:/var/lib/mysql
env_file:
- ./data/secrets/nextcloud.env
networks:
- nextcloud
searx:
image: searx/searx
restart: unless-stopped
volumes:
- ./data/searx:/etc/searx
# environment:
# - PORT=80
# - BASE_URL=http://localhost:$PORT
networks:
- nginx
todolist:
image: marcpartensky/je-todoapp-react
restart: unless-stopped
environment:
- PORT=80
- SPRING_API_URL=https://api.todolist.marcpartensky.com
depends_on:
- todolist_api
networks:
- nginx
# entrypoint: ["/bin/sh", "-c", "'SPRING_API_URL=https://api.todolist.marcpartensky.com serve -s build'"]
todolist_api:
image: marcpartensky/je-todoapp-spring-api
restart: unless-stopped
env_file:
- ./data/secrets/todolist.env
environment:
- PORT=80
- POSTGRES_HOST=todolist_db
depends_on:
- todolist_db
networks:
- todolist_api
- nginx
todolist_db:
image: postgres
restart: unless-stopped
volumes:
- /srv/todolist/db:/var/lib/postgresql/data
env_file:
- ./data/secrets/todolist.env
networks:
- todolist_api
openvpn:
image: kylemanna/openvpn
restart: unless-stopped
cap_add:
- NET_ADMIN
ports:
- "1194:1194/udp"
volumes:
- /srv/openvpn:/etc/openvpn
networks:
- nginx
- nextcloud
- website
- wordpress
- gitea
- elk
- box
- todolist_api
- discord
watchtower:
image: containrrr/watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ~/.docker/config.json:/config.json
networks:
- nginx
command: --interval 10 --http-api-metrics --http-api-token demotoken --debug docker_prometheus_1 docker_grafana_1
prometheus:
image: prom/prometheus
restart: unless-stopped
volumes:
- ./data/prometheus:/etc/prometheus
- /srv/prometheus:/prometheus
# ports:
# - "9090:9090"
user: root
networks:
- nginx
grafana:
image: grafana/grafana
restart: unless-stopped
# ports:
# - "3000:3000"
environment:
GF_INSTALL_PLUGINS: grafana-clock-panel,grafana-simple-json-datasource
user: root
volumes:
- ./data/grafana:/etc/grafana/provisioning
- /srv/grafana:/var/lib/grafana
networks:
- nginx
gitea:
image: gitea/gitea:1.14.1
restart: unless-stopped
# user: git
environment:
- USER=git
- USER_UID=1004
- USER_GID=1004
env_file:
- ./data/secrets/gitea.env
networks:
- gitea
- nginx
volumes:
- /home/git/.ssh/:/data/git/.ssh
# - /srv/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "7012:22"
depends_on:
- gitea_postgres
gitea_postgres:
image: postgres
restart: unless-stopped
env_file:
- ./data/secrets/gitea.env
networks:
- gitea
volumes:
- /srv/gitea_postgres:/var/lib/postgresql/data
archlinux:
image: archlinux
restart: unless-stopped
stdin_open: true
tty: true
volumes:
- /srv/archlinux:/root
windows:
image: mcr.microsoft.com/windows:1903
restart: unless-stopped
stdin_open: true
tty: true
volumes:
- /srv/windows:/root
healingpath:
image: marcpartensky/brainperformer
restart: unless-stopped
# user: healingpath
env_file: ./data/secrets/healingpath.env
networks:
- healingpath
- nginx
depends_on:
- healingpath_db
healingpath_db:
image: mysql
restart: unless-stopped
# user: healingpath
env_file: ./data/secrets/healingpath.env
volumes:
- /srv/healingpath/db:/var/lib/mysql
networks:
- healingpath
# jenkins_docker:
# image: docker:dind
# privileged: true
# networks:
# - jenkins
# environment:
# DOCKER_TLS_CERTDIR: certs
# volumes:
# - /srv/jenkins_docker/certs:/certs/client
# - /srv/jenkins_docker/data:/var/jenkins_home
# ports:
# - "2376:2376"
jenkins:
image: jenkins/jenkins:lts
privileged: true
user: root
ports:
# - "8080:8080"
- "50000:50000"
volumes:
- /srv/jenkins:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
networks:
- nginx
tmate:
image: tmate/tmate-ssh-server
ports:
- "7027:22"
volumes:
- ~/.ssh:/root/.ssh:ro
environment:
SSH_KEYS_PATH: ~/.ssh
SSH_HOSTNAME: marcpartensky.com
SSH_PORT_LISTEN: 22
volumes:
letsencrypt:
nextcloud:
nextcloud_mariadb:
networks:
healingpath:
nextcloud:
website:
nginx:
wordpress:
business:
gitea:
elk:
box:
todolist_api:
discord:
oxivia:
# traefik:
Vendored
+10
View File
@@ -0,0 +1,10 @@
caddy
website
oxivia
servant
discord-bot
docker-api
ialab
registry
portainer
authentik
-80
View File
@@ -1,80 +0,0 @@
#!/bin/bash
if ! [ -x "$(command -v docker-compose)" ]; then
echo 'Error: docker-compose is not installed.' >&2
exit 1
fi
domains=(marcpartensky.com www.marcpartensky.com)
rsa_key_size=4096
data_path="./data/certbot"
email="" # Adding a valid address is strongly recommended
staging=0 # Set to 1 if you're testing your setup to avoid hitting request limits
if [ -d "$data_path" ]; then
read -p "Existing data found for $domains. Continue and replace existing certificate? (y/N) " decision
if [ "$decision" != "Y" ] && [ "$decision" != "y" ]; then
exit
fi
fi
if [ ! -e "$data_path/conf/options-ssl-nginx.conf" ] || [ ! -e "$data_path/conf/ssl-dhparams.pem" ]; then
echo "### Downloading recommended TLS parameters ..."
mkdir -p "$data_path/conf"
curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf > "$data_path/conf/options-ssl-nginx.conf"
curl -s https://raw.githubusercontent.com/certbot/certbot/master/certbot/certbot/ssl-dhparams.pem > "$data_path/conf/ssl-dhparams.pem"
echo
fi
echo "### Creating dummy certificate for $domains ..."
path="/etc/letsencrypt/live/$domains"
mkdir -p "$data_path/conf/live/$domains"
docker-compose run --rm --entrypoint "\
openssl req -x509 -nodes -newkey rsa:$rsa_key_size -days 1\
-keyout '$path/privkey.pem' \
-out '$path/fullchain.pem' \
-subj '/CN=localhost'" certbot
echo
echo "### Starting nginx ..."
docker-compose up --force-recreate -d nginx
echo
echo "### Deleting dummy certificate for $domains ..."
docker-compose run --rm --entrypoint "\
rm -Rf /etc/letsencrypt/live/$domains && \
rm -Rf /etc/letsencrypt/archive/$domains && \
rm -Rf /etc/letsencrypt/renewal/$domains.conf" certbot
echo
echo "### Requesting Let's Encrypt certificate for $domains ..."
#Join $domains to -d args
domain_args=""
for domain in "${domains[@]}"; do
domain_args="$domain_args -d $domain"
done
# Select appropriate email arg
case "$email" in
"") email_arg="--register-unsafely-without-email" ;;
*) email_arg="--email $email" ;;
esac
# Enable staging mode if needed
if [ $staging != "0" ]; then staging_arg="--staging"; fi
docker-compose run --rm --entrypoint "\
certbot certonly --webroot -w /var/www/certbot \
$staging_arg \
$email_arg \
$domain_args \
--rsa-key-size $rsa_key_size \
--agree-tos \
--force-renewal" certbot
echo
echo "### Reloading nginx ..."
docker-compose exec nginx nginx -s reload
BIN
View File
Binary file not shown.
+99
View File
@@ -0,0 +1,99 @@
version: "3.9"
services:
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:
image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.2.1}
restart: unless-stopped
command: server
environment:
AUTHENTIK_REDIS__HOST: authentik_redis
AUTHENTIK_POSTGRESQL__HOST: authentik_postgres
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
- caddy
networks:
- authentik
- caddy
labels:
caddy: authentik.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 9000}}"
authentik_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_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
env_file:
- ../data/secrets/authentik.env
networks:
- authentik
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
volumes:
authentik_postgres:
authentik_backups:
authentik_media:
authentik_certs:
authentik_templates:
authentik_geoip:
networks:
authentik:
caddy:
external: true
+54
View File
@@ -0,0 +1,54 @@
version: "3.9"
configs:
caddy-basic-content:
file: ../data/caddy/Caddyfile
labels:
caddy:
services:
caddy:
image: lucaslorentz/caddy-docker-proxy:ci-alpine
ports:
- "80:80"
- "443:443"
environment:
CADDY_INGRESS_NETWORKS: caddy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- caddy_data:/data
# - ./data/caddy/Caddyfile:/etc/Caddyfile
networks:
- caddy
logging:
# syslog?
options:
max-size: 5m
max-file: "10"
healthcheck:
test: ["CMD", "curl", "-f", "localhost:80"]
deploy:
labels: # Global options
caddy.email: marc.partensky@gmail.com
update_config:
parallelism: 1
delay: 5s
order: start-first
failure_action: rollback
rollback_config:
order: start-first
placement:
constraints:
- node.role == manager
# restart_policy:
# condition: any
resources:
reservations:
cpus: '1'
memory: 500M
volumes:
caddy_data:
networks:
caddy:
external: true
+47
View File
@@ -0,0 +1,47 @@
version: "3.9"
services:
discord_bot_mongo:
image: mongo
restart: unless-stopped
volumes:
- discord_bot_mongo:/data/db
networks:
- discord
ports:
- "27017:27017"
env_file:
- ../data/secrets/discord_bot_mongo.env
# healthcheck:
# test: CMD echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
mongo_express:
image: mongo-express
restart: unless-stopped
environment:
ME_CONFIG_OPTIONS_EDITORTHEME: "ambiance"
env_file:
- ../data/secrets/mongo_express.env
networks:
- discord
- caddy
depends_on:
- discord_bot_mongo
labels:
caddy: mongo.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8081}}"
traefik.enable: "true"
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
volumes:
discord_bot_mongo:
networks:
discord:
caddy:
external: true
attachable: true
driver: overlay
+17
View File
@@ -0,0 +1,17 @@
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
networks:
discord:
+13
View File
@@ -0,0 +1,13 @@
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:
+36
View File
@@ -0,0 +1,36 @@
version: "3.9"
services:
ialab:
image: marcpartensky/ialab
user: nobody
restart: unless-stopped
environment:
FLASK_APP: server.py
# env_file:
# - $HOME/git/ialab/.flaskenv
# working_dir: /app
entrypoint: flask run --host ialab --port 80
# entrypoint: "gunicorn server:app"
# entrypoint: "gunicorn --chdir /app server:app"
volumes:
- ialab:/app
networks:
- caddy
depends_on:
- caddy
labels:
caddy: ialab.marcpartensky.com
caddy.reverse_proxy: "{{upstreams}}"
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
+22
View File
@@ -0,0 +1,22 @@
version: "3.9"
services:
jupyterhub:
image: jupyterhub/jupyterhub
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# - jupyterhub:/srv/jupyterhub
networks:
- caddy
environment:
DOCKER_JUPYTER_IMAGE: marcpartensky/jupyterlab
DOCKER_NETWORK_NAME: jupyterhub
HUB_IP: jupyterhub
labels:
caddy: jupyterhub.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 8000}}"
networks:
caddy:
external: true
+33
View File
@@ -0,0 +1,33 @@
version: "3.9"
services:
jupyterlab:
image: marcpartensky/jupyterlab
restart: unless-stopped
environment:
# - GEN_CERT=yes
JUPYTER_ENABLE_LAB: "yes"
GRANT_SUDO: "yes"
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.notebook.rule: Host(`lab.marcpartensky.com`)
traefik.http.routers.notebook.entrypoints: websecure
traefik.http.routers.notebook.tls.certresolver: tls
traefik.http.services.notebook.loadbalancer.server.port: 8888
# entrypoint: start-notebook.sh \
# --NotebookApp.keyfile=key/0000_key-certbot.pem
# --NotebookApp.certfile=cert/0000_csr-certbot.pem
# volumes:
# - /etc/letsencrypt/keys:/home/jovyan/work/key
# - /etc/letsencrypt/csr:/home/jovyan/work/cert
# - /etc/letsencrypt:/etc/letsencrypt
#
networks:
caddy:
external: true
+27
View File
@@ -0,0 +1,27 @@
version: "3.9"
services:
open_web_calendar:
image: marcpartensky/open-web-calendar
restart: unless-stopped
working_dir: /app
environment:
HOST: open_web_calendar
PORT: 80
networks:
- caddy
entrypoint: python app.py
depends_on:
- caddy
labels:
caddy: calendar.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
traefik.enable: "true"
traefik.http.routers.open_web_calendar.rule: Host(`calendar.marcpartensky.com`)
traefik.http.routers.open_web_calendar.entrypoints: websecure
traefik.http.routers.open_web_calendar.tls.certresolver: tls
traefik.http.services.open_web_calendar.loadbalancer.server.port: 80
networks:
caddy:
external: true
+18
View File
@@ -0,0 +1,18 @@
version: "3.9"
services:
oxivia_mysql:
image: mysql
restart: unless-stopped
env_file:
- ../data/secrets/oxivia.env
volumes:
- $BIND_MOUNTS/oxivia_mysql:/var/lib/mysql
networks:
- caddy
- oxivia
networks:
oxivia:
caddy:
external: true
+32
View File
@@ -0,0 +1,32 @@
version: "3.9"
services:
oxivia:
image: wordpress
restart: unless-stopped
env_file:
- ../data/secrets/oxivia.env
volumes:
- $BIND_MOUNTS/oxivia:/var/www/html
- ../data/wordpress/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
networks:
- caddy
- oxivia
depends_on:
- oxivia_mysql
- caddy
healthcheck:
test: ["CMD", "curl", "-f", "localhost:80"]
labels:
caddy: oxivia.business.marcpartensky.com
caddy.reverse_proxy: "{{upstreams}}"
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:
caddy:
external: true
+30
View File
@@ -0,0 +1,30 @@
version: "3.9"
services:
pandoc:
image: marcpartensky/pandoc-api
restart: unless-stopped
working_dir: /app
env_file:
- ../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
networks:
- caddy
depends_on:
- caddy
volumes:
pandoc:
networks:
caddy:
external: true
+37
View File
@@ -0,0 +1,37 @@
version: "3.9"
services:
portainer:
image: portainer/portainer-ce
restart: unless-stopped
environment:
VIRTUAL_HOST: docker.marcpartensky.com
VIRTUAL_PORT: 9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer:/data
networks:
- caddy
command:
- --logo
- https://marcpartensky.com/static/home/assets/img/white-orchid.svg
# healthcheck:
# test: ["CMD", "curl", "-f", "http://localhost:9000"]
# test: ["CMD", "portainer", "--healthcheck"]
depends_on:
- caddy
labels:
caddy: docker.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 9000}}"
traefik.enable: "true"
traefik.http.routers.portainer.rule: Host(`docker.marcpartensky.com`)"
traefik.http.routers.portainer.entrypoints: websecure
traefik.http.routers.portainer.tls.certresolver: tls
traefik.http.services.portainer.loadbalancer.server.port: 9000
volumes:
portainer:
networks:
caddy:
external: true
+39
View File
@@ -0,0 +1,39 @@
version: "3.9"
services:
registry:
restart: unless-stopped
image: registry:latest
environment:
REGISTRY_HTTP_ADDR: 0.0.0.0:80
# REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
# REGISTRY_HTTP_TLS_KEY: /certs/domain.key
# REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
# REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
env_file:
- ../data/secrets/registry.env
volumes:
- registry_data:/var/lib/registry
- registry_certs:/certs
- registry_auth:/auth
depends_on:
- caddy
networks:
- caddy
labels:
caddy: registry.marcpartensky.com
caddy.reverse_proxy: "{{upstreams 80}}"
traefik.enable: "true"
traefik.http.routers.registry.rule: Host(`registry.marcpartensky.com`)
traefik.http.routers.registry.entrypoints: websecure
traefik.http.routers.registry.tls.certresolver: "tls"
traefik.http.services.registry.loadbalancer.server.port: 80
volumes:
registry_data:
registry_certs:
registry_auth:
networks:
caddy:
external: true
+6
View File
@@ -0,0 +1,6 @@
version: "3.9"
services:
servant:
image: marcpartensky/servitor
restart: unless-stopped
+17
View File
@@ -0,0 +1,17 @@
version: "3.9"
services:
sslh:
image: marcpartensky/sslh
networks:
- caddy
# - bridge
ports:
- "443:443"
command: --tls=caddy:443 --ssh=localhost:7022
depends_on:
- caddy
networks:
caddy:
external: true
+111
View File
@@ -0,0 +1,111 @@
version: "3.9"
services:
website:
image: marcpartensky/website
restart: unless-stopped
env_file:
- ../data/secrets/website.env
environment:
VIRTUAL_HOST: marcpartensky.com
VIRTUAL_PORT: 80
# DEBUG: true
# SECURE_SSL_REDIRECT: false
# KEY: /app/privkey.pem
# CERT: /app/fullchain.pem
working_dir: /app
entrypoint: >
sh -c "./manage.py migrate;
./manage.py collectstatic --noinput;
daphne django_project.asgi:application --port 80 --bind 0.0.0.0 -v2"
# entrypoint: "daphne -e ssl:443:privateKey=$$KEY:certKey=$$CERT django_project.asgi:application"
# entrypoint: daphne -b website -e ssl:443:privateKey=/app/privkey.pem:certKey=/app/fullchain.pem django_project.asgi:application
# command:
# - "80"
# - "0.0.0.0"
depends_on:
- redis
- postgres
- caddy
volumes:
- website_media:/app/media
networks:
- website
- caddy
labels:
caddy: marcpartensky.com, marc.wf, marc.tf
caddy.reverse_proxy: "{{upstreams 80}}"
# caddy.tls: "internal"
traefik.enable: "true"
traefik.http.routers.website.rule: "Host(`marcpartensky.com`)"
traefik.http.routers.website.entrypoints: "websecure"
traefik.http.routers.website.tls.certresolver: "tls"
traefik.http.services.website.loadbalancer.server.port: "80"
deploy:
# mode: global
update_config:
parallelism: 1
delay: 5s
order: start-first
failure_action: rollback
rollback_config:
order: start-first
resources:
reservations:
cpus: "1"
memory: "500M"
postgres:
image: postgres
restart: unless-stopped
volumes:
- postgres:/var/lib/postgresql/data
env_file:
- ../data/secrets/postgres.env
networks:
- website
pgweb:
image: sosedoff/pgweb
restart: unless-stopped
env_file:
- ../data/secrets/postgres.env
networks:
- website
- caddy
depends_on:
- postgres
healthcheck:
test: ["CMD", "wget", "-q", "localhost:8081", "-O", "/dev/null"]
labels:
caddy: db.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==
# postgres_adminer:
# adminer:
# image: adminer
# restart: unless-stopped
# ports:
# - 8080:8080
redis:
image: redis:alpine
restart: unless-stopped
networks:
- website
healthcheck:
test: ["CMD", "redis-cli","ping"]
volumes:
website_media:
postgres:
networks:
website:
caddy:
external: true
+46
View File
@@ -0,0 +1,46 @@
version: "3.9"
services:
wordpress:
image: wordpress
restart: unless-stopped
networks:
- caddy
- wordpress
env_file:
- ../data/secrets/wordpress.env
volumes:
- wordpress:/var/www/html
depends_on:
- wordpress_mysql
labels:
- "caddy=wordpress.marcpartensky.com"
- "caddy.reverse_proxy={{upstreams}}"
- "traefik.enable=true"
- "traefik.http.routers.wordpress.rule=Host(`wordpress.marcpartensky.com`)"
- "traefik.http.routers.wordpress.entrypoints=websecure"
- "traefik.http.routers.wordpress.tls.certresolver=tls"
- "traefik.http.services.wordpress.loadbalancer.server.port=80"
wordpress_mysql:
image: mysql
restart: unless-stopped
env_file:
- ../data/secrets/wordpress.env
networks:
- caddy
- wordpress
volumes:
- wordpress_mysql:/var/lib/mysql
healthcheck:
test: CMD /bin/sh -c 'mysqladmin ping --user=$MYSQL_USER --password=$MYSQL_PASSWORD'
volumes:
wordpress:
wordpress_mysql:
networks:
wordpress:
caddy:
external: true
File diff suppressed because it is too large Load Diff
+1502
View File
File diff suppressed because it is too large Load Diff
+2013
View File
File diff suppressed because it is too large Load Diff