services: surrealdb: image: surrealdb/surrealdb:v2 # Credentials default to root:root for a zero-config local setup. Before # exposing this instance to a network, set SURREAL_USER / SURREAL_PASSWORD # in a .env file (see .env.example) — they are applied here and to the # open_notebook service below, so the two always stay in sync. command: start --log info --user ${SURREAL_USER:-root} --pass ${SURREAL_PASSWORD:-root} rocksdb:/mydata/mydatabase.db user: root # Required for bind mounts on Linux ports: - "8000:8000" volumes: - ./surreal_data:/mydata environment: - SURREAL_EXPERIMENTAL_GRAPHQL=true restart: always pull_policy: always open_notebook: image: lfnovo/open_notebook:v1-latest ports: - "8502:8502" # Web UI - "5055:5055" # REST API environment: # REQUIRED: Change this to your own secret string # This encrypts your API keys in the database - OPEN_NOTEBOOK_ENCRYPTION_KEY=change-me-to-a-secret-string # Database connection. SURREAL_USER / SURREAL_PASSWORD default to root:root # for local use; override them in a .env file before exposing the instance # (the same values configure the surrealdb service above). - SURREAL_URL=ws://surrealdb:8000/rpc - SURREAL_USER=${SURREAL_USER:-root} - SURREAL_PASSWORD=${SURREAL_PASSWORD:-root} - SURREAL_NAMESPACE=open_notebook - SURREAL_DATABASE=open_notebook volumes: - ./notebook_data:/app/data depends_on: - surrealdb restart: always pull_policy: always