---
title: "Deploy JupyterLab (w/ persistent packages)"
description: "JupyterLab with a password you choose; notebooks and pip installs persist."
category: "AI/ML"
url: https://railway.com/deploy/jupyterlab-w-persistent-packages
---

# Deploy JupyterLab (w/ persistent packages)

JupyterLab with a password you choose; notebooks and pip installs persist.

**[Deploy JupyterLab (w/ persistent packages) on Railway](https://railway.com/template/jupyterlab-w-persistent-packages)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/jupyterlab-w-persistent-packages/manifest.json

- **Creator:** AvgSoft
- **Category:** AI/ML

## Template content

### JupyterLab https://cdn.jsdelivr.net/gh/mikedepo/railway-template-assets@e27ec7cd95fc0354f185fc09384927a0b7a9abc0/service-icons/jupyter.svg

- **Image:** quay.io/jupyter/scipy-notebook:2026-10-28
- **Start command:** `/bin/sh -c 'rm -rf /home/jovyan/lost+found; for f in .bashrc .profile; do [ -e /home/jovyan/$f ] || install -o 1000 -g 100 -m 644 /etc/skel/$f /home/jovyan/$f; done; d=$(HOME=/home/jovyan python -m site --user-site); mkdir -p $d && chown 1000:100 /home/jovyan/.local /home/jovyan/.local/lib ${d%/*} $d; python -c "import json,os,sys;from jupyter_server.auth import passwd;json.dump(dict(PasswordIdentityProvider=dict(hashed_password=passwd(os.environ.get(sys.argv[1]) or sys.exit(sys.argv[2])))),sys.stdout)" JUPYTER_PASSWORD "JUPYTER_PASSWORD is empty: set it in the JupyterLab service variables." > /etc/jupyter/jupyter_server_config.json || exit 1; export PATH=/home/jovyan/.local/bin:$PATH; exec tini -g -- start.sh start-notebook.py --ServerApp.trust_xheaders=True'`
- **Health check:** /api
- **Public domain:** Yes

## Documentation

# Deploy and Host JupyterLab (w/ persistent packages) on Railway

JupyterLab is the notebook editor for Python and data work. This template keeps your whole home folder on a volume, so notebooks, settings and the packages you pip install survive every redeploy, and you sign in with a password you choose on the deploy form.

![JupyterLab with notebooks and packages kept on a volume](https://cdn.jsdelivr.net/gh/mikedepo/railway-template-assets@56db5a52196bf5c32e9b4cca84b5d81015729315/jupyterlab/banner.png)

## About Hosting JupyterLab (w/ persistent packages)

You get JupyterLab 4.6 on Python 3.13 with pandas, NumPy, Matplotlib and scikit-learn, pinned so a redeploy never upgrades it. Type a password on the deploy form, then open the URL and sign in. Add packages with `%pip install`; conda installs reset on redeploy.

## Common Use Cases

- Data analysis with pandas
- Machine learning experiments
- Teaching and workshops

## Dependencies for JupyterLab (w/ persistent packages) Hosting

- JupyterLab (Jupyter's scipy-notebook image)

### Deployment Dependencies

- [Jupyter Docker Stacks](https://jupyter-docker-stacks.readthedocs.io/en/latest/)
- [JupyterLab documentation](https://jupyterlab.readthedocs.io/en/latest/)

### Implementation Details

![Architecture: you reach JupyterLab through its public URL; notebooks, pip packages and settings live on the volume](https://cdn.jsdelivr.net/gh/mikedepo/railway-template-assets@1fd0a957db8c753a162ff3b0ebe533e48950a53b/jupyterlab/architecture.png)

Back up the volume: it holds every notebook and file. To change the password, edit `JUPYTER_PASSWORD`.

## Why Deploy JupyterLab (w/ persistent packages) on Railway?


Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying JupyterLab (w/ persistent packages) on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


**Updated 2026-10-28:** first release, JupyterLab 4.6.4 (scipy-notebook 2026-10-28).

Based on the JupyterLab template by Brody.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [Weaviate](https://railway.com/deploy/weaviate-1) — Vector database with hybrid search and an API key-protected API
- [Möbius v0.1 Personal AI OS](https://railway.com/deploy/mobius-v01-personal-ai-os) — Self-hosted AI agent that builds and runs apps for you, with memory.

Open this page in a browser: https://railway.com/deploy/jupyterlab-w-persistent-packages
