diff options
| author | A Farzat <a@farzat.xyz> | 2025-10-07 11:04:40 +0300 |
|---|---|---|
| committer | A Farzat <a@farzat.xyz> | 2025-10-07 11:04:40 +0300 |
| commit | 0d0b241c3b437736d80b06966c95db1a7cc5db2e (patch) | |
| tree | e8a35724d7fba7b1d88e0bbae8f9e95259c3a510 | |
| parent | 616725f377dab768620fa59ee70027db0ce39844 (diff) | |
| download | csca5028-0d0b241c3b437736d80b06966c95db1a7cc5db2e.tar.gz csca5028-0d0b241c3b437736d80b06966c95db1a7cc5db2e.zip | |
Secure mongodb and rabbitmq containers
| -rw-r--r-- | components/database.py | 9 | ||||
| -rw-r--r-- | docker-compose.yml | 17 | ||||
| -rw-r--r-- | requirements.txt | 2 |
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 |
