Documentation Index
Fetch the complete documentation index at: https://akua-1dce587a.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
View repository
Browse the reusable GitHub Actions workflows repository.
Already have a build pipeline? You can use individual reusable actions (like
notify-cnap) to integrate Akua notifications into your existing workflows. See Using individual actions for details.What it does
The Akua GitHub Actions workflows automate the entire build and deployment pipeline:- Checkout code: Retrieves your repository code.
- Language detection: Railpack automatically detects your language and framework.
- Build configuration: Automatically configures build and runtime settings.
- Image building: Builds a production-ready Docker image using Railpack.
- Registry push: Pushes the image to GitHub Container Registry (GHCR).
- Akua notification: Automatically notifies Akua about the new image.
Quick start
Add the workflow to your repository with zero configuration:- Detects your application’s language and framework.
- Builds a Docker image using Railpack.
- Pushes to
ghcr.io/your-username/your-repo:sha-<commit-sha>. - Notifies Akua about the new build.
Configuration options
You can customize the workflow behavior with optional inputs:Directory containing your application code. Use this for monorepos or projects with multiple applications.
Override Railpack’s automatically detected build command. If not specified, Railpack analyzes your code to determine the build command.
Override Railpack’s automatically detected start command. If not specified, Railpack analyzes your code to determine the start command.
Space-separated list of additional apt packages needed during the build phase (for example,
python3-dev libpq-dev).Space-separated list of additional apt packages needed at runtime (for example,
postgresql-client curl).Custom build context
For monorepos or projects with multiple applications:Custom dependencies
Add system packages for build or runtime:Supported languages
Railpack supports 10+ languages and frameworks with automatic detection:- Node.js: Express, Next.js, SvelteKit, Remix, Nuxt
- Python: Django, FastAPI, Flask
- Go: Gin, Echo, Chi
- PHP: Laravel, Symfony
- Java: Spring Boot, Quarkus
- Ruby: Rails, Sinatra
- Rust: Actix, Rocket, Axum
- Deno: Web frameworks
- Elixir: Phoenix
- Static files: HTML, CSS, JavaScript
- Shell scripts: Bash applications
How it works with Akua
When you connect a GitHub repository to Akua and the workflow runs:- Workflow builds image: The GitHub Actions workflow builds your application using Railpack.
- Image pushed to GHCR: The built image is pushed to GitHub Container Registry.
- Akua notified: The workflow automatically notifies Akua about the new build.
- Build appears in Akua: The build shows up in your product’s build history.
- Ready to deploy: You can select the new build when creating or updating installations.
The workflow uses OIDC authentication to securely notify Akua without requiring API keys or secrets. The
id-token: write permission enables this secure authentication method.Integration with Akua products
When you create a product in Akua using a GitHub repository source:- Repository connected: Akua connects to your GitHub repository via GitHub App.
- Builds detected: Akua automatically detects builds from the workflow.
- Images available: Built images appear in the build selection interface.
- Automatic updates: New builds automatically appear when the workflow runs.
Using individual actions
The reusable workflow is composed of individual reusable actions that you can use independently in your existing pipelines. This is useful when you already have a build process and need to notify Akua about new images.Notify Akua after an existing build
If you already have a workflow that builds Docker images, you can use thenotify-cnap action to notify Akua at the end of your pipeline:
notify-cnap action parameters
Full Docker image name including registry and tag (for example,
ghcr.io/owner/repo:sha-abc123).Image tag, usually the commit SHA. This is used by Akua to identify the specific build.
Akua API URL for build notifications. Only change this if you’re using a custom Akua instance.
Available actions
The repository provides these reusable actions:| Action | Description | Use case |
|---|---|---|
notify-cnap | Sends build notification to Akua API | Use at the end of any pipeline that builds Docker images |
build-railpack | Builds a Docker image using Railpack | Use when you want Railpack builds but need custom workflow steps |
setup-buildkit | Starts a BuildKit container | Use when you need BuildKit for custom builds |
stop-buildkit | Stops the BuildKit container | Use to clean up BuildKit after builds |
generate-railpack-config | Generates Railpack configuration file | Use when you need custom Railpack config |
Using the build-railpack action
If you want to use Railpack for building but need more control over your workflow:build-railpack action parameters
Full Docker image name including registry and tag (for example,
ghcr.io/owner/repo:sha-abc123).Directory containing application code. Use this for monorepos or projects with multiple applications.
Override Railpack’s automatically detected build command. If not specified, Railpack analyzes your code to determine the build command.
Override Railpack’s automatically detected start command. If not specified, Railpack analyzes your code to determine the start command.
Advanced usage
Custom build commands
Override Railpack’s automatic detection:Multiple environments
Deploy different branches to different environments:Related topics
GitHub integration
Connect GitHub repositories to Akua.
App sources
GitHub repository sources.
Generic application chart
How GitHub deployments use the generic chart.
Create a product
Create products from GitHub repositories.