Changes: - Add Oban configuration to config/dev.exs (was only in runtime.exs) - Replace Exq telemetry metrics with Oban equivalents - Update publish_exq_stats to publish_oban_stats using Oban.Job queries - Track queue sizes, executing jobs, and available jobs This fixes the startup error where Oban config was not available in dev.
136 lines
4.3 KiB
Elixir
136 lines
4.3 KiB
Elixir
import Config
|
|
|
|
# Do not include metadata nor timestamps in development logs
|
|
config :logger, :default_formatter, format: "[$level] $message\n"
|
|
|
|
# Set minimum log level to info to prevent debug logs from exposing sensitive data
|
|
# SNMPKit logs complete SNMP messages at debug level which includes community strings
|
|
config :logger, level: :info
|
|
|
|
# Initialize plugs at runtime for faster development compilation
|
|
config :phoenix, :plug_init_mode, :runtime
|
|
|
|
# Set a higher stacktrace during development. Avoid configuring such
|
|
# in production as building large stacktraces may be expensive.
|
|
config :phoenix, :stacktrace_depth, 20
|
|
|
|
config :phoenix_live_view,
|
|
# Include debug annotations and locations in rendered markup.
|
|
# Changing this configuration will require mix clean and a full recompile.
|
|
debug_heex_annotations: true,
|
|
debug_attributes: true,
|
|
# Enable helpful, but potentially expensive runtime checks
|
|
enable_expensive_runtime_checks: true
|
|
|
|
# Disable swoosh api client as it is only required for production adapters.
|
|
config :swoosh, :api_client, false
|
|
|
|
# Configure Oban for background jobs
|
|
config :towerops, Oban,
|
|
repo: Towerops.Repo,
|
|
queues: [
|
|
default: 10,
|
|
discovery: 10,
|
|
# SNMP polling jobs - one per device
|
|
pollers: 50,
|
|
# Device monitoring jobs - health checks
|
|
monitors: 50,
|
|
maintenance: 5
|
|
],
|
|
plugins: [
|
|
# Automatically delete completed jobs after 60 seconds
|
|
{Oban.Plugins.Pruner, max_age: 60},
|
|
# Rescue orphaned jobs (when node crashes)
|
|
{Oban.Plugins.Reindexer, schedule: "0 2 * * *"}
|
|
]
|
|
|
|
# Configure your database
|
|
config :towerops, Towerops.Repo,
|
|
username: "postgres",
|
|
password: "postgres",
|
|
hostname: "localhost",
|
|
database: "towerops_dev",
|
|
stacktrace: true,
|
|
show_sensitive_data_on_connection_error: true,
|
|
pool_size: 10
|
|
|
|
# For development, we disable any cache and enable
|
|
# debugging and code reloading.
|
|
#
|
|
# The watchers configuration can be used to run external
|
|
# watchers to your application. For example, we can use it
|
|
# to bundle .js and .css sources.
|
|
config :towerops, ToweropsWeb.Endpoint,
|
|
# Binding to loopback ipv4 address prevents access from other machines.
|
|
# Change to `ip: {0, 0, 0, 0}` to allow access from other machines.
|
|
http: [ip: {127, 0, 0, 1}],
|
|
check_origin: false,
|
|
code_reloader: true,
|
|
debug_errors: true,
|
|
secret_key_base: "ZA80pnF0GDr5/cb3jn/mtGjJPjg+0J68+MkglRQMlZNbxWYLPOAMCcYo2/rajclz",
|
|
watchers: [
|
|
esbuild: {Esbuild, :install_and_run, [:towerops, ~w(--sourcemap=inline --watch)]},
|
|
tailwind: {Tailwind, :install_and_run, [:towerops, ~w(--watch)]}
|
|
]
|
|
|
|
# ## SSL Support
|
|
#
|
|
# In order to use HTTPS in development, a self-signed
|
|
# certificate can be generated by running the following
|
|
# Mix task:
|
|
#
|
|
# mix phx.gen.cert
|
|
#
|
|
# Run `mix help phx.gen.cert` for more information.
|
|
#
|
|
# The `http:` config above can be replaced with:
|
|
#
|
|
# https: [
|
|
# port: 4001,
|
|
# cipher_suite: :strong,
|
|
# keyfile: "priv/cert/selfsigned_key.pem",
|
|
# certfile: "priv/cert/selfsigned.pem"
|
|
# ],
|
|
#
|
|
# If desired, both `http:` and `https:` keys can be
|
|
# configured to run both http and https servers on
|
|
# different ports.
|
|
|
|
# Reload browser tabs when matching files change.
|
|
config :towerops, ToweropsWeb.Endpoint,
|
|
live_reload: [
|
|
web_console_logger: true,
|
|
patterns: [
|
|
# Static assets, except user uploads
|
|
~r"priv/static/(?!uploads/).*\.(js|css|png|jpeg|jpg|gif|svg)$",
|
|
# Gettext translations
|
|
~r"priv/gettext/.*\.po$",
|
|
# Router, Controllers, LiveViews and LiveComponents
|
|
~r"lib/towerops_web/router\.ex$",
|
|
~r"lib/towerops_web/(controllers|live|components)/.*\.(ex|heex)$"
|
|
]
|
|
]
|
|
|
|
# Set environment identifier for runtime checks
|
|
config :towerops, :env, :dev
|
|
|
|
# Configure SNMP MIB directories for development
|
|
# Point to local priv/mibs subdirectories where MIB files are stored
|
|
# Note: The root mibs/ directory only contains symlinks to LibreNMS repo
|
|
# SNMP MIB directories for development
|
|
# MibTranslator automatically expands these to include subdirectories
|
|
config :towerops, :mib_dirs, [
|
|
Path.join([File.cwd!(), "priv", "mibs"]),
|
|
"/usr/share/snmp/mibs"
|
|
]
|
|
|
|
# Configure Redis/Valkey for development
|
|
config :towerops, :redis,
|
|
host: "localhost",
|
|
port: 6379
|
|
|
|
# Configure SNMP polling interval for development (60 seconds)
|
|
config :towerops, :snmp_min_poll_interval, 60
|
|
|
|
# Enable dev routes for dashboard and mailbox
|
|
config :towerops, dev_routes: true
|