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
68 changes: 68 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# ── Stage 1: Build SkeldJS from source ──
FROM node:22-alpine AS skeldjs-builder

WORKDIR /skeldjs
RUN apk add --no-cache git

# Clone the SkeldJS fork — uses default branch
# To force re-clone: docker build --build-arg CACHEBUST=$(date +%s) .
# To specify a branch: docker build --build-arg SKELDJS_REF=my-branch .
ARG SKELDJS_REPO=https://github.com/Empostor/SkeldJS
ARG SKELDJS_REF=
ARG CACHEBUST=1
RUN if [ -n "${SKELDJS_REF}" ]; then \
git clone --depth 1 --branch "${SKELDJS_REF}" ${SKELDJS_REPO} . ; \
else \
git clone --depth 1 ${SKELDJS_REPO} . ; \
fi

# Install dependencies & build all packages
RUN corepack enable && yarn install
RUN yarn build-all

# ── Stage 2: Build Waterway ──
FROM node:22-alpine AS builder

WORKDIR /app

# Copy Waterway source
COPY package.json tsconfig.json .yarnrc.yml ./
COPY .yarn/ .yarn/
COPY bin/ bin/
COPY src/ src/

# Enable yarn, install only third-party deps (SkeldJS from npm as placeholder)
RUN corepack enable
RUN yarn install

# Overwrite npm SkeldJS with locally-built packages
COPY --from=skeldjs-builder /skeldjs/packages/client/dist /app/node_modules/@skeldjs/au-client/dist
COPY --from=skeldjs-builder /skeldjs/packages/client/package.json /app/node_modules/@skeldjs/au-client/
COPY --from=skeldjs-builder /skeldjs/packages/constant/dist /app/node_modules/@skeldjs/au-constants/dist
COPY --from=skeldjs-builder /skeldjs/packages/constant/package.json /app/node_modules/@skeldjs/au-constants/
COPY --from=skeldjs-builder /skeldjs/packages/core/dist /app/node_modules/@skeldjs/au-core/dist
COPY --from=skeldjs-builder /skeldjs/packages/core/package.json /app/node_modules/@skeldjs/au-core/
COPY --from=skeldjs-builder /skeldjs/packages/protocol/dist /app/node_modules/@skeldjs/au-protocol/dist
COPY --from=skeldjs-builder /skeldjs/packages/protocol/package.json /app/node_modules/@skeldjs/au-protocol/
COPY --from=skeldjs-builder /skeldjs/packages/text/dist /app/node_modules/@skeldjs/au-text/dist
COPY --from=skeldjs-builder /skeldjs/packages/text/package.json /app/node_modules/@skeldjs/au-text/
COPY --from=skeldjs-builder /skeldjs/packages/events/dist /app/node_modules/@skeldjs/events/dist
COPY --from=skeldjs-builder /skeldjs/packages/events/package.json /app/node_modules/@skeldjs/events/
COPY --from=skeldjs-builder /skeldjs/packages/hazel/dist /app/node_modules/@skeldjs/hazel/dist
COPY --from=skeldjs-builder /skeldjs/packages/hazel/package.json /app/node_modules/@skeldjs/hazel/

# Build Waterway with local SkeldJS
RUN yarn build

# ── Stage 3: Production image ──
FROM node:22-alpine

WORKDIR /app

COPY --from=builder /app/dist /app/dist
COPY --from=builder /app/node_modules /app/node_modules
COPY --from=builder /app/package.json /app/

EXPOSE 22023 22123

CMD ["node", "dist/bin/bootstrap"]
20 changes: 18 additions & 2 deletions bin/createDefaultConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,20 @@ export function createDefaultConfig(): WaterwayConfig {
autoUpdate: false,
exitConfirmation: true,
defaultLanguage: "en",
acceptedVersions: ["2025.7.15"],
acceptedVersions: [
"2025.7.15", // 17.0.0 (2025-09-09)
"2025.9.12", // 17.0.1 (2025-10-14)
"2025.10.9", // 17.1 (2025-11-18)
"2025.11.6", // 17.1.1 (2025-12-03, mobile only)
"2025.12.8", // 17.1.2 (2025-12-11, mobile only)
"2025.11.5", // 17.2 (2026-02-17, build 6630)
"2026.1.22", // 17.2 (2026-02-19, build 6686, hotfix)
"2026.2.2", // 17.2.2 (2026-03-17, build 6768)
"2026.1.12", // 17.3 (2026-03-31, build 6803)
"2026.3.17", // 17.3.1 (2026-04-08, build 6841, mobile only)
"2026.3.18", // 17.4 (2026-06-05, build 7044, pc only)
"2026.4.23", // 17.4 (2026-06-05, build 7045, mobile only)
],
matchmaker: {
port: 22023
},
Expand All @@ -26,7 +39,8 @@ export function createDefaultConfig(): WaterwayConfig {
ignoreSearchTerms: false,
maxResults: 10,
removeExtraFilters: false,
requireExactMatches: true
requireExactMatches: true,
filterTags: []
},
plugins: {
loadDirectory: true
Expand All @@ -52,6 +66,8 @@ export function createDefaultConfig(): WaterwayConfig {
},
gameCodes: "v2",
enforceSettings: {},
allowedGameModes: [],
defaultGameMode: 1,
authoritativeServer: false,
advanced: {
unknownObjects: false
Expand Down
Loading