Files
appstore/apps/serverkit/README_en.md
T

55 lines
3.4 KiB
Markdown

# ServerKit
## Introduction
ServerKit is a self-hosted panel for connecting remote servers and managing fleet operations, terminals, deployments, monitoring, backups, security, and sites.
This package uses the upstream all-in-one Docker image `jhd3197/serverkit`, which serves the API, React SPA, and Socket.IO service from one container.
## Features
- Connect to and manage remote servers and server fleets.
- Provide terminal, deployment, monitoring, backup, and security capabilities.
- Serve a unified browser panel with real-time Socket.IO communication.
## Container scope
This is ServerKit's containerized deployment. The package does not mount the Docker Socket or the host filesystem and does not use privileged mode. As a result, it cannot manage the current 1Panel host's systemd services, host Nginx, host packages, or local sites. It is intended for evaluation, managing other connected remote servers, or running behind a reverse proxy.
## First use
1. During installation, provide unique values for `SECRET_KEY`, `JWT_SECRET_KEY`, and the Fernet-format `SERVERKIT_ENCRYPTION_KEY`.
2. Generate a Fernet key with:
```bash
python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
```
Generate the first two keys with `openssl rand -hex 32`. Keep all keys safe; changing them invalidates existing sessions or encrypted data.
3. Open ServerKit on the configured HTTP port. On the first visit, use the registration page to create the first user; the first user is given the administrator role.
4. When using a reverse proxy, set `SERVERKIT_PUBLIC_URL`. Set `TRUST_PROXY_HEADERS` to `true` only when every request is guaranteed to pass through a trusted proxy. Add multiple browser origins as a comma-separated `CORS_ORIGINS` value.
The SQLite database is persisted at `data/serverkit.db` in the application install directory and bind-mounted to `/app/instance`. This keeps the data under the 1Panel application directory for application backups. Do not remove this directory unless the ServerKit data can be discarded. When upgrading from the legacy `serverkit-data` volume, the target version migrates the SQLite files when the new directory is empty; the legacy volume is retained and is not deleted automatically.
## Security notice
The maintainer scanned each packaged `serverkit` image tag with Trivy; each report contains Critical=5, High=77, Total=82 (both tags resolve to the same image content). These findings originate from the upstream image and its base-system components and are not remediated by this package. Prefer trusted private networks and monitor upstream image updates.
High-risk examples:
- Critical `CVE-2025-7458` (`libsqlite3-0`): no fix is currently available.
- Critical `CVE-2026-13221`, `CVE-2026-42496`, and `CVE-2026-8376` (`perl-base`): no fix is currently available.
- Critical `CVE-2023-45853` (`zlib1g`): no fix is currently available.
## Versions
Both `latest` and the pinned `1.11.4` release are available. They use the upstream Docker Hub image and support amd64 and arm64.
## Links
- [Upstream project](https://github.com/jhd3197/ServerKit)
- [Docker deployment guide](https://github.com/jhd3197/ServerKit/blob/v1.11.4/docs/INSTALLATION.md#quick-install-docker)
- [Upstream Compose file](https://github.com/jhd3197/ServerKit/blob/v1.11.4/docker-compose.yml)
The ServerKit upstream project is licensed under the MIT License. See the [upstream license](https://github.com/jhd3197/ServerKit/blob/v1.11.4/LICENSE).