import Config # Note we also include the path to a cache manifest # containing the digested version of static files. This # manifest is generated by the `mix assets.deploy` task, # which you should run after static files are built and # before starting your production server. config :music_library, MusicLibraryWeb.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json" # Do not print debug messages in production config :logger, level: :info # Force single-line log output config :phoenix, :logger, false config :music_library, :single_line_logging, true config :logster, extra_fields: [:request_id], filter_parameters: Application.get_env(:phoenix, :filter_parameters, ["password"]) config :logger, :default_formatter, format: {MusicLibrary.Logger.SingleLineFormatter, :format}, metadata: [:request_id, :pid] config :music_library, monitoring_routes: true config :error_tracker, enabled: true config :music_library, ErrorTracker.ErrorNotifier, from_email: "postmaster@mailgun.fullyforged.com", to_email: "claudio@fullyforged.com", mailer: MusicLibrary.Mailer, base_url: "https://music-library.claudio-ortolina.org" twelve_hours_in_seconds = 12 * 60 * 60 config :music_library, Oban, plugins: [ {Oban.Plugins.Pruner, max_age: twelve_hours_in_seconds}, {Oban.Plugins.Reindexer, schedule: "@weekly"}, {Oban.Plugins.Cron, timezone: "Europe/London", crontab: [ # every 12 hours {"0 */12 * * *", MusicLibrary.Worker.ApplyScrobbleRules}, {"0 */12 * * *", MusicLibrary.Worker.PruneAssetCache}, # every day at 2 am, {"0 2 * * *", MusicLibrary.Worker.PruneAssets}, # every day at 3 am, {"0 3 * * *", MusicLibrary.Worker.RepoVacuum}, # every day at 4 am, {"0 4 * * *", MusicLibrary.Worker.RepoOptimize}, # every first day of the month, staggered hourly {"0 6 1 * *", MusicLibrary.Worker.RecordRefreshAllMusicBrainzData}, {"0 7 1 * *", MusicLibrary.Worker.RecordGenerateAllEmbeddings}, {"0 8 1 * *", MusicLibrary.Worker.ArtistRefreshAllMusicBrainzData}, {"0 9 1 * *", MusicLibrary.Worker.ArtistRefreshAllDiscogsData}, {"0 10 1 * *", MusicLibrary.Worker.ArtistRefreshAllWikipediaData}, # daily at 7 am {"0 7 * * *", MusicLibrary.Worker.SendRecordsOnThisDayEmail}, # every 5 minutes {"*/5 * * * *", MusicLibrary.Worker.RefreshScrobbles} ]} ] # Runtime production configuration, including reading # of environment variables, is done on config/runtime.exs.