Skip to content

Package

This guide explains how to create, customize, and deploy a BigConfig Package.

The default template provides three integrated workflows out of the box:

  1. Infrastructure: Provisions a DigitalOcean droplet using OpenTofu (Terraform).
  2. Configuration: Installs Redis on the droplet via Ansible.
  3. Local Environment: Automatically updates your local SSH configuration with the new server details.

BigConfig relies on Clojure and Babashka. We also strongly recommend configuring direnv and devenv for automated environment management.

Terminal window
brew install clojure/tools/clojure
brew install borkdude/brew/babashka
brew install opentofu
brew install ansible

If you don’t have a DigitalOcean account yet, you can use a placeholder string for the :ssh-key during initialization. The setup process will prompt you for your DigitalOcean API token when you run the create command.

  1. Install the BigConfig Tool

    Add BigConfig as a global Clojure tool:

    Terminal window
    clojure -Ttools install-latest :lib io.github.amiorin/big-config :as big-config
  2. Initialize your Package

    Invoke the template to generate your project. Replace amiorin with your GitHub account. Replace joe with your desired repository name:

    Terminal window
    clojure -Tbig-config package :owner amiorin :repository joe :ssh-key 812184
  3. Explore Babashka Tasks

    Navigate to the directory and list available automation tasks:

    Terminal window
    bb tasks
  4. Save the Digitalocean token

    This step is optional:

    .envrc.private
    export TF_VAR_do_token=dop_v1...
  5. Access the Package Manual

    View the built-in documentation for your specific package:

    Terminal window
    bb help
  6. Deploy the Package

    Execute the creation workflow:

    Terminal window
    bb joe create

Joe