# Systemd Service Setup This guide explains how to set up the Button Refresh Bot as a systemd service on Linux. ## Prerequisites - Linux system with systemd - Node.js installed - Bot configured with `.env` file ## Installation Steps 1. **Edit the service file** Open `buttonrefreshbot.service` and update the following: - `User`: Your Linux username (e.g., `michael`) - `Group`: Your Linux group (usually same as username) - `WorkingDirectory`: Full path to the project directory - `EnvironmentFile`: Full path to your `.env` file - `ExecStart`: Full path to `node` executable (find with `which node`) Example: ```ini User=michael Group=michael WorkingDirectory=/home/michael/Buttonrefreshbot EnvironmentFile=/home/michael/Buttonrefreshbot/.env ExecStart=/usr/bin/node /home/michael/Buttonrefreshbot/bot.js ``` 2. **Copy the service file to systemd directory** ```bash sudo cp buttonrefreshbot.service /etc/systemd/system/ ``` 3. **Reload systemd daemon** ```bash sudo systemctl daemon-reload ``` 4. **Enable the service (start on boot)** ```bash sudo systemctl enable buttonrefreshbot.service ``` 5. **Start the service** ```bash sudo systemctl start buttonrefreshbot.service ``` 6. **Check service status** ```bash sudo systemctl status buttonrefreshbot.service ``` ## Useful Commands - **View logs**: `sudo journalctl -u buttonrefreshbot.service -f` - **Stop service**: `sudo systemctl stop buttonrefreshbot.service` - **Restart service**: `sudo systemctl restart buttonrefreshbot.service` - **Disable auto-start**: `sudo systemctl disable buttonrefreshbot.service` ## Troubleshooting - If the service fails to start, check logs: `sudo journalctl -u buttonrefreshbot.service -n 50` - Ensure the `.env` file has correct permissions and contains `BOT_TOKEN` - Verify Node.js path is correct: `which node` - Check file permissions: the service user must have read access to all project files