analytics/lib/plausible_web/controllers/tracker_controller.ex
Uku Taht ead4a7d560
Release selfhosted (#341)
* Optimize Dockerfile

* Update selfhosting documentation

* Remove unnecessary files

* Remove internal config stuff

* Update config

* WIP

* Use BASE_URL instead of HOST and SCHEME

* Add port to endpoint url config

* Make config/config.exs on par with config/releases.exs

* Add changelog entry

* Document configuration change
2020-10-05 15:01:54 +03:00

56 lines
1.2 KiB
Elixir
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

defmodule PlausibleWeb.TrackerController do
use PlausibleWeb, :controller
require EEx
EEx.function_from_file(
:defp,
:render_plausible,
Application.app_dir(:plausible, "priv/tracker/js/plausible.js"),
[:base_url]
)
EEx.function_from_file(
:defp,
:render_plausible_hash,
Application.app_dir(:plausible, "priv/tracker/js/plausible.hash.js"),
[:base_url]
)
EEx.function_from_file(
:defp,
:render_p,
Application.app_dir(:plausible, "priv/tracker/js/p.js"),
[:base_url]
)
#  1 hour
@max_age 3600
def plausible(conn, _params) do
send_js(conn, render_plausible(base_url()))
end
def plausible_hash(conn, _params) do
send_js(conn, render_plausible_hash(base_url()))
end
def analytics(conn, _params) do
send_js(conn, render_plausible(base_url()))
end
def p(conn, _params) do
send_js(conn, render_p(base_url()))
end
defp send_js(conn, file) do
conn
|> put_resp_header("cache-control", "max-age=#{@max_age},public")
|> put_resp_header("content-type", "application/javascript")
|> send_resp(200, file)
end
defp base_url() do
PlausibleWeb.Endpoint.url()
end
end