Anvil is a code forge with integrated CI, git over SSH and HTTPS, a container registry, and webhooks. This page walks you from a new account to a first CI run; the site navigation lists every reference page.

Quick start

The steps below use the public host anvil.fangorn.io and the example owner fangorn. Substitute the org you are working in.

  1. Sign in with Google. Open the log-in page and choose Sign in with Google. Anvil signs you in with your Google account; there is no separate registration step. On your first sign-in, Anvil creates your account and a personal organization (named from your account), where your first repositories live.

  2. Add an SSH key. Open SSH keys settings at /users/settings/ssh-keys, give the key a title, and paste the contents of your public key. Generate one first if you do not have it:

    ssh-keygen -t ed25519 -C "you@example.com"
    cat ~/.ssh/id_ed25519.pub

    Anvil uses this key to authenticate git push and pull over SSH.

  3. Create a repository. From your org page, choose New repository (route /<org>/-/repos/new), set a name, slug, and visibility (private or public), then submit. The repository starts empty.

  4. Push code over SSH. Add Anvil as a remote and push an existing local repository. The SSH remote takes the form git@anvil.fangorn.io:<org>/<repo>.git:

    git remote add origin git@anvil.fangorn.io:fangorn/anvil.git
    git push -u origin main

    To clone a repository that already has commits:

    git clone git@anvil.fangorn.io:fangorn/anvil.git

    The repository page shows ready-to-copy SSH, HTTPS, and anvil CLI clone commands if you prefer one of the other transports.

  5. Add a .anvil.yml to run CI. Commit a file named .anvil.yml at the repository root. Each push and pull request to a repository that contains it triggers a CI run. A minimal pipeline:

    steps:
    - name: test
    run: mix test
    - name: lint
    run: mix format --check-formatted

    Push the file and watch the run appear under the repository’s CI tab. See the .anvil.yml reference for every top-level key and step field.

Next steps

Page What it covers
CLI reference Every anvil subcommand, with flags and examples.
.anvil.yml reference All top-level keys and step fields for CI pipelines.
Self-hosted runners Register a runner on your own machine and assign it to your org.
Git LFS Store large binaries out-of-band while git history stays small.
Container registry Push and pull OCI images from Anvil.
Webhooks Deliver repo, pull request, and CI events to your own endpoints over HTTP.