From 338c0c0d1ce978b7f9bd152ff1de8fd5b55de6cd Mon Sep 17 00:00:00 2001 From: KWON Date: Thu, 11 Dec 2025 13:27:22 +0900 Subject: [PATCH] =?UTF-8?q?docker-compose.yml=20=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=ED=99=98=EA=B2=BD=20=EB=B3=80=EC=88=98=EB=A1=9C=20=ED=95=84?= =?UTF-8?q?=EC=9A=94=20=EC=A0=95=EB=B3=B4=EB=A5=BC=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=84=A4=EC=A0=95,=20=EA=B7=B8?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=9D=BC=20.env=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 27 +++++++++++++++ .gitignore | 3 +- autouploader/config.py | 62 +++++++++++++++++++++++++++++++++++ autouploader/requirements.txt | 3 +- docker-compose.yml | 2 ++ 5 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 .env.example create mode 100644 autouploader/config.py diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..402aeb7 --- /dev/null +++ b/.env.example @@ -0,0 +1,27 @@ +# 게시판 설정 +BOARD_ID=news +BOARD_CA_NAME=레이니데이 +BOARD_CONTENT=08:00 기상청 단기예보 +BOARD_MB_ID=user_id +BOARD_NICKNAME=user_nickname + +# 데이터베이스 설정 +DB_HOST=db.example.com +DB_USER=db_username +DB_PASSWORD=db_password +DB_NAME=database_name +DB_CHARSET=utf8mb4 + +# FTP 설정 +FTP_HOST=ftp.example.com +FTP_USER=ftp_username +FTP_PASSWORD=ftp_password +FTP_UPLOAD_DIR=/data/file/news/ + +# 날씨 API 서비스 키 +SERVICE_KEY=your_weather_api_key_here + +# Mattermost 알림 설정 +MATTERMOST_URL=https://mattermost.example.com +MATTERMOST_TOKEN=your-personal-access-token +MATTERMOST_CHANNEL_ID=channel_id diff --git a/.gitignore b/.gitignore index 58b52e2..bee058d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -config.py +config.sample.py +.env **/__pycache__/ *.pyc naver_review/build/ diff --git a/autouploader/config.py b/autouploader/config.py new file mode 100644 index 0000000..fb22b86 --- /dev/null +++ b/autouploader/config.py @@ -0,0 +1,62 @@ +import os +from datetime import datetime + +# .env 파일 로드 (python-dotenv 사용) +try: + from dotenv import load_dotenv + load_dotenv() +except ImportError: + pass + +TODAY = datetime.now().strftime('%Y%m%d') + +# 게시판 설정 +MAIN = { + 'board': os.getenv('BOARD_ID', 'news'), + 'ca_name': os.getenv('BOARD_CA_NAME', '레이니데이'), + 'subject': '', + 'content': os.getenv('BOARD_CONTENT', '08:00 기상청 단기예보'), + 'mb_id': os.getenv('BOARD_MB_ID', 'user_id'), + 'nickname': os.getenv('BOARD_NICKNAME', 'user_nickname'), + 'file1': '', + 'file2': '', +} + +# 데이터베이스 설정 +DB_CONFIG = { + 'HOST': os.getenv('DB_HOST', 'localhost'), + 'USER': os.getenv('DB_USER', 'db_user'), + 'DBNAME': os.getenv('DB_NAME', 'database'), + 'PASS': os.getenv('DB_PASSWORD', 'password'), + 'CHARSET': os.getenv('DB_CHARSET', 'utf8mb4'), +} + +# FTP 설정 +FTP_CONFIG = { + 'HOST': os.getenv('FTP_HOST', 'ftp.example.com'), + 'USER': os.getenv('FTP_USER', 'ftp_user'), + 'PASS': os.getenv('FTP_PASSWORD', 'ftp_password'), + 'UPLOAD_DIR': os.getenv('FTP_UPLOAD_DIR', '/data/file/news/'), +} + +# 날씨 API 서비스 키 +serviceKey = os.getenv('SERVICE_KEY', '') + +# Mattermost 설정 +MATTERMOST_CONFIG = { + 'URL': os.getenv('MATTERMOST_URL', ''), + 'TOKEN': os.getenv('MATTERMOST_TOKEN', ''), + 'CHANNEL_ID': os.getenv('MATTERMOST_CHANNEL_ID', ''), +} + + +def write_board(): + # ... existing code ... + conn.close() + return True, None # 명시적 반환 추가 + +def some_function(): + # ... existing code ... + success, error = capture_image(capture_script, weather_file) # msg_sender 추가 + if not success: + return diff --git a/autouploader/requirements.txt b/autouploader/requirements.txt index 714a4db..a7b13a9 100644 --- a/autouploader/requirements.txt +++ b/autouploader/requirements.txt @@ -12,4 +12,5 @@ Pillow PyMySQL ftputil requests -selenium \ No newline at end of file +selenium +python-dotenv diff --git a/docker-compose.yml b/docker-compose.yml index 6881df8..c255817 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,8 @@ services: volumes: - ./data:/data # - ./autouploader:/app + env_file: + - .env restart: unless-stopped fg-webhook: