devpush 1.0.0-beta.3 → 1.0.0-beta.5

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/README.md CHANGED
@@ -1,7 +1,23 @@
1
1
  # devpush
2
2
 
3
- Deploy Docker Compose applications to your own servers with a git push. Run the dashboard on Node or Cloudflare Workers.
3
+ Deploy Docker Compose applications to your own servers with a git push. Run the dashboard on Cloudflare Workers or Node; the Linux agent builds and runs your applications.
4
4
 
5
- - [Installation](https://devpu.sh/docs/self-hosting/)
6
- - [Package integration](https://devpu.sh/docs/package-installation/)
7
- - [Source and contributing](https://github.com/hunvreus/devpush)
5
+ <a href="https://devpu.sh/videos/devpush-demo.mp4">
6
+ <img src="https://devpu.sh/videos/readme-demo.png" alt="Watch the devpush demo" width="1200" />
7
+ </a>
8
+
9
+ Includes environments, custom domains and HTTPS, encrypted variables, logs, server monitoring, backups, teams, a REST API and MCP.
10
+
11
+ ## Get started
12
+
13
+ [Use the hosted dashboard](https://app.devpu.sh) or [self-host devpush](https://devpu.sh/docs/self-hosting/).
14
+
15
+ To use this package in your own project:
16
+
17
+ ```sh
18
+ pnpm add --save-exact devpush
19
+ ```
20
+
21
+ Follow [Package integration](https://devpu.sh/docs/package-installation/) to configure your dashboard, databases and authentication, then build and deploy. Installing the package alone does not start a dashboard.
22
+
23
+ [Documentation](https://devpu.sh/docs/) · [Source and contributing](https://github.com/hunvreus/devpush) · [MIT license](https://github.com/hunvreus/devpush/blob/main/LICENSE.md)
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "repository": "hunvreus/devpush",
4
- "version": "1.0.0-beta.3",
4
+ "version": "1.0.0-beta.5",
5
5
  "goVersion": "go1.27.3",
6
6
  "protocolVersion": 1,
7
7
  "capabilities": [
@@ -21,16 +21,16 @@
21
21
  "os": "linux",
22
22
  "arch": "amd64",
23
23
  "filename": "devpush-agent-linux-amd64",
24
- "url": "https://github.com/hunvreus/devpush/releases/download/v1.0.0-beta.3/devpush-agent-linux-amd64",
25
- "sha256": "0f7f68305fa23525dbb5701460df6dc37d533a183af01ee615638948d746ffac",
24
+ "url": "https://github.com/hunvreus/devpush/releases/download/v1.0.0-beta.5/devpush-agent-linux-amd64",
25
+ "sha256": "de7b000f1ad14f2c55c3c4951b72247b0d180f9d5f488d140988e565e2498acb",
26
26
  "size": 8212604
27
27
  },
28
28
  {
29
29
  "os": "linux",
30
30
  "arch": "arm64",
31
31
  "filename": "devpush-agent-linux-arm64",
32
- "url": "https://github.com/hunvreus/devpush/releases/download/v1.0.0-beta.3/devpush-agent-linux-arm64",
33
- "sha256": "03893adc1cb03e4e453fe687912b4b2b687d94b47bab3f4a99b841ec2c57f36f",
32
+ "url": "https://github.com/hunvreus/devpush/releases/download/v1.0.0-beta.5/devpush-agent-linux-arm64",
33
+ "sha256": "39c9a95f521592412374a56cd43bcf9f941f37ba9a62f20292b8cfc0f9dc3dbb",
34
34
  "size": 7536764
35
35
  }
36
36
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devpush",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.0-beta.5",
4
4
  "type": "module",
5
5
  "imports": {
6
6
  "#devpush/*": {
@@ -14,40 +14,6 @@
14
14
  "#devpush/plugins/registered-server": "./src/plugins/default.server.ts",
15
15
  "#devpush/plugins/registered-client": "./src/plugins/default.ui.ts"
16
16
  },
17
- "scripts": {
18
- "dev": "pnpm db:migrate && node -r ./scripts/fs-watch-error-guard.cjs ./node_modules/vite/bin/vite.js dev --host 0.0.0.0 --port 7429 --strictPort",
19
- "generate-routes": "tsr generate",
20
- "build": "vite build",
21
- "build:cloudflare": "DEVPUSH_DEPLOY_TARGET=cloudflare vite build",
22
- "deploy:cloudflare:worker": "pnpm validate:cloudflare:config && pnpm build:cloudflare && wrangler deploy --config dist/server/wrangler.json --secrets-file \"${DEVPUSH_CLOUDFLARE_SECRETS_FILE:-.cloudflare-secrets.json}\"",
23
- "validate:cloudflare": "pnpm validate:cloudflare:config && pnpm build:cloudflare && wrangler deploy --config dist/server/wrangler.json --dry-run --secrets-file \"${DEVPUSH_CLOUDFLARE_SECRETS_FILE:-.cloudflare-secrets.json}\"",
24
- "validate:cloudflare:config": "tsx scripts/validate-cloudflare-config.mjs",
25
- "cf-typegen": "wrangler types --config wrangler.template.jsonc --env-file=cloudflare-types.env --include-runtime=false --strict-vars=false",
26
- "db:generate": "drizzle-kit generate",
27
- "db:migrate": "tsx --env-file-if-exists=.env scripts/migrate.ts",
28
- "db:migrate:cloudflare": "tsx scripts/migrate-cloudflare.mjs",
29
- "db:push": "drizzle-kit push",
30
- "db:studio": "drizzle-kit studio",
31
- "preview": "vite preview",
32
- "cleanup:invites": "tsx scripts/cleanup-expired-invites.ts",
33
- "cleanup:users": "tsx scripts/cleanup-deleted-users.ts",
34
- "smoke:deploy": "DEVPUSH_SMOKE_GITHUB_TOKEN=${DEVPUSH_SMOKE_GITHUB_TOKEN:-smoke-github-token} tsx scripts/smoke-deploy-lifecycle.ts",
35
- "test": "vitest run",
36
- "test:integration": "vitest run --config vitest.integration.config.ts",
37
- "typecheck": "tsc --noEmit",
38
- "lint": "eslint",
39
- "format": "prettier --write . && eslint --fix",
40
- "check": "prettier --check .",
41
- "db:generate:logs": "drizzle-kit generate --config drizzle.logs.config.ts",
42
- "test:integration:libsql": "DEVPUSH_TEST_LIBSQL=1 vitest run --config vitest.integration.config.ts",
43
- "smoke:worker": "node scripts/smoke-worker.mjs",
44
- "smoke:node": "node scripts/smoke-node.mjs",
45
- "smoke:dev": "DEVPUSH_SMOKE_DEVELOPMENT=1 node scripts/smoke-node.mjs",
46
- "cleanup:recover": "tsx --env-file-if-exists=.env scripts/deletion-recovery.ts",
47
- "build:package": "node scripts/build-package.mjs",
48
- "prepack": "pnpm build:package",
49
- "test:package": "node scripts/package-proof.mjs"
50
- },
51
17
  "dependencies": {
52
18
  "@aws-sdk/client-s3": "3.1105.0",
53
19
  "@base-ui/react": "1.9.0",
@@ -168,5 +134,38 @@
168
134
  "vite": "8.1.6"
169
135
  },
170
136
  "description": "Deploy Docker Compose applications to your own servers with a git push.",
171
- "homepage": "https://devpu.sh"
172
- }
137
+ "homepage": "https://devpu.sh",
138
+ "scripts": {
139
+ "dev": "pnpm db:migrate && node -r ./scripts/fs-watch-error-guard.cjs ./node_modules/vite/bin/vite.js dev --host 0.0.0.0 --port 7429 --strictPort",
140
+ "generate-routes": "tsr generate",
141
+ "build": "vite build",
142
+ "build:cloudflare": "DEVPUSH_DEPLOY_TARGET=cloudflare vite build",
143
+ "deploy:cloudflare:worker": "pnpm validate:cloudflare:config && pnpm build:cloudflare && wrangler deploy --config dist/server/wrangler.json --secrets-file \"${DEVPUSH_CLOUDFLARE_SECRETS_FILE:-.cloudflare-secrets.json}\"",
144
+ "validate:cloudflare": "pnpm validate:cloudflare:config && pnpm build:cloudflare && wrangler deploy --config dist/server/wrangler.json --dry-run --secrets-file \"${DEVPUSH_CLOUDFLARE_SECRETS_FILE:-.cloudflare-secrets.json}\"",
145
+ "validate:cloudflare:config": "tsx scripts/validate-cloudflare-config.mjs",
146
+ "cf-typegen": "wrangler types --config wrangler.template.jsonc --env-file=cloudflare-types.env --include-runtime=false --strict-vars=false",
147
+ "db:generate": "drizzle-kit generate",
148
+ "db:migrate": "tsx --env-file-if-exists=.env scripts/migrate.ts",
149
+ "db:migrate:cloudflare": "tsx scripts/migrate-cloudflare.mjs",
150
+ "db:push": "drizzle-kit push",
151
+ "db:studio": "drizzle-kit studio",
152
+ "preview": "vite preview",
153
+ "cleanup:invites": "tsx scripts/cleanup-expired-invites.ts",
154
+ "cleanup:users": "tsx scripts/cleanup-deleted-users.ts",
155
+ "smoke:deploy": "DEVPUSH_SMOKE_GITHUB_TOKEN=${DEVPUSH_SMOKE_GITHUB_TOKEN:-smoke-github-token} tsx scripts/smoke-deploy-lifecycle.ts",
156
+ "test": "vitest run",
157
+ "test:integration": "vitest run --config vitest.integration.config.ts",
158
+ "typecheck": "tsc --noEmit",
159
+ "lint": "eslint",
160
+ "format": "prettier --write . && eslint --fix",
161
+ "check": "prettier --check .",
162
+ "db:generate:logs": "drizzle-kit generate --config drizzle.logs.config.ts",
163
+ "test:integration:libsql": "DEVPUSH_TEST_LIBSQL=1 vitest run --config vitest.integration.config.ts",
164
+ "smoke:worker": "node scripts/smoke-worker.mjs",
165
+ "smoke:node": "node scripts/smoke-node.mjs",
166
+ "smoke:dev": "DEVPUSH_SMOKE_DEVELOPMENT=1 node scripts/smoke-node.mjs",
167
+ "cleanup:recover": "tsx --env-file-if-exists=.env scripts/deletion-recovery.ts",
168
+ "build:package": "node scripts/build-package.mjs",
169
+ "test:package": "node scripts/package-proof.mjs"
170
+ }
171
+ }
@@ -36,7 +36,7 @@ export function SignOutMenuItem() {
36
36
  }
37
37
  }}
38
38
  >
39
- {pending ? 'Signing out…' : 'Sign out'}
39
+ Sign out
40
40
  </DropdownMenuItem>
41
41
  )
42
42
  }
@@ -184,7 +184,11 @@ function TeamHeader({
184
184
  currentProject && 'max-sm:hidden',
185
185
  )}
186
186
  >
187
- <Link to="/" aria-label="devpush">
187
+ <Link
188
+ to={activeUserContext ? '/$teamSlug' : '/'}
189
+ params={activeUserContext ? { teamSlug: activeUserContext.defaultTeam.slug } : undefined}
190
+ aria-label="devpush"
191
+ >
188
192
  <LogoMark className="size-4.5 shrink-0 transition-colors duration-200 group-hover:text-orange-600 group-focus-visible:text-orange-600" />
189
193
  </Link>
190
194
  </Button>
@@ -1,11 +1,13 @@
1
1
  import { pageHead } from '#devpush/lib/page-head'
2
2
  import { createFileRoute, redirect } from '@tanstack/react-router'
3
3
 
4
- import { getCurrentUserContext } from '#devpush/server/auth/context'
4
+ import { currentUserContextQueryOptions } from '#devpush/features/auth/current-user-context-query'
5
5
 
6
6
  export const Route = createFileRoute('/')({
7
- loader: async () => {
8
- const context = await getCurrentUserContext()
7
+ loader: async ({ context: routerContext }) => {
8
+ const context = await routerContext.queryClient.fetchQuery(
9
+ currentUserContextQueryOptions(),
10
+ )
9
11
 
10
12
  if (!context) {
11
13
  throw redirect({ to: '/auth/login' })