# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
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, [], []} =
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]
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 =
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"
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?,
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)
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
enabled_filters
end
-
- defp upload_filters(_), do: []
end