📚 Tutorials
Learn by doing. Follow these step-by-step tutorials to get familiar with deploying and using Concourse CI with this charm.
A Juju machine charm for deploying Concourse CI - a modern, scalable continuous integration and delivery system
The Concourse CI Machine Charm provides a production-ready deployment solution for Concourse CI using Juju. With flexible deployment modes, automated key management, GPU support for ML/AI workloads, and comprehensive monitoring, you can deploy and scale Concourse CI across bare metal, VMs, and LXD environments.
Learn by doing. Follow these step-by-step tutorials to get familiar with deploying and using Concourse CI with this charm.
Practical guides for specific tasks and common scenarios. Get things done with clear, goal-oriented instructions.
Technical reference documentation. Look up configuration options, architecture details, and API specifications.
Understand the concepts and design decisions. Deep dive into how and why things work the way they do.
Deploy in auto mode or web+worker mode. Scale seamlessly with automatic role assignment.
Fully automated TSA key distribution via peer relations. Zero manual key management required.
Native NVIDIA (CUDA) and AMD (ROCm) GPU support for ML/AI workloads with automatic device injection.
Built-in Prometheus metrics endpoint. Integrate with your existing monitoring stack.
Efficient binary sharing with LXC shared storage mode. Reduce disk usage and deployment time.
Workers automatically upgrade to match web server version. Seamless version management.
Automatic discovery and mounting of datasets, models, and any folder from host /srv directory.
Optimized for Ubuntu 24.04 LTS with containerd runtime and full systemd integration.
# Bootstrap Juju controller
juju bootstrap localhost test-controller
# Deploy PostgreSQL
juju deploy postgresql --channel 16/stable --base ubuntu@24.04
# Deploy Concourse CI (3 units: 1 web + 2 workers)
juju deploy concourse-ci-machine concourse-ci -n 3 --config mode=auto --channel edge
# Integrate with database
juju integrate concourse-ci:postgresql postgresql:database
# Expose web interface
juju expose concourse-ci
# Get admin credentials
juju run concourse-ci/leader get-admin-password
# Access web UI at http://<unit-ip>:8080