Streamlit로 만든 데이터 열람용 웹 앱을 heroku로 공개

개요



  • 지난번 , Streamlit을 사용하여 웹 응용 프로그램을 만들 수 있습니다.
  • 모처럼이니까 공개하자


  • 전제


  • heroku에 계정 만들기 (무료로 확인)
  • github 계정이 있습니다

  • 앱 만들기



    Chocolate Ball Viewer 등을 참고로 앱을 만듭니다. 본 기사에서는 Streamlit의 기법 등에 대해서는 언급하지 않습니다.
    $ streamlit run [python-file]
    

    에서 예상대로 앱이 만들어졌는지 확인합니다.

    heroku에 배포



    여기부터가 본 기사의 본편입니다.
    절차의 개요는 다음과 같습니다.
  • heroku 배포에 필요한 파일 준비
  • heroku에 앱 만들기
  • 배포
  • 자동 배포를 확인해 봅시다

  • 필요한 파일 준비



    heroku에 python 앱을 게시하려면 다음 두 파일이 필요합니다.
  • Procfile
  • 실행 명령 작성

  • requirements.txt
  • 필요한 라이브러리 등을 써 둔다


  • 이것만으로도 충분하지만 streamlit 구성 파일을 만들기위한 스크립트를 만들어 둡니다. port 번호 등을 지정하는 것입니다. (Procfile에서 부팅 옵션으로 지정해도 OK)
  • setup.sh

  • 이것들을 정리해, Streamlit 앱을 heroku로 공개하기 위한 템플릿을 만들어 주는 분이 있습니다.
    여기

    이번에는 이런 느낌으로 만들었습니다. 거의 거의 htps : // 기주 b. 코 m / 빠 tryk - 오, 니 / k, st, m, t-horoku-mp ぁ에서 복사했습니다.

    Procfile
    web: sh setup.sh && streamlit run src/choco_view.py
    

    requirements.txt (버전 고정하는 것이 안심)
    pylint
    pandas
    scipy
    matplotlib
    seaborn
    streamlit
    

    setup.sh
    mkdir -p ~/.streamlit/
    echo "[server]
    headless = true
    port = $PORT
    enableCORS = false
    " > ~/.streamlit/config.toml
    

    이것들을 정리해 github에 push 해 둡니다. 비공개 리포지토리도 괜찮습니다.

    heroku에 앱 만들기



    heroku의 앱 작성은 CLI를 사용해 명령으로 실행도 할 수 있습니다만 (heroku 튜토리얼은 CLI군요), github 리포지토리와 연동시키는 것이면 Web 관리 화면으로부터도 간단합니다. 이번에는 웹에서 만듭니다.

    오른쪽 상단의 'Create New App'에서 서비스 이름을 설정하고 'Create app'합니다.

    streamlit-heroku-template

    이것만

    배포



    create는 배포 방법을 선택합니다. 이번에는 GitHub 탭을 선택하여 연동할 리포지토리를 지정합니다.



    연동할 수 있으면 배포 화면으로 전환합니다.

    여기에서 "Enable Automatic Deploys"를 눌러 자동 배포를 활성화하면 연결된 GitHub 리포지토리의 지정된 지점에 업데이트가 있으면 자동으로 배포됩니다.

    준비가 되면 ManualDeploy 메뉴에서 Deploy Branch를 눌러 배포를 시작합니다.

    자동 배포 확인



    데이터를 업데이트하고 github에 push 해 보자.

    heroku의 관리 화면을 바라 보면 배포되는 것이 보입니다 (즐거운).

    할 수 있었다



    나는 취미로 초코볼 데이터의 계측을 하고 있으므로, 그 계측 데이터를 가시화하는 앱을 공개했습니다(자세한 것은 를 봐 주세요).
    초코볼 통계

    Flavor를 선택할 수 있다

    ㅜㅜㅜㅜㅜㅜㅜㅋㅋ 어리석은 p. 코m/

    실버 엔젤이 닿기 전에 필요한 구매 횟수 시뮬레이션





    참고


  • Show your ML Project to the Internet in Minutes
  • streamlit-heroku-template
  • 좋은 웹페이지 즐겨찾기