Skip to content

Development Guide

Prerequisites

  • Go 1.25+
  • Docker
  • Task

Platform Requirements:

  • Linux: musl-gcc
  • macOS: Xcode Command Line Tools

CGO must be enabled (CGO_ENABLED=1, already set in Taskfile.yml) because ComposeFlux uses the Bitwarden Go SDK, which calls into the Bitwarden Rust SDK via FFI using cgo. See Bitwarden SDK Go instructions.

Quick Setup

git clone https://github.com/veerendra2/composeflux.git
cd composeflux
go mod download
task install    # Install dev tools
task build
./dist/composeflux --help

MkDocs Local Setup

If you use direnv and pyenv, an .envrc is already configured. Otherwise, set up a Python virtual environment manually:

python3 -m venv venv/
source venv/bin/activate

Install MkDocs dependencies:

pip install mkdocs-material

Serve documentation locally:

task docs    # or task serve-docs

Available Tasks

task: Available tasks for this project:
* all:                Run comprehensive checks;  format, lint, security and test
* build:              Build the application binary for the current platform
* build-docker:       Build Docker image
* compose:            Run the application in development mode using Docker Compose
* fmt:                Formats all Go source files
* install:            Install required tools and dependencies
* lint:               Run static analysis and code linting using golangci-lint
* run:                Runs the main application
* security:           Run security vulnerability scan
* serve-docs:         Serve MkDocs documentation locally with live reload      (aliases: docs)
* test:               Runs all tests in the project                            (aliases: tests)
* vet:                Examines Go source code and reports suspicious constructs

Resources