67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			SYSTEMD
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			SYSTEMD
		
	
	
	
	
	
|  | # Pre-req | ||
|  | # sudo adduser telebit --home /opt/telebit | ||
|  | # sudo mkdir -p /opt/telebit/ | ||
|  | # sudo chown -R telebit:telebit /opt/telebit/ | ||
|  | 
 | ||
|  | [Unit] | ||
|  | Description=Telebit Relay | ||
|  | Documentation=https://git.coolaj86.com/coolaj86/telebit.js/ | ||
|  | After=network-online.target | ||
|  | Wants=network-online.target systemd-networkd-wait-online.service | ||
|  | 
 | ||
|  | [Service] | ||
|  | # Restart on crash (bad signal), but not on 'clean' failure (error exit code) | ||
|  | # Allow up to 3 restarts within 10 seconds | ||
|  | # (it's unlikely that a user or properly-running script will do this) | ||
|  | Restart=on-abnormal | ||
|  | StartLimitInterval=10 | ||
|  | StartLimitBurst=3 | ||
|  | 
 | ||
|  | # User and group the process will run as | ||
|  | # (git is the de facto standard on most systems) | ||
|  | User=telebit | ||
|  | Group=telebit | ||
|  | 
 | ||
|  | WorkingDirectory=/opt/telebit | ||
|  | # custom directory cannot be set and will be the place where gitea exists, not the working directory | ||
|  | ExecStart=/opt/telebit/bin/node /opt/telebit/bin/telebit.js --config /etc/telebit/telebit.yml | ||
|  | ExecReload=/bin/kill -USR1 $MAINPID | ||
|  | 
 | ||
|  | # Limit the number of file descriptors and processes; see `man systemd.exec` for more limit settings. | ||
|  | # Unmodified gitea is not expected to use more than this. | ||
|  | LimitNOFILE=1048576 | ||
|  | LimitNPROC=64 | ||
|  | 
 | ||
|  | # Use private /tmp and /var/tmp, which are discarded after gitea stops. | ||
|  | PrivateTmp=true | ||
|  | # Use a minimal /dev | ||
|  | 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 /opt/gitea because we want a place for the database | ||
|  | # and /var/log/gitea because we want a place where logs can go. | ||
|  | # This merely retains r/w access rights, it does not add any new. | ||
|  | # Must still be writable on the host! | ||
|  | ReadWriteDirectories=/opt/telebit /etc/telebit | ||
|  | 
 | ||
|  | # Note: in v231 and above ReadWritePaths has been renamed to ReadWriteDirectories | ||
|  | ; ReadWritePaths=/opt/telebit /etc/telebit | ||
|  | 
 | ||
|  | # The following additional security directives only work with systemd v229 or later. | ||
|  | # They further retrict privileges that can be gained by gitea. | ||
|  | # 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 | ||
|  | 
 | ||
|  | # Caveat: Some features may need additional capabilities. | ||
|  | # For example an "upload" may need CAP_LEASE | ||
|  | ; CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_LEASE | ||
|  | ; AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_LEASE | ||
|  | ; NoNewPrivileges=true | ||
|  | 
 | ||
|  | [Install] | ||
|  | WantedBy=multi-user.target |