Project
Source:
src/Railway/Project.ts
A Railway.Project is a workspace-scoped namespace. It owns environments and services. Names are unique per workspace.
Create a Project
Section titled “Create a Project”Alchemy generates a unique name unless you pass one. url is the
dashboard URL. A production environment is created with the project —
do not recreate it as an Environment resource.
const site = yield* Railway.Project("Site");A stable name
Section titled “A stable name”Pass name when you need a stable project name. Changing it later
updates the project in place.
const site = yield* Railway.Project("Site", { name: "my-site",});Description
Section titled “Description”description is optional and updates in place.
const site = yield* Railway.Project("Site", { description: "production web app",});Workspace
Section titled “Workspace”Workspace defaults to the current token. Pass workspaceId to pin it.
const site = yield* Railway.Project("Site", { workspaceId: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",});Default environment name
Section titled “Default environment name”defaultEnvironmentName is create-only. Railway’s default is
production. Extra environments (staging) are a separate Environment
resource.
const site = yield* Railway.Project("Site", { defaultEnvironmentName: "production",});Module-scope declarations
Section titled “Module-scope declarations”Declare the Project once. Pass it into every child. Resource-valued props accept the resource or an Effect producing it.
import * as Railway from "alchemy/Railway";
export const Site = Railway.Project("Site");