[ { "name": "packages", "become": true, "ansible.builtin.apt": { "update_cache": true, "pkg": [ "npm" ] } }, { "name": "user", "become": true, "ansible.builtin.user": { "name": "{{var_wiki_js_user}}", "create_home": true, "home": "{{var_wiki_js_directory}}" } }, { "name": "directories", "become": true, "loop": [ "{{var_wiki_js_data_path}}" ], "ansible.builtin.file": { "owner": "{{var_wiki_js_user}}", "state": "directory", "path": "{{item}}" } }, { "name": "download", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.get_url": { "url": "https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz", "dest": "/tmp/wiki_js.tar.gz" } }, { "name": "unpack", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.unarchive": { "remote_src": true, "src": "/tmp/wiki_js.tar.gz", "dest": "{{var_wiki_js_directory}}" } }, { "name": "cli client", "become": true, "ansible.builtin.copy": { "src": "wiki-js-cli", "dest": "/usr/local/bin/wiki-js-cli", "owner": "{{var_wiki_js_user}}", "mode": "0770" } }, { "name": "database | sqlite | dirctory", "when": "var_wiki_js_database_kind == 'sqlite'", "become": true, "ansible.builtin.file": { "path": "{{var_wiki_js_database_data_sqlite_path | dirname}}", "state": "directory", "owner": "{{var_wiki_js_user}}" } }, { "name": "database | sqlite | file", "when": "var_wiki_js_database_kind == 'sqlite'", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.file": { "path": "{{var_wiki_js_database_data_sqlite_path}}", "state": "touch" } }, { "name": "conf", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.template": { "src": "config.yml.j2", "dest": "{{var_wiki_js_directory}}/config.yml" } }, { "name": "database | sqlite | setup", "when": "var_wiki_js_database_kind == 'sqlite'", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "npm rebuild sqlite3" } }, { "name": "systemd-unit", "become": true, "ansible.builtin.template": { "src": "systemd-unit.j2", "dest": "/etc/systemd/system/wiki_js.service" } }, { "name": "start service", "become": true, "ansible.builtin.systemd_service": { "state": "restarted", "enabled": true, "name": "wiki_js" } }, { "name": "setup | initialize", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "/usr/local/bin/wiki-js-cli -b http://127.0.0.1:{{var_wiki_js_port | string}} init {{var_wiki_js_admin_email_address}} {{var_wiki_js_admin_password}} https://{{var_wiki_js_domain}} no" } }, { "name": "setup | email settings", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "/usr/local/bin/wiki-js-cli -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} email-settings-set {{var_wiki_js_smtp_host}} {{var_wiki_js_smtp_port}} {{var_wiki_js_smtp_username}} {{var_wiki_js_smtp_password}} {{email_sending_sender_name}} {{email_sending_sender_email_address}}" } }, { "name": "setup | locales", "become": true, "become_user": "{{var_wiki_js_user}}", "loop": "{{var_wiki_js_additional_locales}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "/usr/local/bin/wiki-js-cli -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} locale-add {{item}}" } }, { "name": "setup | set guest access", "when": "var_wiki_js_allow_guest_view", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "/usr/local/bin/wiki-js-cli -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} group-modify Guests {{var_wiki_js_allow_guest_view | ternary('read:pages,read:assets,read:comments,write:comments,write:pages,manage:pages,delete:pages,write:styles,write:scripts,read:source,read:history,write:assets,manage:assets,manage:comments','')}}" } }, { "name": "setup | define user group", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "/usr/local/bin/wiki-js-cli -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} group-add {{var_wiki_js_user_group_name}} 'read:pages,read:assets,read:comments,write:comments,write:pages,manage:pages,delete:pages,write:styles,write:scripts,read:source,read:history,write:assets,manage:assets,manage:comments'" } }, { "name": "setup | authentication | authelia", "when": "var_wiki_js_authentication_kind == 'authelia'", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "/usr/local/bin/wiki-js-cli -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} auth-strat-add-oauth2 {{var_wiki_js_authentication_data_authelia_provider_id}} {{var_wiki_js_authentication_data_authelia_provider_name}} {{var_wiki_js_authentication_data_authelia_client_id}} {{var_wiki_js_authentication_data_authelia_client_secret}} {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/authorization {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/token {{var_wiki_js_authentication_data_authelia_url_base}}/api/oidc/userinfo {{var_wiki_js_user_group_name}}" } }, { "name": "setup | theming", "become": true, "become_user": "{{var_wiki_js_user}}", "ansible.builtin.command": { "chdir": "{{var_wiki_js_directory}}", "cmd": "/usr/local/bin/wiki-js-cli -b http://127.0.0.1:{{var_wiki_js_port | string}} -u {{var_wiki_js_admin_email_address}} -p {{var_wiki_js_admin_password}} theming-set {{var_wiki_js_dark_mode | ternary('yes','no')}} {{var_wiki_js_toc_position}}" } } ]