Files
wanderer/config/config.exs
T
2025-06-17 12:29:58 -04:00

138 lines
4.6 KiB
Elixir

# This file is responsible for configuring your application
# and its dependencies with the aid of the Config module.
#
# This configuration file is loaded before any dependency and
# is restricted to this project.
# General application configuration
import Config
config :wanderer_app, WandererApp.Cache,
# When using :shards as backend
# backend: :shards,
# GC interval for pushing new generation: 12 hrs
gc_interval: :timer.hours(12),
# Max 1 million entries in cache
max_size: 1_000_000,
# Max 2 GB of memory
allocated_memory: 2_000_000_000,
# GC min timeout: 10 sec
gc_cleanup_min_timeout: :timer.seconds(10),
# GC max timeout: 10 min
gc_cleanup_max_timeout: :timer.minutes(10)
config :wanderer_app,
ecto_repos: [WandererApp.Repo],
ash_domains: [WandererApp.Api],
generators: [timestamp_type: :utc_datetime],
ddrt: DDRT,
logger: Logger,
pubsub_client: Phoenix.PubSub,
wanderer_kills_base_url:
System.get_env("WANDERER_KILLS_BASE_URL", "ws://host.docker.internal:4004"),
wanderer_kills_service_enabled:
System.get_env("WANDERER_KILLS_SERVICE_ENABLED", "false") == "true"
config :wanderer_app, WandererAppWeb.Endpoint,
adapter: Bandit.PhoenixAdapter,
url: [host: "localhost"],
render_errors: [
formats: [html: WandererAppWeb.ErrorHTML, json: WandererAppWeb.ErrorJSON],
layout: false
],
pubsub_server: WandererApp.PubSub,
live_view: [signing_salt: "LjxzzFQ1"]
config :ueberauth, Ueberauth,
providers: [
eve:
{WandererApp.Ueberauth.Strategy.Eve,
[
default_scope:
"esi-location.read_location.v1 esi-location.read_ship_type.v1 esi-location.read_online.v1 esi-ui.write_waypoint.v1 esi-search.search_structures.v1",
wallet_scope:
"esi-location.read_location.v1 esi-location.read_ship_type.v1 esi-location.read_online.v1 esi-ui.write_waypoint.v1 esi-search.search_structures.v1 esi-wallet.read_character_wallet.v1",
admin_scope:
"esi-location.read_location.v1 esi-location.read_ship_type.v1 esi-location.read_online.v1 esi-ui.write_waypoint.v1 esi-search.search_structures.v1 esi-wallet.read_character_wallet.v1 esi-wallet.read_corporation_wallets.v1 esi-mail.send_mail.v1",
callback_path: "/auth/eve/callback"
]}
]
config :wanderer_app, WandererApp.Mailer, adapter: Swoosh.Adapters.Local
config :dart_sass, :version, "1.54.5"
config :tailwind, :version, "3.2.7"
config :wanderer_app, WandererApp.PromEx, manual_metrics_start_delay: :no_delay
config :wanderer_app,
grafana_datasource_id: "wanderer"
config :phoenix_ddos,
protections: [
# ip rate limit
{PhoenixDDoS.IpRateLimit, allowed: 10_000, period: {1, :minute}},
{PhoenixDDoS.IpRateLimit, allowed: 1_000_000, period: {1, :hour}},
# ip rate limit on specific request_path
{PhoenixDDoS.IpRateLimitPerRequestPath,
request_paths: ["/auth/eve"], allowed: 100, period: {1, :minute}}
]
config :ash_pagify,
default_limit: 50,
max_limit: 1000,
scopes: %{
role: []
},
reset_on_filter?: true,
replace_invalid_params?: true,
pagination: [opts: {WandererAppWeb.CoreComponents, :pagination_opts}],
table: [opts: {WandererAppWeb.CoreComponents, :table_opts}]
# Configures Elixir's Logger
config :logger, :console,
format: "$time $metadata[$level] $message\n",
metadata: [:application, :module, :function, :line, :request_id]
# Use Jason for JSON parsing in Phoenix
config :phoenix, :json_library, Jason
config :error_tracker,
repo: WandererApp.Repo,
otp_app: :wanderer_app
config :git_ops,
mix_project: Mix.Project.get!(),
changelog_file: "CHANGELOG.md",
repository_url: "https://github.com/wanderer-industries/wanderer",
types: [
# Makes an allowed commit type called `tidbit` that is not
# shown in the changelog
tidbit: [
hidden?: true
],
# Makes an allowed commit type called `important` that gets
# a section in the changelog with the header "Important Changes"
important: [
header: "Important Changes"
]
],
tags: [
# Only add commits to the changelog that has the "backend" tag
allowed: ["feat", "fix", "docs"],
# Filter out or not commits that don't contain tags
allow_untagged?: true
],
# Instructs the tool to manage your mix version in your `mix.exs` file
# See below for more information
manage_mix_version?: true,
# Instructs the tool to manage the version in your README.md
# Pass in `true` to use `"README.md"` or a string to customize
manage_readme_version: "README.md",
version_tag_prefix: "v"
# Import environment specific config. This must remain at the bottom
# of this file so it overrides the configuration defined above.
import_config "#{config_env()}.exs"