diff --git a/common/users/docker/qbit/default.nix b/common/users/docker/qbit/default.nix new file mode 100644 index 0000000..11ac467 --- /dev/null +++ b/common/users/docker/qbit/default.nix @@ -0,0 +1,23 @@ +{ config, ... }: +{ + imports = [ + ../../homeModules/sops.nix + ]; + home = { + file = { + qbit_compose = { + source = ./docker-compose.yal; + target = "./src/qbit/docker-compose.yml"; + }; + }; + }; + sops = { + secrets = { + gluetun_env = { + format = "dotenv"; + sopsFile = ./gluetun.env; + path = "/home/${config.home.username}/src/qbit/gluetun.env"; + }; + }; + }; +} diff --git a/common/users/docker/qbit/docker-compose.yml b/common/users/docker/qbit/docker-compose.yml new file mode 100644 index 0000000..ac9ed61 --- /dev/null +++ b/common/users/docker/qbit/docker-compose.yml @@ -0,0 +1,29 @@ +services: + gluetun: + image: gmcgaw/gluetun:latest + cap_add: + - NET_ADMIN + env_file: ./gluetun.env + ports: + - 3456:3456 + - 6881:6881 + - 6881:6881/udp + restart: always + qbit: + image: lscr.io/linuxserver/qbittorrent:latest + container_name: qbittorrent + network_mode: "service:gluetun" + environment: + - PUID=1000 + - PGID=1002 + - TZ=America/New_York + - WEBUI_PORT=3456 + - TORRENTING_PORT=6881 + volumes: + - /storage/qbitConfig:/config + - /storage/downloads:/downloads + restart: unless-stopped + depends_on: + gluetun: + condition: service_healthy + diff --git a/common/users/docker/qbit/gluetun.env b/common/users/docker/qbit/gluetun.env new file mode 100644 index 0000000..2abd5b0 --- /dev/null +++ b/common/users/docker/qbit/gluetun.env @@ -0,0 +1,18 @@ +#ENC[AES256_GCM,data:DsWDOXO8amJ5dzbNaWMCulK37178R84w0A==,iv:SSBNHK41mEg6QASBKkXu4/+h2qs/pNyb6WgcCOWaO3Q=,tag:LVmonqr68gwZvUO03o/GwQ==,type:comment] +SERVER_COUNTRIES=ENC[AES256_GCM,data:86WrF1rkgeJEHcjEPp2v,iv:HviYqSQppE96ySCVEfX0lJxkWqHLF59LfUncm9fH4RA=,tag:U9n0igUW0Njn3AoA0j3s6w==,type:str] +SERVER_CITIES=ENC[AES256_GCM,data:hvOOmt6xO+rDRg/R6Jv/,iv:ulvzRglu0llq3lNXH9gHPq6LJtrarQfIC5eXuTsFRE0=,tag:z0vlB2gz1Mtxhx2J+O0AGw==,type:str] +VPN_SERVICE_PROVIDER=ENC[AES256_GCM,data:3e3BhQO122kp,iv:czSj+A+ECeco88lxYZ6bf+D5c19oBTKrRTvfEMDj9MY=,tag:C/8/i+GSVUh5JS5OJy0UWw==,type:str] +OPENVPN_USER=ENC[AES256_GCM,data:absF230G0wzz8v98WKxj8//rIN0=,iv:v4ORghQ/HH+iQRquvxnwpVmQYYKdeVWGE9d+6CGQGJs=,tag:g9W6W6kALzVzY2HVBts6nQ==,type:str] +OPENVPN_PASSWORD=ENC[AES256_GCM,data:2Ud/fvBL2jxhq7T3zY2NYEOoDYWymz/l4nPWyM97oMw=,iv:D6Nzs40pxsoK0IjezrdkDv+UCDKWJSLIWPoK1oP0WEw=,tag:24TzhbGytT2eoABu4tiiGw==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvUXpZRUUxcDVheVNPR05i\nZjdMMUc1WFpOMmx6QkwzK2x3TWJCL0p1THdjCmVUZmg1Sk8zdjc5bWduOVU5M2RV\nMHNRQldUTUdsd01rUzBWayt0aXBHWW8KLS0tIEpUcFMzV00wUDk0aGRlMytNZmxU\nRzEzT1hSUGRVWnk0a1phVkIzR0FiZ0UK28vp1N5fMTJywuEMmndgU2uJH6j1zvQn\nPUQf1LyYiMRJhY54XoMmBTkgWZqzRz27GaVxmZsJGVmLIRp9FVSPfA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1xsuyaeehzv4ar4f6xpc6tfp9pttzjf7qdyl3x2tj42vjc8szlqpq834e3d +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUeW1JOWplRk9qWE1CY3Nk\nU2pralRpOHNXTnlqU2cwbkRTN1ZnWCtVc3dRClN2TFlkaUVYTEVsTVBna2E3T1Zm\na1IybnhvYXJ6cjgrT0tici9nQmtiWmsKLS0tIGVhZFlnZTBGNXkwOTdvTUFTL1BK\nVDAzeVRSNlpvTnd3UEEwaUhTTGZjODAKRmsaIrBzXW5vY9PmvJlh+aHZYU2DIjUI\nF8ObN5nuXw81dAeY4cQShlCNF5jSv5gICnTBqAxWnkinZKk4Y0927g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1tq8zaaqe8t4u2jgyf7usngtzyql0ymyxq6hntmu04vt5ypwhxensmzynhl +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNc2g0TXB3ZEk1RmljK28y\nSXlScXNpUGJaSkVsN3pnWUFCSW1uVjdOdWw4CkJGa0k5bDYyNXVtN25CZDR6RTZT\najI0djBwNnB2ZGRrajJJQzJCWGptL28KLS0tIGJJby80a0xzRUF6NVRpcnZJbWxL\nWGhFa3JCV2dUYjFwTzdUalVlU2lXMk0K78BN0OsM2iEWDY56eiaCcOqXxjwaTIR/\nJn4KYUgR9xWrjx9wORcKQdsSV3GENu+kbkm7xLUMPxpB8Io03XCVbA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_recipient=age1cz006hex596lmj88kkhrkvq89luqk59hxuq83q4kvhz82ltwpe4ss8gm3t +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKQmlSTHpKSFFHUUg4ZG5K\nZzZHaURPSUkzT2t3czc5U09PeUxpT1orVG53CkI1VW9ObWV3WnFpNnk5cW5icmxl\nclBBVXk4NkpyYm14WXBKaUJha09uckUKLS0tIDBLWm5DL2ZvbzQrTFQzbUs1a0R3\nSTBUcm1welVVa0lNZnVhclh5OWdadGMKnHTkSJkmEjZ6dpNwPcAowGup1ODpw4PP\nq/SrkuTsgNGAEImOEbOil6jm1ZdK8+VkRwOojTcd2TrvHGQISjPmrg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_recipient=age1sn4uu6r6wrylpznx75jcw7ww58r9cut35n40gu4scpt9xy79rgrq2d7wga +sops_lastmodified=2025-03-10T03:59:44Z +sops_mac=ENC[AES256_GCM,data:Bhiq7TxaMXEMz4CZhEbmV+Ri8lGuyhyhTwdR2k4nFcrDgZCcNtNprB5oMNtp4KQf3grmdzU8iVsprTzHZUc5fuFqCha9xWP4aNYPvCn/ExiTyHuGisW26T73teqSHKI1o9KIpE+3gpYvizDn9o9tuxGCRwEqXz/GNBRzGetTYZc=,iv:zIVo/myhpDgKw7E9gUc9AsY5ZhFm4qMwYV2vBW5fU9w=,tag:G+nk9beRefMSn27BRmIkow==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.9.4 diff --git a/common/users/docker/qbit/nginx.nix b/common/users/docker/qbit/nginx.nix new file mode 100644 index 0000000..e69de29