Fresh Computer Setup
The following doc will walk you through the needed steps to set up your development environment so that you have all the necessary tools.
Linux setup (WSL)
Section titled “Linux setup (WSL)”In VS Code, open a new terminal to set up your Linux environment. You can do this in the VS Code terminal or your computer’s integrated terminal (see the Microsoft WSL install docs for a full walkthrough).
-
Open your computer’s integrated terminal in Administrator mode and install Linux, creating a dedicated Visory distribution:
WSL install wsl --install -d Ubuntu --name VisoryIf you already have an existing distribution (Ubuntu or otherwise), this command just creates the new
Visoryone alongside it. -
Verify the distribution was created:
Terminal window wsl -l
VS Code setup
Section titled “VS Code setup”Click the user profile icon in VS Code and choose Settings Sync. This will prompt you to log in — choose GitHub and sign in with your Visory credentials. If you encounter any issues accessing your account or don’t yet have credentials, let your superior know.
Once signed in, it’s recommended you turn Settings Sync on, so switching devices later won’t require redoing your preferences. Feel free to set up VS Code to suit your workflow now — see the Extensions section below for what we recommend.
Terminal setup
Section titled “Terminal setup”Clone the following repository to get the installation script for your terminal tools. We recommend using these tools even if you have preferred ones, since they already install the dependencies this repo’s projects need.
-
Clone and run the installer:
Terminal window mkdir "$HOME/.config"git clone https://github.com/MarkValadez/dotfiles.git ~/.config/dotfilescd "$HOME/.config/dotfiles"./install.sh -
Close the terminal completely and open a new one.
install.shinstalls Nix, switches your default shell tozsh, and installs tools likedirenvanddevbox— none of this takes effect in the window you ran it from. Skipping this step causes errors likedirenv: command not found. -
Confirm the switch worked:
Terminal window echo $SHELLwhich direnvBoth should resolve to a path. If
$SHELLstill shows/bin/bash, see the troubleshooting note below.
This dotfiles repo and its tools are courtesy of our developer Mark Valadez — feel free to look at his other projects once you’re set up.
Terminal theme
Section titled “Terminal theme”We provide both starship and oh-my-posh for our terminal — pick whichever prompt engine you prefer and edit its theme file to personalize it. Modifying the shared template files themselves (rather than tinkering with your own copy) may cause issues with terminal functionality, so proceed at your own risk.
oh-my-posh
Section titled “oh-my-posh”Theme file: ~/.config/dotfiles/Configs/ohmyposh/.config/ohmyposh/theme.omp.json.
-
Confirm oh-my-posh actually installed (it comes from Homebrew, via a separate step in
install.sh):Terminal window command -v oh-my-posh -
Replace the contents of the theme file above with your desired theme (e.g. one downloaded from the oh-my-posh theme gallery).
-
Reload your shell:
Terminal window exec zsh
Starship
Section titled “Starship”Theme file: ~/.config/dotfiles/Configs/starship/.config/starship/theme.toml.
-
Confirm starship actually installed (it comes from Nix, alongside the other CLI tools in
install.sh):Terminal window command -v starship -
Replace the contents of the theme file above with your desired configuration (e.g. one downloaded from the starship preset gallery).
-
Reload your shell:
Terminal window exec zsh
Clone the pipelines repo
Section titled “Clone the pipelines repo”direnv allow only does works inside a directory that contains an .envrc file — that’s the root of this pipelines repository, not your home directory or ~/.config/dotfiles. If you haven’t cloned it yet, create a folder to keep your projects in and clone it there:
mkdir -p ~/reposcd ~/reposgit clone https://github.com/Visory-Analytics/pipelines.gitcd pipelinesAs soon as you cd into the repo, direnv will detect the .envrc file and block it for security (it doesn’t auto-run .envrc files it hasn’t seen before) — you’ll see something like:
direnv: error /home/you/repos/pipelines/.envrc is blocked. Run `direnv allow` to approve its contentThis is expected.
-
Log in to Azure first —
.envrcshells out toazto resolve secrets, and will fail (or hang) without an active session. The command bellow will prompt you to a link to sign in to azure and then to select a subscription. Select visory-dev.Terminal window az login -
Approve the
.envrc:Terminal window direnv allowThis lets direnv run the
.envrcfile, which initializes the devbox environment withdevbox shelland loads the variables in.env. This completes your development environment setup.
If direnv allow/direnv reload seems to do nothing, confirm you’re in the repo root and that .envrc exists there: pwd && ls -a .envrc.
Continue to Environment & Secrets to understand how credentials are resolved, then Verify Your Install.
Updating the terminal
Section titled “Updating the terminal”If at any time you need to update the terminal or there is a change in the dotfiles repository, pull the latest changes:
cd ~/.config/dotfilesgit pullExtensions
Section titled “Extensions”This repo ships a .vscode/extensions.json at the root. When you open the pipelines folder in VS Code for the first time, it will prompt you to install these automatically — accept the prompt rather than hunting them down individually. If you dismissed it, open the Extensions panel and search @recommended.
The root list covers the Python/data-pipeline side of the repo:
| Category | Extensions |
|---|---|
| Python tooling | Ruff (charliermarsh.ruff), Pylance (ms-python.vscode-pylance), debugpy, mypy type checker, Python venv switcher |
| Notebooks/Data | Jupyter, Data Wrangler, Rainbow CSV, Excel Viewer, LakeFS/DVC |
| Azure | Azure Resource Groups, Azure Storage, Cosmos DB, Azure Static Web Apps, azure-dev |
| SQL | SQLTools + Postgres driver |
| Databricks | Databricks extension |
| Git | Git History, Git Graph, GitHub Pull Requests |
| General QA | Error Lens, Code Spell Checker, Markdown Lint, YAML, Even Better TOML, ShellCheck, Shell Format |
Web development (dashboard)
Section titled “Web development (dashboard)”The root extensions.json doesn’t cover the Next.js dashboard (apps/mx_fuels_reporting_app/apps/web/). If you’re working there, also install:
- ESLint — the dashboard lints with
eslint-config-next - Tailwind CSS IntelliSense — the dashboard styles with Tailwind CSS 4
Working in docs/
Section titled “Working in docs/”Opening the docs/ subfolder on its own (e.g. via a separate VS Code window) will prompt for its own docs/.vscode/extensions.json:
- Astro — syntax highlighting and IntelliSense for
.astro/.mdxfiles