diff --git a/README.md b/README.md index ae8b815..658850f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Pleroma/Akkoma role -Pleroma/Akkoma role is was initially based on role by (Luke Hoersten)[https://src.nth.io/ansible-roles/file/2d705e63f6cb/pleroma/otp] with heavy modifications (basically re-written). -This role deploys and updates OTP akkoma (default) or pleroma instance. Currently supported distributions are debian based. Role requires disroot's (nginx)[https://git.disroot.org/Disroot-Ansible/nginx] role and (postgresql)[https://github.com/ANXS/postgresql.git]. Other nginx / postgres roles could be used but may require changes in variables. +Pleroma/Akkoma role was initially based on role by (Luke Hoersten)[https://src.nth.io/ansible-roles/file/2d705e63f6cb/pleroma/otp] with heavy modifications (basically re-written). + +This role deploys and updates OTP akkoma (default) or pleroma instance. Currently supported distributions are debian based. Role requires Disroot's (nginx)[https://git.disroot.org/Disroot-Ansible/nginx] role and (postgresql)[https://github.com/ANXS/postgresql.git]. Other nginx / postgres roles could be used but may require changes in variables. You can deploy test instance using `Vagrantfile` attached to the role. `vagrant up` @@ -11,5 +12,14 @@ Then you can then access gitea from your computer on `http://192.168.33.15` To update pleroma include `upgrade` **tag**. + +## Frontend +This role also deploys Mangane as the default frontend (this can be changed with `pleroma_frontends` var). Mangane can be configured in `defaults/main.yml` (See the `# Mangane vars` section). + +⚠️ If you have already deployed Mangane and have changed config from http://192.168.33.15/soapbox/config then you have to first remove this config from DB with `sudo -u pleroma /opt/pleroma/release/bin/pleroma_ctl config delete pleroma frontend_configurations`. Then run the role with `ansible-playbook -b Playbooks/pleroma.yml --tags upgrade` + + ## Customization -In the `files` folder, `avi.png` is the default user avatar. \ No newline at end of file +In the `files` folder, `avi.png` is the default user avatar. You can also changes logo that you can find there. + +If you have already deployed but want to do any change, like change logo, avatar or a config, then run the role with `ansible-playbook -b Playbooks/pleroma.yml --tags upgrade`. \ No newline at end of file diff --git a/defaults/main.yml b/defaults/main.yml index c663105..165f9b3 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,6 +5,7 @@ pleroma_user: 'pleroma' pleroma_group: 'pleroma' pleroma_tmp_dir: '/tmp/pleroma/' pleroma_app_dir: '/opt/pleroma' +pleroma_config_dir: '/etc/pleroma' pleroma_apt_list: - 'libmagic-dev' @@ -20,19 +21,18 @@ pleroma_apt_list: - 'libimage-exiftool-perl' - 'unzip' - - pleroma_host: "192.168.33.15" pleroma_port: 4000 pleroma_scheme: "http" - pleroma_proxy_pass: "{{ pleroma_scheme }}://{{ pleroma_host }}:{{ pleroma_port }}" +pleroma_config_dir: '/etc/pleroma' + +# Configuration vars set in config.exs pleroma_link_host: "192.168.33.15" pleroma_link_port: "80" pleroma_link_scheme: "http" pleroma_https: 'false' -pleroma_config_dir: '/etc/pleroma' pleroma_instance_name: "{{ pleroma_link_host }}" pleroma_secret_key: 'CDPbJ/+rD8hd27Hcw8igvGwyIDoS/J1isK4noJOybqfCuNuW9GDm0QNiW7syrGsHQQkTTSkzSZkAlKTqdnUahQ==' #openssl rand -base64 64 | paste --delimiters '' --serial pleroma_invites_enabled: 'false' @@ -72,7 +72,7 @@ pleroma_custom_emoji_list: url: 'https://fedi.absturztau.be/emoji-packs/manifest.json' pleroma_frontends: - name: 'mangane' - conf: 'primary' + conf: 'primary' # primary means the frontend that will be served by default for general requests ref: 'dist' url: 'https://github.com/BDX-town/Mangane/releases/latest/download/static.zip' - name: 'admin-fe' @@ -81,11 +81,13 @@ pleroma_frontends: - name: 'pleroma-fe' conf: 'pleroma' ref: 'develop' + # If you want to upload custom config files for frontends, specify below using the example #pleroma_frontend_custom_configs: # - name: 'mangane' # filename: 'soapbox.json' # confpath: 'static/instance/soapbox.json' + pleroma_mrf_simple: 'true' pleroma_mrf_policies: - policy: 'reject' @@ -101,6 +103,20 @@ pleroma_mrf_policies: - host: 'test.com' reason: 'reason 2' +# Mangane vars (used in config.exs) +mangane_authenticatedProfile: "true" +mangane_homeDescription: "This is the Exemple.org instance of Akkoma." +mangane_singleUserMode: "false" +mangane_brandColor: "#F24173" +mangane_accentColor: "#D00A42" +mangane_navlinks: + - title: 'Link to TOS' + url: 'https://example.org/tos' + - title: 'Link to PP' + url: 'https://example.org/pp' +mangane_copyright: "Soyons de bons humains." + + #Postgres postgresql_version: 13 postgresql_listen_addresses: diff --git a/files/favicon.png b/files/favicon.png index e69de29..1a12b4a 100644 Binary files a/files/favicon.png and b/files/favicon.png differ diff --git a/files/logo-512.png b/files/logo-512.png new file mode 100644 index 0000000..02d36e7 Binary files /dev/null and b/files/logo-512.png differ diff --git a/files/logo.svg b/files/logo.svg index e69de29..01ddbad 100644 --- a/files/logo.svg +++ b/files/logo.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/handlers/main.yml b/handlers/main.yml index da83757..44005f4 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -4,4 +4,5 @@ systemd: name: 'pleroma.service' state: 'restarted' + enabled: true daemon_reload: 'yes' diff --git a/tasks/configure.yml b/tasks/configure.yml index ee289f7..5c6faaf 100644 --- a/tasks/configure.yml +++ b/tasks/configure.yml @@ -13,12 +13,16 @@ # - '{{ pleroma_app_dir }}' become: 'yes' become_user: "{{ pleroma_user }}" - + tags: + - upgrade + - name: '[Config] - Deploy systemd config' template: src: 'pleroma.service.j2' dest: '/etc/systemd/system/pleroma.service' notify: restart pleroma + tags: + - upgrade - name: '[Config] - Deploy pleroma config' template: @@ -30,6 +34,8 @@ notify: restart pleroma become: 'yes' become_user: "{{ pleroma_user }}" + tags: + - upgrade - name: '[Config] - Create data directories' file: @@ -46,6 +52,8 @@ - '{{ pleroma_data_dir }}/static/instance' become: 'yes' become_user: "{{ pleroma_user }}" + tags: + - upgrade - name: '[Config] - Install custom emoji packs' shell: '{{ pleroma_app_dir }}/release/bin/pleroma_ctl emoji get-packs {{ item.name }} -m {{ item.url }}' @@ -53,4 +61,5 @@ become_user: "{{ pleroma_user }}" with_items: "{{ pleroma_custom_emoji_list }}" when: 'pleroma_custom_emoji == true' - + tags: + - upgrade \ No newline at end of file diff --git a/tasks/frontends.yml b/tasks/frontends.yml index df29a16..4e426a7 100644 --- a/tasks/frontends.yml +++ b/tasks/frontends.yml @@ -37,10 +37,22 @@ become: yes become_user: '{{ pleroma_user }}' -- name: '[Frontend] - Add instance logo' +- name: '[Frontend] - Create extra static dir' + file: + path: '{{ pleroma_data_dir }}/static/static' + state: directory + owner: '{{ pleroma_user }}' + group: '{{ pleroma_group }}' + mode: 0775 + tags: + - upgrade + become: yes + become_user: '{{ pleroma_user }}' + +- name: '[Frontend] - Add instance logo svg' copy: src: '{{ pleroma_extra_files_path }}/logo.svg' - dest: '{{ pleroma_data_dir }}/static/instance/logo.svg' + dest: '{{ pleroma_data_dir }}/static/static/logo.svg' owner: '{{ pleroma_user }}' group: '{{ pleroma_group }}' mode: 0775 @@ -48,10 +60,34 @@ - upgrade become: 'yes' become_user: "{{ pleroma_user }}" - -- name: '[Frontend] - Add instance favicon' + +- name: '[Frontend] - Add instance logo png' copy: src: '{{ pleroma_extra_files_path }}/logo.png' + dest: '{{ pleroma_data_dir }}/static/static/logo.png' + owner: '{{ pleroma_user }}' + group: '{{ pleroma_group }}' + mode: 0775 + tags: + - upgrade + become: 'yes' + become_user: "{{ pleroma_user }}" + +- name: '[Frontend] - Add PWA logo' + copy: + src: '{{ pleroma_extra_files_path }}/logo-512.png' + dest: '{{ pleroma_data_dir }}/static/static/logo-512.png' + owner: '{{ pleroma_user }}' + group: '{{ pleroma_group }}' + mode: 0775 + tags: + - upgrade + become: 'yes' + become_user: "{{ pleroma_user }}" + +- name: '[Frontend] - Add instance favicon' + copy: + src: '{{ pleroma_extra_files_path }}/favicon.png' dest: '{{ pleroma_data_dir }}/static/favicon.png' owner: '{{ pleroma_user }}' group: '{{ pleroma_group }}' @@ -60,7 +96,7 @@ - upgrade become: 'yes' become_user: "{{ pleroma_user }}" - + - name: '[Frontend] - Add default user avatar' copy: src: '{{ pleroma_extra_files_path }}/avi.png' @@ -75,7 +111,7 @@ - name: '[Frontend] - Add custom configs' copy: - src: '{{pleroma_extra_files_path }}/{{ item.name }}/{{ item.filename }}' + src: '{{ pleroma_extra_files_path }}/{{ item.name }}/{{ item.filename }}' dest: '{{ pleroma_data_dir }}/static/frontends/{{ item.name }}/{{ item.confpath }}' owner: '{{ pleroma_user }}' group: '{{ pleroma_group }}' diff --git a/templates/config.exs.j2 b/templates/config.exs.j2 index f59eb0a..eae6eed 100644 --- a/templates/config.exs.j2 +++ b/templates/config.exs.j2 @@ -129,3 +129,74 @@ config :pleroma, :mrf_simple, {% endfor %} {% endif %} {% endif %} + +{% for item in pleroma_frontends %} +{% if item.name == "mangane" %} +config :pleroma, :frontend_configurations, + soapbox_fe: %{ + verifiedIcon: "", + authenticatedProfile: {{ mangane_authenticatedProfile }}, + linkFooterMessage: "", # this adds a message in the irght column once logged + homeDescription: "{{ mangane_homeDescription }}", + appleAppId: nil, + authProvider: "", + customCss: [], + gdprUrl: "", + customRegUrl: "", + cryptoDonatePanel: %{ + limit: 1 + }, + singleUserModeProfile: "", + extensions: %{}, + verifiedCanEditName: false, + quotePosts: true, + singleUserMode: {{ mangane_singleUserMode }}, + brandColor: "{{ mangane_brandColor }}", + links: %{}, + ads: [], + customRegProvider: "", + banner: "", + defaultSettings: %{}, + aboutPages: %{}, + navlinks: %{ + homeFooter: [ +{% for item in mangane_navlinks %} + %{ + title: "{{ item.title }}", + url: "{{ item.url }}" + }{% if not loop.last %}, +{% endif %} +{% endfor %} + ] + }, + promoPanel: %{ + items: [] + }, + greentext: false, + allowedEmoji: [ + "👍", + "❤️", + "😆", + "😮", + "😢", + "😩", + "👍", + "❤️", + "😆", + "😮", + "😢", + "😩" + ], + accentColor: "{{ mangane_accentColor }}", + colors: %{}, + logo: "/static/logo.svg", +{% set current_year = now().year %} # Allows to set the current year in copyright! + copyright: "🕶 {{ current_year|string }}. {{ mangane_copyright }}", + logoDarkMode: nil, + cryptoAddresses: [], + displayFqn: true, + mobilePages: %{}, + gdpr: false + } +{% endif %} +{% endfor %} \ No newline at end of file