Added role node/server
parent
a74f532394
commit
0dab3bdad2
@ -0,0 +1,19 @@
|
||||
---
|
||||
|
||||
# domain: "example.com"
|
||||
service_name: "{{ domain }}.service"
|
||||
|
||||
# TODO Socket
|
||||
# app_port
|
||||
# repo
|
||||
|
||||
# system_user: "nodejs"
|
||||
user_directory: "{{ global_webservers_directory }}/{{ domain }}"
|
||||
src: "{{ user_directory }}/server"
|
||||
|
||||
database_user: "{{ system_user | regex_replace('[^a-zA-Z]', '_') }}"
|
||||
# database_pass from mysql/database
|
||||
# database_name from mysql/database
|
||||
|
||||
install_command: "sudo -u {{ system_user | quote }} sh -c 'npm i && npm audit fix'"
|
||||
reload_command: "{{ install_command }} && systemctl restart {{ service_name | quote }}"
|
@ -0,0 +1,8 @@
|
||||
---
|
||||
|
||||
- name: restart {{ domain }}
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
enabled: yes
|
||||
name: "{{ service_name }}"
|
||||
state: restarted
|
@ -0,0 +1,20 @@
|
||||
---
|
||||
|
||||
allow_duplicates: yes
|
||||
|
||||
dependencies:
|
||||
- role: node/application
|
||||
- role: misc/system_user
|
||||
# system_user
|
||||
# user_directory
|
||||
- role: mysql/database
|
||||
# database_user
|
||||
- role: git_auto_update
|
||||
# repo
|
||||
dest: "{{ src }}"
|
||||
owner: "{{ system_user }}"
|
||||
repo_name: "{{ domain }}"
|
||||
# reload_command
|
||||
- role: nginx/proxy
|
||||
# domain
|
||||
backend_port: "{{ app_port }}"
|
@ -0,0 +1,14 @@
|
||||
---
|
||||
|
||||
- name: Run install command
|
||||
shell: "{{ install_command }}"
|
||||
args:
|
||||
chdir: "{{ src }}"
|
||||
creates: "{{ src }}/node_modules"
|
||||
executable: /bin/sh
|
||||
|
||||
- name: Register service for node server
|
||||
template:
|
||||
src: node.service
|
||||
dest: "/etc/systemd/system/{{ service_name }}"
|
||||
notify: "restart {{ domain }}"
|
@ -0,0 +1,33 @@
|
||||
[Unit]
|
||||
Description=node.js on {{ domain }}
|
||||
After=syslog.target
|
||||
After=network.target
|
||||
Requires=mariadb.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User={{ system_user }}
|
||||
Group={{ system_user }}
|
||||
|
||||
WorkingDirectory={{ src }}
|
||||
ExecStart=/usr/bin/npm start
|
||||
Environment="USER={{ system_user }}"
|
||||
Environment="HOME={{ user_directory }}"
|
||||
Environment="NODE_ENV=production"
|
||||
Environment="PORT={{ app_port }}"
|
||||
Environment="DOMAIN={{ domain }}"
|
||||
Environment="DATABASE_HOST=127.0.0.1"
|
||||
Environment="DATABASE_PORT=3306"
|
||||
Environment="DATABASE_USERNAME={{ database_user }}"
|
||||
Environment="DATABASE_PASSWORD={{ database_pass }}"
|
||||
Environment="DATABASE_NAME={{ database_name }}"
|
||||
|
||||
TimeoutStartSec=2s
|
||||
TimeoutStopSec=10s
|
||||
Restart=always
|
||||
RestartSec=2s
|
||||
StartLimitInterval=60s
|
||||
StartLimitBurst=5
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Loading…
Reference in New Issue