import Config config :chessh, ssh_port: String.to_integer(System.get_env("SSH_PORT", "34355")) config :chessh, DiscordNotifications, looking_for_games_role_mention: "<@&#{System.get_env("NEW_GAME_PINGABLE_ROLE_ID")}>", remind_move_channel_id: System.get_env("REMIND_MOVE_CHANNEL_ID"), discord_bot_token: System.get_env("DISCORD_BOT_TOKEN"), new_game_channel_id: System.get_env("NEW_GAME_CHANNEL_ID") config :chessh, Web, discord_client_id: System.get_env("DISCORD_CLIENT_ID"), discord_client_secret: System.get_env("DISCORD_CLIENT_SECRET"), discord_user_agent: System.get_env("DISCORD_USER_AGENT"), client_redirect_after_successful_sign_in: System.get_env("CLIENT_REDIRECT_AFTER_OAUTH", "http://127.0.0.1:3000/auth-successful"), server_redirect_uri: System.get_env("SERVER_REDIRECT_URI", "http://127.0.0.1:3000/api/oauth/redirect"), port: String.to_integer(System.get_env("WEB_PORT", "8080")) config :libcluster, topologies: [ chessh: [ strategy: Cluster.Strategy.Epmd, config: [ hosts: String.split(System.get_env("CLUSTER_NODES", ""), ",") |> Enum.filter(fn x -> String.length(x) > 0 end) |> Enum.map(&String.to_atom/1) ], child_spec: [restart: :transient] ] ] config :joken, default_signer: System.get_env("JWT_SECRET") if config_env() == :prod do database_url = System.get_env("DATABASE_URL") || raise """ environment variable DATABASE_URL is missing. For example: ecto://USER:PASS@HOST/DATABASE """ maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: [] config :chessh, Chessh.Repo, # ssl: true, url: database_url, pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), socket_options: maybe_ipv6 config :hammer, backend: [ in_memory: {Hammer.Backend.ETS, [expiry_ms: 60_000 * 60 * 4, cleanup_interval_ms: 60_000 * 10]}, redis: {Hammer.Backend.Redis, [ expiry_ms: 60_000 * 60 * 2, redix_config: [ host: System.get_env("REDIS_HOST", "redis"), port: String.to_integer(System.get_env("REDIS_PORT", "6379")) ] ]} ] end