feat: add systemd feature
This commit is contained in:
@@ -73,3 +73,16 @@
|
|||||||
bash -lic "yarn install --production --pure-lockfile"
|
bash -lic "yarn install --production --pure-lockfile"
|
||||||
chdir: "{{ peertube_home }}/peertube-latest"
|
chdir: "{{ peertube_home }}/peertube-latest"
|
||||||
changed_when: true
|
changed_when: true
|
||||||
|
|
||||||
|
- name: Install services
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: peertube.service.j2
|
||||||
|
dest: /etc/systemd/system/peertube.service
|
||||||
|
mode: 0644
|
||||||
|
|
||||||
|
- name: Run services
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: peertube.service
|
||||||
|
daemon_reload: true
|
||||||
|
state: restarted # restart everytime, this is simpler
|
||||||
|
enabled: true
|
||||||
|
33
roles/peertube/templates/peertube.service.j2
Normal file
33
roles/peertube/templates/peertube.service.j2
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=PeerTube daemon
|
||||||
|
After=network.target postgresql.service redis-server.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Environment=NODE_ENV=production
|
||||||
|
Environment=NODE_CONFIG_DIR={{ peertube_home }}/config
|
||||||
|
User=peertube
|
||||||
|
Group=peertube
|
||||||
|
ExecStart=/usr/bin/node dist/server
|
||||||
|
WorkingDirectory={{ peertube_home }}/peertube-latest
|
||||||
|
SyslogIdentifier=peertube
|
||||||
|
Restart=always
|
||||||
|
|
||||||
|
; Some security directives.
|
||||||
|
; Mount /usr, /boot, and /etc as read-only for processes invoked by this service.
|
||||||
|
ProtectSystem=full
|
||||||
|
; Sets up a new /dev mount for the process and only adds API pseudo devices
|
||||||
|
; like /dev/null, /dev/zero or /dev/random but not physical devices. Disabled
|
||||||
|
; by default because it may not work on devices like the Raspberry Pi.
|
||||||
|
PrivateDevices=false
|
||||||
|
; Ensures that the service process and all its children can never gain new
|
||||||
|
; privileges through execve().
|
||||||
|
NoNewPrivileges=true
|
||||||
|
; This makes /home, /root, and /run/user inaccessible and empty for processes invoked
|
||||||
|
; by this unit. Make sure that you do not depend on data inside these folders.
|
||||||
|
ProtectHome=true
|
||||||
|
; Drops the sys admin capability from the daemon.
|
||||||
|
CapabilityBoundingSet=~CAP_SYS_ADMIN
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Reference in New Issue
Block a user