cloud infra

Files
README.md

Cloud #

This repo sets up provisioning and configuration for services.

/provision contains instructions for provisioning servers, dns, etc. usually with terraform. /configure sets up those servers and has different playbooks. This isi done with ansible.

Tangled / Knot server #

We're running both gitea and knot on the same server, so we can't (?) use the same port for both. knot is on 2223, gitea is on 2222. So when you first connect to the knot server, you should run the following:

ssh -p 2223 git@knot.nagee.dev -i ...

Also, add the following to your ~/.ssh/config:

Host knot.nagee.dev
    Port 2223
    IdentifyFile /path/to/your/private/key

One thing you have to do when starting the knot server is chowning the /app directory 😦

chown -R git:git /app
chown -R git:git /home

Building knot locally #

This turned out to be a little difficult. The easiest thing to do is to run it with docker

> cd .local-build/
> git clone https://tangled.org/@tangled.org/core
> cd core
> docker run --rm \
  --platform linux/amd64 \
  -v "$PWD":/src \
  -w /src \
  golang:1.25 \
  bash -c '
  apt-get update &&
  apt-get install -y gcc libc6-dev &&
  CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \
  go build -o knot ./cmd/knot'

Upgrading a service #

  1. Update ServiceVersions in configure/operations/services.py with your new service version
  2. Run mise run op-release

Releasing a new service #

  1. Update SERVICES in configure/operations/services.py with your new service
  2. Run mise run op-add-service

Foundry and SigNoz #

This is experimental, so was installed manually.

First, foundry was installed using the instructions here https://github.com/SigNoz/foundry

I did have to do the following to get foundryctl to work and I followed the prerequesites here: https://github.com/SigNoz/foundry/tree/main/docs/examples/systemd/binary#prerequisites

I changed the storage option to sqlite instead of postgresql.

Secrets #

infra_do_space_json:

  1. Go to