summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2025-10-07 11:04:40 +0300
committerA Farzat <a@farzat.xyz>2025-10-07 11:04:40 +0300
commit0d0b241c3b437736d80b06966c95db1a7cc5db2e (patch)
treee8a35724d7fba7b1d88e0bbae8f9e95259c3a510
parent616725f377dab768620fa59ee70027db0ce39844 (diff)
downloadcsca5028-0d0b241c3b437736d80b06966c95db1a7cc5db2e.tar.gz
csca5028-0d0b241c3b437736d80b06966c95db1a7cc5db2e.zip
Secure mongodb and rabbitmq containers
-rw-r--r--components/database.py9
-rw-r--r--docker-compose.yml17
-rw-r--r--requirements.txt2
3 files changed, 24 insertions, 4 deletions
diff --git a/components/database.py b/components/database.py
index 72f63e6..f196fe1 100644
--- a/components/database.py
+++ b/components/database.py
@@ -1,12 +1,19 @@
import atexit
+from os import getenv
from typing import Any, Dict
+from dotenv import load_dotenv
from pymongo import MongoClient
from pymongo.database import Database
from pymongo.collection import Collection
from components.subscriptions.typing import SubsDict
from components.users.typing import UserDict
-client: MongoClient[Any] = MongoClient("mongodb://localhost", tz_aware=True)
+load_dotenv('.env')
+
+client: MongoClient[Any] = MongoClient(
+ "mongodb://%s:%s@localhost/admin" % (getenv('MONGO_USER'), getenv('MONGO_PASS')),
+ tz_aware=True,
+)
database: Database[Any] = client.get_database("youtube")
subscriptions: Collection[SubsDict] = database.get_collection("subscriptions")
users: Collection[UserDict] = database.get_collection("users")
diff --git a/docker-compose.yml b/docker-compose.yml
index 1ad0845..478619b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -2,16 +2,27 @@ services:
mongo-api:
image: mongo:8.0
container_name: yt-mongodb
+ env_file:
+ - .env
+ environment:
+ - MONGO_INITDB_ROOT_USERNAME=${MONGO_USER}
+ - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASS}
+ - MONGO_INITDB_DATABASE=admin
ports:
- - 27017:27017
+ - 127.0.0.1:27017:27017
volumes:
- ./.docker-data/mongo-db:/data/db
rabbitmq:
image: rabbitmq:4.1-management
container_name: yt-rabbit
+ env_file:
+ - .env
+ environment:
+ - RABBITMQ_DEFAULT_USER=${RABBIT_USER}
+ - RABBITMQ_DEFAULT_PASS=${RABBIT_PASS}
ports:
- - '5672:5672'
- - '15672:15672'
+ - 127.0.0.1:5672:5672
+ - 127.0.0.1:15672:15672
volumes:
- ./.docker-data/rabbit-data:/var/lib/rabbitmq/
- ./.docker-data/rabbit-log:/var/log/rabbitmq
diff --git a/requirements.txt b/requirements.txt
index 245aa79..3c3ef86 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,6 +3,7 @@ certifi==2025.8.3
charset-normalizer==3.4.3
click==8.2.1
dnspython==2.7.0
+dotenv==0.9.9
feedparser==6.0.12
Flask==3.1.2
flask-cors==6.0.1
@@ -17,6 +18,7 @@ mypy_extensions==1.1.0
packaging==25.0
pathspec==0.12.1
pymongo==4.14.0
+python-dotenv==1.1.1
pytz==2025.2
schedule==1.2.2
sentinels==1.1.1