Getting started
Accessing NGC
NGC is accessed via remote workspace called sandbox. Access for each user needs to be explicitly granted by the maintainer. If you don't have access to it reach out to us on our developers discord server.
Prerequisites
The following software is required to work with remote sandbox and needs to be installed on your machine:
- OpenVPN client - sandbox is accessible in private network only
- GnuPG - encrypting tools NGC uses to store and share sensitive data
- OpenSSH - to securely access sandbox through ssh protocol
- Visual Studio Code - best suited IDE for working with NGC
Linux users
Linux users comes with OpenSSH installed already. Just install OpenVPN client and GnuPG. To do so, open terminal and execute the following command:
sudo apt-get install -y openvpn gnupg
If you don't have Visual Studio Code installed please follow official documentation
Windows users
OpenVPN for Windows is fully fledged graphical application. Download and install OpenVPN client from the following link
Download and install GnuPG from the gpg4win
Install OpenSSH for Windows if you don't have already.
If you don't have Visual Studio Code installed please follow official documentation
MacOS users
Download and install OpenVPN client for MacOS from the following link
Install OpenSSH and GnuPG. Open terminal and execute:
brew install openssh gnupg
If you don't have Visual Studio Code installed please follow official documentation
Prepare your GPG keypair
Please follow the instructions from GitHub documentation to setup your GPG keyring. Skip the last step for uploading your public key to GitHub and instead upload it to your GitLab account at db.nomocode.io here. Please note, the key you setup must match email in your GitLab account.
Spawn sandbox
When above steps are completed, you can create your sandbox by issueing the following command in discord ngc channel:
!ngc sandbox start
Launching sandbox takes about 2~5 mins. Wait until you get direct discord message from Sandbox bot.
Connect to VPN network
In the message from Sandbox bot there will be links to your OpenVPN client certificates. Download one based on which operating system you have and then decrypt it with GPG. For example to decrypt VPN certificates for downloaded file Charlie.ovpn.gpg open terminal in the directory where this file is stored and execute:
gpg --output Charlie.ovpn --decrypt Charlie.ovpn.gpg
Next load your OpenVPN profile ( decrypted client certificates ) to OpenVPN Connect application and connect to VPN. For Linux users connect from terminal ( substitude config path accordingly ):
sudo openvpn --config /path/to/your/certs/Charlie.ovpn
After successfully connecting to VPN network open the following link in your web browser
Then open console in code server and init your workspace with the following command
ngc init
You will be asked to generate your ssh keypair. Just follow the instructions and upload your public ssh key to your GitLab account. Next, when everything is done. Open ~/workspace directory.
You are now ready to go! Just as a starting example you can build and explore this documentation project inside your sandbox. Copy and run the following command in terminal
cd projects/docs && ngc build
Then, visit http://docs.ngc
When you are finished with your development in sandbox just disconnect from VPN network and issue the following command in discord ngc channel:
!ngc sandbox stop
Next time connection The above instructions were just one time setup, next time when you will want to enter your sandbox just type in discord ngc channel:
!ngc sandbox start Then wait for notification from Sandbox bot and connect to VPN and open sandbox in your browser.
When finished you can stop it with:
!ngc sandbox stop
Destroying your sandbox
You may decide at some point you don't want to use your sandbox anymore. You can destroy your sandbox completely which is also equivalent to removing all of your data stored in sandbox - you will no longer be able to connect to sandbox with your current VPN certificates and you will need to through the first time setup instructions once again. In order to destroy the sandbox type the following command in discord ngc channel:
!ngc sandbox destroy
NGC operates on workspaces. Workspace is a filesystem directory with a special prepared structure.
Code in sandbox is managed by git version control system. Sandbox can use multiple git repositories (private or public) and there is also one special - official community sandbox. This is the default repo when setting up your sandbox.