idx.nix
· 1.5 KiB · Nix
Raw
{pkgs}: {
channel = "stable-24.05";
packages = [
pkgs.nodejs_22
pkgs.volta
];
services = {
postgres = {
enable = true;
package = pkgs.postgresql;
};
};
idx.extensions = [
"esbenp.prettier-vscode"
"dbaeumer.vscode-eslint"
"bradlc.vscode-tailwindcss"
"dsznajder.es7-react-js-snippets"
"DavidAnson.vscode-markdownlint"
"EditorConfig.EditorConfig"
"mikestead.dotenv"
"streetsidesoftware.code-spell-checker"
"usernamehw.errorlens"
];
workspace = {
# Runs when a workspace is first created with this `dev.nix` file
onCreate = {
npm-install = "npm ci --no-audit --prefer-offline --no-progress --timing";
# Open editors for the following files by default, if they exist:
# default.openFiles = [ "src/App.tsx" "src/App.ts" "src/App.jsx" "src/App.js" ];
# if db not created use this command
# initdb -D local
setup-postgres = ''
psql --dbname=postgres -c "ALTER USER \"user\" PASSWORD 'mypassword';"
psql --dbname=postgres -c "CREATE DATABASE youtube;"
psql --dbname=youtube -f create.sql
psql --dbname=youtube -f example.sql
'';
};
# To run something each time the workspace is (re)started, use the `onStart` hook
};
idx.previews = {
previews = {
web = {
command = [
"pnpm"
"dev"
"--"
"--port"
"$PORT"
"--hostname"
"0.0.0.0"
];
manager = "web";
};
};
};
}
| 1 | {pkgs}: { |
| 2 | channel = "stable-24.05"; |
| 3 | packages = [ |
| 4 | pkgs.nodejs_22 |
| 5 | pkgs.volta |
| 6 | ]; |
| 7 | |
| 8 | services = { |
| 9 | postgres = { |
| 10 | enable = true; |
| 11 | package = pkgs.postgresql; |
| 12 | }; |
| 13 | }; |
| 14 | |
| 15 | idx.extensions = [ |
| 16 | "esbenp.prettier-vscode" |
| 17 | "dbaeumer.vscode-eslint" |
| 18 | "bradlc.vscode-tailwindcss" |
| 19 | "dsznajder.es7-react-js-snippets" |
| 20 | "DavidAnson.vscode-markdownlint" |
| 21 | "EditorConfig.EditorConfig" |
| 22 | "mikestead.dotenv" |
| 23 | "streetsidesoftware.code-spell-checker" |
| 24 | "usernamehw.errorlens" |
| 25 | ]; |
| 26 | workspace = { |
| 27 | # Runs when a workspace is first created with this `dev.nix` file |
| 28 | onCreate = { |
| 29 | npm-install = "npm ci --no-audit --prefer-offline --no-progress --timing"; |
| 30 | # Open editors for the following files by default, if they exist: |
| 31 | # default.openFiles = [ "src/App.tsx" "src/App.ts" "src/App.jsx" "src/App.js" ]; |
| 32 | |
| 33 | # if db not created use this command |
| 34 | # initdb -D local |
| 35 | setup-postgres = '' |
| 36 | psql --dbname=postgres -c "ALTER USER \"user\" PASSWORD 'mypassword';" |
| 37 | psql --dbname=postgres -c "CREATE DATABASE youtube;" |
| 38 | psql --dbname=youtube -f create.sql |
| 39 | psql --dbname=youtube -f example.sql |
| 40 | ''; |
| 41 | }; |
| 42 | # To run something each time the workspace is (re)started, use the `onStart` hook |
| 43 | }; |
| 44 | idx.previews = { |
| 45 | previews = { |
| 46 | web = { |
| 47 | command = [ |
| 48 | "pnpm" |
| 49 | "dev" |
| 50 | "--" |
| 51 | "--port" |
| 52 | "$PORT" |
| 53 | "--hostname" |
| 54 | "0.0.0.0" |
| 55 | ]; |
| 56 | manager = "web"; |
| 57 | }; |
| 58 | }; |
| 59 | }; |
| 60 | } |