2025-12-20 13:30:08 +08:00
2025-12-20 13:30:08 +08:00
2025-12-20 09:30:16 +08:00
2025-12-20 09:52:05 +08:00
2025-12-20 09:52:05 +08:00
2025-12-20 12:00:08 +08:00
2025-12-20 09:30:16 +08:00
2025-12-20 12:00:08 +08:00
2025-12-20 12:00:08 +08:00
2025-12-20 09:30:16 +08:00
2025-12-20 09:30:16 +08:00
2025-12-20 09:30:16 +08:00
2025-12-20 09:30:16 +08:00

QingLong Panel (Go Implementation)

This is a Go implementation of the popular QingLong Panel, a task management system for automated scripts.

Features

  • Task scheduling and management
  • RESTful API
  • User authentication
  • Environment variable management
  • Script file management
  • Task execution and logging
  • Web interface
  • Docker support

Project Structure

├── main.go              # Application entry point
├── go.mod               # Go modules definition
├── go.sum               # Go modules checksums
├── Dockerfile           # Docker configuration
├── docker-compose.yml   # Docker Compose configuration
├── configs/             # Configuration files
├── internal/
│   ├── controllers/     # HTTP handlers
│   ├── models/          # Data structures
│   ├── services/        # Business logic
│   └── utils/           # Utility functions
├── web/
│   ├── static/          # Static assets (CSS, JS, images)
│   └── templates/       # HTML templates
├── data/                # Data storage
├── logs/                # Log files
└── scripts/             # User scripts

Getting Started

Using Go directly

  1. Install Go (version 1.21 or higher)
  2. Clone the repository
  3. Run go mod tidy to install dependencies
  4. Run go run main.go to start the server

Using Docker

  1. Install Docker and Docker Compose
  2. Run docker-compose up -d to start the server

The server will start on port 8080.

API Endpoints

Authentication

  • POST /api/auth/login - User login
  • POST /api/auth/register - User registration

Tasks

  • GET /api/tasks - Get all tasks
  • POST /api/tasks - Create a new task
  • GET /api/tasks/:id - Get a specific task
  • PUT /api/tasks/:id - Update a specific task
  • DELETE /api/tasks/:id - Delete a specific task

Task Execution

  • POST /api/execute/task/:id - Execute a task by ID
  • POST /api/execute/command - Execute a command directly
  • GET /api/execute/results - Get last execution results

Environment Variables

  • GET /api/env - Get all environment variables
  • POST /api/env - Create a new environment variable
  • GET /api/env/:id - Get a specific environment variable
  • PUT /api/env/:id - Update a specific environment variable
  • DELETE /api/env/:id - Delete a specific environment variable

Scripts

  • GET /api/scripts - Get all scripts
  • POST /api/scripts - Create a new script
  • GET /api/scripts/:id - Get a specific script
  • PUT /api/scripts/:id - Update a specific script
  • DELETE /api/scripts/:id - Delete a specific script

Web Interface

  • / - Dashboard
  • /login - Login page
  • /tasks - Task management
  • /scripts - Script management
  • /environments - Environment variable management

Default Admin User

Username: admin Password: admin123

Configuration

The application can be configured using the configs/config.json file:

{
  "server": {
    "port": 8080,
    "host": "0.0.0.0"
  },
  "database": {
    "type": "sqlite",
    "path": "./data/ql.db"
  },
  "security": {
    "jwt_secret": "ql_panel_secret_key",
    "password_salt": "ql_panel_salt"
  },
  "task": {
    "default_timeout": 3600,
    "log_retention_days": 30
  }
}

Docker Support

The application includes Docker support for easy deployment:

  1. Build the Docker image: docker build -t baihu .
  2. Run the container: docker run -p 8080:8080 baihu

Or use Docker Compose:

docker-compose up -d

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

S
Description
定时任务调度面板
Readme Apache-2.0 6.4 MiB
Languages
Go 62.8%
TypeScript 30.6%
JavaScript 2.1%
Python 1.9%
Shell 0.8%
Other 1.7%