Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
node_modules
.git
dist
*.log
.env
.env.*
.vscode
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# syntax=docker/dockerfile:1

FROM node:22-alpine

WORKDIR /app

# Use the Yarn version pinned via package.json "packageManager" / .yarnrc.yml yarnPath
RUN corepack enable

# Install dependencies first to maximize layer caching.
# devDependencies are required at runtime because the app is executed with tsx.
COPY .yarnrc.yml package.json yarn.lock ./
COPY .yarn/ ./.yarn/
RUN yarn install --immutable

# Copy the rest of the source
COPY . .

# The bot is a long-running gateway process executed directly from TypeScript via tsx.
# (No build step / no HTTP port.)
CMD ["yarn", "start"]
7 changes: 7 additions & 0 deletions railway.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"$schema": "https://railway.com/railway.schema.json",
"build": {
"builder": "DOCKERFILE",
"dockerfilePath": "Dockerfile"
}
}