Documentation

Plateforme locale complète

Combinez reverse proxy, services, observabilité et Kubernetes dans une seule stack.

Utilisez ce pattern quand vous voulez une plateforme locale compacte de bout en bout. Il combine les plus petits exemples dans un seul fichier source vectron.stack.toml.

Cela reste un exemple, pas une référence. Commencez plus petit quand c’est possible, puis ajoutez les blocs dont votre workspace a vraiment besoin.

schema_version = 1
tld = "local.dev.test"

enabled = [
  "dnsmasq",
  "nginx",
  "mongodb",
  "rabbitmq",
  "redis",
  "minio",
  "qdrant",
  "docker",
  "prometheus",
  "loki",
  "alloy",
  "grafana",
  "kubernetes",
]

[nginx]
https_port = 54443

[[nginx.server]]
server_names = ["app.local.dev.test"]
link = { label = "App", path = "/" }
upstreams = { web = "http://127.0.0.1:3000", api = "http://127.0.0.1:4000" }

[[nginx.server.route]]
match = { prefix = "/api/ws" }
to = { upstream = "api", websocket = true }

[[nginx.server.route]]
match = { prefix = "/api/" }
to = { upstream = "api" }

[[nginx.server.route]]
match = { prefix = "/" }
to = { upstream = "web", websocket = true }

[[rabbitmq.vhost]]
name = "platform"
queues = [
  "jobs.default",
  "jobs.priority",
  "events.outbox",
]

[prometheus]
scrape_config_files = ["./monitoring/prometheus.yml"]

[alloy]
import_files = [
  { name = "app", path = "./monitoring/config.alloy" },
]
blocks = [
  'app.logs "local_app_logs" { forward_to = loki.write.default.receiver }',
]

[alloy.docker_logs]
enabled = true
refresh_interval = "5s"

[alloy.docker_logs.labels]
environment = "local"
origin = "docker"

[[alloy.docker_logs.relabel]]
source_labels = ["__meta_docker_container_label_service"]
target_label = "service"

[[alloy.docker_logs.relabel]]
source_labels = ["__meta_docker_container_name"]
target_label = "container"

[grafana]

[[grafana.dashboard_dirs]]
dir = "./grafana/dashboards"
folder = "Apps"

[kubernetes]
driver = "minikube"
cluster_name = "local-dev"
control_planes = 1
workers = 0
wait_seconds = 120
kubeconfig_path = ".vectron_stack/generated/kubernetes/kubeconfig"
api_server_address = "127.0.0.1"
api_server_port = 6443
local_registry_port = 5001
stop_after_init = true
stop_on_vectron_stop = true

Le faire évoluer

  • Retirez les plugins dont votre projet n’a pas besoin.
  • Séparez les fichiers de monitoring sous ./monitoring/ et les dashboards sous ./grafana/dashboards.
  • Gardez domaines, ports, queues et labels Docker spécifiques à votre projet.
  • Lancez vectron stack check après chaque changement.

Utilisez les exemples plus petits quand vous voulez comprendre une partie de la stack de manière isolée.