Compare commits
5 Commits
a764ced295
...
580402a5c2
| Author | SHA1 | Date | |
|---|---|---|---|
| 580402a5c2 | |||
| d46af028dc | |||
| cdcd05ea52 | |||
|
3f05dbe1e6
|
|||
|
7d76b85055
|
@@ -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",
|
||||||
|
|||||||
@@ -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'],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
97
devenv.nix
97
devenv.nix
@@ -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;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
20
justfile
20
justfile
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user