English | 简体中文
A powerful and user-friendly web-based server management panel designed to streamline the administration of instances, files, and users. Whether you're running shell commands or managing Docker containers, Panel provides a comprehensive interface for seamless control.
-
Instance Management:
- Effortlessly create, start, stop, restart, and terminate instances.
- Supports both Shell and Docker instance types.
- Comprehensive Docker configuration options: image, container name, port mappings, volume mounts, working directory, and custom commands.
- Configurable auto-start on boot, auto-delete on exit, and auto-restart for robust operation.
- Real-time monitoring of CPU and memory usage for each instance.
- Interactive terminal access for all running instances.
-
User & Permission Management:
- Centralized user management for creating, deleting, and editing user accounts.
- Role-Based Access Control (RBAC) with
admin
anduser
roles. - Admins can manage all aspects of users and instances.
- Granular permission settings per instance:
- Terminal Access: No access, Read-only, Read/Write, Read/Write & Operate (Start/Stop/Restart), Full Control.
- File Management: Enable or disable file management features.
- Secure password and username update functionalities.
-
File Management:
- Intuitive file browser for navigating, creating, deleting, and renaming files and folders.
- Efficient file upload (supports chunked uploads for large files) and download capabilities.
- Online File Editor: Integrated Monaco Editor with syntax highlighting for various languages, real-time saving, and WebSocket-based content synchronization.
- Archiving Operations: Supports file compression (zip, 7z, tar.gz, tar.xz) and extraction (zip, 7z, tar, tar.gz, tar.xz, tar.bz2) directly within the panel.
- Copy and move (cut-paste) operations for flexible file organization.
- File editing blacklist to prevent accidental modification of binary or unsupported file types.
-
Internationalization (i18n):
- Full multi-language support on both frontend and backend for a localized experience.
-
CDN Caching:
- Automatically caches CDN resources locally, improving loading speeds and enhancing stability. This design is particularly beneficial for intranet environments, allowing users to copy the
cdn_cache
folder for direct use in purely internal networks without external connectivity.
- Automatically caches CDN resources locally, improving loading speeds and enhancing stability. This design is particularly beneficial for intranet environments, allowing users to copy the
-
Responsive UI:
- Modern and responsive user interface adapts to various screen sizes, providing a consistent experience across desktops, tablets, and mobile devices.
- Collapsible sidebar and dynamic layout adjustments in the file manager for optimal usability.
- Node.js (v22 or higher)
- Quick Node.js 22 Installation on Ubuntu/Debian:
curl -sL https://deb.nodesource.com/setup_22.x | bash - apt install nodejs
- Quick Node.js 22 Installation on Ubuntu/Debian:
- Docker (Optional, for Docker instance management)
- 7-Zip (For advanced archiving operations, usually pre-installed on most systems or handled by
7zip-bin
package)
Recommended Installation as a systemd Service (for Linux Devices):
For optimal operation, it is recommended to install Panel as a systemd service. This ensures it runs continuously in the background and starts automatically on system boot.
-
Install Node.js 22 (if not already installed):
curl -sL https://deb.nodesource.com/setup_22.x | bash - sudo apt install -y nodejs
-
Clone the repository to
/opt/panel
:sudo git clone https://github.com/Steve3184/panel.git /opt/panel cd /opt/panel
-
Install dependencies:
npm install
-
Copy and configure the systemd service file:
- a. Copy the provided
panel.service
file to the systemd directory:sudo cp panel.service /etc/systemd/system/
- b. Edit the service file to ensure
WorkingDirectory
andExecStart
point to the correct paths. Since we cloned to/opt/panel
, the defaultpanel.service
should already be configured correctly. If you chose a different installation path, you would modify it as follows:Note: The# Example modification if your project is in /home/user/panel # WorkingDirectory=/home/user/panel # ExecStart=/usr/bin/node /home/user/panel/server.js
ExecStart
path must be the absolute path toserver.js
.
- a. Copy the provided
-
Reload systemd, enable, and start the Panel service:
sudo systemctl daemon-reload sudo systemctl enable panel sudo systemctl start panel
-
Check the service status:
systemctl status panel
-
Initial Setup: On first launch, if no admin user exists, you will be redirected to
http://localhost:3000/setup.html
to create an admin account.
You can configure the server language by setting the PANEL_LANG
environment variable. For example, to set the language to Japanese:
PANEL_LANG=jp npm start
Supported languages are defined in the public/lang/
directory (e.g., en.json
, zh_CN.json
, jp.json
).
Contributions are welcome! Feel free to open issues or submit pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
Windows Compatibility: This panel was primarily developed for Linux devices. Its functionality on Windows has not been thoroughly tested and may encounter compatibility issues.
This repository contains code that was generated or assisted by AI. While efforts have been made to ensure its quality and functionality, users should thoroughly review and test the code before deployment.