-
Notifications
You must be signed in to change notification settings - Fork 4
Setup
The following general software needs to be installed on your local machine:
-
JDK 25- We useopenjdk, but feel free to usecorettoor any other distribution if you would like. -
maven- Package manager to manage all our Java dependencies -
just- The runner forJustfiles, which we use to consolidate our run commands. -
dotenvx- Used to load environment variables from the root.envfile. -
node- Javascript runtime to run our frontend TypeScript code. -
corepack- A package manager for package managers (???) to help us set a consistentpnpmversion across all devs. -
pnpm@9- Package manager that works faster than the default npm package manager.
The following instructions are using homebrew (install instructions here), but it is not a requirement; you can follow along by installing all packages manually (though we would recommend against it).
-
Install
openjdk@25(aliased toopenjdk):brew install openjdk
-
Install
maven:brew install maven
-
Install
node:brew install node -
You must then setup
corepack. You can follow the instructions here underInstall Corepack using npmon how to install and setupcorepack. Once setup, simply enablepnpmoncorepacklike so:corepack enable pnpm -
Install
dotenvx:brew install dotenvx/brew/dotenvx
-
Install
just:brew install just
Unfortunately, I don't have a Windows machine that I develop on anymore, so I am unable to provide solid instructions for setup. However, you should be able to follow the exact same directions for MacOS but with WinGet/Scoopy or manually installing each software.
NOTE: If you open the codebloom repository in VSCode, it will prompt you to install recommended extensions to the workspace, which will include everything below.
You need to install the following plugins:
- EditorConfig - Applies consistent spacing width and type across all editors
- Checkstyle for Java - Java static analyzer
-
Prettier - Javascript formatter
- Helps maintain consistent styling
- Configure format on save following these instructions
-
ESLint - Javascript linter
- Integrates with your project's ESLint configuration
- Babel JavaScript - Improves JSX syntax highlighting
- Docker - Provides Dockerfile IntelliSense
-
DotENV -
.envfile syntax highlighting - Prettier Typescript Errors: Simplifies complex TypeScript error messages
-
Extension Pack for Java
- Includes debuggers, formatters, and managers
- Supports format on save
- Spring Boot Extension Pack - Additional Spring Boot-specific tooling
- Tailwind CSS IntelliSense - Provides intelligent suggestions for Tailwind classes
-
XML by RedHat
- Official XML language support and formatter
- Important for editing Java XML files like pom.xml
.vscode/ defines some workspace defaults to help make development consistent.
You need to install the following plugins:
- EditorConfig - Applies consistent spacing width and type across all editors
- Checkstyle-IDEA - Java static analyzer
The Eclipse formatter and everything else should just work out of the box. You may need to install some plugins for TypeScript support, including Prettier, ESLint, Babel, Prettier, Tailwind, and more.
NOTE: This may vary greatly by the current configuration of Neovim, but the following setup should work out the box using
LazyVim.
You need to install the following plugins:
-
nvim-jdtls - LSP for Java in Neovim (Install as a plugin, not
Mason)-
nvim-jdtlsmay require some additional configuration. If it helps, my current config can be found here
-
- none-ls - Provide a code bridge to formatting & LSP diagonostics. (Specifically used for Checkstyle formatting)
-
vtsls - LSP for TypeScript in Neovim (can install through
Mason) -
eslint-lsp - LSP Protocol for ESLint (can install through
Mason) -
tailwindcss-language-server - LSP for Tailwind (can install through
Mason) -
json-lsp - (Optional) LSP for JSON (can install through
Mason) -
dockerfile-language-server - (Optional) LSP for Dockerfile (can install through
Mason)
There is a .lazy.lua file in the root directory that will apply some default, but only for LazyVim. Of course, you can replicate the behavior in your own distribution (and create a pull request with the changes).
We currently use Postgres 16 locally to match production (but some members of the team have used 17 locally with no issues).
You can feel free to download Postgres however you want, but the way we have all chose to set it up is with Postgres.app on MacOS.
-
Install
postgresappthroughhomebrew(or the website if you would prefer to do so)brew install --cask postgres-unofficial
-
Open
Postgres.appand click "Initialize" to create a new server. You are now ready to go!- For
Postgres.appinstances, the password you enter to access the database doesn't matter - On first connection attempt, Postgres.app will prompt you to trust the specific program
- After allowing access once, it won't ask again for that program
- For
-
Configure your
$PATHto use the included command line tools (optional):sudo mkdir -p /etc/paths.d && echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
You may install it with Docker, or directly through postgresql.com if you would like. While there are no directions I can directly offer to you, there are some very good tutorials online on how to do so.
If you would like to use Docker, I can refer you to Patina's documentation for setting up Docker which you can find here
You can feel free to use any viewer you want, but we would recommend DataGrip which is free for all non-commercial use.
We currently use Redis 7 in production, but feel free to use a different version (although you may run into some compatibility issues).
You can feel free to download Redis however you want, but the way we have all chose to set it up is with Homebrew.
-
Install
redisthroughhomebrewbrew install redis
-
To launch the redis server, you can simply run the following command to run the server:
redis-server
NOTE: This will launch the server in the foreground (when the terminal is closed, the Redis server will be closed).
If you would like to automatically launch the server in the background (as soon as your machine is on and you are logged in), you can run this command:
brew services start redis
-
The default Redis URI for Homebrew installations is simply:
redis://localhost:6379/0
NOTE: By default, Redis has 16 databases (the number after the slash) from 0-15.
You can feel free to use any viewer you want, but we would recommend DataGrip which is free for all non-commercial use.
You can speed up the setup process by making a copy of .env.example to .env.
You will also find explanations and documentation about how to source the value for each key.
If there is a key specific to an environment (such as CI or staging environment), please consult the tech docs within the CI group.
- Home
- Setup
- Developer Commands
- Secrets
- Technical Docs
- Feature Docs
- CI Commands
- Contributing
- Codebloom ↗
- Codebloom - Swagger Documentation ↗
- Codebloom - Staging ↗
- Codebloom - Staging - Swagger Documentation ↗
- Codebloom - Local - Swagger Documentation ↗
- Codebloom - Local - Prometheus Metrics ↗
- Grafana Dashboard - Separate domain
- Public Taskboard (Read-only) ↗
