Compare commits

...

5 Commits

Author SHA1 Message Date
580402a5c2 feat(devenv)!: integrate all services and tasks
Signed-off-by: Noa Virellia <noa@requiem.garden>
2025-12-28 09:07:19 +00:00
d46af028dc chore(client): specify dev server host
Signed-off-by: Noa Virellia <noa@requiem.garden>
2025-12-28 09:07:19 +00:00
cdcd05ea52 feat(.zed/settings): set tab size for nix and ts files
Signed-off-by: Noa Virellia <noa@requiem.garden>
2025-12-28 09:07:19 +00:00
3f05dbe1e6 Rename client-dev to client
Signed-off-by: Asai Neko <sugar@sne.moe>
2025-12-28 16:33:46 +08:00
7d76b85055 Expend justfile functions
Signed-off-by: Asai Neko <sugar@sne.moe>
2025-12-28 16:23:24 +08:00
4 changed files with 78 additions and 49 deletions

View File

@@ -7,7 +7,11 @@
"tab_size": 4, "tab_size": 4,
"format_on_save": "on", "format_on_save": "on",
"languages": { "languages": {
"Nix": {
"tab_size": 2,
},
"TypeScript": { "TypeScript": {
"tab_size": 2,
"language_servers": [ "language_servers": [
"typescript-language-server", "typescript-language-server",
"!vtsls", "!vtsls",
@@ -16,6 +20,7 @@
], ],
}, },
"TSX": { "TSX": {
"tab_size": 2,
"language_servers": [ "language_servers": [
"typescript-language-server", "typescript-language-server",
"!vtsls", "!vtsls",
@@ -24,6 +29,7 @@
], ],
}, },
"JavaScript": { "JavaScript": {
"tab_size": 2,
"language_servers": [ "language_servers": [
"typescript-language-server", "typescript-language-server",
"!vtsls", "!vtsls",

View File

@@ -25,6 +25,8 @@ export default defineConfig({
proxy: { proxy: {
'/api': 'http://10.0.0.10:8000', '/api': 'http://10.0.0.10:8000',
}, },
allowedHosts: ['dev.sne.moe'], host: '0.0.0.0',
port: 5173,
allowedHosts: ['test.sne.moe'],
}, },
}); });

View File

@@ -1,11 +1,12 @@
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
env.GREET = "devenv"; process.managers.process-compose = {
settings.log_level = "info";
};
packages = [ packages = [
pkgs.git pkgs.git
pkgs.bun
pkgs.just pkgs.just
]; ];
@@ -17,49 +18,59 @@
]; ];
}; };
languages.go = { languages = {
enable = true; go = {
version = "1.25.5"; enable = true;
version = "1.25.5";
};
javascript.enable = true;
javascript.bun.enable = true;
}; };
services.caddy = { processes = {
enable = true; vite = {
dataDir = "${config.env.DEVENV_STATE}/caddy"; exec = "bun run dev";
config = '' cwd = "./client";
:8080 { };
handle /api/* { backend.exec = "just run";
reverse_proxy 127.0.0.1:8000 };
tasks = {
"backend:build".exec = "just clean && just build";
};
services = {
caddy = {
enable = true;
dataDir = "${config.env.DEVENV_STATE}/caddy";
config = ''
:8080 {
handle /api/* {
reverse_proxy 127.0.0.1:8000
}
handle {
reverse_proxy 127.0.0.1:5173
}
}
'';
};
redis = {
enable = true;
};
postgres = {
enable = true;
createDatabase = true;
listen_addresses = "127.0.0.1";
initialDatabases = [
{
name = "postgres";
user = "postgres";
pass = "postgres";
} }
handle { ];
root * ${config.env.DEVENV_ROOT}/.outputs/static };
encode zstd gzip meilisearch = {
@assets path /assets/* enable = true;
header @assets Cache-Control "public, max-age=31536000, immutable" };
try_files {path} /index.html
file_server
}
}
'';
};
services.redis = {
enable = true;
};
services.postgres = {
enable = true;
createDatabase = true;
listen_addresses = "127.0.0.1";
initialDatabases = [
{
name = "postgres";
user = "postgres";
pass = "postgres";
}
];
};
services.meilisearch = {
enable = true;
}; };
} }

View File

@@ -7,7 +7,9 @@ exec_path := join(output_dir, project_name)
go_cmd := `realpath $(which go)` go_cmd := `realpath $(which go)`
bun_cmd := `realpath $(which bun)` bun_cmd := `realpath $(which bun)`
default: install clean build run default: install clean build-back build-client run-back
backend: install clean build-back run-back
install: install:
cd {{ client_dir }} && {{ bun_cmd }} install cd {{ client_dir }} && {{ bun_cmd }} install
@@ -17,12 +19,20 @@ clean:
mkdir -p {{ output_dir }} mkdir -p {{ output_dir }}
cp {{ join(project_dir, "config.default.yaml") }} {{ join(output_dir, "config.yaml") }} cp {{ join(project_dir, "config.default.yaml") }} {{ join(output_dir, "config.yaml") }}
build: client:
{{ go_cmd }} build -o {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} {{ server_enrty }} cd {{ client_dir }} && {{ bun_cmd }} dev
build-client:
cd {{ client_dir }} && {{ bun_cmd }} run build --outDir {{ join(output_dir, "static") }} cd {{ client_dir }} && {{ bun_cmd }} run build --outDir {{ join(output_dir, "static") }}
run: build-back:
{{ go_cmd }} build -o {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} {{ server_enrty }}
run-back:
cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }}
test: test-back:
cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} GO_ENV=test go test -C .. ./... cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} GO_ENV=test go test -C .. ./...
dev:
devenv up --verbose