X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmix%2Ftasks%2Fpleroma%2Finstance.ex;h=52fd184b5d9e7defb244ad92db0d28e1cd91a2b2;hb=b98fe4476c13f213f5a4c928b7946516374e133b;hp=fc21ae06255b88677088beb4270d6871e6a5e30c;hpb=88f6b61a5e31856eb4cee204adf3fc9a6ab78d76;p=akkoma
diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex
index fc21ae062..52fd184b5 100644
--- a/lib/mix/tasks/pleroma/instance.ex
+++ b/lib/mix/tasks/pleroma/instance.ex
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors
+# Copyright © 2017-2021 Pleroma Authors
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Mix.Tasks.Pleroma.Instance do
@@ -9,7 +9,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
alias Pleroma.Config
@shortdoc "Manages Pleroma instance"
- @moduledoc File.read!("docs/administration/CLI_tasks/instance.md")
+ @moduledoc File.read!("docs/docs/administration/CLI_tasks/instance.md")
def run(["gen" | rest]) do
{options, [], []} =
@@ -59,7 +59,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
get_option(
options,
:domain,
- "What domain will your instance use? (e.g pleroma.soykaf.com)"
+ "What domain will your instance use? (e.g akkoma.example.com)"
),
":"
) ++ [443]
@@ -100,14 +100,14 @@ defmodule Mix.Tasks.Pleroma.Instance do
dbhost = get_option(options, :dbhost, "What is the hostname of your database?", "localhost")
- dbname = get_option(options, :dbname, "What is the name of your database?", "pleroma")
+ dbname = get_option(options, :dbname, "What is the name of your database?", "akkoma")
dbuser =
get_option(
options,
:dbuser,
"What is the user used to connect to your database?",
- "pleroma"
+ "akkoma"
)
dbpass =
@@ -161,12 +161,21 @@ defmodule Mix.Tasks.Pleroma.Instance do
)
|> Path.expand()
+ {strip_uploads_message, strip_uploads_default} =
+ if Pleroma.Utils.command_available?("exiftool") do
+ {"Do you want to strip location (GPS) data from uploaded images? This requires exiftool, it was detected as installed. (y/n)",
+ "y"}
+ else
+ {"Do you want to strip location (GPS) data from uploaded images? This requires exiftool, it was detected as not installed, please install it if you answer yes. (y/n)",
+ "n"}
+ end
+
strip_uploads =
get_option(
options,
:strip_uploads,
- "Do you want to strip location (GPS) data from uploaded images? (y/n)",
- "y"
+ strip_uploads_message,
+ strip_uploads_default
) === "y"
anonymize_uploads =
@@ -190,6 +199,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64)
jwt_secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64)
signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8)
+ lv_signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8)
{web_push_public_key, web_push_private_key} = :crypto.generate_key(:ecdh, :prime256v1)
template_dir = Application.app_dir(:pleroma, "priv") <> "/templates"
@@ -208,6 +218,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
secret: secret,
jwt_secret: jwt_secret,
signing_salt: signing_salt,
+ lv_signing_salt: lv_signing_salt,
web_push_public_key: Base.url_encode64(web_push_public_key, padding: false),
web_push_private_key: Base.url_encode64(web_push_private_key, padding: false),
db_configurable?: db_configurable?,
@@ -233,6 +244,17 @@ defmodule Mix.Tasks.Pleroma.Instance do
rum_enabled: rum_enabled
)
+ config_dir = Path.dirname(config_path)
+ psql_dir = Path.dirname(psql_path)
+
+ to_create =
+ [config_dir, psql_dir, static_dir, uploads_dir]
+ |> Enum.reject(&File.exists?/1)
+
+ for dir <- to_create do
+ File.mkdir_p!(dir)
+ end
+
shell_info("Writing config to #{config_path}.")
File.write(config_path, result_config)
@@ -253,7 +275,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
else
shell_error(
"The task would have overwritten the following files:\n" <>
- (Enum.map(paths, &"- #{&1}\n") |> Enum.join("")) <>
+ (Enum.map(will_overwrite, &"- #{&1}\n") |> Enum.join("")) <>
"Rerun with `--force` to overwrite them."
)
end
@@ -266,10 +288,6 @@ defmodule Mix.Tasks.Pleroma.Instance do
indexable: indexable
)
- unless File.exists?(static_dir) do
- File.mkdir_p!(static_dir)
- end
-
robots_txt_path = Path.join(static_dir, "robots.txt")
if File.exists?(robots_txt_path) do
@@ -284,7 +302,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
defp upload_filters(filters) when is_map(filters) do
enabled_filters =
if filters.strip do
- [Pleroma.Upload.Filter.ExifTool]
+ [Pleroma.Upload.Filter.Exiftool]
else
[]
end
@@ -305,6 +323,4 @@ defmodule Mix.Tasks.Pleroma.Instance do
enabled_filters
end
-
- defp upload_filters(_), do: []
end