Files
ServerKit/docs/README.md
T
Juan Denis f9d0610452 chore: remove agent code now living in serverkit-agent repo
The Go agent has moved to its own repository:
https://github.com/jhd3197/serverkit-agent

Changes:
- Delete agent/ directory and all source, build, and packaging files
- Delete .github/workflows/agent-ci.yml and agent-release.yml
- Delete scripts/test/agent-test.ps1 (agent now builds in separate repo)
- Remove committed dist/serverkit-agent-windows-amd64.exe build artifact
- Update docs/INSTALLATION.md and docs/README.md links to point to the new repo
- Add migration notes to docs/AGENT_AUDIT.md, docs/REMOTE_ACCESS_ROADMAP.md,
  SECURITY_AUDIT.md, and docs/plans/AGENT_FLEET_PHASES_3-4.md

Panel agent API endpoints under /api/v1/servers/agent/ and /api/v1/agent/
are retained — they are the control-plane contract with the standalone agent.

Verified:
- backend: pytest (371 passed, 12 skipped)
- frontend: npm run lint (0 errors)
2026-06-21 03:30:57 -04:00

275 lines
7.1 KiB
Markdown

# ServerKit Documentation
Welcome to the ServerKit documentation. This guide will help you install, configure, and use ServerKit effectively.
---
## Quick Links
| Document | Description |
|----------|-------------|
| [Installation Guide](INSTALLATION.md) | Complete setup instructions for Docker and manual installation |
| [Architecture](ARCHITECTURE.md) | System design, request flow, and diagrams |
| [Deployment Guide](DEPLOYMENT.md) | Production deployment, CLI commands, and configuration |
| [Local Development](LOCAL_DEVELOPMENT.md) | Run the panel locally for development |
| [API Reference](API.md) | REST API documentation with examples |
| [Multi-Environment Guide](MULTI_ENVIRONMENT.md) | Set up prod/dev WordPress pairs with shared database |
| [Multi-Server & Agent](https://github.com/jhd3197/serverkit-agent/blob/main/README.md) | Install the agent and connect remote servers (see also [pairing](pairing.md)) |
---
## Getting Started
### 1. Installation
Choose your preferred installation method:
- **[Docker Installation](INSTALLATION.md#quick-install-docker)** (Recommended) - Get started in minutes
- **[Manual Installation](INSTALLATION.md#manual-installation)** - Full control over the setup
- **[One-Line Install](../README.md#-quick-start)** - One-line installer for Ubuntu, Debian, Fedora, and RHEL/Rocky/AlmaLinux
### 2. Initial Setup
After installation:
1. Access ServerKit at `http://your-server-ip`
2. Create your admin account (first user becomes admin)
3. [Enable Two-Factor Authentication](INSTALLATION.md#enable-two-factor-authentication)
4. [Configure Notifications](INSTALLATION.md#configure-notification-webhooks)
### 3. Start Managing
- Add your first application from the Applications page
- Configure domains and SSL certificates
- Set up monitoring alerts
- Enable security scanning
---
## Feature Guides
### Application Management
ServerKit supports multiple application types:
| Type | Runtime | Process Manager |
|------|---------|-----------------|
| PHP / WordPress | PHP-FPM 8.x | Nginx |
| Python (Flask/Django) | Python 3.x | Gunicorn |
| Node.js | Node 18+ | PM2 |
| Docker | Containers | Docker Engine |
Each application includes:
- Environment variable management (encrypted)
- Log viewing and streaming
- Start/stop/restart controls
- Domain and SSL configuration
### Multi-Environment Support
ServerKit supports **multi-environment linking** for WordPress and other applications:
- **Production/Development Pairs** - Link apps as prod/dev environments
- **Shared Database** - Both environments can share the same MySQL database with different table prefixes
- **Environment Badges** - Visual indicators (PROD/DEV/STAGING) in the UI
- **Quick Navigation** - One-click switching between linked environments
- **Credential Propagation** - Automatically share database credentials between linked apps
**Common use case:** WordPress theme development
1. Production WordPress serves live traffic
2. Development WordPress shares the database (separate tables)
3. Develop themes in dev without affecting production
See the [Multi-Environment Setup Guide](MULTI_ENVIRONMENT.md) for detailed instructions.
### Domain & SSL
- **Nginx Virtual Hosts** - Automatic configuration generation
- **Let's Encrypt SSL** - Free certificates with auto-renewal
- **Custom Certificates** - Upload your own SSL certificates
### Database Management
Supported databases:
- MySQL / MariaDB
- PostgreSQL
Features:
- Create/delete databases
- User management
- Basic query interface
### Monitoring & Alerts
Real-time monitoring includes:
- CPU, RAM, disk usage
- Network traffic
- Server uptime history
- Process monitoring
Alert channels:
- Discord webhooks
- Slack webhooks
- Telegram bot
- Generic HTTP webhooks
### Security
- **Two-Factor Authentication** - TOTP-based (Google Authenticator, Authy)
- **Malware Scanning** - ClamAV integration
- **File Integrity Monitoring** - Detect unauthorized changes
- **Firewall Management** - UFW rule configuration
### Scheduled Tasks
- Visual cron job editor
- Execution history
- Enable/disable jobs
- Common schedule presets
---
## Configuration
### Environment Variables
ServerKit is configured via environment variables. See [.env.example](../.env.example) for all options.
**Required variables:**
```env
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret
```
**Database options:**
```env
# SQLite (default)
DATABASE_URL=sqlite:///serverkit.db
# PostgreSQL (production)
DATABASE_URL=postgresql://user:pass@localhost/serverkit
```
### Notification Setup
Configure webhooks in Settings > Notifications or via environment:
```env
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
TELEGRAM_BOT_TOKEN=your-bot-token
TELEGRAM_CHAT_ID=your-chat-id
```
---
## CLI Reference
ServerKit includes a management CLI:
```bash
# Service Management
serverkit start|stop|restart|status
serverkit logs [backend|frontend]
serverkit update
# User Management
serverkit create-admin
serverkit reset-password
serverkit list-users
# Database
serverkit init-db
serverkit migrate-db # Apply schema updates
serverkit backup-db
serverkit restore-db <file>
# App Management
serverkit list-apps # List all installed apps
# Cleanup Commands
serverkit cleanup-apps # Delete all apps and containers
serverkit cleanup-apps --delete-volumes # Also delete Docker volumes
serverkit factory-reset # Complete reset (delete everything)
# Utilities
serverkit generate-keys
serverkit config
```
See [Deployment Guide](DEPLOYMENT.md) for complete CLI documentation.
---
## API Reference
ServerKit provides a REST API for automation and integration.
**Base URL:** `http://localhost:47927/api/v1`
**Authentication:** JWT Bearer tokens
Quick example:
```bash
# Login
curl -X POST http://localhost:47927/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "password"}'
# Use token
curl http://localhost:47927/api/v1/system/stats \
-H "Authorization: Bearer <token>"
```
See [API Reference](API.md) for complete documentation.
---
## Troubleshooting
### Common Issues
**Container won't start:**
```bash
docker compose logs backend
sudo lsof -i :47927
```
**502 Bad Gateway:**
```bash
sudo systemctl status serverkit
sudo tail -f /var/log/serverkit/error.log
```
**ClamAV not working:**
```bash
sudo freshclam
sudo systemctl restart clamav-daemon
```
See [Installation Guide - Troubleshooting](INSTALLATION.md#troubleshooting) for more solutions.
---
## Additional Resources
- [Main README](../README.md) - Project overview and quick start
- [Roadmap](../ROADMAP.md) - Development plans and upcoming features
- [Contributing Guide](../CONTRIBUTING.md) - How to contribute
- [GitHub Issues](https://github.com/jhd3197/ServerKit/issues) - Report bugs or request features
---
## Support
- **Bug Reports:** [GitHub Issues](https://github.com/jhd3197/ServerKit/issues)
- **Feature Requests:** [GitHub Issues](https://github.com/jhd3197/ServerKit/issues) with `enhancement` label
- **Security Issues:** Please report privately via GitHub Security Advisories
---
<p align="center">
<strong>ServerKit Documentation</strong><br>
Version 1.6.7
</p>