I created a https://github.com/practicalli/clojure-service-template which I will be using to create a deps-new project template over the next few days
The template repository currently includes
• dev/user.clj for development tools
◦ launches Portal data inspector, listening on nREPL and displays all evaluation results
◦ Mulog event log with publisher to send event logs to portal
◦ find-deps to search for Clojure libraries
• .dir-local.el for Emacs Cider jack-in config, including :build and :dev/reloaded aliases
• build.clj build script with clean, jar and uberjar tasks
• Dockerfile with a multistage build configuration, using the official docker images for Clojure (build) and eclipse-temurin (open-jdk runtime). Configuration is optimized for docker layer caching
• docker-compose.yaml for building & orchestrating services locally, including a postgresql image (more example images could be included)
• GitHub workflows and configuration
• code-quality.yaml config using setup-clojure action that provides a Clojure CLI environment (including openjdk) with clj-kondo, a test runner and cljstyle code format check
• Makefile with tasks to simplify CLI commands and provide a consistent interface across all projects. Includes tasks to run a repl, test runner, docker compose, clean projects, etc
I am considering what code to include by default, which will probably include an http server (httpkit) with routing (reitit-ring) and example handlers
Any other tools, config or code suggestions are welcome