elektrine/mix.exs
maxfield 5f199c7053
All checks were successful
Deploy Docker Images / Build, push, and deploy (push) Successful in 16m37s
feat(platform): complete runtime role matrix and plane isolation
Add first-class dns/web roles, Oban queue filtering by role, optional
read replica (Repo.Reader), Auth route module, optional edge compose
service, slim elektrine_edge release, and architecture docs for the
control/data-plane target. Deploy already phases app vs edge; dns
containers now use ROLE=dns.
2026-08-08 05:12:58 -04:00

82 lines
2.3 KiB
Elixir

defmodule ElektrineUmbrella.MixProject do
use Mix.Project
def project do
[
version: "0.1.0",
apps_path: "apps",
start_permanent: Mix.env() == :prod,
consolidate_protocols: Mix.env() == :prod,
listeners: [Phoenix.CodeReloader],
releases: releases(),
deps: deps(),
aliases: aliases()
]
end
def cli do
[preferred_envs: [check: :test, "arbp.conformance": :test]]
end
defp deps, do: []
defp releases do
# Prefer one image + ELEKTRINE_RUNTIME_ROLE for multi-plane deploys.
# Slim releases exist for DNS-only / edge-facing packaging when needed.
full_apps = [
elektrine: :permanent,
arblarg: :permanent,
elektrine_dns: :permanent,
elektrine_web: :permanent,
elektrine_email: :permanent,
kairo: :permanent,
atomine: :permanent,
elektrine_social: :permanent,
elektrine_vpn: :permanent,
elektrine_nerve: :permanent,
elektrine_uptime: :permanent,
paige: :permanent
]
[
elektrine: [applications: full_apps],
# Authoritative DNS plane (no Phoenix web endpoint apps required at runtime).
elektrine_dns: [
applications: [
elektrine: :permanent,
elektrine_dns: :permanent
]
],
# Edge-facing HTTP plane: control + web + dns edge modules (proxy/tunnels).
elektrine_edge: [
applications: [
elektrine: :permanent,
elektrine_dns: :permanent,
elektrine_web: :permanent,
atomine: :permanent
]
]
]
end
defp aliases do
[
check: [
"format --check-formatted",
"do --app elektrine cmd --cd ../.. scripts/check_tracked_generated_artifacts.sh",
"do --app elektrine cmd --cd ../.. scripts/check_legacy_marker_budget.sh",
"do --app elektrine cmd --cd ../.. scripts/check_maintainability_budgets.sh",
"do --app elektrine cmd --cd ../.. scripts/check_design_consistency.sh",
"do --app elektrine cmd --cd assets npm run check",
"compile --warnings-as-errors",
"credo --strict",
"deps.audit",
"hex.audit",
"deps.unlock --check-unused",
"test"
],
setup: ["cmd --cd apps/elektrine mix setup"],
seed: ["cmd --cd apps/elektrine mix run priv/repo/seeds.exs"]
]
end
end