A web-based user interface for managing Python Django projects. This application allows you to upload, deploy, and manage multiple Python projects through a user-friendly web interface.
- Project Management: Upload, start, stop, and delete Python projects
- Django Support: Automatic detection of Django projects with manage.py
- Subdomain Configuration: Automatically configure subdomains for each project
- Nginx Integration: Configure Nginx to proxy requests to your Python applications
- Cloudflare Integration: Automatically create DNS records for your subdomains
- Real-time Logs: View application logs in real-time
- Command Execution: Run pip install commands on your projects
- Node.js (v14 or higher)
- npm or yarn
- Python (for running the managed projects)
- Nginx (for proxying requests)
- Cloudflare account (for DNS management)
-
Clone the repository:
git clone https://github.com/yourusername/Python-Management-WebUI.git cd Python-Management-WebUI -
Install dependencies:
npm install -
Configure environment variables: Copy the
.env.examplefile to.envand update the values:cp .env.example .envRequired environment variables:
PORT: The port for the web UI (default: 3032)PROJECTS_DIR: Directory to store project metadataCLOUDFLARE_API_KEY: Your Cloudflare API keyCLOUDFLARE_EMAIL: Your Cloudflare emailCLOUDFLARE_ZONE_ID: Your Cloudflare zone IDNGINX_CONFIG_PATH: Path to Nginx sites-available directorySERVER_IP: Your server's public IP addressDOMAIN: Your domain for subdomains (e.g., ccshub.uk)
-
Start the application:
npm startFor development with auto-restart:
npm run dev -
Access the web UI at http://localhost:3032 (or the port you configured)
- Click "Add New Project" on the projects page
- Enter a project name (this will be used for the subdomain)
- Upload a ZIP file containing your Python Django project
- Set the initial status (Active/Inactive)
- Click "Upload Project"
- Start/Stop: Use the Start/Stop buttons to control the project's server
- View: Open the project in a new tab
- Logs: View the project's logs in real-time
- Toggle Status: Enable or disable the project
- Run Command: Execute pip install commands on the project
- Delete: Remove the project completely
app.js: Main application entry pointroutes/projects.js: Project management routesviews/: EJS templates for the web UIpublic/: Static files and uploaded projectspublic/python/: Directory where Python projects are stored
MIT