Struggling with a problem that i just can’t seem to figure out.

When starting from scratch self hosting both the SCM and CI/CD server.

Given that you can’t use an existing setup to deploy/manage it, what is the best practice for deploying said services?

  • @[email protected]
    link
    fedilink
    26 months ago

    I tend to do manual bootstrapping with local execution as well but when using Forgejo/Gitea and corresponding actions you could also init the repo, start building your pipeline and use act to run it (locally at first if course) and as soon as you have your infrastructure in place you could continue to use the same pipeline there?

    Still not ideal/perfect but if you don’t want to depend on some SaaS then this at least already runs the automation as it will be later?

    • @[email protected]OP
      link
      fedilink
      English
      16 months ago

      Yeah, I’m going with a tiny dedicated infra bootstrapping box with all the tools I’d need to bootstrap the main infrastructure.

      Using a hypervisor (proxmox in this case) I have some prebuilt vms’s and container images that I can use for the bootstrap instances so i’d not need to completely hand roll it again should it be needed.

      I’m looking at cloudinit scripts to see if that’s useful for this.

      I really like packer but I’m hesitant to rely on anything hashicorp until whatever they have going on shakes out.

      Then I just load up the bootstrap box with the main infra code and use woodpecker to deploy.

      Code and config backed up, also mirrored to newly created infra forgejo instances, just in case.

      If I can get a semi presentable cloud init based bootstrap system working nicely I’ll stick it somewhere people can get to it, in case it’s useful to someone else.

      • @[email protected]
        link
        fedilink
        16 months ago

        If you don’t mind I’d be interested in how the cloudinit for proxmox looks like 😁 So far I only used it for Azure and Hetzner Cloud to bootstrap Coder machines but from your description I’d expect that should work. Very cool approach!