|
|
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| test | ||
| alchemy.run.ts | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Railway Website: SolidStart
Deploys a SolidStart site to Railway with
Railway.Website.SolidStart — no adapter wiring in the project config.
Alchemy runs the project's own vite build and appends nitro's Node
preset: the SSR server plus client assets run on one Railway.Service.
Alchemy generates a Dockerfile and uploads the build context; Railway builds the image. The Service listens on port 3000.
src/routes/index.tsxis server-rendered on the Railway Service and readsGREETINGfromprocess.env.- A Tailwind-styled Card component ships with the page.
vite.config.tsholds onlysolidStart()and the Tailwind plugin — nonitroV2Plugin(); the deploy target owns the nitro plugin instance.- Static assets under
public/(orstatic/) deploy with the service.
const site = yield* Railway.Website.SolidStart("Website", {
env: { GREETING: "Hello from SolidStart on Railway!" },
});
The integration package must be installed in the project (it is loaded
dynamically at deploy time), alongside @solidjs/vite-plugin-nitro-2:
bun add -d @alchemy.run/frontend-frameworks
bun add @solidjs/vite-plugin-nitro-2
Deploy
bun install
bun run deploy
Unchanged sources skip the build entirely on subsequent deploys — the
input files are content-hashed (scoped by memo.include).
Dev
bun run dev
alchemy dev runs the framework's own dev server (HMR included) and
no cloud resources are created.
SolidStart 2's dev server (via srvx/node) misrenders under Bun, so
run alchemy dev with Node for this example.
Destroy
bun run destroy