diff --git a/README.md b/README.md
index 95d256949fbb6f2e95d3be047def47cf5c0070f4..7a5cb9ce6f82e93229aee2ed5809364a83d28cba 100644
--- a/README.md
+++ b/README.md
@@ -10,11 +10,25 @@ eval $(ssh-agent)
 ssh-add ~/path/to/private/key
 ```
 
-# Quickstart
+# Infrastructure deployment
 
-* Copy `terraform.tfvars.example` to `terraform.tfvars` and edit in appropriate values
-* Run `terraform init`
-* Run `terraform apply`
+1. Copy `terraform.tfvars.example` to `terraform.tfvars` and edit in appropriate values
+2. Run `terraform init`
+3. Run `terraform apply`
+
+
+# Ceph setup
+
+1. Log into the admin node with `ssh -i ~/.ssh-keys/openstack-fedora-vm -o GlobalKnownHostsFile=/dev/null -o StrictHostKeyChecking=no sles@$(terraform output -raw admin_ip_address)`
+2. `sudo salt-key -F` to show nodes waiting to be accept into the salt-master; you may need to wait a bit before all nodes show up
+3. `sudo salt-key --accept-all` to accept all nodes
+4. `sudo salt \* saltutil.sync_all` to sync all the nodes (if there's an error, wait a moment and try again)
+5. `sudo ceph-salt import cluster.json` to import configuration
+6. `sudo ceph-salt config ls` to both verify that the config is correct and to create ceph-salt metadata files 
+7. `sudo ceph-salt update --reboot` to update all nodes; reboot the admin node with `sudo shutdown -r now`
+8. log back in to the admin node (same command as step 1)
+9. `sudo ceph-salt apply`
+10. access the web interface (in the terraform outputs as `web_ip_address`)
 
 # Variables