Remote hosts
Use dots remote to manage one server from your local project:
dots remote root@example.com check
dots remote root@example.com applyDots uses the ssh and rsync commands already installed on your machine. The remote host must also have dots and rsync installed. SSH aliases, keys, ports, jump hosts, and host-key checking come from your normal SSH configuration.
Use --ssh-config when the project has its own OpenSSH configuration:
dots remote --ssh-config infra/machines/ssh.config app-server applyRelative paths start from the project root. Dots uses this configuration for both SSH and rsync.
Pass a profile when the server needs one:
dots remote app-server --profile production check
dots remote app-server --profile production applyWithout --profile, dots selects the profile on the remote host rather than using the local machine's hostname.
Project and state
Before each command, dots transfers the project to a managed working directory on the server. Files removed from the local project are also removed from that working directory.
State stays on the server and is preserved between runs. It is never replaced with state from your local machine.
.dotsignore works like a .gitignore for remote projects. Dots does not sync matching files and directories to the server:
.dots/
.git/
node_modules/
target/check updates this project mirror but does not apply machine changes. apply runs normally on the server, including confirmation and sudo authentication. To skip dots' confirmation, use:
dots remote app-server apply --auto-approveRemote execution manages one host per command. It does not install dots, bootstrap SSH access, store secrets, or run a fleet in parallel.