This commit is contained in:
Patrick Alvin Alcala 2026-02-16 11:37:25 +08:00
parent c55d1374c6
commit 90057b851e
13 changed files with 6081 additions and 1499 deletions

View file

@ -1,34 +1,31 @@
.SILENT: .SILENT:
setup: all:
cd frontend && bun pm trust --all cd frontend && pnpm install && cd ../backend && go mod tidy
install:
cd frontend && bun install && cd ../backend/go && make install
fdev: fdev:
cd frontend && bun run dev cd frontend && pnpm dev
fbuild: fbuild:
cd frontend && bun run build && PORT=9000 node .output/server/index.mjs & cd frontend && pnpm build && npx serve .output/public/.
fupdate: fupdate:
bun update pnpm up -i
docker: docker:
cd frontend && docker compose up -d cd frontend && docker compose up -d
podman: podman:
cd frontend && podman-compose up -d cd frontend && podman-compose up -d && sudo rsync -avhP podman.container ~/.config/containers/systemd/$(pod)
favicon: favicon:
cd frontend && bun ./@dasig/scripts/node/generateFavicon.ts cd frontend && node ./@dasig/scripts/node/generateFavicon.ts
logo: logo:
cd frontend && bun ./@dasig/scripts/node/optimizeLogo.ts --size $(size) cd frontend && node ./@dasig/scripts/node/optimizeLogo.ts --size $(size)
image: image:
cd frontend && bun ./@dasig/scripts/node/optimizeImage.ts --name $(name) --size $(size) cd frontend && node ./@dasig/scripts/node/optimizeImage.ts --name $(name) --size $(size)
background: background:
cd frontend && bun ./@dasig/scripts/node/optimizeImage.ts cd frontend && node ./@dasig/scripts/node/optimizeBackground.ts

View file

@ -1,7 +1,7 @@
<div align=center> <div align=center>
# DASIG - SOLID # DASIG
An architecture framework for pure speed fullstack developemnt An architecture framework for pure speed fullstack development built on top of Solid and Go
</div> </div>

View file

@ -1,4 +1,3 @@
/** biome-ignore-all lint/complexity/noUselessFragments: <_> */
import * as fs from "node:fs"; import * as fs from "node:fs";
import { type JSXElement, Show } from "solid-js"; import { type JSXElement, Show } from "solid-js";
import * as toml from 'toml'; import * as toml from 'toml';
@ -26,55 +25,53 @@ interface Props {
export default (props: Props) => { export default (props: Props) => {
const config = toml.parse(fs.readFileSync('configs/config.site.toml', 'utf8')) const config = toml.parse(fs.readFileSync('configs/config.site.toml', 'utf8'))
return ( return (
<> <html lang="en">
<html lang="en"> <head>
<head> <base href="/" />
<base href="/" /> <meta charset="utf-8" />
<meta charset="utf-8" /> <meta
<meta name="viewport"
name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"
content="width=device-width, initial-scale=1, viewport-fit=cover" />
<meta name="name" content={config.website.name} />
<meta name="description" content={config.website.description} />
<meta name="title" property="og:title" content={config.website.name} />
<meta name="keywords" content="HTML, CSS, JavaScript" />
<meta name="developer" content={config.website.developer} />
<meta name="designer" content={config.website.designer} />
<meta property="og:description" content={props.description} />
<meta property="og:type" content="website" />
<link rel="icon" type="image/png" href="/favicon.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<Show when={config.font.source === "cdn"}>
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
</Show>
<Show when={props.preloadBackground}>
<link
rel="preload"
href={background1}
as="image"
type="image/svg+xml"
/> />
<meta name="name" content={config.website.name} /> <link
<meta name="description" content={config.website.description} /> rel="preload"
<meta name="title" property="og:title" content={config.website.name} /> href={background2}
<meta name="keywords" content="HTML, CSS, JavaScript" /> as="image"
<meta name="developer" content={config.website.developer} /> type="image/svg+xml"
<meta name="designer" content={config.website.designer} /> />
<meta property="og:description" content={props.description} /> </Show>
<meta property="og:type" content="website" /> {props.assets}
<link rel="icon" type="image/png" href="/favicon.png" /> </head>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="manifest" href="/site.webmanifest" />
<Show when={config.font.source === "cdn"}>
<link rel="preconnect" href="https://cdn.jsdelivr.net" />
</Show>
<Show when={props.preloadBackground}>
<link
rel="preload"
href={background1}
as="image"
type="image/svg+xml"
/>
<link
rel="preload"
href={background2}
as="image"
type="image/svg+xml"
/>
</Show>
{props.assets}
</head>
<body> <body>
<div class={props.font} id="app"> <div class={props.font} id="app">
{props.children} {props.children}
</div> </div>
{props.scripts} {props.scripts}
</body> </body>
</html> </html>
</>
); );
}; };

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

View file

@ -1,10 +1,10 @@
FROM oven/bun:canary-alpine AS build FROM node:22-alpine AS build
WORKDIR /app WORKDIR /app
COPY package*.json bun.lock ./ COPY package*.json ./
RUN bun install && bun pm trust --all RUN corepack enable
RUN pnpm install
COPY . . COPY . .
ENV NODE_ENV=production RUN pnpm build
RUN bun run build
FROM nginx:alpine AS runtime FROM nginx:alpine AS runtime
COPY ./.deployment/nginx/nginx.conf /etc/nginx/nginx.conf COPY ./.deployment/nginx/nginx.conf /etc/nginx/nginx.conf

View file

@ -1,29 +0,0 @@
.SILENT:
all:
bun install && bun pm trust --all
dev:
bun run dev
build:
bun run build && PORT=9000 node .output/server/index.mjs &
update:
bun update
docker:
docker compose up -d
podman:
podman-compose up -d
favicon:
bun ./@dasig/scripts/node/generateFavicon.ts
logo:
bun ./@dasig/scripts/node/optimizeLogo.ts --size $(size)
image:
bun ./@dasig/scripts/node/optimizeImage.ts --name $(name) --size $(size)

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
[website] [website]
name = "Dasig" name = "Dasig"
short_name = "Dasig" short_name = "Dasig"
description = "An architectural framework for pure speed fullstack development" description = "An architectural framework for pure speed fullstack development built on top of Solid and Go"
developer = "Pat Alcala" developer = "Pat Alcala"
designer = "Pat Alcala" designer = "Pat Alcala"

View file

@ -1,6 +1,6 @@
services: services:
template: template:
container_name: template container_name: ${NAME}
restart: unless-stopped restart: unless-stopped
build: build:
context: . context: .

6013
frontend/pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,9 @@
[Unit] [Unit]
Description=FWT Description=DASIG
[Container] [Container]
ContainerName=fwt ContainerName=dasig
Image=localhost/fwt Image=localhost/dasig
PublishPort=8080:8080 PublishPort=8080:8080
[Service] [Service]

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB