Deployments & secrets

A deployment is an immutable snapshot of your project's code. Base installs it, reads which trainers and train configs it has, and runs training jobs against it. Secrets are environment variables Base sets in those jobs.

Deploy

From the CLI, in a linked project:

solarian base deploy
solarian base deploy -m "box pool, fixed lr"   # a message shown with the deployment
solarian base deploy --no-wait                  # return once the upload is accepted
solarian base deploy --force                    # build again even if nothing changed

deploy uploads the project, waits for Base to build it and prints the build log. Deploying an unchanged project reuses its deployment.

From the web app: on the project page, Deployments → Import from git, with the Repository URL and a Branch or tag, then Deploy.

What is uploaded

Everything in the project except what .gitignore and an optional .solarianignore name, plus data/, models/, outputs/, wandb/, virtualenvs and .git/: datasets and checkpoints live in Base already. A bundle over 500 MB fails and names its largest files.

To see what a deployment of the current directory would contain, without uploading anything:

solarian base manifest            # trainers, train configs, servables and the robot
solarian base manifest --json

Current deployment, rollback and redeploy

The newest ready deployment becomes the project's current one, which is what jobs use unless told otherwise. In Deployments on the project page:

  • Details shows its build log, Train configs and Trainers;
  • Make current rolls back to an older deployment;
  • Redeploy builds a deployment again, for example after a failed build.

solarian base train deploys first when the code changed; --no-deploy uses the current deployment as it is.

A deployment that becomes current also registers the project's robot, when the project has a conf/robot.yaml: named after the project, with its relay provisioned, ready for its connection file. See Robots & Controller.

Secrets

From the CLI:

solarian base env add WANDB_API_KEY       # prompts for the value
solarian base env add HF_TOKEN "$HF_TOKEN"
solarian base env ls                      # names only
solarian base env rm HF_TOKEN

From the web app: the Environment variables section of the project page, with Key, Value, Save and Remove.

Values are encrypted at rest and never shown again. Every training job the project starts from then on gets them. Names starting with SOLARIAN_ or MODAL_ are reserved for Base.

See also

Was this page helpful?