mirror of
https://github.com/msfjarvis/server-config
synced 2025-08-14 14:07:02 +05:30
Merge systemd-units as a subdirectory
This commit is contained in:
commit
f012e7a38c
8 changed files with 232 additions and 0 deletions
51
systemd_units/caddy.service
Normal file
51
systemd_units/caddy.service
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Caddy HTTP/2 web server
|
||||||
|
Documentation=https://caddyserver.com/docs
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target systemd-networkd-wait-online.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-abnormal
|
||||||
|
|
||||||
|
; User and group the process will run as.
|
||||||
|
User=caddy
|
||||||
|
Group=caddy
|
||||||
|
|
||||||
|
; Letsencrypt-issued certificates will be written to this directory.
|
||||||
|
Environment=CADDYPATH=/etc/ssl/caddy
|
||||||
|
|
||||||
|
; Always set "-root" to something safe in case it gets forgotten in the Caddyfile.
|
||||||
|
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp -envfile /etc/caddy/env
|
||||||
|
ExecReload=/bin/kill -USR1 $MAINPID
|
||||||
|
|
||||||
|
; Use graceful shutdown with a reasonable timeout
|
||||||
|
KillMode=mixed
|
||||||
|
KillSignal=SIGQUIT
|
||||||
|
TimeoutStopSec=5s
|
||||||
|
|
||||||
|
; Limit the number of file descriptors; see `man systemd.exec` for more limit settings.
|
||||||
|
LimitNOFILE=1048576
|
||||||
|
; Unmodified caddy is not expected to use more than that.
|
||||||
|
LimitNPROC=512
|
||||||
|
|
||||||
|
; Use private /tmp and /var/tmp, which are discarded after caddy stops.
|
||||||
|
PrivateTmp=true
|
||||||
|
; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.)
|
||||||
|
PrivateDevices=true
|
||||||
|
; Hide /home, /root, and /run/user. Nobody will steal your SSH-keys.
|
||||||
|
ProtectHome=true
|
||||||
|
; Make /usr, /boot, /etc and possibly some more folders read-only.
|
||||||
|
ProtectSystem=full
|
||||||
|
; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there.
|
||||||
|
; This merely retains r/w access rights, it does not add any new. Must still be writable on the host!
|
||||||
|
ReadWriteDirectories=/etc/ssl/caddy
|
||||||
|
|
||||||
|
; The following additional security directives only work with systemd v229 or later.
|
||||||
|
; They further restrict privileges that can be gained by caddy. Uncomment if you like.
|
||||||
|
; Note that you may have to add capabilities required by any plugins in use.
|
||||||
|
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||||
|
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||||
|
NoNewPrivileges=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
22
systemd_units/gitea.service
Normal file
22
systemd_units/gitea.service
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Gitea (Git with a cup of tea)
|
||||||
|
After=syslog.target
|
||||||
|
After=network.target
|
||||||
|
Requires=postgresql.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
LimitMEMLOCK=infinity
|
||||||
|
LimitNOFILE=65535
|
||||||
|
RestartSec=2s
|
||||||
|
Type=simple
|
||||||
|
User=git
|
||||||
|
Group=git
|
||||||
|
WorkingDirectory=/var/lib/gitea/
|
||||||
|
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
|
||||||
|
Restart=always
|
||||||
|
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
|
||||||
|
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
||||||
|
#AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
27
systemd_units/mirror-bot-2.service
Normal file
27
systemd_units/mirror-bot-2.service
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
[Unit]
|
||||||
|
Description=aria2 mirror Telegram bot service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-abort
|
||||||
|
Type=simple
|
||||||
|
User=bot
|
||||||
|
WorkingDirectory=/home/bot/aria-telegram-mirror-bot-2
|
||||||
|
ExecStartPre=/usr/bin/env bash aria.sh
|
||||||
|
ExecStart=/usr/bin/npm start
|
||||||
|
ExecReload=/bin/kill -USR1 $MAINPID
|
||||||
|
|
||||||
|
; Use graceful shutdown with a reasonable timeout
|
||||||
|
KillMode=mixed
|
||||||
|
KillSignal=SIGQUIT
|
||||||
|
TimeoutStopSec=5s
|
||||||
|
|
||||||
|
; Use private /tmp and /var/tmp, which are discarded after the process stops.
|
||||||
|
PrivateTmp=true
|
||||||
|
; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.)
|
||||||
|
PrivateDevices=true
|
||||||
|
; Make /usr, /boot, /etc and possibly some more folders read-only.
|
||||||
|
ProtectSystem=full
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
27
systemd_units/mirror-bot.service
Normal file
27
systemd_units/mirror-bot.service
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
[Unit]
|
||||||
|
Description=aria2 mirror Telegram bot service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-abort
|
||||||
|
Type=simple
|
||||||
|
User=bot
|
||||||
|
WorkingDirectory=/home/bot/aria-telegram-mirror-bot
|
||||||
|
ExecStartPre=/usr/bin/env bash aria.sh
|
||||||
|
ExecStart=/usr/bin/npm start
|
||||||
|
ExecReload=/bin/kill -USR1 $MAINPID
|
||||||
|
|
||||||
|
; Use graceful shutdown with a reasonable timeout
|
||||||
|
KillMode=mixed
|
||||||
|
KillSignal=SIGQUIT
|
||||||
|
TimeoutStopSec=5s
|
||||||
|
|
||||||
|
; Use private /tmp and /var/tmp, which are discarded after the process stops.
|
||||||
|
PrivateTmp=true
|
||||||
|
; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.)
|
||||||
|
PrivateDevices=true
|
||||||
|
; Make /usr, /boot, /etc and possibly some more folders read-only.
|
||||||
|
ProtectSystem=full
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
26
systemd_units/uno-bot.service
Normal file
26
systemd_units/uno-bot.service
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
[Unit]
|
||||||
|
Description=UNO Telegram bot service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-abort
|
||||||
|
Type=simple
|
||||||
|
User=bot
|
||||||
|
WorkingDirectory=/home/bot/mau_mau_bot
|
||||||
|
ExecStart=/home/bot/mau_mau_bot/venv/bin/python bot.py
|
||||||
|
ExecReload=/bin/kill -USR1 $MAINPID
|
||||||
|
|
||||||
|
; Use graceful shutdown with a reasonable timeout
|
||||||
|
KillMode=mixed
|
||||||
|
KillSignal=SIGQUIT
|
||||||
|
TimeoutStopSec=5s
|
||||||
|
|
||||||
|
; Use private /tmp and /var/tmp, which are discarded after the process stops.
|
||||||
|
PrivateTmp=true
|
||||||
|
; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.)
|
||||||
|
PrivateDevices=false
|
||||||
|
; Make /usr, /boot, /etc and possibly some more folders read-only.
|
||||||
|
ProtectSystem=full
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
27
systemd_units/update.sh
Executable file
27
systemd_units/update.sh
Executable file
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CL_RST="\033[0m"
|
||||||
|
CL_YLW="\033[01;33m"
|
||||||
|
|
||||||
|
function prettyPrint {
|
||||||
|
echo -e "${CL_YLW}${1}${CL_RST}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Grab all service names
|
||||||
|
declare -a services=('caddy' 'gitea' 'horbiswalls-bot' 'mirror-bot' 'mirror-bot-2' 'uno-bot' 'walls-bot' 'walls-bot-2')
|
||||||
|
|
||||||
|
# Now loop through each service and install it
|
||||||
|
for service in "${services[@]}"; do
|
||||||
|
if [ "${1}" ] && [[ "${service}" != "${1}" && "${service}.service" != "${1}" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
prettyPrint "Installing ${service}"
|
||||||
|
sudo cp -v "${service}.service" /etc/systemd/system/
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
prettyPrint "Restarting ${service}"
|
||||||
|
sudo systemctl restart "${service}"
|
||||||
|
if [ ! -f "/etc/systemd/system/multi-user.target.wants/${service}.service" ]; then
|
||||||
|
prettyPrint "Enabling ${service}"
|
||||||
|
sudo systemctl enable "${service}"
|
||||||
|
fi
|
||||||
|
done
|
26
systemd_units/walls-bot-2.service
Normal file
26
systemd_units/walls-bot-2.service
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
[Unit]
|
||||||
|
Description=horbiswalls Telegram bot service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-abort
|
||||||
|
Type=simple
|
||||||
|
User=bot
|
||||||
|
WorkingDirectory=/home/bot/walls-bot-2
|
||||||
|
ExecStart=/home/bot/walls-bot/gradlew run
|
||||||
|
ExecReload=/bin/kill -USR1 $MAINPID
|
||||||
|
|
||||||
|
; Use graceful shutdown with a reasonable timeout
|
||||||
|
KillMode=mixed
|
||||||
|
KillSignal=SIGQUIT
|
||||||
|
TimeoutStopSec=5s
|
||||||
|
|
||||||
|
; Use private /tmp and /var/tmp, which are discarded after the process stops.
|
||||||
|
PrivateTmp=true
|
||||||
|
; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.)
|
||||||
|
PrivateDevices=false
|
||||||
|
; Make /usr, /boot, /etc and possibly some more folders read-only.
|
||||||
|
ProtectSystem=full
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
26
systemd_units/walls-bot.service
Normal file
26
systemd_units/walls-bot.service
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
[Unit]
|
||||||
|
Description=horbiswalls Telegram bot service
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=on-abort
|
||||||
|
Type=simple
|
||||||
|
User=bot
|
||||||
|
WorkingDirectory=/home/bot/walls-bot
|
||||||
|
ExecStart=/home/bot/walls-bot/gradlew run
|
||||||
|
ExecReload=/bin/kill -USR1 $MAINPID
|
||||||
|
|
||||||
|
; Use graceful shutdown with a reasonable timeout
|
||||||
|
KillMode=mixed
|
||||||
|
KillSignal=SIGQUIT
|
||||||
|
TimeoutStopSec=5s
|
||||||
|
|
||||||
|
; Use private /tmp and /var/tmp, which are discarded after the process stops.
|
||||||
|
PrivateTmp=true
|
||||||
|
; Use a minimal /dev (May bring additional security if switched to 'true', but it may not work on Raspberry Pi's or other devices, so it has been disabled in this dist.)
|
||||||
|
PrivateDevices=false
|
||||||
|
; Make /usr, /boot, /etc and possibly some more folders read-only.
|
||||||
|
ProtectSystem=full
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
Loading…
Add table
Add a link
Reference in a new issue