[Unit] Description=Mobilizon Service After=network.target postgresql.service [Service] User=mobilizon WorkingDirectory=/home/mobilizon/live ExecStart=/usr/bin/env mix phx.server ExecReload=/bin/kill $MAINPID KillMode=process Restart=on-failure Environment=MIX_ENV=prod SyslogIdentifier=mobilizon ; Some security directives. ; Use private /tmp and /var/tmp folders inside a new file system namespace, which are discarded after the process stops. PrivateTmp=true ; 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 [Install] WantedBy=multi-user.target