<% content_for :title, "Settings" %>

Settings

Manage system configuration and API keys

API Configuration

<%= form_with url: settings_path, method: :patch, class: "space-y-4" do |f| %> <%= hidden_field_tag :key, 'ipapi_key' %>
<%= text_field_tag :value, @settings['ipapi_key']&.value || ENV['IPAPI_KEY'], class: "flex-1 min-w-0 block w-full px-3 py-2 rounded-md border-gray-300 focus:ring-blue-500 focus:border-blue-500 sm:text-sm", placeholder: "Enter your ipapi.is API key" %> <%= f.submit "Update", class: "ml-3 inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" %>

<% if @settings['ipapi_key']&.value.present? %> ✓ Configured in database <% elsif ENV['IPAPI_KEY'].present? %> Using environment variable (IPAPI_KEY) <% else %> ipapi.is not active <% end %>

Get your API key from ipapi.is

<% end %>

Data Retention

<%= form_with url: settings_path, method: :patch, class: "space-y-4" do |f| %> <%= hidden_field_tag :key, 'event_retention_days' %>
<%= number_field_tag :value, @settings['event_retention_days']&.value || 90, class: "flex-1 min-w-0 block w-full px-3 py-2 rounded-md border-gray-300 focus:ring-blue-500 focus:border-blue-500 sm:text-sm", placeholder: "90", min: 0 %> <%= f.submit "Update", class: "ml-3 inline-flex items-center px-4 py-2 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" %>

Events older than this many days will be automatically deleted by the cleanup job (runs hourly). Set to 0 to disable automatic cleanup. Default: 90 days.

Current setting: <%= Setting.event_retention_days %> days

<% end %>