Skip to content
Servidores blade en su chasis con luces de estado verdes, uno de ellos medio extraído

Internal platform: GitLab, Kubernetes, Coolify or Dokploy

The foundation your team builds and deploys on, set up in your account, as code and with a procedure so anyone can publish a new service.

Usual tools

  • Coolify
  • Dokploy
  • Gitea
  • GitLab
  • Kafka
  • Keycloak
  • Kubernetes
  • Hetzner

In short

An internal platform is the set of tools your team uses to store code, build it and deploy it without asking for help. We set up self-hosted GitLab with runners and registry, a Kubernetes or k3s cluster, or a self-hosted PaaS such as Coolify or Dokploy when Kubernetes is too much. Everything stays in your account, as code and documented.

Languages
Spanish, Catalan or English
Response
The next business day, during business hours
Method
In your account and your repository, in code and documented

What is included

  • Chosen architecture in writing, with the reasons and the alternatives ruled out.
  • Self-hosted GitLab with runners, container registry and object storage, if it fits.
  • Kubernetes or k3s cluster, or a PaaS with Coolify or Dokploy, deployed as code.
  • Template for publishing a new service: pipeline, deployment, domain and certificate.
  • Platform backups with a tested restore.
  • Basic monitoring of the platform itself.
  • Technical team access through a WireGuard VPN, with one key per person.
  • Documentation and a handover session with the team.

When do you need an internal platform?

When deploying depends on one person or on an outdated document. These are the most common signs:

  • Each project is deployed in a different way and only one person knows how.
  • The in-house GitLab or Gitea has not been updated in years and nobody wants to touch it.
  • Cloud CI minutes or per-user licences have become a significant cost.
  • You want to stop depending on a commercial PaaS and have your services in your own account.
  • Each of the agency’s clients has a server set up by hand.

Kubernetes, k3s or a self-hosted PaaS?

There is no single answer: it depends on how many services you have, how many environments you need and who is going to maintain it. This is the comparison we usually make with each team:

Option Fits when What it asks in return What it does not do well
Managed Kubernetes (EKS, GKE, AKS) Many services, several environments and high availability Kubernetes knowledge and keeping an eye on cost Two-person teams with three applications
k3s on your own servers Kubernetes on Hetzner or another provider without a managed service You maintain the control plane and the upgrades Scaling to dozens of nodes without further design
Coolify or Dokploy Few applications, one or two servers, small team Accepting its networking and high availability limits Fine-grained security policies and multi-cluster
Docker Compose with CI One or two stable applications Discipline in the pipeline and the backups Zero-downtime deployments and autoscaling

The recommendation is put in writing, with the reasons. If Kubernetes is too much for your team, we will tell you.

What do we set up with GitLab?

When the platform revolves around self-hosted GitLab, we take care of the pieces that usually cause trouble: runners with caching and scaling, the container registry with automatic image cleanup, object storage for artefacts and packages, single sign-on with your identity provider and backups with a tested restore. We go into detail on the managed self-hosted GitLab page.

The technical team’s access to dashboards, databases and internal servers goes through a WireGuard VPN, with one key per person that can be revoked instantly, and no admin ports open to the internet.

How does the project work?

It is a fixed-scope project, with deliverables in writing before we start:

  1. Inventory

    Which applications there are, how they are deployed today, which environments you need and what data or provider constraints you have.

  2. Design

    Chosen architecture, alternatives ruled out and an approximate infrastructure cost with your provider.

  3. Build as code

    Terraform or Ansible for the infrastructure, Helm or the PaaS manifests for the services, all in your repository.

  4. First service

    We migrate a real application end to end and use it as a template for the rest.

  5. Handover

    Documentation, a session with the team and, if you want, maintenance with the SRE monthly fee.

What experience do we have with platforms?

In CTO roles we have built and maintained the platform of several startups, with container deployments and 99.9% availability. In DevOps at a B2B SaaS company we have worked with multi-cloud environments described as code and CI/CD pipelines that deployed several times a day. What we have learnt: a platform only works if the team understands it and uses it without asking for permission.

Frequently asked questions

Why self-host GitLab instead of using the cloud version?

It usually pays off when the code cannot leave your infrastructure, when cloud CI minutes soar or when you need runners on your own hardware. If none of those reasons applies, we will recommend the cloud service.

Are Coolify or Dokploy fit for production?

Yes, for small teams with a few applications and a couple of servers. Once you have many services, several environments or high availability requirements, Kubernetes or k3s are usually a better option. We will explain where the limit lies in your case.

Who maintains the platform afterwards?

Your team, with the documentation we leave, or us with the SRE as a service monthly fee. The platform does not depend on us: it is in your account and in your repository.

Tell us about your case

In a free 20-minute call we look at where you are and where to start. No commitment.

Book a 20-minute call

Reviewed on

WhatsApp