Jupter Notebook REST API
Run your jupyter notebooks as a REST API endpoint. This isn't a jupyter server but rather just a way to run your notebooks as a REST API Endpoint.
Running locally
Clone project
mkdir rest-project
cd rest-project
git clone https://github.com/Invictify/Jupter-Notebook-REST-API .
Install via Pipenv
pipenv install
pipenv shell
You can also use
pip install -r requirements.txt
Add your notebook(s) to "src/notebooks"
There's an example notebook already in there called scrape.ipynb
.
Run locally
pipenv run uvicorn src.server:app --reload
You can also do:
chmod +x run.sh
./run.sh
Trigger a notebook.
With the server running, trigger notebook (relative path) like notebooks/scrape.ipynb
import requests
r = requests.post("http://localhost:8000/trigger/notebooks/scrape.ipynb")
print(r.json())
Deployment
Create Heroku app
You'll only have to do this 1 time.
heroku apps:create
Using Git
git init
git add --all
git commit -m "Project commit"
git push heroku master
Using Docker
Login to Heroku Container Registry
heroku container:login
Build & Push to Heroku
docker build -t -f Dockerfile.web .
heroku container:push web --recursive
heroku container:release web