로메오의 블로그

Synology NAS에 python flask 웹서버 구축 본문

Backend/Python & Blockchain

Synology NAS에 python flask 웹서버 구축

romeoh 2025. 7. 18. 13:00
반응형

SSH활성화

 

 

 

 

ssh 접속

$ ssh romeoh@192.168.0.XX

 

 

 

 

 

 

 

 

 

 

Docker 설치

 

 

 

 

 

 

 

 

 

로컬에 파일 생성

$ mkdir flask-app
$ cd flask-app
$ touch app.py
$ touch requirements.txt
$ touch Dockerfile

 

 

 

 

 

app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello NAS!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

 

 

 

 

requirements.txt

flask

 

 

 

Dockerfile

FROM python:3.10-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

 

 

 

 

파일을 Synology에 업로드 합니다.

 

 

 

 

 

Docker 실행

$ sudo docker build -t flask-app .
$ sudo docker run -d -p 8888:5000 --name flask-test flask-app

# static 폴더 제외하기
$ sudo docker run -d \
  --name flask-app \
  --link mongo \
  -v /volume3/docker/flask-app/static:/app/static \
  -p 8888:5001 \
  flask-app

# container 제거
$ sudo docker ps
$ sudo docker stop flask-test
$ sudo docker rm flask-test

 

 

 

 

 

 

http://192.168.0.16:8888/

접속합니다.

 

 

 

 

 

 

git 서버 구축하기

 

 

 

 

git 초기화 

$ git init

 

 

 

 

 

서버에서 커밋하기

# 외부 push 허용
$ git config receive.denyCurrentBranch updateInstead

$ git config user.name "romeoh"
$ git config user.email "romeoh@naver.com"
$ git add .
$ git commit -m "initial commit"

 

 

 

 

 

 

 

git clone

local에 생성했던 flask-app 폴더는 삭제합니다.

$ cd PROJECT_FOLDER
$ git clone ssh://romeoh@192.168.0.16:/volume3/docker/flask-app

 

 

 

 

 

 

 

 

MongoDB설치

$ cd docker
$ mkdir mongodb
$ cd mongodb
$ mkdir data
$ sudo chmod -R 777 /volume3/docker/mongodb/data

$ sudo docker run -d \
  --name mongo \
  -p 27017:27017 \
  -e MONGO_INITDB_ROOT_USERNAME=admin \
  -e MONGO_INITDB_ROOT_PASSWORD=secret123 \
  -v /volume3/docker/mongodb/data:/data/db \
  mongo:4.4
  
  $ sudo docker ps

 

 

 

 

 

docker 명령어

# 현재 docker 컨테이너 확인
$ sudo docker ps -a

# 콘테이너 정지
$ sudo docker rm mongo

# 콘테이너 로그 확인
$ sudo docker logs mongo

# 콘테이너 내부 진입
$ docker exec -it mongo bash

 

 

 

 

 

 

local에서 flask 서버 구동

가상공간 만들기

$ python3 --version
Python 3.11.2
$ python3 -m venv venv
$ source venv/bin/activate
(venv) romeoh@romeoh-MacBook-Pro flask-app %
(venv) $ pip install -r requirements.txt
(venv) $ python app.py

 

http://127.0.0.1:5001/

local server 접속

 

 

 

 

 

flask에서 mongodb 접속

$ pip install pymongo
$ pip freeze > requirements.txt

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'Backend > Python & Blockchain' 카테고리의 다른 글

python 가상환경 설정  (4) 2025.07.27
TensorFlow 사진 분류기  (7) 2025.07.26
FastAPI 서버 구축  (0) 2025.05.19
Python3 SSL: CERTIFICATE_VERIFY_FAILED 해결하기 - Mac  (0) 2024.02.02
[Python] requests  (0) 2022.11.17
Comments