master e76c5baf72f8 cached
4 files
6.4 KB
3.1k tokens
1 requests
Download .txt
Repository: stefanproell/jupyter-notebook-docker-compose
Branch: master
Commit: e76c5baf72f8
Files: 4
Total size: 6.4 KB

Directory structure:
gitextract_0pky7meu/

├── README.md
├── docker-compose.yml
├── generate_token.py
└── jupyter.pem

================================================
FILE CONTENTS
================================================

================================================
FILE: README.md
================================================
# Jupyter with Docker Compose

This repository contains a simple docker-compose definition for launching the popular Jupyter Data Science Notebook.
You can define a password with the script ```generate_token.py -p S-E-C-R-E-T``` and generate SSL certificates as described below.

## Control the container:

* ```docker-compose up``` mounts the directory and starts the container
* ```docker-compose down``` destroys the container

## The compose file: docker-compose.yml

```bash
version:  '3'
services:
  datascience-notebook:
      image:    jupyter/datascience-notebook
      volumes:
        - ${LOCAL_WORKING_DIR}:/home/jovyan/work
        - ${LOCAL_DATASETS}:/home/jovyan/work/datasets
        - ${LOCAL_MODULES}:/home/jovyan/work/modules
        - ${LOCAL_SSL_CERTS}:/etc/ssl/notebook
      ports:
        - ${PORT}:8888
      container_name:   jupyter_notebook
      command: "start-notebook.sh \
        --NotebookApp.password=${ACCESS_TOKEN} \
        --NotebookApp.certfile=/etc/ssl/notebook/jupyter.pem"
```

## Example with a custom user

```YAML
version: '2'
services:
    datascience-notebook:
        image: jupyter/base-notebook:latest
        volumes:
            - /tmp/jupyter_test_dir:/home/docker_worker/work            
        ports:
            - 8891:8888
        command: "start-notebook.sh"
        user: root
        environment:
          NB_USER: docker_worker
          NB_UID: 1008
          NB_GID: 1011
          CHOWN_HOME: 'yes'
          CHOWN_HOME_OPTS: -R

```
## The environment file .env

```bash
# Define a local data directory
# Set permissions for the container:
#   sudo chown -R 1000 ${LOCAL_WORKING_DIR}

LOCAL_WORKING_DIR=/data/jupyter/notebooks

# Generate an access token like this
#   import IPython as IPython
#   hash = IPython.lib.passwd("S-E-C-R-E-T")
#   print(hash)
# You can use the script generate_token.py

ACCESS_TOKEN=sha1:d4c78fe19cb5:0c8f830971d52da9d74b9985a8b87a2b80fc6e6a

# Host port
PORT=8888

# Provide data sets
LOCAL_DATASETS=/data/jupyter/datasets

# Provide local modules
LOCAL_MODULES=/home/git/python_modules

# SSL
# Generate cert like this:
#   openssl req -x509 -nodes -newkey rsa:2048 -keyout jupyter.pem -out jupyter.pem
# Copy the jupyter.pem file into the location below.
LOCAL_SSL_CERTS=/opt/ssl-certs/jupyter
```



# Version Conflicts

Make sure to have the latest versions installed. You can use the Notebook Browser interface.
```python
pip install -U jupyter
```


================================================
FILE: docker-compose.yml
================================================
version:  '3'
services:
  datascience-notebook:
      image:    jupyter/datascience-notebook
      volumes:
        - ${LOCAL_WORKING_DIR}:/home/jovyan/work
        - ${LOCAL_DATASETS}:/home/jovyan/work/datasets
        - ${LOCAL_MODULES}:/home/jovyan/work/modules
        - ${LOCAL_SSL_CERTS}:/etc/ssl/notebook
      ports:
        - ${PORT}:8888
      container_name:   jupyter_notebook
      command: "start-notebook.sh \
        --NotebookApp.password=${ACCESS_TOKEN} \
        --NotebookApp.certfile=/etc/ssl/notebook/jupyter.pem"


================================================
FILE: generate_token.py
================================================
#!/usr/bin/env sh
import IPython as IPython

if __name__ == "__main__":
    print("Generate a access token")
    from argparse import ArgumentParser
    parser = ArgumentParser()
    parser.add_argument("-p",
        "--password", 
        dest="password",
        help="The password you want to use for authentication.",
        required=True)
    args = parser.parse_args()

    print("\nCopy this line into the .env file:\n")
    hash = IPython.lib.passwd(args.password)
    print("ACCESS_TOKEN=" + hash)


================================================
FILE: jupyter.pem
================================================
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDtGlWjn9Sw2aV0
32H7le8Ra2cQRx5cS/m5R8HL0Tl/JlYwLBXNZcsUmnqOKCxJFilkBcj4BIAic5ZR
b1AyTPn1RERf6SbFLZGBUnYcLQDL6Z6qEILe0H5G30yFjdvjUVnhYPUsWW6H1tUF
EhtuMduj2o+2YUaiE6UQAD5EfX09jzGcwNx/Hj1XXvpRSfDBQWlWxkKOm6TqGoXH
FBAIGAH1gKehotGDd+YluOFp9qk8G2e2Tvpg7JQfaSoIT1ViHwg+0XSQVoVRNqWK
XQ+MD+dCcwbcL7kAbnLW1x1a4ym9as5t/iDUjVldh70coJ9uaa1CHklAZzheH6Xc
up6cvqb5AgMBAAECggEBANa/iV1fwCZFmsRWJsrVq+hdHMXzhB4YeiBES9SstaTi
NiH/a+fTELKij+n9nM69kdOUIcfxW5TYmAc+CKbmbWal5D/yTjk84pL8+xjd8eC+
wgRKXB4vPJA4Y3h7WfNzlTK6vJTkk2XZQKsNEWcnJUYtCQko5e6aWGA7uCoUdsCv
GPVIgxFpSuAzAVJQVDhcAIVYYeXR8+XF5VDGme0IdN1oOOaNDYvzboBZhWwjIM5c
K309EeY2599Q6HrFK7/eaRLGSoFjQu5WJnQ+CCHp3Awx+5Btc7sYhZHEwi1Qrv+v
RKFLpcICs70pD9/5/QK8PQ57hjfIJdVCr6YkU80EQuECgYEA+BIGzoqTvtrxoTfp
opGZ933fE8f678BEm6WxfhfptZa28M4IJa2wVTfOMp2d8yf03hEhQ5/wc6T2kXmz
PDUq90m2P9dpwUIpQcOH3KGMqtvQ1FS2VikxSm+1u0IzDEWy6Cu1n0OiaAft0aEz
w0MNqVbElK5PrSRZvnfwISwcD2UCgYEA9K6PVsGAaNRMAxZZoHr0cSAjYl1puqi8
mi9pIZLgM8vjibhHRQWavJ596iTedMa7N+B3/i1YXD6MRETRq3zVqlvvZA+qSWmo
7HTpwsHcLv8XZ0ghvYumxGMv5EhgFc53E5WLkw9x8YiKbrDRhoW7vlDn8pMd6UYA
gKIPFMv0UgUCgYBbX+h587lwN52BUOMSKqeX7hlZY/Qek6ex3Vp/o7dGV/mSwZFm
r4+gFCozorMnebRMh+rEygj7z+uysi0/JCZraA9lfKdLtF8WBjvpHOh/lvBZBcsT
+aBaVsON8lhzUMkRk+gWfgc4YpNLACHc7rn9giRuz7YxhI46BlvBHEpJsQKBgBuz
186+wcccoi6HTUZ6JUrZlKgCY4IasJ/UVlbSxkeXAgAJuSf7ZnWMjD0CR515EqFU
7MD+aU6oVkE0eXis/ZP4LLZrf6AoMlPzOLQwNrmrb/7lj8xiD1OU10tFVnuhkKHL
AK55xTDPgLzfkBlm8satalVwiqZqoovtzT9RiCvxAoGAJpqDya0YvQweh/HMz4O0
sdOztP0FL/4R6uCx7g2WJCVuS1mT0QH6nTsuvI83Lka1a8g0zZmSBYubaEltwmiY
ZVX0j7kox7fdBDgPGuxnuCFdniChwTGxcQEPmkR9bzbH2ARqs3h+INjQNIXbfY1p
6naHb5lAGVSU06CDnKFQm2c=
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIID3TCCAsWgAwIBAgIJAKZ91kk1bQIJMA0GCSqGSIb3DQEBCwUAMIGEMQswCQYD
VQQGEwJBVDEOMAwGA1UECAwFVGlyb2wxEjAQBgNVBAcMCUlubnNicnVjazERMA8G
A1UECgwIQ3JvcHN0ZXIxDDAKBgNVBAsMA0RldjESMBAGA1UEAwwJMTI3LjAuMC4x
MRwwGgYJKoZIhvcNAQkBFg1ub25lQHRlc3Qub3JnMB4XDTE4MDIxMzA4Mzg1M1oX
DTE4MDMxNTA4Mzg1M1owgYQxCzAJBgNVBAYTAkFUMQ4wDAYDVQQIDAVUaXJvbDES
MBAGA1UEBwwJSW5uc2JydWNrMREwDwYDVQQKDAhDcm9wc3RlcjEMMAoGA1UECwwD
RGV2MRIwEAYDVQQDDAkxMjcuMC4wLjExHDAaBgkqhkiG9w0BCQEWDW5vbmVAdGVz
dC5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDtGlWjn9Sw2aV0
32H7le8Ra2cQRx5cS/m5R8HL0Tl/JlYwLBXNZcsUmnqOKCxJFilkBcj4BIAic5ZR
b1AyTPn1RERf6SbFLZGBUnYcLQDL6Z6qEILe0H5G30yFjdvjUVnhYPUsWW6H1tUF
EhtuMduj2o+2YUaiE6UQAD5EfX09jzGcwNx/Hj1XXvpRSfDBQWlWxkKOm6TqGoXH
FBAIGAH1gKehotGDd+YluOFp9qk8G2e2Tvpg7JQfaSoIT1ViHwg+0XSQVoVRNqWK
XQ+MD+dCcwbcL7kAbnLW1x1a4ym9as5t/iDUjVldh70coJ9uaa1CHklAZzheH6Xc
up6cvqb5AgMBAAGjUDBOMB0GA1UdDgQWBBS0HEgRO22ECtLckZp+LP+0nNg8SzAf
BgNVHSMEGDAWgBS0HEgRO22ECtLckZp+LP+0nNg8SzAMBgNVHRMEBTADAQH/MA0G
CSqGSIb3DQEBCwUAA4IBAQCtdBrbmYNZCw/zpxe81VHH5be3XGw/VFOmTTDdWi6O
q9RHoHpwDWsJd1T0h/o5wzkpIFGADPQCtR7SGktoUS40GUmaiQXQijedGSMg56YN
f/NwLm/zf93i3gbnK8l/zNb7BtEPzR/46nezlWRxs57Iw2Kw2bFQA8SKjlbqllhf
KlDgu8QaFxnoaIuMcZKDIGlEeO0wnEzqjDF438aAt/ft0SPs7ae6PokR2YhMO2SK
0d9IrVqF74lls3Kmddkt8mIbk77B4eRtmB28M/hMVUcun3598qfK77OsK+bm2AEc
krn3a6vyCg6oV/i4icbIHHLNXvHUSoZ20h43NPZ/3eW5
-----END CERTIFICATE-----
Download .txt
gitextract_0pky7meu/

├── README.md
├── docker-compose.yml
├── generate_token.py
└── jupyter.pem
Condensed preview — 4 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7K chars).
[
  {
    "path": "README.md",
    "chars": 2453,
    "preview": "# Jupyter with Docker Compose\n\nThis repository contains a simple docker-compose definition for launching the popular Jup"
  },
  {
    "path": "docker-compose.yml",
    "chars": 536,
    "preview": "version:  '3'\nservices:\n  datascience-notebook:\n      image:    jupyter/datascience-notebook\n      volumes:\n        - ${"
  },
  {
    "path": "generate_token.py",
    "chars": 508,
    "preview": "#!/usr/bin/env sh\nimport IPython as IPython\n\nif __name__ == \"__main__\":\n    print(\"Generate a access token\")\n    from ar"
  },
  {
    "path": "jupyter.pem",
    "chars": 3103,
    "preview": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDtGlWjn9Sw2aV0\n32H7le8Ra2cQRx5cS/m5R8HL0Tl"
  }
]

About this extraction

This page contains the full source code of the stefanproell/jupyter-notebook-docker-compose GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 4 files (6.4 KB), approximately 3.1k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!