@evolu/relay 1.1.2-preview.4 → 1.1.2-preview.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +12 -0
- package/Dockerfile.dev +66 -0
- package/dist/package.json +4 -9
- package/dist/src/cli.js +1 -1
- package/docker-compose.dev.yaml +58 -0
- package/package.json +4 -9
- package/src/cli.ts +1 -1
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
package/Dockerfile.dev
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
FROM node:22-alpine AS base
|
|
2
|
+
ENV PNPM_HOME="/pnpm"
|
|
3
|
+
ENV PATH="$PNPM_HOME:$PATH"
|
|
4
|
+
|
|
5
|
+
FROM base AS builder
|
|
6
|
+
RUN apk update && apk add --no-cache libc6-compat
|
|
7
|
+
WORKDIR /app
|
|
8
|
+
RUN corepack enable pnpm
|
|
9
|
+
RUN pnpm install -g turbo
|
|
10
|
+
COPY . .
|
|
11
|
+
|
|
12
|
+
# Generate a partial monorepo with a pruned lockfile for the relay workspace
|
|
13
|
+
RUN turbo prune @evolu/relay --docker
|
|
14
|
+
|
|
15
|
+
# ------------------------------------------------------------
|
|
16
|
+
# Installer stage - build the pruned workspace
|
|
17
|
+
FROM base AS installer
|
|
18
|
+
RUN apk update && apk add --no-cache libc6-compat
|
|
19
|
+
WORKDIR /app
|
|
20
|
+
|
|
21
|
+
# Install pnpm and turbo
|
|
22
|
+
RUN corepack enable pnpm
|
|
23
|
+
RUN pnpm install -g turbo
|
|
24
|
+
|
|
25
|
+
# Install dependencies from pruned lockfile
|
|
26
|
+
COPY --from=builder /app/out/json/ .
|
|
27
|
+
RUN pnpm install --frozen-lockfile
|
|
28
|
+
|
|
29
|
+
# Copy source and build
|
|
30
|
+
COPY --from=builder /app/out/full/ .
|
|
31
|
+
# Ensure README.md is available at the root for the build process
|
|
32
|
+
COPY --from=builder /app/README.md ./README.md
|
|
33
|
+
RUN turbo run build
|
|
34
|
+
|
|
35
|
+
# ------------------------------------------------------------
|
|
36
|
+
# Runner stage - minimal runtime image
|
|
37
|
+
FROM base AS runner
|
|
38
|
+
WORKDIR /app
|
|
39
|
+
|
|
40
|
+
# Create non-root user
|
|
41
|
+
RUN addgroup --system --gid 1001 nodejs && \
|
|
42
|
+
adduser --system --uid 1001 evolu --ingroup nodejs
|
|
43
|
+
RUN chown evolu:nodejs /app
|
|
44
|
+
USER evolu
|
|
45
|
+
|
|
46
|
+
# Copy built application
|
|
47
|
+
COPY --from=installer --chown=evolu:nodejs /app/apps/relay/dist ./dist
|
|
48
|
+
|
|
49
|
+
# Copy the complete node_modules with all dependencies
|
|
50
|
+
COPY --from=installer --chown=evolu:nodejs /app/node_modules ./node_modules
|
|
51
|
+
|
|
52
|
+
# Copy the built workspace packages that the relay needs at runtime
|
|
53
|
+
COPY --from=installer --chown=evolu:nodejs /app/packages/common/dist ./node_modules/@evolu/common/dist
|
|
54
|
+
COPY --from=installer --chown=evolu:nodejs /app/packages/common/package.json ./node_modules/@evolu/common/package.json
|
|
55
|
+
COPY --from=installer --chown=evolu:nodejs /app/packages/nodejs/dist ./node_modules/@evolu/nodejs/dist
|
|
56
|
+
COPY --from=installer --chown=evolu:nodejs /app/packages/nodejs/package.json ./node_modules/@evolu/nodejs/package.json
|
|
57
|
+
|
|
58
|
+
# Expose port
|
|
59
|
+
EXPOSE 4000
|
|
60
|
+
|
|
61
|
+
# Health check
|
|
62
|
+
HEALTHCHECK --interval=30s --timeout=5s --start-period=30s --retries=3 \
|
|
63
|
+
CMD wget --no-verbose --tries=1 --spider http://localhost:4000 || exit 1
|
|
64
|
+
|
|
65
|
+
# Start the application
|
|
66
|
+
CMD ["node", "dist/src/cli.js", "start"]
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evolu/relay",
|
|
3
|
-
"version": "1.1.2-preview.
|
|
3
|
+
"version": "1.1.2-preview.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"@evolu/relay": "dist/src/cli.js"
|
|
@@ -12,15 +12,10 @@
|
|
|
12
12
|
"clean": "shx rm -rf .turbo node_modules dist db.sqlite",
|
|
13
13
|
"docker:build": "docker-compose build --no-cache",
|
|
14
14
|
"docker:up": "docker-compose up --build",
|
|
15
|
-
"docker:up:detached": "docker-compose up -d --build",
|
|
16
15
|
"docker:down": "docker-compose down -v",
|
|
17
|
-
"docker:
|
|
18
|
-
"docker:
|
|
19
|
-
"docker:
|
|
20
|
-
"docker:inspect": "docker inspect evolu-relay-server",
|
|
21
|
-
"docker:stats": "docker stats evolu-relay-server",
|
|
22
|
-
"docker:clean": "docker-compose down -v && docker system prune -f",
|
|
23
|
-
"docker:clean:all": "docker-compose down -v && docker system prune -af && docker volume prune -f"
|
|
16
|
+
"docker:dev:build": "docker-compose -f docker-compose.dev.yaml build --no-cache",
|
|
17
|
+
"docker:dev:up": "docker-compose -f docker-compose.dev.yaml up --build",
|
|
18
|
+
"docker:dev:down": "docker-compose -f docker-compose.dev.yaml down -v"
|
|
24
19
|
},
|
|
25
20
|
"dependencies": {
|
|
26
21
|
"@evolu/common": "workspace:*",
|
package/dist/src/cli.js
CHANGED
|
@@ -25,7 +25,7 @@ function main() {
|
|
|
25
25
|
.action(async (options) => {
|
|
26
26
|
logger.enabled = true;
|
|
27
27
|
const params = cliParams.fromUnknown(options);
|
|
28
|
-
logger.log("Evolu Relay", packageJson.version);
|
|
28
|
+
logger.log("Evolu Relay version:", packageJson.version);
|
|
29
29
|
if (!params.ok) {
|
|
30
30
|
logger.error(params.error.reason);
|
|
31
31
|
process.exit(1);
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
services:
|
|
2
|
+
evolu-relay:
|
|
3
|
+
container_name: evolu-relay-dev-server
|
|
4
|
+
image: evolu/relay:latest
|
|
5
|
+
build:
|
|
6
|
+
context: ../../
|
|
7
|
+
dockerfile: apps/relay/Dockerfile.dev
|
|
8
|
+
tags:
|
|
9
|
+
- evolu/relay:dev
|
|
10
|
+
ports:
|
|
11
|
+
- "4000:4000"
|
|
12
|
+
volumes:
|
|
13
|
+
# Use named volume by default, can be overridden with bind mount if needed
|
|
14
|
+
- evolu-relay-dev-data:/app/apps/relay/data
|
|
15
|
+
environment:
|
|
16
|
+
- NODE_ENV=${NODE_ENV:-production}
|
|
17
|
+
- LOG_LEVEL=${LOG_LEVEL:-info}
|
|
18
|
+
- RELAY_NAME=${RELAY_NAME:-evolu-relay-dev}
|
|
19
|
+
- RELAY_PORT=${RELAY_PORT:-4000}
|
|
20
|
+
- RELAY_ENABLE_LOGGING=${RELAY_ENABLE_LOGGING:-false}
|
|
21
|
+
restart: unless-stopped
|
|
22
|
+
deploy:
|
|
23
|
+
resources:
|
|
24
|
+
limits:
|
|
25
|
+
memory: ${MEMORY_LIMIT:-1G}
|
|
26
|
+
cpus: ${CPU_LIMIT:-1.0}
|
|
27
|
+
reservations:
|
|
28
|
+
memory: ${MEMORY_RESERVED:-512M}
|
|
29
|
+
cpus: ${CPU_RESERVED:-0.5}
|
|
30
|
+
healthcheck:
|
|
31
|
+
test:
|
|
32
|
+
[
|
|
33
|
+
"CMD",
|
|
34
|
+
"sh",
|
|
35
|
+
"-c",
|
|
36
|
+
"wget --no-verbose --tries=1 --spider http://localhost:4000 2>&1 | grep -q '426 Upgrade Required' || exit 1",
|
|
37
|
+
]
|
|
38
|
+
interval: 30s
|
|
39
|
+
timeout: 5s
|
|
40
|
+
retries: 3
|
|
41
|
+
start_period: 30s
|
|
42
|
+
logging:
|
|
43
|
+
driver: "json-file"
|
|
44
|
+
options:
|
|
45
|
+
max-size: ${LOG_MAX_SIZE:-50m}
|
|
46
|
+
max-file: ${LOG_MAX_FILES:-5}
|
|
47
|
+
networks:
|
|
48
|
+
- evolu-dev-network
|
|
49
|
+
|
|
50
|
+
volumes:
|
|
51
|
+
evolu-relay-dev-data:
|
|
52
|
+
driver: local
|
|
53
|
+
name: evolu-relay-dev-data
|
|
54
|
+
|
|
55
|
+
networks:
|
|
56
|
+
evolu-dev-network:
|
|
57
|
+
name: evolu-relay-dev-network
|
|
58
|
+
driver: bridge
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evolu/relay",
|
|
3
|
-
"version": "1.1.2-preview.
|
|
3
|
+
"version": "1.1.2-preview.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"@evolu/relay": "dist/src/cli.js"
|
|
@@ -28,14 +28,9 @@
|
|
|
28
28
|
"clean": "shx rm -rf .turbo node_modules dist db.sqlite",
|
|
29
29
|
"docker:build": "docker-compose build --no-cache",
|
|
30
30
|
"docker:up": "docker-compose up --build",
|
|
31
|
-
"docker:up:detached": "docker-compose up -d --build",
|
|
32
31
|
"docker:down": "docker-compose down -v",
|
|
33
|
-
"docker:
|
|
34
|
-
"docker:
|
|
35
|
-
"docker:
|
|
36
|
-
"docker:inspect": "docker inspect evolu-relay-server",
|
|
37
|
-
"docker:stats": "docker stats evolu-relay-server",
|
|
38
|
-
"docker:clean": "docker-compose down -v && docker system prune -f",
|
|
39
|
-
"docker:clean:all": "docker-compose down -v && docker system prune -af && docker volume prune -f"
|
|
32
|
+
"docker:dev:build": "docker-compose -f docker-compose.dev.yaml build --no-cache",
|
|
33
|
+
"docker:dev:up": "docker-compose -f docker-compose.dev.yaml up --build",
|
|
34
|
+
"docker:dev:down": "docker-compose -f docker-compose.dev.yaml down -v"
|
|
40
35
|
}
|
|
41
36
|
}
|
package/src/cli.ts
CHANGED
|
@@ -38,7 +38,7 @@ function main() {
|
|
|
38
38
|
.action(async (options: unknown) => {
|
|
39
39
|
logger.enabled = true;
|
|
40
40
|
const params = cliParams.fromUnknown(options);
|
|
41
|
-
logger.log("Evolu Relay", packageJson.version);
|
|
41
|
+
logger.log("Evolu Relay version:", packageJson.version);
|
|
42
42
|
|
|
43
43
|
if (!params.ok) {
|
|
44
44
|
logger.error(params.error.reason);
|