docs/1-INSTALLATION/single-container.md
Deprecation Notice: The single-container image (
v1-latest-single) is deprecated and will be removed in v2. Please migrate to Docker Compose, which is the recommended installation method for all users. The single-container image will continue to receive updates until v2 is released, but no new features or documentation will target it.
All-in-one container setup. Simpler than Docker Compose, but less flexible.
Best for: PikaPods, Railway, shared hosting, minimal setups
Alternative Registry: Images available on both Docker Hub (
lfnovo/open_notebook:v1-latest-single) and GitHub Container Registry (ghcr.io/lfnovo/open-notebook:v1-latest-single).
# docker-compose.yml
services:
open_notebook:
image: lfnovo/open_notebook:v1-latest-single
pull_policy: always
ports:
- "8502:8502" # Web UI (React frontend)
- "5055:5055" # API
environment:
- OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string
- SURREAL_URL=ws://localhost:8000/rpc
- SURREAL_USER=root
- SURREAL_PASSWORD=root
- SURREAL_NAMESPACE=open_notebook
- SURREAL_DATABASE=open_notebook
volumes:
- ./data:/app/data
restart: always
Run:
docker compose up -d
Access: http://localhost:8502
Then configure your AI provider:
PikaPods:
OPEN_NOTEBOOK_ENCRYPTION_KEY)Railway:
lfnovo/open_notebook:v1-latest-singleOPEN_NOTEBOOK_ENCRYPTION_KEY)Render:
lfnovo/open_notebook:v1-latest-singleOPEN_NOTEBOOK_ENCRYPTION_KEY)/app/data and /mydataDigitalOcean App Platform:
lfnovo/open_notebook:v1-latest-singleOPEN_NOTEBOOK_ENCRYPTION_KEY)Heroku:
# Using heroku.yml
heroku container:push web
heroku container:release web
heroku config:set OPEN_NOTEBOOK_ENCRYPTION_KEY=your-secret-key
Coolify:
lfnovo/open_notebook:v1-latest-singleOPEN_NOTEBOOK_ENCRYPTION_KEY)EasyPanel:
Open Notebook ships an EasyPanel template at examples/easypanel/. Unlike the single-image options above, the template provisions two services — the Open Notebook app and a dedicated SurrealDB instance — and generates the database password, encryption key, and (optionally) the app password for you.
examples/easypanel/ into templates/open-notebook in a checkout of easypanel-io/templates, run the templates playground (npm run dev), and create the template from the generated JSON in your EasyPanel instance.After deployment, open the EasyPanel domain and configure your AI provider in Settings → API Keys. See examples/easypanel/README.md for details.
| Variable | Purpose | Example |
|---|---|---|
OPEN_NOTEBOOK_ENCRYPTION_KEY | Encryption key for credentials (required) | my-secret-key |
SURREAL_URL | Database | ws://localhost:8000/rpc |
SURREAL_USER | DB user | root |
SURREAL_PASSWORD | DB password | root |
SURREAL_NAMESPACE | DB namespace | open_notebook |
SURREAL_DATABASE | DB name | open_notebook |
API_URL | External URL (for remote access) | https://myapp.example.com |
AI provider API keys are configured via the Settings → API Keys UI after deployment.
| Feature | Single Container | Docker Compose |
|---|---|---|
| Setup time | 2 minutes | 5 minutes |
| Complexity | Minimal | Moderate |
| Services | All bundled | Separated |
| Scalability | Limited | Excellent |
| Memory usage | ~800MB | ~1.2GB |
Same as Docker Compose setup - just access via http://localhost:8502 (local) or your platform's URL (cloud).
See Docker Compose for full post-install guide.