2024-09-03 11:37:12 +02:00
|
|
|
[
|
|
|
|
{
|
|
|
|
"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": [
|
2024-09-04 00:06:52 +02:00
|
|
|
"{{var_wiki_js_data_path}}"
|
2024-09-03 11:37:12 +02:00
|
|
|
],
|
|
|
|
"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",
|
2024-09-28 13:22:17 +02:00
|
|
|
"dest": "/tmp/wiki_js.tar.gz"
|
2024-09-03 11:37:12 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"name": "unpack",
|
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
|
|
|
"ansible.builtin.unarchive": {
|
|
|
|
"remote_src": true,
|
2024-09-28 09:57:22 +02:00
|
|
|
"src": "/tmp/wiki_js.tar.gz",
|
2024-09-03 11:37:12 +02:00
|
|
|
"dest": "{{var_wiki_js_directory}}"
|
|
|
|
}
|
|
|
|
},
|
2024-09-04 00:06:52 +02:00
|
|
|
{
|
|
|
|
"name": "cli client",
|
|
|
|
"become": true,
|
|
|
|
"ansible.builtin.copy": {
|
2024-09-30 08:23:32 +02:00
|
|
|
"src": "wiki-js-cli",
|
|
|
|
"dest": "/usr/local/bin/wiki-js-cli",
|
2024-10-26 01:08:52 +02:00
|
|
|
"owner": "{{var_wiki_js_user}}",
|
|
|
|
"mode": "0770"
|
2024-09-04 00:06:52 +02:00
|
|
|
}
|
|
|
|
},
|
2024-09-03 11:37:12 +02:00
|
|
|
{
|
|
|
|
"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"
|
|
|
|
}
|
|
|
|
},
|
2024-09-04 00:06:52 +02:00
|
|
|
{
|
2024-09-28 09:57:22 +02:00
|
|
|
"name": "conf",
|
2024-09-04 00:06:52 +02:00
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
|
|
|
"ansible.builtin.template": {
|
|
|
|
"src": "config.yml.j2",
|
|
|
|
"dest": "{{var_wiki_js_directory}}/config.yml"
|
|
|
|
}
|
|
|
|
},
|
2024-09-03 11:37:12 +02:00
|
|
|
{
|
|
|
|
"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"
|
|
|
|
}
|
|
|
|
},
|
2024-09-27 17:49:18 +02:00
|
|
|
{
|
|
|
|
"name": "systemd-unit",
|
|
|
|
"become": true,
|
|
|
|
"ansible.builtin.template": {
|
|
|
|
"src": "systemd-unit.j2",
|
|
|
|
"dest": "/etc/systemd/system/wiki_js.service"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2024-09-28 09:57:22 +02:00
|
|
|
"name": "start service",
|
2024-09-27 17:49:18 +02:00
|
|
|
"become": true,
|
|
|
|
"ansible.builtin.systemd_service": {
|
|
|
|
"state": "restarted",
|
|
|
|
"enabled": true,
|
|
|
|
"name": "wiki_js"
|
|
|
|
}
|
|
|
|
},
|
2024-09-03 11:37:12 +02:00
|
|
|
{
|
2024-09-28 23:35:36 +02:00
|
|
|
"name": "setup | initialize",
|
2024-09-03 11:37:12 +02:00
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
2024-09-04 00:06:52 +02:00
|
|
|
"ansible.builtin.command": {
|
|
|
|
"chdir": "{{var_wiki_js_directory}}",
|
2024-09-30 09:51:07 +02:00
|
|
|
"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"
|
2024-09-04 00:06:52 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2024-09-28 23:35:36 +02:00
|
|
|
"name": "setup | email settings",
|
2024-09-04 00:06:52 +02:00
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
|
|
|
"ansible.builtin.command": {
|
|
|
|
"chdir": "{{var_wiki_js_directory}}",
|
2024-09-30 09:51:07 +02:00
|
|
|
"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}}"
|
2024-09-28 13:22:17 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2024-09-28 23:35:36 +02:00
|
|
|
"name": "setup | locales",
|
2024-09-28 13:22:17 +02:00
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
2024-09-28 23:35:36 +02:00
|
|
|
"loop": "{{var_wiki_js_additional_locales}}",
|
2024-09-28 13:22:17 +02:00
|
|
|
"ansible.builtin.command": {
|
|
|
|
"chdir": "{{var_wiki_js_directory}}",
|
2024-09-30 09:51:07 +02:00
|
|
|
"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}}"
|
2024-09-28 23:35:36 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2024-10-11 14:19:35 +02:00
|
|
|
"name": "setup | set guest access",
|
2024-09-28 23:35:36 +02:00
|
|
|
"when": "var_wiki_js_allow_guest_view",
|
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
|
|
|
"ansible.builtin.command": {
|
|
|
|
"chdir": "{{var_wiki_js_directory}}",
|
2024-10-11 14:19:35 +02:00
|
|
|
"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','')}}"
|
2024-09-03 11:37:12 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
2024-09-28 23:35:36 +02:00
|
|
|
"name": "setup | define user group",
|
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
|
|
|
"ansible.builtin.command": {
|
|
|
|
"chdir": "{{var_wiki_js_directory}}",
|
2024-10-11 14:19:35 +02:00
|
|
|
"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'"
|
2024-09-28 23:35:36 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"name": "setup | authentication | authelia",
|
2024-09-03 11:37:12 +02:00
|
|
|
"when": "var_wiki_js_authentication_kind == 'authelia'",
|
2024-09-04 00:06:52 +02:00
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
|
|
|
"ansible.builtin.command": {
|
|
|
|
"chdir": "{{var_wiki_js_directory}}",
|
2024-09-30 09:51:07 +02:00
|
|
|
"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}}"
|
2024-09-28 23:35:36 +02:00
|
|
|
}
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"name": "setup | theming",
|
|
|
|
"become": true,
|
|
|
|
"become_user": "{{var_wiki_js_user}}",
|
|
|
|
"ansible.builtin.command": {
|
|
|
|
"chdir": "{{var_wiki_js_directory}}",
|
2024-09-30 09:51:07 +02:00
|
|
|
"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}}"
|
2024-09-03 11:37:12 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|