v0.2.11 - Picky shit
This commit is contained in:
92
systemd/install-systemd.sh
Executable file
92
systemd/install-systemd.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
# C-Relay Systemd Service Installation Script
|
||||
# This script installs the C-Relay as a systemd service
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
INSTALL_DIR="/opt/c-relay"
|
||||
SERVICE_NAME="c-relay"
|
||||
SERVICE_FILE="c-relay.service"
|
||||
BINARY_NAME="c_relay_x86"
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}=== C-Relay Systemd Service Installation ===${NC}"
|
||||
|
||||
# Check if running as root
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
echo -e "${RED}Error: This script must be run as root${NC}"
|
||||
echo "Usage: sudo ./install-systemd.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if binary exists (script is in systemd/ subdirectory)
|
||||
if [ ! -f "../build/$BINARY_NAME" ]; then
|
||||
echo -e "${RED}Error: Binary ../build/$BINARY_NAME not found${NC}"
|
||||
echo "Please run 'make' from the project root directory first"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if service file exists
|
||||
if [ ! -f "$SERVICE_FILE" ]; then
|
||||
echo -e "${RED}Error: Service file $SERVICE_FILE not found${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create c-relay user if it doesn't exist
|
||||
if ! id "c-relay" &>/dev/null; then
|
||||
echo -e "${YELLOW}Creating c-relay user...${NC}"
|
||||
useradd --system --shell /bin/false --home-dir $INSTALL_DIR --create-home c-relay
|
||||
else
|
||||
echo -e "${GREEN}User c-relay already exists${NC}"
|
||||
fi
|
||||
|
||||
# Create installation directory
|
||||
echo -e "${YELLOW}Creating installation directory...${NC}"
|
||||
mkdir -p $INSTALL_DIR
|
||||
mkdir -p $INSTALL_DIR/db
|
||||
|
||||
# Copy binary
|
||||
echo -e "${YELLOW}Installing binary...${NC}"
|
||||
cp ../build/$BINARY_NAME $INSTALL_DIR/
|
||||
chmod +x $INSTALL_DIR/$BINARY_NAME
|
||||
|
||||
# Set permissions
|
||||
echo -e "${YELLOW}Setting permissions...${NC}"
|
||||
chown -R c-relay:c-relay $INSTALL_DIR
|
||||
|
||||
# Install systemd service
|
||||
echo -e "${YELLOW}Installing systemd service...${NC}"
|
||||
cp $SERVICE_FILE /etc/systemd/system/
|
||||
systemctl daemon-reload
|
||||
|
||||
# Enable service
|
||||
echo -e "${YELLOW}Enabling service...${NC}"
|
||||
systemctl enable $SERVICE_NAME
|
||||
|
||||
echo -e "${GREEN}=== Installation Complete ===${NC}"
|
||||
echo
|
||||
echo -e "${GREEN}Next steps:${NC}"
|
||||
echo "1. Configure environment variables in /etc/systemd/system/$SERVICE_FILE if needed"
|
||||
echo "2. Start the service: sudo systemctl start $SERVICE_NAME"
|
||||
echo "3. Check status: sudo systemctl status $SERVICE_NAME"
|
||||
echo "4. View logs: sudo journalctl -u $SERVICE_NAME -f"
|
||||
echo
|
||||
echo -e "${GREEN}Service commands:${NC}"
|
||||
echo " Start: sudo systemctl start $SERVICE_NAME"
|
||||
echo " Stop: sudo systemctl stop $SERVICE_NAME"
|
||||
echo " Restart: sudo systemctl restart $SERVICE_NAME"
|
||||
echo " Status: sudo systemctl status $SERVICE_NAME"
|
||||
echo " Logs: sudo journalctl -u $SERVICE_NAME"
|
||||
echo
|
||||
echo -e "${GREEN}Installation directory: $INSTALL_DIR${NC}"
|
||||
echo -e "${GREEN}Service file: /etc/systemd/system/$SERVICE_FILE${NC}"
|
||||
echo
|
||||
echo -e "${YELLOW}Note: The relay will run on port 8888 by default${NC}"
|
||||
echo -e "${YELLOW}Database will be created automatically in $INSTALL_DIR/db/${NC}"
|
||||
Reference in New Issue
Block a user