Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update instructions #14

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 19 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
# jamsocket-jupyter-notebook
Base repo for running Jupyter Notebooks on the Jamsocket platform

## Steps

1. Fork this repository.
2. Add your notebook(s) to the `/notebook` directory.
3. Add your notebook's python dependencies to `requirements.txt` (alternatively, if you prefer `pipenv`, add them with `pipenv install` and then run `pipenv run freeze`).
4. Replace `/notebooks/hello-jamsocket.ipynb` in `Dockerfile` with the path to the notebook you'd like to be automatically loaded. If you want the user to see a file listing of the `/notebooks` directory by default, remove that line entirely.
5. Run `./freeze.sh` to create a `freeze.txt` file from `requirements.txt`. This pins the version of all of the dependencies of the libraries in `requirements.txt`.
6. Set your account name as the `JAMSOCKET_ACCOUNT` value in your GitHub secrets.
7. Generate an access token at [app.jamsocket.com/settings](https://app.jamsocket.com/settings) and set it as the `JAMSOCKET_TOKEN` value in your GitHub secrets. ([Sign up](https://auth.jamsocket.com/signup) for a Jamsocket account if you don’t already have one.)
8. Push your repo to your GitHub account, and your Jupyter Notebook container will be automatically built and pushed to Jamsocket.
9. Get a Spawn URL from us. (Open this URL in a browser to start a new notebook instance.)
## Deploying

1. Log in to [Jamsocket](https://jamsocket.com) and create a new service called `jupyter-notebook`. ([Sign up](https://auth.jamsocket.com/signup) for a Jamsocket account if you don’t already have one. You can do everything listed here on the free plan.)
2. Reach out to us on [Discord](https://discord.gg/RFrDbMVKxv) or [by email](mailto:[email protected]) to ask us to **enable Jamsocket compatibility mode** for that service. (This will soon be exposed directly in the web UI, but it's a manual step for now.)
3. Fork this repo as `jupyter-notebook` to your own GitHub account. Note that the name of the repo should match the name of the service, but you can use another name as long as they both match.
4. Set your Jamsocket account name as the `JAMSOCKET_ACCOUNT` value in your GitHub secrets.
5. Generate an access token at [app.jamsocket.com/settings](https://app.jamsocket.com/settings) and set it as the `JAMSOCKET_TOKEN` value in your GitHub secrets.
6. Push your repo to your GitHub account, and your Jupyter Notebook container will be automatically built and pushed to the Jamsocket service you selected.
7. [Use the Jamsocket API](https://docs.jamsocket.com/concepts/connection-url) to spawn instances of your notebook. It will return a URL that you can use to access the notebook.

## Customizing

You can customize the initial notebook(s) and Python packages as follows:

1. Add your notebook(s) to the `/notebook` directory.
2. Add your notebook's python dependencies to `requirements.txt` (alternatively, if you prefer `pipenv`, add them with `pipenv install` and then run `pipenv run freeze`).
3. Replace `/notebooks/hello-jamsocket.ipynb` in `Dockerfile` with the path to the notebook you'd like to be automatically loaded. If you want the user to see a file listing of the `/notebooks` directory by default, remove that line entirely.
4. Run `./freeze.sh` to create a `freeze.txt` file from `requirements.txt`. This pins the version of all of the dependencies of the libraries in `requirements.txt`.


## To run the jupyter-notebook locally for testing:

Expand Down
Loading