diff options
Diffstat (limited to 'nostr')
| -rw-r--r-- | nostr/build/defaults/main.yaml | 6 | ||||
| -rw-r--r-- | nostr/build/tasks/main.yaml | 39 | ||||
| -rw-r--r-- | nostr/relayer/defaults/main.yaml | 9 | ||||
| -rw-r--r-- | nostr/relayer/files/relayer.service | 14 | ||||
| -rw-r--r-- | nostr/relayer/handlers/main.yaml | 5 | ||||
| -rw-r--r-- | nostr/relayer/tasks/main.yaml | 60 | ||||
| -rw-r--r-- | nostr/relayer/templates/relayer.env.j2 | 4 | ||||
| -rw-r--r-- | nostr/relayer/templates/setup_db.psql.j2 | 2 |
8 files changed, 139 insertions, 0 deletions
diff --git a/nostr/build/defaults/main.yaml b/nostr/build/defaults/main.yaml new file mode 100644 index 0000000..ba456d0 --- /dev/null +++ b/nostr/build/defaults/main.yaml @@ -0,0 +1,6 @@ +--- + +relayer_version: "2.0.0" +# https://github.com/fiatjaf/relayer/releases +relayer_tar: "https://github.com/fiatjaf/relayer/archive/refs/tags/v{{relayer_version}}.tar.gz" +relayer_build_dir: "/tmp/relayer-{{relayer_version}}" diff --git a/nostr/build/tasks/main.yaml b/nostr/build/tasks/main.yaml new file mode 100644 index 0000000..8a7f229 --- /dev/null +++ b/nostr/build/tasks/main.yaml @@ -0,0 +1,39 @@ +--- + +- name: install golang + become: yes + apt: name="golang-go" + +- name: unarchive nostr relayer + unarchive: + remote_src: yes + src: "{{relayer_tar}}" + dest: "/tmp/" + creates: "{{relayer_build_dir}}" + +- name: check if relayer build exists + stat: + path: "{{relayer_build_dir}}/whitelisted/whitelisted" + register: build_file + +- name: build relayer + command: "go build" + args: + chdir: "{{relayer_build_dir}}/whitelisted" + when: not build_file.stat.exists + +- name: create build server dir + become: yes + file: + path: "{{relayer_srv_dir}}" + mode: "0755" + state: "directory" + when: not build_file.stat.exists + +- name: copy bin to build server dir + become: yes + copy: + remote_src: yes + src: "{{relayer_build_dir}}/whitelisted/whitelisted" + dest: "{{relayer_srv_dir}}/nostr-relayer-whitelisted" + when: not build_file.stat.exists diff --git a/nostr/relayer/defaults/main.yaml b/nostr/relayer/defaults/main.yaml new file mode 100644 index 0000000..7d30aa6 --- /dev/null +++ b/nostr/relayer/defaults/main.yaml @@ -0,0 +1,9 @@ +--- + +# https://github.com/fiatjaf/relayer/releases +relayer_user: "relayer" +relayer_pubkey: "" +relayer_port: "7447" +relayer_db: "relayer" +relayer_db_user: "relayer" +relayer_db_pass: "relayer" diff --git a/nostr/relayer/files/relayer.service b/nostr/relayer/files/relayer.service new file mode 100644 index 0000000..14da0aa --- /dev/null +++ b/nostr/relayer/files/relayer.service @@ -0,0 +1,14 @@ +[Unit] +Description=relayer nostr relay +Requires=network.target postgresql.service +Before=nginx.service + +[Service] +User=relayer +EnvironmentFile=/etc/relayer/relayer.env + +ExecStart=/usr/local/bin/relayer +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/nostr/relayer/handlers/main.yaml b/nostr/relayer/handlers/main.yaml new file mode 100644 index 0000000..c4e8dd6 --- /dev/null +++ b/nostr/relayer/handlers/main.yaml @@ -0,0 +1,5 @@ +--- + +- name: restart relayer service + become: yes + systemd: name="relayer.service" state="restarted" daemon_reload="yes" diff --git a/nostr/relayer/tasks/main.yaml b/nostr/relayer/tasks/main.yaml new file mode 100644 index 0000000..5127793 --- /dev/null +++ b/nostr/relayer/tasks/main.yaml @@ -0,0 +1,60 @@ +--- + +- name: add relayer user + become: yes + user: name="{{relayer_user}}" shell="/bin/false" create_home="false" system="yes" + +- name: install relayer systemd service + become: yes + copy: + src: "relayer.service" + dest: "/lib/systemd/system/relayer.service" + notify: restart relayer service + +- name: install relayer bin + become: yes + get_url: + url: "{{relayer_bin_url}}" + dest: "/usr/local/bin/relayer" + owner: "root" + group: "root" + mode: "0755" + notify: restart relayer service + +- name: create relayer dirs + become: yes + file: + path: "/etc/relayer" + owner: "root" + group: "root" + mode: "0755" + state: "directory" + +- name: install relayer config + become: yes + template: + src: "relayer.env.j2" + dest: "/etc/relayer/relayer.env" + owner: "root" + group: "root" + mode: "0600" + notify: restart relayer service + +- name: copy db schema file + become: yes + template: + src: "setup_db.psql.j2" + dest: "/tmp/setup_db_relayer.psql" + owner: "postgres" + group: "postgres" + mode: "0600" + +- name: install db schema psql + become: yes + become_user: "postgres" + command: "psql -f /tmp/setup_db_relayer.psql" + changed_when: false + +- name: ensure service is started + become: yes + systemd: name="relayer.service" enabled="yes" state="started" diff --git a/nostr/relayer/templates/relayer.env.j2 b/nostr/relayer/templates/relayer.env.j2 new file mode 100644 index 0000000..9acacca --- /dev/null +++ b/nostr/relayer/templates/relayer.env.j2 @@ -0,0 +1,4 @@ +POSTGRESQL_DATABASE=postgres://{{relayer_db_user}}:{{relayer_db_pass}}@localhost:5432/{{relayer_db}} +WHITELIST={{relayer_pubkey}} +HOST=127.0.0.1 +PORT={{relayer_port}} diff --git a/nostr/relayer/templates/setup_db.psql.j2 b/nostr/relayer/templates/setup_db.psql.j2 new file mode 100644 index 0000000..5284529 --- /dev/null +++ b/nostr/relayer/templates/setup_db.psql.j2 @@ -0,0 +1,2 @@ +CREATE USER {{relayer_db_user}} WITH ENCRYPTED PASSWORD '{{relayer_db_pass}}'; +CREATE DATABASE {{relayer_db}} WITH OWNER {{relayer_db_user}}; |
