init
Creates and sets up a new remote machine.
$ rx init
By default, init
will sync the contents of your current directory to the remote host. If you’d like to see which files will be synced you can run with --dry-run
, which will print the files-to-be-uploaded and exit.
When you initially run rx init
, it will create a default .rxignore file with some standard paths. You can modify this or create your own, then check your work with --dry-run
.
Remote machine setup
By default, rx will examine your project and attempt to determine what languages/tools you’re using, then set them up on the remote machine. For example, if you have a requirements.txt file, rx will make sure Python is installed on the machine and run pip install
on your project. If your project has a package.json file, rx will install node and run npm install
(and so on).
This auto-detected toolchain is written to a file in .rx/remotes/, which .rx/remotes/default will automatically be symlinked to. When you run rx init
, it first checks for .rx/remotes/default and will use that (if it exists) instead of auto-detecting your setup.
Using a custom remote configuration
You can create your own custom configuration and then either symlink .rx/remtoes/default to that file or use the rx init
option --remote
. For example:
rx init --remote=path/to/my-config.yaml
Working purely remotely
If you’d like to work on code that does not exist on your machine, you can pass in --sync=false
. This will prevent rx from syncing files to/from your local machine, but still allow you to use rx commands to work with the remote workspace.
To specify the project to load on the remote machine, specify --git
:
rx init --sync=false --git=https://github.com/ashadnasim52/sentiment-analysis.git
You can also (optionally) specify the commit you wish to load the project at:
rx init --sync=false \
--git=https://github.com/ashadnasim52/sentiment-analysis.git \
--commit=c93fd945f5a6a804f6db35ab2b98c34384de2c92
--commit
defaults to HEAD.
Note that you can still configure a no-sync workspace with a --remote
config.
Re-creating a workspace
Running rx init
a second time in a directory will shut down the current remote machine and start a new one from scratch. This is essentially a wipe back to the base state for your machine.