diff options
| author | Luke Hoersten <[email protected]> | 2018-08-16 20:25:56 -0500 |
|---|---|---|
| committer | Luke Hoersten <[email protected]> | 2018-08-16 20:25:56 -0500 |
| commit | 608c3aa2dd6a35d8fe434d60822314cc23bd4314 (patch) | |
| tree | 3c3656929b8d26c42eb901f7274e24c033fed99c /roles | |
Initial commit.
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/pleroma/defaults/main.yaml | 5 | ||||
| -rw-r--r-- | roles/pleroma/tasks/main.yaml | 86 | ||||
| -rw-r--r-- | roles/pleroma/templates/dev.secret.exs.j2 | 26 | ||||
| -rw-r--r-- | roles/pleroma/templates/pleroma.service.j2 | 15 | ||||
| -rw-r--r-- | roles/pleroma/templates/setup_db.psql.j2 | 9 |
5 files changed, 141 insertions, 0 deletions
diff --git a/roles/pleroma/defaults/main.yaml b/roles/pleroma/defaults/main.yaml new file mode 100644 index 0000000..e39ba8a --- /dev/null +++ b/roles/pleroma/defaults/main.yaml @@ -0,0 +1,5 @@ +--- + +pleroma_user: "pleroma" +pleroma_instance_name: "{{pleroma_host}}" +pleroma_admin_email: "admin@{{pleroma_host}}" diff --git a/roles/pleroma/tasks/main.yaml b/roles/pleroma/tasks/main.yaml new file mode 100644 index 0000000..9266e6d --- /dev/null +++ b/roles/pleroma/tasks/main.yaml @@ -0,0 +1,86 @@ +--- + +- name: add erland solutions key + become: yes + apt_key: "url=http://packages.erlang-solutions.com/debian/erlang_solutions.asc" + +- name: install erland solutions repo + become: yes + apt_repository: repo="deb http://binaries.erlang-solutions.com/debian bionic contrib" + +- name: update apt package cache + become: yes + apt: upgrade="dist" update_cache="yes" cache_valid_time="3600" + +- name: install extra apt packages + become: yes + apt: name="{{item}}" + with_items: + - "postgresql" + - "esl-erlang" + - "elixir" + - "build-essential" + - "git" + +- name: add users + become: yes + user: name="{{pleroma_user}}" shell="/bin/bash" + +- name: checkout plemora + become: yes + become_user: "{{pleroma_user}}" + git: + repo: "https://git.pleroma.social/pleroma/pleroma.git" + dest: "~{{pleroma_user}}/pleroma" + force: yes + +- name: update elixir dep + become: yes + become_user: "{{pleroma_user}}" + lineinfile: + path: "~{{pleroma_user}}/pleroma/mix.exs" + regexp: 'elixir: "~> 1.4",$' + line: 'elixir: "~> 1.7",' + +- name: install pleroma config files + template: + src: "{{item}}.j2" + dest: "~{{pleroma_user}}/pleroma/config/{{item}}" + owner: "{{pleroma_user}}" + group: "{{pleroma_user}}" + mode: "0775" + become: yes + become_user: "{{pleroma_user}}" + with_items: + - "setup_db.psql" + - "dev.secret.exs" + +- name: install pleroma psql + become: yes + become_user: "postgres" + command: "psql -f ~{{pleroma_user}}/pleroma/config/setup_db.psql" + +- name: migrate db + become: yes + become_user: "{{pleroma_user}}" + command: "{{item}}" + args: + chdir: "~{{pleroma_user}}/pleroma/" + with_items: + - "mix local.hex --force" + - "mix local.rebar --force" + - "mix deps.get" + - "mix ecto.migrate" + +- name: install pleroma systemd service + template: + src: "pleroma.service.j2" + dest: "/lib/systemd/system/pleroma.service" + owner: "{{pleroma_user}}" + group: "{{pleroma_user}}" + mode: "0770" + become: yes + +- name: enable pleroma systemd service + systemd: name="pleroma" enabled="yes" state="started" + become: yes diff --git a/roles/pleroma/templates/dev.secret.exs.j2 b/roles/pleroma/templates/dev.secret.exs.j2 new file mode 100644 index 0000000..fee7ac8 --- /dev/null +++ b/roles/pleroma/templates/dev.secret.exs.j2 @@ -0,0 +1,26 @@ +use Mix.Config + +config :pleroma, Pleroma.Web.Endpoint, + url: [host: "{{pleroma_host}}", scheme: "https", port: 443], + secret_key_base: "{{pleroma_secret_key}}" + +config :pleroma, :instance, + name: "{{pleroma_instance_name}}", + email: "{{pleroma_admin_email}}", + limit: 5000, + registrations_open: true, + dedupe_media: false + +config :pleroma, :media_proxy, + enabled: false, + redirect_on_failure: true + #base_url: "https://cache.pleroma.social" + +# Configure your database +config :pleroma, Pleroma.Repo, + adapter: Ecto.Adapters.Postgres, + username: "{{pleroma_user}}", + password: "{{pleroma_db_passwd}}", + database: "{{pleroma_user}}", + hostname: "localhost", + pool_size: 10 diff --git a/roles/pleroma/templates/pleroma.service.j2 b/roles/pleroma/templates/pleroma.service.j2 new file mode 100644 index 0000000..ca6e662 --- /dev/null +++ b/roles/pleroma/templates/pleroma.service.j2 @@ -0,0 +1,15 @@ +[Unit] +Description=Pleroma social network +After=network.target postgresql.service + +[Service] +User={{pleroma_user}} +WorkingDirectory=/home/{{pleroma_user}}/pleroma +Environment="HOME=/home/{{pleroma_user}}" +ExecStart=/usr/local/bin/mix phx.server +ExecReload=/bin/kill $MAINPID +KillMode=process +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/roles/pleroma/templates/setup_db.psql.j2 b/roles/pleroma/templates/setup_db.psql.j2 new file mode 100644 index 0000000..de390c0 --- /dev/null +++ b/roles/pleroma/templates/setup_db.psql.j2 @@ -0,0 +1,9 @@ +CREATE USER {{pleroma_user}} WITH ENCRYPTED PASSWORD '{{pleroma_db_passwd}}' CREATEDB; +-- in case someone runs this second time accidentally +ALTER USER {{pleroma_user}} WITH ENCRYPTED PASSWORD '{{pleroma_db_passwd}}' CREATEDB; +CREATE DATABASE {{pleroma_user}}; +ALTER DATABASE {{pleroma_user}} OWNER TO {{pleroma_user}}; +\c {{pleroma_user}}; +--Extensions made by ecto.migrate that need superuser access +CREATE EXTENSION IF NOT EXISTS citext; +CREATE EXTENSION IF NOT EXISTS pg_trgm; |
