Got lnurld running.
authorLuke Hoersten <luke@hoersten.org>
Sat, 22 Jul 2023 23:27:09 -0500
changeset 218 1db4800bc4f5
parent 217 e69a030975c4
child 219 0faea2a7570f
Got lnurld running.
lnurld/build/defaults/main.yaml
lnurld/build/tasks/main.yaml
lnurld/server/defaults/main.yaml
lnurld/server/handlers/main.yaml
lnurld/server/tasks/main.yaml
lnurld/server/templates/config.yaml.j2
lnurld/server/templates/lnurld.service.j2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lnurld/build/defaults/main.yaml	Sat Jul 22 23:27:09 2023 -0500
@@ -0,0 +1,5 @@
+---
+
+lnurld_git: "https://github.com/yanascz/lnurld.git"
+lnurld_build_dir: "/tmp/lnurld"
+lnurld_srv_dir: "/var/www/build"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lnurld/build/tasks/main.yaml	Sat Jul 22 23:27:09 2023 -0500
@@ -0,0 +1,37 @@
+---
+
+- name: install golang
+  become: yes
+  apt: name="golang-go"
+
+- name: git checkout lnurld
+  git:
+    repo: "{{lnurld_git}}"
+    dest: "{{lnurld_build_dir}}"
+
+- name: check if build exists
+  stat:
+    path: "{{lnurld_build_dir}}/lnurld"
+  register: build_file
+
+- name: build
+  command: "go build"
+  args:
+    chdir: "/tmp/lnurld/"
+  when: not build_file.stat.exists
+
+- name: create build server dir
+  become: yes
+  file:
+    path: "{{lnurld_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: "{{lnurld_build_dir}}/lnurld"
+    dest: "{{lnurld_srv_dir}}/lnurld"
+  when: not build_file.stat.exists
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lnurld/server/defaults/main.yaml	Sat Jul 22 23:27:09 2023 -0500
@@ -0,0 +1,5 @@
+---
+
+lnurld_user: "bitcoin"
+lnurld_host: "127.0.0.1"
+lnurld_port: "8088"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lnurld/server/handlers/main.yaml	Sat Jul 22 23:27:09 2023 -0500
@@ -0,0 +1,5 @@
+---
+
+- name: restart lnurld service
+  become: yes
+  systemd: name="lnurld.service" state="restarted" daemon_reload="yes"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lnurld/server/tasks/main.yaml	Sat Jul 22 23:27:09 2023 -0500
@@ -0,0 +1,50 @@
+---
+
+- name: add lnurld user
+  become: yes
+  user: name="{{lnurld_user}}" shell="/bin/false" system="yes"
+
+- name: install lnurld bin
+  become: yes
+  get_url:
+    url: "{{lnurld_bin_url}}"
+    dest: "/usr/local/bin/lnurld"
+    mode: "0755"
+  notify: restart lnurld service
+
+- name: create lnurld data dir
+  become: yes
+  file:
+    path: "{{lnurld_data_dir}}"
+    mode: "0710"
+    owner: "{{lnurld_user}}"
+    group: "{{lnurld_user}}"
+    state: "directory"
+
+- name: create lnurld etc dir
+  become: yes
+  file:
+    path: "/etc/lnurld/"
+    mode: "0755"
+    state: "directory"
+
+- name: install lnurld config
+  become: yes
+  template:
+    src: "config.yaml.j2"
+    dest: "/etc/lnurld/config.yaml"
+    owner: "{{lnurld_user}}"
+    group: "{{lnurld_user}}"
+    mode: "0600"
+  notify: restart lnurld service
+
+- name: install lnurld systemd service
+  become: yes
+  template:
+    src: "lnurld.service.j2"
+    dest: "/lib/systemd/system/lnurld.service"
+  notify: restart lnurld service
+
+- name: ensure service is started
+  become: yes
+  systemd: name="lnurld.service" enabled="yes" state="started"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lnurld/server/templates/config.yaml.j2	Sat Jul 22 23:27:09 2023 -0500
@@ -0,0 +1,18 @@
+listen: {{lnurld_host}}:{{lnurld_port}}
+data-dir: {{lnurld_data_dir}}
+credentials:
+  admin: {{lnurld_admin_pass}}
+lnd:
+  cert-file: {{lnurld_lnd_cert_file}}
+  macaroon-file: {{lnurld_lnd_invoice_macaroon}}
+accounts:
+{% for account in lnurld_accounts %}
+  {{account.name}}:
+    currency: usd
+    description: {{account.desc}}
+    is-also-email: {{account.is_email|default(false)}}
+    comment-allowed: 210
+    min-sendable: 1
+    max-sendable: 1_000_000
+{% else %}  []
+{% endfor %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lnurld/server/templates/lnurld.service.j2	Sat Jul 22 23:27:09 2023 -0500
@@ -0,0 +1,21 @@
+[Unit]
+Description=LNURL Daemon
+Wants=lnd.service
+After=lnd.service
+
+[Service]
+Environment="GIN_MODE=release"
+ExecStart=/usr/local/bin/lnurld
+
+User={{lnurld_user}}
+Group={{lnurld_user}}
+
+Type=simple
+KillMode=process
+LimitNOFILE=128000
+TimeoutSec=240
+Restart=always
+RestartSec=60
+
+[Install]
+WantedBy=multi-user.target