From e76115989a0867d5a37a869b560153c2e7c060fd Mon Sep 17 00:00:00 2001 From: rinpatch Date: Fri, 21 Jun 2019 19:30:25 +0300 Subject: Move config templates to priv so they can be found in releases --- priv/templates/robots_txt.eex | 2 + priv/templates/sample_config.eex | 81 ++++++++++++++++++++++++++++++++++++++++ priv/templates/sample_psql.eex | 7 ++++ 3 files changed, 90 insertions(+) create mode 100644 priv/templates/robots_txt.eex create mode 100644 priv/templates/sample_config.eex create mode 100644 priv/templates/sample_psql.eex (limited to 'priv/templates') diff --git a/priv/templates/robots_txt.eex b/priv/templates/robots_txt.eex new file mode 100644 index 000000000..1af3c47ee --- /dev/null +++ b/priv/templates/robots_txt.eex @@ -0,0 +1,2 @@ +User-Agent: * +Disallow: <%= if indexable, do: "", else: "/" %> diff --git a/priv/templates/sample_config.eex b/priv/templates/sample_config.eex new file mode 100644 index 000000000..8b45acb05 --- /dev/null +++ b/priv/templates/sample_config.eex @@ -0,0 +1,81 @@ +# Pleroma instance configuration + +# NOTE: This file should not be committed to a repo or otherwise made public +# without removing sensitive information. + +use Mix.Config + +config :pleroma, Pleroma.Web.Endpoint, + url: [host: "<%= domain %>", scheme: "https", port: <%= port %>], + secret_key_base: "<%= secret %>", + signing_salt: "<%= signing_salt %>" + +config :pleroma, :instance, + name: "<%= name %>", + email: "<%= email %>", + notify_email: "<%= notify_email %>", + limit: 5000, + registrations_open: true, + dynamic_configuration: <%= db_configurable? %> + +config :pleroma, :media_proxy, + enabled: false, + redirect_on_failure: true + #base_url: "https://cache.pleroma.social" + +config :pleroma, Pleroma.Repo, + adapter: Ecto.Adapters.Postgres, + username: "<%= dbuser %>", + password: "<%= dbpass %>", + database: "<%= dbname %>", + hostname: "<%= dbhost %>", + pool_size: 10 + +# Configure web push notifications +config :web_push_encryption, :vapid_details, + subject: "mailto:<%= email %>", + public_key: "<%= web_push_public_key %>", + private_key: "<%= web_push_private_key %>" + +config :pleroma, :instance, static_dir: "<%= static_dir %>" +config :pleroma, Pleroma.Uploaders.Local, uploads: "<%= uploads_dir %>" + +# Enable Strict-Transport-Security once SSL is working: +# config :pleroma, :http_security, +# sts: true + +# Configure S3 support if desired. +# The public S3 endpoint is different depending on region and provider, +# consult your S3 provider's documentation for details on what to use. +# +# config :pleroma, Pleroma.Uploaders.S3, +# bucket: "some-bucket", +# public_endpoint: "https://s3.amazonaws.com" +# +# Configure S3 credentials: +# config :ex_aws, :s3, +# access_key_id: "xxxxxxxxxxxxx", +# secret_access_key: "yyyyyyyyyyyy", +# region: "us-east-1", +# scheme: "https://" +# +# For using third-party S3 clones like wasabi, also do: +# config :ex_aws, :s3, +# host: "s3.wasabisys.com" + + +# Configure Openstack Swift support if desired. +# +# Many openstack deployments are different, so config is left very open with +# no assumptions made on which provider you're using. This should allow very +# wide support without needing separate handlers for OVH, Rackspace, etc. +# +# config :pleroma, Pleroma.Uploaders.Swift, +# container: "some-container", +# username: "api-username-yyyy", +# password: "api-key-xxxx", +# tenant_id: "", +# auth_url: "https://keystone-endpoint.provider.com", +# storage_url: "https://swift-endpoint.prodider.com/v1/AUTH_/", +# object_url: "https://cdn-endpoint.provider.com/" +# diff --git a/priv/templates/sample_psql.eex b/priv/templates/sample_psql.eex new file mode 100644 index 000000000..f0ac05e57 --- /dev/null +++ b/priv/templates/sample_psql.eex @@ -0,0 +1,7 @@ +CREATE USER <%= dbuser %> WITH ENCRYPTED PASSWORD '<%= dbpass %>'; +CREATE DATABASE <%= dbname %> OWNER <%= dbuser %>; +\c <%= dbname %>; +--Extensions made by ecto.migrate that need superuser access +CREATE EXTENSION IF NOT EXISTS citext; +CREATE EXTENSION IF NOT EXISTS pg_trgm; +CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -- cgit v1.2.3 From 960d6b54e8575b828d34fcf0b69e634dc4d33fe0 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Fri, 21 Jun 2019 21:56:49 +0300 Subject: use Config in generated config when available Mix.Config is deprecated and does not work on OTP releases. However we can't fully switch to Config because it is not present in Elixir < 1.9. I tried to evaluate if Config is available at runtime, but for some weird reason OTP releases crash if I do that. --- priv/templates/sample_config.eex | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'priv/templates') diff --git a/priv/templates/sample_config.eex b/priv/templates/sample_config.eex index 8b45acb05..526593d0a 100644 --- a/priv/templates/sample_config.eex +++ b/priv/templates/sample_config.eex @@ -3,7 +3,11 @@ # NOTE: This file should not be committed to a repo or otherwise made public # without removing sensitive information. -use Mix.Config +<%= if Code.ensure_loaded?(Config) do + "import Config" +else + "use Mix.Config" +end %> config :pleroma, Pleroma.Web.Endpoint, url: [host: "<%= domain %>", scheme: "https", port: <%= port %>], -- cgit v1.2.3 From f4009b6706781f7d6caf75a29cc6e700e7c7e88f Mon Sep 17 00:00:00 2001 From: rinpatch Date: Sat, 22 Jun 2019 02:29:49 +0300 Subject: Fallback to Config if Mix.Config does not exist, even if Config does not exist either For some weird reason Code.ensure_loaded?(Config) is false on OTP releases even though `use Config` from config files works just fine. --- priv/templates/sample_config.eex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'priv/templates') diff --git a/priv/templates/sample_config.eex b/priv/templates/sample_config.eex index 526593d0a..8cadb995e 100644 --- a/priv/templates/sample_config.eex +++ b/priv/templates/sample_config.eex @@ -3,7 +3,7 @@ # NOTE: This file should not be committed to a repo or otherwise made public # without removing sensitive information. -<%= if Code.ensure_loaded?(Config) do +<%= if Code.ensure_loaded?(Config) or not Code.ensure_loaded?(Mix.Config) do "import Config" else "use Mix.Config" -- cgit v1.2.3 From 3ac5ecbac1e00c6f5b59dfd8c120875e22080a09 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Sat, 22 Jun 2019 12:54:16 +0300 Subject: Support RUM indexes in the config generator --- priv/templates/sample_config.eex | 1 + priv/templates/sample_psql.eex | 5 +++++ 2 files changed, 6 insertions(+) (limited to 'priv/templates') diff --git a/priv/templates/sample_config.eex b/priv/templates/sample_config.eex index 8cadb995e..2d4a49328 100644 --- a/priv/templates/sample_config.eex +++ b/priv/templates/sample_config.eex @@ -41,6 +41,7 @@ config :web_push_encryption, :vapid_details, public_key: "<%= web_push_public_key %>", private_key: "<%= web_push_private_key %>" +config :pleroma, :database, rum_enabled: <%= rum_enabled %> config :pleroma, :instance, static_dir: "<%= static_dir %>" config :pleroma, Pleroma.Uploaders.Local, uploads: "<%= uploads_dir %>" diff --git a/priv/templates/sample_psql.eex b/priv/templates/sample_psql.eex index f0ac05e57..627839a68 100644 --- a/priv/templates/sample_psql.eex +++ b/priv/templates/sample_psql.eex @@ -5,3 +5,8 @@ CREATE DATABASE <%= dbname %> OWNER <%= dbuser %>; CREATE EXTENSION IF NOT EXISTS citext; CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; +<%= if rum_enabled do + "CREATE EXTENSION IF NOT EXISTS rum;" +else +"" +end %> -- cgit v1.2.3