src.nth.io/

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2020-05-03 12:57:47 -0500
committerLuke Hoersten <[email protected]>2020-05-03 12:57:47 -0500
commit6226b1632a1bae8cce7dcbc10e759cea5b53ec72 (patch)
tree5c98fea0f408e93d2d42dc38a4bc3f23bfeaadd1
parent840fecf2edf2d94f380017a7e5f197e4bf72bb35 (diff)
Completed writefreely role
-rw-r--r--writefreely/defaults/main.yaml14
-rw-r--r--writefreely/handlers/main.yaml5
-rw-r--r--writefreely/tasks/main.yaml108
-rw-r--r--writefreely/templates/config.ini.j249
-rw-r--r--writefreely/templates/[email protected] (renamed from writefreely/templates/writefreely.service.j2)5
5 files changed, 157 insertions, 24 deletions
diff --git a/writefreely/defaults/main.yaml b/writefreely/defaults/main.yaml
index 60f91de..a785dcc 100644
--- a/writefreely/defaults/main.yaml
+++ b/writefreely/defaults/main.yaml
@@ -1,9 +1,11 @@
---
-writefreely_version: "0.11.2"
-writefreely_release: "https://github.com/writeas/writefreely/releases/download/v{{writefreely_version}}/writefreely_{{writefreely_version}}_linux_arm7.tar.gz"
+writefreely_user: "writefreely"
+writefreely_arch: "arm7"
+writefreely_version: "0.12.0"
+writefreely_tar: "https://github.com/writeas/writefreely/releases/download/v{{writefreely_version}}/writefreely_{{writefreely_version}}_linux_{{writefreely_arch}}.tar.gz"
-writefreely_install_path: "/opt/writefreely"
-
-writefreely_apt_packages:
- - "mysql"
+writefreely_dir: "/var/writefreely"
+writefreely_port: "8080"
+writefreely_url: "https://{{writefreely_instance}}"
+writefreely_site_name: "{{writefreely_instance}}"
diff --git a/writefreely/handlers/main.yaml b/writefreely/handlers/main.yaml
new file mode 100644
index 0000000..a5eedcb
--- /dev/null
+++ b/writefreely/handlers/main.yaml
@@ -0,0 +1,5 @@
+---
+
+- name: reload service
+ become: yes
+ systemd: name="writefreely@{{writefreely_instance}}.service" enabled="yes" daemon_reload="yes"
diff --git a/writefreely/tasks/main.yaml b/writefreely/tasks/main.yaml
index a28c7c8..d8aff93 100644
--- a/writefreely/tasks/main.yaml
+++ b/writefreely/tasks/main.yaml
@@ -1,8 +1,106 @@
---
-- name: install apt packages
- apt: name="{{writefreely_apt_packages}}"
+- name: add writefreely user
+ become: yes
+ user: name="{{writefreely_user}}"
-- name: download writefreely
- archive:
- src: "{{writefreely_release}}"
+- name: unarchive writefreely
+ become: yes
+ unarchive:
+ remote_src: yes
+ src: "{{writefreely_tar}}"
+ dest: "/tmp/"
+ creates: "/tmp/writefreely/"
+ owner: "root"
+ group: "root"
+
+- name: install writefreely binary
+ become: yes
+ command: "install -m 0755 -o {{writefreely_user}} -g {{writefreely_user}} -t /usr/local/bin /tmp/writefreely/writefreely"
+ changed_when: false
+
+- name: create root dir
+ become: yes
+ file:
+ path: "{{writefreely_dir}}"
+ state: "directory"
+ owner: "{{writefreely_user}}"
+ group: "{{writefreely_user}}"
+ mode: "0755"
+ notify: reload service
+
+- name: create instance dir
+ become: yes
+ file:
+ path: "{{writefreely_dir}}/{{writefreely_instance}}"
+ state: "directory"
+ owner: "{{writefreely_user}}"
+ group: "{{writefreely_user}}"
+ mode: "0755"
+ notify: reload service
+
+- name: install static content
+ become: yes
+ copy:
+ src: "/tmp/writefreely/"
+ remote_src: yes
+ dest: "{{writefreely_dir}}/{{writefreely_instance}}/"
+ owner: "{{writefreely_user}}"
+ group: "{{writefreely_user}}"
+ mode: "0755"
+
+- name: configure
+ become: yes
+ template:
+ src: "config.ini.j2"
+ dest: "{{writefreely_dir}}/{{writefreely_instance}}/config.ini"
+ mode: "0644"
+ owner: "{{writefreely_user}}"
+ group: "{{writefreely_user}}"
+ notify: reload service
+
+- name: generate keys
+ become: yes
+ become_user: "{{writefreely_user}}"
+ command: "writefreely keys gen"
+ args:
+ chdir: "{{writefreely_dir}}/{{writefreely_instance}}/"
+
+- name: check if db exists
+ stat:
+ path: "{{writefreely_dir}}/{{writefreely_instance}}/writefreely.db"
+ register: db_file
+
+- name: create db
+ become: yes
+ become_user: "{{writefreely_user}}"
+ command: "writefreely db init"
+ args:
+ chdir: "{{writefreely_dir}}/{{writefreely_instance}}/"
+ when: not db_file.stat.exists
+
+- name: create admin
+ become: yes
+ become_user: "{{writefreely_user}}"
+ command: "writefreely --create-admin admin:admin"
+ args:
+ chdir: "{{writefreely_dir}}/{{writefreely_instance}}/"
+ when: not db_file.stat.exists
+
+- name: migrate db
+ become: yes
+ become_user: "{{writefreely_user}}"
+ command: "writefreely db migrate"
+ args:
+ chdir: "{{writefreely_dir}}/{{writefreely_instance}}/"
+ when: db_file.stat.exists
+
+- name: install systemd service
+ become: yes
+ template:
+ dest: "/lib/systemd/system/[email protected]"
+
+- name: ensure service is started
+ become: yes
+ systemd: name="writefreely@{{writefreely_instance}}.service" enabled="yes" state="started"
diff --git a/writefreely/templates/config.ini.j2 b/writefreely/templates/config.ini.j2
index 59eb224..bb5fe7f 100644
--- a/writefreely/templates/config.ini.j2
+++ b/writefreely/templates/config.ini.j2
@@ -1,44 +1,71 @@
[server]
hidden_host =
-port = {{writefreely_server_port}}
+port = {{writefreely_port}}
bind = localhost
tls_cert_path =
tls_key_path =
-autocert = true
+autocert = false
templates_parent_dir =
static_parent_dir =
pages_parent_dir =
keys_parent_dir =
+hash_seed =
[database]
type = sqlite3
-filename = {{writefreely_db_name}}.db
+filename = writefreely.db
username =
password =
-database =
+database = writefreely
host = localhost
port = 3306
[app]
site_name = {{writefreely_site_name}}
-site_description = {{writefreely_site_desc}}
-host = {{writefreely_site_host}}
+site_description =
+host = {{writefreely_url}}
theme = write
editor =
disable_js = false
webfonts = true
-landing =
+landing = /read
simple_nav = false
wf_modesty = false
chorus = false
+forest = false
disable_drafts = false
-single_user = true
+single_user = false
open_registration = false
min_username_len = 3
max_blogs = 1
federation = true
public_stats = true
private = false
-local_timeline = false
-user_invites =
-default_visibility =
+local_timeline = true
+user_invites = admin
+default_visibility = public
+update_checks = false
+
+[oauth.slack]
+client_id =
+client_secret =
+team_id =
+callback_proxy =
+callback_proxy_api =
+
+[oauth.writeas]
+client_id =
+client_secret =
+auth_location =
+token_location =
+inspect_location =
+callback_proxy =
+callback_proxy_api =
+
+[oauth.gitlab]
+client_id =
+client_secret =
+host =
+display_name =
+callback_proxy =
+callback_proxy_api =
diff --git a/writefreely/templates/writefreely.service.j2 b/writefreely/templates/[email protected]
index 0515872..bf0d03b 100644
--- a/writefreely/templates/writefreely.service.j2
+++ b/writefreely/templates/[email protected]
@@ -3,9 +3,10 @@ Description=WriteFreely %I Instance
After=syslog.target network.target
[Service]
-WorkingDirectory=/run/writefreely/%i
-ExecStart=/usr/local/bin/writefreely -c /etc/writefreely/%i.conf
+WorkingDirectory={{writefreely_dir}}/%i/
+ExecStart=/usr/local/bin/writefreely
Restart=always
+User={{writefreely_user}}
[Install]
WantedBy=multi-user.target