= geoip-city-wsgi SOP

A simple web service that return geoip information as JSON-formatted
dictionary in utf-8. Particularly, it's used by anaconda[1] to get the
most probable territory code, based on the public IP of the caller.

== Contents

* <<_contact_information>>
* <<_basic_function>>
* <<_ansible_roles>>
* <<_documentation_links>>

== Contact Information

Owner::
  Fedora Infrastructure Team
Contact::
  #fedora-apps, #fedora-admin, #fedora-noc
Location::
  https://geoip.fedoraproject.org
Servers::
  sundries*, sundries*-stg
Purpose::
  A simple web service that return geoip information as JSON-formatted
  dictionary in utf-8. Particularly, it's used by https://fedoraproject.org/wiki/Anaconda[anaconda]
  to get the most probable territory code, based on the public IP of the caller.

== Basic Function

* Users go to https://geoip.fedoraproject.org/city
* The website is exposed via
`/etc/httpd/conf.d/geoip-city-wsgi-proxy.conf`.
* Return a string with geoip information with syntax as JSON-formatted
dict in utf8
* It also currently accepts one override: `?ip=xxx.xxx.xxx.xxx`, e.g.
https://geoip.fedoraproject.org/city?ip=18.0.0.1 which then uses the
passed IP address instead of the determined IP address of the client.

== Ansible Roles

The geoip-city-wsgi role:
https://pagure.io/fedora-infra/ansible/blob/main/f/roles/geoip-city-wsgi

is present in sundries playbook:
https://pagure.io/fedora-infra/ansible/blob/main/f/playbooks/groups/sundries.yml

the proxy tasks are present in:
https://pagure.io/fedora-infra/ansible/blob/main/f/playbooks/include/proxies-reverseproxy.yml

== Documentation Links

App: https://geoip.fedoraproject.org

Source: https://github.com/fedora-infra/geoip-city-wsgi

Bugs: https://github.com/fedora-infra/geoip-city-wsgi/issues
