> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shuttle.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Transfer to the new platform

> How to transfer projects from shuttle.rs to shuttle.dev

This guide is for transferring projects from **shuttle.rs** to the new **shuttle.dev** platform.
If you are a new Shuttle user, you can ignore this document and start from [Installation](https://docs.shuttle.dev/getting-started/installation.md).

## 1. Check platform features & policies

> [!WARNING]
>
> Due to the large re-write of the Shuttle platform, some features have been dropped or moved to the feature roadmap.
>
> Make sure you have read the [Platform Update Changelog](https://docs.shuttle.dev/platform-update/platform-update.md#changelog) to verify that it is currently possible to migrate your project.
> Notably:
>
> * **Shuttle Persist** is not supported in the same way. Shared Postgres DB with a similar key-value store abstraction exists instead ([`SerdeJsonOperator` in shuttle\_shared\_db](https://docs.shuttle.dev/resources/shuttle-shared-db)). For help with migrating data, please reach out to us.
>
> * Migrating **Shared MongoDB** is not possible since the feature has been dropped.

## 2. Update CLI

Follow [Installation](https://docs.shuttle.dev/getting-started/installation.md) to install the latest Shuttle CLI.

<Snippet file="binaries.mdx" />

> [!NOTE]
>
> The same Shuttle API key is used on both platforms. If you are already logged in, you don't need to `shuttle login` again.

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

```sh theme={null}
shuttle account
```

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

## 3. Access the new Console

The Shuttle Console for **shuttle.dev** is accessed at [console.shuttle.dev](https://console.shuttle.dev/).

~~The Shuttle Console for **shuttle.rs** is still accessed at [console.shuttle.rs](https://console.shuttle.rs/).~~

## 4. Update Code

Most Shuttle 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 Shuttle dependencies:

```toml Cargo.toml theme={null}
shuttle-runtime = "0.57.0"
# do the same for all other shuttle crates
```

### Shuttle.toml

The `name` field is now unused.

The `assets` field has been renamed to `deploy.include` ([docs](https://docs.shuttle.dev/docs/files.md#include-ignored-files)).

If you want the deploy command to keep blocking dirty deployments, add the `deploy.deny_dirty` field ([docs](https://docs.shuttle.dev/docs/files.md#block-dirty-deployments)).

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

> [!WARNING]
>
> 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](https://docs.shuttle.dev/docs/files.md#build-assets)).

### 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

```sh theme={null}
shuttle run
```

## 6. Deploy

Time to deploy!

```sh theme={null}
shuttle deploy
```

Note your project URL: project subdomains are now under `*.shuttle.app` instead of `*.shuttleapp.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](https://docs.shuttle.dev/guides/migrate-shared-postgres.md)!

## 8. (Optional) Update GitHub Action

If you are using [deploy-action](https://github.com/shuttle-hq/deploy-action), check the new v2 branch for renamed and new required fields:

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

## 9. (Optional) Custom domains

Once you have moved resources, deployed your app to shuttle.dev, and want to move your custom domain, update your DNS records according to [Domain names](https://docs.shuttle.dev/docs/domain-names.md) and use the new `shuttle certificate` command to [add SSL certificates](https://docs.shuttle.dev/docs/domain-names.md#set-up-ssl-certificate).
HTTPS traffic should then be enabled for your custom domain.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.