Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Avoid Python cache files
**/__pycache__/
**/*.pyc

# Avoid state files
state/

# Avoid uploads and results
uploads/
results/

# Avoid IDE files
.vscode/
.idea/

# Avoid git files
.git/
.gitignore

# Avoid Docker files
Dockerfile
.dockerignore

# Avoid misc files
*.log
*.tmp
.DS_Store
88 changes: 88 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Isaac Automator Setup Host Configuration
# Copy this file to .env and fill in your values

# =============================================================================
# REQUIRED VARIABLES
# =============================================================================

# Remote host connection details
HOST_IP=192.168.100.001
SSH_KEY_PATH=./ssh_key
NGC_API_KEY=your_ngc_api_key_here

# =============================================================================
# OPTIONAL VARIABLES (with defaults)
# =============================================================================

# SSH Configuration
SSH_USER=ubuntu
SSH_PORT=22

# Deployment Configuration
DEPLOYMENT_NAME=lucy-isaac-deployment
# If not set, a random name will be generated

# Isaac Sim Configuration
ISAAC_ENABLED=true
ISAAC_IMAGE=nvcr.io/nvidia/isaac-sim:4.5.0

# Isaac Lab Configuration
ISAACLAB_VERSION=v2.1.0
# Set to "no" to disable Isaac Lab installation

# Omniverse Isaac Gym Environments (deprecated, use Isaac Lab instead)
OIGE_VERSION=no
# Set to git reference to enable, e.g., "main" or "v1.0.0"

# Isaac Lab Private Git (for development)
ISAACLAB_PRIVATE_GIT=
# Leave empty unless you have a private Isaac Lab repository

# Remote Desktop Configuration
VNC_PASSWORD=
# If not set, a random password will be generated

# System Configuration
SYSTEM_USER_PASSWORD=
# If not set, a random password will be generated

# Omniverse Configuration
OMNIVERSE_USER=omniverse
OMNIVERSE_PASSWORD=
# If not set, a random password will be generated

# File Management
UPLOAD_FILES=true
# Set to false to skip uploading local files

# Deployment Behavior
EXISTING_DEPLOYMENT_ACTION=ask
# Options: ask, repair, modify, replace, run_ansible
# - ask: prompt user what to do (requires interaction)
# - repair: fix broken deployment without changing parameters
# - modify: update deployment with new parameters
# - replace: delete and recreate deployment
# - run_ansible: re-run only Ansible configuration

# Development/Debug
DEBUG=false
NGC_API_KEY_CHECK=true

# =============================================================================
# EXAMPLES
# =============================================================================

# Example for a local development setup:
# HOST_IP=192.168.1.100
# SSH_KEY_PATH=~/.ssh/gpu_workstation
# SSH_USER=ubuntu
# DEPLOYMENT_NAME=dev-workstation
# NGC_API_KEY=your_ngc_key_from_nvidia

# Example for a lab environment:
# HOST_IP=10.0.0.50
# SSH_KEY_PATH=~/.ssh/lab_key
# SSH_USER=researcher
# DEPLOYMENT_NAME=lab-isaac-sim
# ISAAC_IMAGE=nvcr.io/nvidia/isaac-sim:4.5.0
# ISAACLAB_VERSION=main
53 changes: 53 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Avoid Python cache files
__pycache__
**/*_cache
**/__pycache__/
**/*.pyc

# Avoid state files
/state

# Avoid uploads and results
results/*
uploads/*

# Avoid IDE files
.vscode/
.idea/

# Avoid misc files
*.hosts
*.swp
.DS_Store

# Development data
__*

# Generated ansible files
src/ansible/roles/isaac/files/autorun.sh
src/ansible/roles/isaac/files/isaaclab.pem

# Environment files (contain sensitive data)
.env

# SSH keys (sensitive security credentials)
ssh_key
ssh_key.pub
*.pem
*.key
id_rsa*
id_ed25519*
id_ecdsa*
*_rsa*
*_ed25519*
*_ecdsa*

# Vagrant files and VM state
.vagrant/
*.log
vagrant/logs/
.vagrant_gitignore

# KVM/libvirt VM files
*.qcow2
*.img
50 changes: 50 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Dockerfile for runnig and distributing the app

FROM ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
ENV force_color_prompt=yes

# paths for python
ENV PYTHONPATH=/app:/app/lib:/app/src:/app/py:/app/python:/app/cli:/app/utils:/app/tests

# misc
RUN apt-get update && apt-get install -qy \
openssh-client \
lsb-release \
python3-pip \
apt-utils \
expect \
unzip \
rsync \
curl \
nano \
wget \
gpg \
jq

# pip
RUN pip install click randomname pwgen debugpy

# ansible
ENV ANSIBLE_FORCE_COLOR=true
# for some reason, the ansible.cfg file is not being picked up on Windows
ENV ANSIBLE_CONFIG="/app/src/ansible/ansible.cfg"
RUN pip install ansible
RUN ansible-galaxy collection install community.docker

# ngc cli: https://docs.ngc.nvidia.com/cli/script.html
RUN cd /opt && wget https://ngc.nvidia.com/downloads/ngccli_cat_linux.zip && unzip ngccli_cat_linux.zip && rm ngccli_cat_linux.zip
RUN echo 'export PATH="$PATH:/opt/ngc-cli"' >> ~/.bashrc

# copy app code into container
COPY . /app

# customoize bash prompt
RUN echo "export PS1='\[\033[01;36m\][Isaac Automator \${VERSION}]\[\033[00m\]:\w\$ '" >> /root/.bashrc

WORKDIR /app

ENTRYPOINT [ "/bin/sh", "-c" ]

ENV VERSION="v3.7.2"
Loading