Infrastructure as code for TL Forge https://tlforge.dev/
Find a file
2026-04-18 21:54:25 +01:00
modules/runner Use ubuntu-latest image 2026-04-18 21:41:07 +01:00
.gitignore Add basic OpenTofu code 2026-04-17 10:07:40 +01:00
.terraform.lock.hcl Revert "Move Terraform in to separate directory" 2026-04-17 11:33:18 +01:00
cloud-init.yaml Update repo URL 2026-04-18 17:12:42 +01:00
instance.tf Add runner for actions 2026-04-18 21:38:35 +01:00
LICENSE Add MIT licence 2026-04-17 17:22:00 +01:00
mise.toml Reduce the number of variables 2026-04-18 15:06:06 +01:00
networking.tf Add runner for actions 2026-04-18 21:38:35 +01:00
policies.tf Give permission to send emails 2026-04-18 17:49:10 +01:00
README.md Add runner for actions 2026-04-18 21:38:35 +01:00
runners.tf Add runner for actions 2026-04-18 21:38:35 +01:00
secrets.tf Add public and private signing key 2026-04-18 21:54:25 +01:00
terraform.tf Reduce the number of variables 2026-04-18 15:06:06 +01:00
variables.tf Add runner for actions 2026-04-18 21:38:35 +01:00

TL Forge — Infrastructure

This repository contains infrastructure as code configuration for TL Forge running on Scaleway using Forgejo.

Dependencies

$ brew install mise
$ mise install

Setup

  1. Create a mise.local.toml file containing your Scaleway access key, secret key, organization ID and project ID:

    [env]
    SCW_ACCESS_KEY = "..."
    SCW_SECRET_KEY = "..."
    SCW_DEFAULT_ORGANIZATION_ID = "..."
    SCW_DEFAULT_PROJECT_ID = "..."
    
  2. Create a terraform.tfvars file containing the runners:

    runners = [
      {
        uuid = "...",
        token = "..."
      }
    ]
    
  3. Initialize the project:

    $ mise run init
    

Plan and apply

Run the following to plan and apply any changes to the infrastructure.

$ mise run plan
$ mise run apply

Maintenance

Running Ansible

On the main instance

$ ansible-pull -U https://tlforge.dev/tlsquared/tlforge-ansible.git

On a runner instance

$ ansible-pull -U https://tlforge.dev/tlsquared/tlforge-ansible.git tlforge-runner.yml