Self-hosting Jupyter Notebook the easy way

Self-hosting Jupyter Notebook the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
5 min

Jupyter Notebook is the go-to tool for interactive computing. Data scientists, researchers, and developers use it to write and share documents with live code, visualizations, and narrative text. Cloud-hosted notebook services like Google Colab or JupyterHub can get expensive or restrictive once you need persistent storage, custom libraries, or full control over your environment.

Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get Jupyter Notebook up and running in minutes - no server setup, no reverse proxy config, no infrastructure to maintain.

Prerequisites

Before deploying, ensure you have a Sliplane account (free trial available).

Quick start

Sliplane provides one-click deployment with presets.

SliplaneDeploy Jupyter Notebook >
  1. Click the deploy button above
  2. Select a project
  3. Select a server (If you just signed up you get a 48-hour free trial server)
  4. Click Deploy!

About the preset

The one-click deploy above uses Sliplane's Jupyter Notebook preset. Here's what it includes:

  • Official Jupyter base-notebook image from quay.io/jupyter/base-notebook
  • Specific version tag (2026-05-04) for stability
  • Persistent storage mounted to /home/jovyan/work so your notebooks survive restarts
  • A randomly generated JUPYTER_TOKEN for authentication
  • Runs the start-notebook.sh startup script

Next steps

Once Jupyter Notebook is running on Sliplane, access it using the domain Sliplane provided (e.g. jupyter-xxxx.sliplane.app).

Authentication

The preset generates a random JUPYTER_TOKEN that protects your notebook. You'll find this token in the environment variables section of your service settings on Sliplane. Copy it and paste it into the login page when you first access the notebook.

If you want to disable token authentication (not recommended for public instances), you can set JUPYTER_TOKEN to an empty string.

Working directory

Your notebooks are stored in /home/jovyan/work, which is backed by a persistent volume. This means your files are safe even if the container restarts or gets redeployed.

Installing Python packages

You can install additional Python packages directly from a notebook cell:

!pip install pandas numpy matplotlib

Keep in mind that packages installed this way won't persist across container restarts unless you install them into the persistent volume. For a more permanent setup, consider building a custom Docker image with your packages pre-installed.

Logging

Jupyter logs go to STDOUT by default, which works well with Sliplane's built-in log viewer. For general Docker log tips, check out our post on how to use Docker logs.

Troubleshooting

If you can't access the notebook, check the logs in Sliplane's log viewer. Common issues include:

  • Token mismatch: Make sure you're using the correct JUPYTER_TOKEN from your environment variables
  • Port issues: The preset is configured for port 8888, which is Jupyter's default
  • Storage permissions: The container runs as user jovyan (UID 1000), which has write access to /home/jovyan/work

Cost comparison

You can also self-host Jupyter Notebook with other cloud providers. Here is a pricing comparison for the most common ones:

ProvidervCPURAMDiskMonthly CostNote
Sliplane22 GB40 GB€9 (~$10.65)Flat rate, 1 TB bandwidth, SSL included
Fly.io22 GB40 GB~$18Disk and bandwidth billed separately
Render12 GB40 GB~$35100 GB bandwidth, Disk billed separately
Railway22 GB40 GB~$67 + $20 planPro plan floor, usage-based, bandwidth billed separately
Click here to see how these numbers were calculated.

(Assuming an always-on instance running 730 hrs/month)

  • Sliplane: flat €9/month for the Base server. Unlimited services on the same server, 1 TB egress and SSL included.
  • Fly.io: shared-cpu-2x 2 GB = $11.83/mo + 40 GB volume × $0.15/GB = $6 -> ~$17.83/mo. Egress billed separately ($0.02/GB in EU).
  • Render: closest match is Standard ($25, 1 vCPU / 2 GB) plus 40 GB disk × $0.25/GB = $10 -> ~$35/mo. Stepping up to Pro (2 vCPU / 4 GB) costs $85/mo + disk.
  • Railway (Pro plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/mo compute, plus the $20/mo Pro plan floor and $0.05/GB egress.

Bandwidth costs can add up fast on usage-based providers. Use our bandwidth cost comparison tool to see what your egress would cost on each platform.

FAQ

What can I do with Jupyter Notebook?

Jupyter Notebook is used for data analysis, machine learning, scientific computing, teaching, and prototyping. You can write Python code in cells, see results inline, create visualizations, and mix code with Markdown documentation - all in one document.

Can I use other languages besides Python?

The base-notebook image ships with Python, but Jupyter supports many languages through kernels. You can install additional kernels for R, Julia, Scala, and more. The Jupyter project also offers pre-built images like scipy-notebook and datascience-notebook that include popular scientific libraries. You can swap the image in your Sliplane service settings.

How do I update Jupyter Notebook?

Change the image tag in your service settings to a newer date-based tag and redeploy. Check the Jupyter Docker Stacks tags on Quay.io for the latest stable version. New images are built every Monday.

Are there alternatives to Jupyter Notebook?

Yes, popular alternatives include Google Colab (free but limited), VS Code with Jupyter extension (local-first), JupyterHub (multi-user), and Deepnote (collaborative notebooks). Self-hosting gives you full control over your environment and data.

How do I share notebooks with my team?

Since your Jupyter instance is accessible via a public URL with SSL, you can share the URL along with the access token. For more granular access control, consider running JupyterHub instead, which supports multiple users with individual logins.

Self-host Jupyter Notebook now - It's easy!

Sliplane gives you everything you need to run Jupyter Notebook without server hassle.