feat(devenv): optimize DX with devenv #2
@@ -7,7 +7,11 @@
|
||||
"tab_size": 4,
|
||||
"format_on_save": "on",
|
||||
"languages": {
|
||||
"Nix": {
|
||||
"tab_size": 2,
|
||||
},
|
||||
"TypeScript": {
|
||||
"tab_size": 2,
|
||||
"language_servers": [
|
||||
"typescript-language-server",
|
||||
"!vtsls",
|
||||
@@ -16,6 +20,7 @@
|
||||
],
|
||||
},
|
||||
"TSX": {
|
||||
"tab_size": 2,
|
||||
"language_servers": [
|
||||
"typescript-language-server",
|
||||
"!vtsls",
|
||||
@@ -24,6 +29,7 @@
|
||||
],
|
||||
},
|
||||
"JavaScript": {
|
||||
"tab_size": 2,
|
||||
"language_servers": [
|
||||
"typescript-language-server",
|
||||
"!vtsls",
|
||||
|
||||
@@ -25,6 +25,8 @@ export default defineConfig({
|
||||
proxy: {
|
||||
'/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, ... }:
|
||||
|
||||
{
|
||||
env.GREET = "devenv";
|
||||
process.managers.process-compose = {
|
||||
settings.log_level = "info";
|
||||
};
|
||||
|
||||
packages = [
|
||||
pkgs.git
|
||||
pkgs.bun
|
||||
pkgs.just
|
||||
];
|
||||
|
||||
@@ -17,49 +18,59 @@
|
||||
];
|
||||
};
|
||||
|
||||
languages.go = {
|
||||
enable = true;
|
||||
version = "1.25.5";
|
||||
languages = {
|
||||
go = {
|
||||
enable = true;
|
||||
version = "1.25.5";
|
||||
};
|
||||
javascript.enable = true;
|
||||
javascript.bun.enable = true;
|
||||
};
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
dataDir = "${config.env.DEVENV_STATE}/caddy";
|
||||
config = ''
|
||||
:8080 {
|
||||
handle /api/* {
|
||||
reverse_proxy 127.0.0.1:8000
|
||||
processes = {
|
||||
vite = {
|
||||
exec = "bun run dev";
|
||||
cwd = "./client";
|
||||
};
|
||||
backend.exec = "just run";
|
||||
};
|
||||
|
||||
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
|
||||
@assets path /assets/*
|
||||
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;
|
||||
];
|
||||
};
|
||||
meilisearch = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user