CI / Test (ubuntu-latest) (push) Canceled after 0s
CI / Test (windows-latest) (push) Canceled after 0s
CI / Storage tests on PostgreSQL (push) Canceled after 0s
CI / Complement (federation off) (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
CI / Smoke test the binary (push) Canceled after 0s
CI / Admin panel (push) Canceled after 0s
CI / Web client (push) Canceled after 0s
apps/desktop is the web client in a native window. It embeds the same build warp-web does and serves it through the same Go package, so every screen is shared. Unlike warp-web it proxies nothing: the client calls the homeserver directly, and the CSP allows the homeserver plus any https: and wss: origin for the call backend. - First run asks for the homeserver: a server name or address, with .well-known discovery and a /versions check; File > Change homeserver asks again. Signed-in sessions keep their own base URL, so a change never sends one server's token to another. - Links to other sites open in the system browser (/_desktop/links.js, added to index.html); only http, https and mailto are opened. - One instance at a time, since sessions and keys live in the webview's storage. - Dev builds open the DevTools Protocol on Windows when WARP_DESKTOP_REMOTE_DEBUGGING_PORT is set, for scripted testing. - Packaging: icon, version info and manifest in the Windows exe, a macOS .app with camera and microphone descriptions, Linux packages via nfpm. Make targets: desktop, desktop-run, desktop-test, desktop-resources, desktop-macos, desktop-linux. Web client: host and client move out of internal/ so the desktop app can import them, and host gains AnyCallOrigin. The Dockerfile, .dockerignore and the vite output path follow the move. Pinned to Wails v3.0.0-beta.27. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
import { fileURLToPath } from 'node:url'
|
|
import tailwindcss from '@tailwindcss/vite'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import { defineConfig } from 'vite'
|
|
|
|
// In development the client talks to a homeserver through Vite's proxy, the
|
|
// same paths warp-web proxies in production, so the code never needs to
|
|
// know where the homeserver is. WARP_WEB_HOMESERVER points it elsewhere.
|
|
const homeserver = process.env.WARP_WEB_HOMESERVER ?? 'http://localhost:8008'
|
|
|
|
export default defineConfig({
|
|
plugins: [vue(), tailwindcss()],
|
|
resolve: {
|
|
alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) },
|
|
},
|
|
build: {
|
|
// Embedded into the warp-web binary by client/ (and the desktop app).
|
|
outDir: 'client/build/dist',
|
|
emptyOutDir: true,
|
|
assetsInlineLimit: 0,
|
|
// matrix-js-sdk is most of the bundle; it is one chunk on purpose.
|
|
chunkSizeWarningLimit: 1500,
|
|
},
|
|
server: {
|
|
port: 5175,
|
|
proxy: {
|
|
'/_matrix/client': { target: homeserver, changeOrigin: true },
|
|
'/_matrix/media': { target: homeserver, changeOrigin: true },
|
|
// Where the client finds the group call backend (rtc_foci).
|
|
'/.well-known/matrix/client': { target: homeserver, changeOrigin: true },
|
|
},
|
|
},
|
|
})
|