@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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @evolu/relay@1.1.2-preview.4 build /home/runner/work/evolu/evolu/apps/relay
2
+ > @evolu/relay@1.1.2-preview.6 build /home/runner/work/evolu/evolu/apps/relay
3
3
  > shx rm -rf dist && tsc
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # server
2
2
 
3
+ ## 1.1.2-preview.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 559c858: add log for relay version
8
+
9
+ ## 1.1.2-preview.5
10
+
11
+ ### Patch Changes
12
+
13
+ - 82facf4: release test 2
14
+
3
15
  ## 1.1.2-preview.4
4
16
 
5
17
  ### Patch Changes
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.4",
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:restart": "docker-compose down && docker-compose up --build",
18
- "docker:logs": "docker-compose logs -f evolu-relay",
19
- "docker:shell": "docker exec -it evolu-relay-server sh",
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.4",
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:restart": "docker-compose down && docker-compose up --build",
34
- "docker:logs": "docker-compose logs -f evolu-relay",
35
- "docker:shell": "docker exec -it evolu-relay-server sh",
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);