Restructure: move Vite project into app/, deploy build output to repo root
The webserver serves the repo checkout directly as static files, so index.html at the repo root must be the production build (pointing at hashed /assets/*.js) rather than the dev template (/src/main.tsx), which was being served with an unrecognized application/octet-stream MIME type and blocked by the browser. - Move src/, public/, scripts/, server/, package.json, vite.config.ts, tsconfig.json, .env(.example), and the dev index.html into app/. - Add app/scripts/deploy.mjs: copies app/dist/* into the repo root after every `vite build`, cleaning up stale hashed filenames. - Wire it into `npm run build` (app/package.json). - Update run.sh to operate from app/, and .gitignore for the new layout. - Commit the current build output (index.html, assets/, manifest, sw.js, workbox-*.js, favicon.svg, icons/, LICENSE) to the repo root. - Update README with the new project layout and deployment model.
This commit is contained in:
1 parent
5245c0a856
commit
c7b653ff6a
54 files changed
+224
-34
No files matched your search
@@ -0,0 +1,72 @@
|
||||
import { useId } from "react";
|
||||
|
||||
/**
|
||||
* The derez.ai logo (icon + wordmark), taken from https://derez.ai/assets/images/logo.svg
|
||||
*/
|
||||
export function DerezLogo({ height = 26, withText = true }: { height?: number; withText?: boolean }) {
|
||||
const gid = useId().replace(/:/g, "");
|
||||
const width = withText ? (height * 132) / 34 : height;
|
||||
return (
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width={width}
|
||||
height={height}
|
||||
viewBox={withText ? "0 0 132 34" : "0 0 34 34"}
|
||||
role="img"
|
||||
aria-label="derez.ai"
|
||||
>
|
||||
<defs>
|
||||
<linearGradient id={`box-bg-${gid}`} x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stopColor="#003545" />
|
||||
<stop offset="100%" stopColor="#00202e" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<rect
|
||||
x="0"
|
||||
y="0"
|
||||
width="34"
|
||||
height="34"
|
||||
rx="10"
|
||||
fill={`url(#box-bg-${gid})`}
|
||||
stroke="#005570"
|
||||
strokeWidth="1.2"
|
||||
/>
|
||||
<rect x="6" y="11" width="22" height="15" rx="2.5" fill="none" stroke="#00f5ff" strokeWidth="1.8" />
|
||||
<path d="M17 11V7" stroke="#00f5ff" strokeWidth="1.8" strokeLinecap="round" />
|
||||
<circle cx="17" cy="5.5" r="1.5" fill="#00f5ff" />
|
||||
<circle cx="10" cy="15.5" r="1" fill="#00f5ff" />
|
||||
<circle cx="14" cy="15.5" r="1" fill="#00f5ff" />
|
||||
<path d="M10 20h14" stroke="#00f5ff" strokeWidth="1.5" strokeLinecap="round" />
|
||||
|
||||
{withText && (
|
||||
<text
|
||||
x="46"
|
||||
y="23"
|
||||
fill="#00f5ff"
|
||||
fontFamily="'Courier New', Courier, monospace"
|
||||
fontSize="17"
|
||||
fontWeight="700"
|
||||
letterSpacing="-0.5"
|
||||
>
|
||||
derez.ai
|
||||
</text>
|
||||
)}
|
||||
</svg>
|
||||
);
|
||||
}
|
||||
|
||||
/** The logo wrapped in a link to the derez.ai homepage. */
|
||||
export function DerezLogoLink({ height = 26 }: { height?: number }) {
|
||||
return (
|
||||
<a
|
||||
className="brand-link"
|
||||
href="https://derez.ai/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
title="derez.ai — AI Agent Hosting"
|
||||
>
|
||||
<DerezLogo height={height} />
|
||||
</a>
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user