Email toby [at] indieagi [dot] org
Static IP DNS Description
146.190.112.121 jupyter.indieagi.org Stable prod env
146.190.153.28 jupyter-dev.indieagi.org Unstable dev env
Digital Ocean - JupyterHub Prod
Digital Ocean - JupyterHub Dev
NameCheap DNS - indieagi.org
./jupyter-deployment/
├── install-scripts # scripts to run once on a new VM instance
│ ├── install-docker.sh
│ └── start-docker-on-boot.sh
├── LICENSE
├── README.md
└── runtime-config # configuration used when starting JupyterHub
├── docker-compose.yml
├── Dockerfile.jupyterhub
└── jupyterhub_config.py
You can usually skip this step if you haven't changed anything in install-scripts
.
First, go to the appropriate Digital Ocean admin console:
Next, click on the Droplet. It will be jupyterhub-dev
or jupyterhub-prod
.
Go to Destroy > Rubuild Droplet > Ubuntu 22.04 LTS > Rebuild
# Option 1: Go to the Digital Ocean admin console and use the web ssh terminal
# Option 2: Use ssh on your desktop
ssh 146.190.112.121 # JupyterHub Prod
ssh 146.190.153.28 # JupyterHub Dev
git clone https://github.com/indieagi/jupyterhub.git
cd jupyterhub/
cd ./install-scripts
chmod +x install-docker.sh start-docker-on-boot.sh
./install-docker.sh
./start-docker-on-boot.sh
docker run hello-world
Run the following commands
cd ./runtime-config
docker-compose build
docker-compose up -d # starts JupyterHub in the background
- Navigate to the relevant IP address
- Prod: 146.190.112.121:8000
- Dev: 146.190.153.28:8000
- The JupyterHub login screen should be presented
- Navigate to the NameCheap advanced DNS console for indieagi.org
- Change the A record for jupyter.indieagi.org to your new Droplet's IP address
- Wait for the DNS records to propogate
- Navigate to jupyter.indieagi.org. If the login page for JupyterHub loads, DNS is configured correctly
- Open ./runtime-config/docker-compose.yml
- Change host to desired domain
- "traefik.http.routers.jupyterhub.rule=Host(`example.org`)"
- Change email for Let's Encrypt to desired email
- "--certificatesresolvers.myresolver.acme.email=test@example.org"
- Navigate to jupyter.indieagi.org. Do not use the IP address.
- Login using a known working user account.
- If you get a 200 OK and get into your JupyterLab instance, SSL configuration is successful. If you get a 302 Redirect back to login, the JupyterHub SSL configuration is probably wrong.
cd ./runtime-config
docker-compose build
docker-compose up -d
docker logs -f jupyterhub
- Check the Chrome Dev Tools Network logs during login
- If you get a 302, it may be an SSL configuration issue