This guide is for transferring projects from klyra.rs to the new klyra.dev platform. If you are a new Klyra user, you can ignore this document and start from Installation.

1. Check platform features & policies

Due to the large re-write of the Klyra platform, some features have been dropped or moved to the feature roadmap.

Make sure you have read the Platform Update Changelog to verify that it is currently possible to migrate your project. Notably:

  • Klyra Persist is not supported in the same way. Shared Postgres DB with a similar key-value store abstraction exists instead (SerdeJsonOperator in klyra_shared_db). For help with migrating data, please reach out to us.

  • Migrating Shared MongoDB is not possible since the feature has been dropped.

Klyra remains fully committed to providing an excellent development and deployment experience to all users.

In order to keep the free Community Tier sustainable and fair on klyra.dev, we reserve the right to automatically shut down Community Tier projects after 30 days of inactivity (no new deployments).

This policy will be adjusted as the klyra.dev platform matures.

2. Update CLI

Follow Installation to install the latest Klyra CLI.

After installation, you will have two commands: klyra and cargo klyra.

  • klyra is used for interacting with the klyra.dev platform.
  • cargo klyra is used for interacting with the klyra.rs platform.

This documentation covers the klyra.dev platform.

The same Klyra API key is used on both platforms. If you are already logged in, you don’t need to klyra login again.

To verify that your new CLI is installed and working correctly, try the new account command:

klyra account

If the command does not error, you are ready to use klyra.dev.

3. Access the new Console

The Klyra Console for klyra.dev is accessed at console.klyra.dev.

The Klyra Console for klyra.rs is still accessed at console.klyra.rs.

4. Update Code

Most Klyra projects should run on the new platform with minimal code changes. This is the list of required changes.

Cargo.toml

Update to the latest version of Klyra dependencies:

Cargo.toml
klyra-runtime = "0.55.0"
# do the same for all other klyra crates

Klyra.toml

The name field is now unused.

The assets field has been renamed to deploy.include (docs).

If you want the deploy command to keep blocking dirty deployments, add the deploy.deny_dirty field (docs).

The new field build.assets might need to be added:

If your project uses static assets or other files at runtime, you need to declare them in build.assets to have them copied from the builder to the runtime image (docs).

Secrets.toml

Secrets.toml must now be in the root of the cargo workspace, so move it there if it is in a member crate.

--secrets <file> on the deploy command can still be used for a custom secrets file location.

5. Local Run

Check that your project builds and runs locally with

klyra run

6. Deploy

Time to deploy!

klyra deploy

Note your project URL: project subdomains are now under *.klyra.app instead of *.klyraapp.rs.

7. (Optional) Migrate Shared Postgres data

If you use a Shared Postgres database and want to migrate data to the new platform, follow the migration guide!

8. (Optional) Update GitHub Action

If you are using deploy-action, check the new v2 branch for renamed and new required fields:

  • Use klyra-hq/deploy-action@v2 instead of klyra-hq/deploy-action@main
  • Rename deploy-key to klyra-api-key
  • Add a project-id value
  • Any other args for klyra deploy can be added in extra-args

9. (Optional) Custom domains

Once you have moved resources, deployed your app to klyra.dev, and want to move your custom domain, update your DNS records according to Domain names and use the new klyra certificate command to add SSL certificates. HTTPS traffic should then be enabled for your custom domain.