Merge pull request #253 from Wikid82/main
Propagate changes from main into development
This commit is contained in:
9
.github/copilot-instructions.md
vendored
9
.github/copilot-instructions.md
vendored
@@ -37,6 +37,15 @@
|
||||
- The root `Dockerfile` builds the Go binary and the React static assets (multi-stage build).
|
||||
- Branch from `feature/**` and target `development`.
|
||||
|
||||
## Documentation
|
||||
- **Feature Documentation**: When adding new features, update `docs/features.md` to include the new capability. This is the canonical list of all features shown to users.
|
||||
- **README**: The main `README.md` is a marketing/welcome page. Keep it brief with top features, quick start, and links to docs. All detailed documentation belongs in `docs/`.
|
||||
- **New Docs**: When adding new documentation files to `docs/`, also add a card for it in `.github/workflows/docs.yml` in the index.html section. The markdown-to-HTML conversion is automatic, but the landing page cards are manually curated.
|
||||
- **Link Format**: Use GitHub Pages URLs for documentation links, not relative paths:
|
||||
- Docs: `https://wikid82.github.io/cpmp/docs/index.html` (index) or `https://wikid82.github.io/cpmp/docs/features.html` (specific page)
|
||||
- Repo files (CONTRIBUTING, LICENSE): `https://github.com/Wikid82/cpmp/blob/main/CONTRIBUTING.md`
|
||||
- Issues/Discussions: `https://github.com/Wikid82/cpmp/issues` or `https://github.com/Wikid82/cpmp/discussions`
|
||||
|
||||
## CI/CD & Commit Conventions
|
||||
- **Docker Builds**: The `docker-publish` workflow skips builds for commits starting with `chore:`.
|
||||
- **Triggering Builds**: To ensure a new Docker image is built (e.g., for testing on VPS), use `feat:`, `fix:`, or `perf:` prefixes.
|
||||
|
||||
45
.github/workflows/docs.yml
vendored
45
.github/workflows/docs.yml
vendored
@@ -166,18 +166,18 @@ jobs:
|
||||
|
||||
<h2 style="margin-top: 3rem;">📚 Getting Started</h2>
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
<h3>✨ Features <span class="badge badge-beginner">Overview</span></h3>
|
||||
<p>See everything CPMP can do - security, monitoring, automation, and more!</p>
|
||||
<a href="docs/features.html">View All Features →</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>🏠 Getting Started Guide <span class="badge badge-beginner">Start Here</span></h3>
|
||||
<p>Your first setup in just 5 minutes! We'll walk you through everything step by step.</p>
|
||||
<a href="docs/getting-started.html">Read the Guide →</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>📖 README <span class="badge badge-beginner">Essential</span></h3>
|
||||
<p>Learn what the app does, how to install it, and see examples of what you can build.</p>
|
||||
<a href="README.html">Read More →</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>📥 Import Guide</h3>
|
||||
<p>Already using Caddy? Learn how to bring your existing configuration into the app.</p>
|
||||
@@ -185,6 +185,21 @@ jobs:
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 style="margin-top: 3rem;">🔒 Security</h2>
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
<h3>🛡️ Security Features</h3>
|
||||
<p>CrowdSec integration, WAF, geo-blocking, rate limiting, and access control lists.</p>
|
||||
<a href="docs/security.html">Learn More →</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>🔐 ACME Staging</h3>
|
||||
<p>Test SSL certificates without hitting rate limits using Let's Encrypt staging.</p>
|
||||
<a href="docs/acme-staging.html">View Guide →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 style="margin-top: 3rem;">🔧 Developer Documentation</h2>
|
||||
<div class="grid">
|
||||
<div class="card">
|
||||
@@ -199,6 +214,18 @@ jobs:
|
||||
<a href="docs/database-schema.html">View Schema →</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>🐛 Debugging Guide <span class="badge badge-advanced">Advanced</span></h3>
|
||||
<p>Troubleshoot Docker containers, inspect logs, and test Caddy configuration.</p>
|
||||
<a href="docs/debugging-local-container.html">Debug Issues →</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>⚙️ GitHub Setup <span class="badge badge-advanced">Advanced</span></h3>
|
||||
<p>Set up CI/CD workflows, Docker builds, and documentation deployment.</p>
|
||||
<a href="docs/github-setup.html">View Setup →</a>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<h3>✨ Contributing Guide</h3>
|
||||
<p>Want to help make this better? Learn how to contribute code, docs, or ideas.</p>
|
||||
@@ -220,15 +247,15 @@ jobs:
|
||||
Stuck? Have questions? We're here to help!
|
||||
</p>
|
||||
<div style="display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1rem;">
|
||||
<a href="https://github.com/Wikid82/CaddyProxyManagerPlus/discussions"
|
||||
<a href="https://github.com/Wikid82/cpmp/discussions"
|
||||
style="background: white; color: #1e40af; padding: 0.5rem 1rem; border-radius: 6px; text-decoration: none;">
|
||||
💬 Ask a Question
|
||||
</a>
|
||||
<a href="https://github.com/Wikid82/CaddyProxyManagerPlus/issues"
|
||||
<a href="https://github.com/Wikid82/cpmp/issues"
|
||||
style="background: white; color: #1e40af; padding: 0.5rem 1rem; border-radius: 6px; text-decoration: none;">
|
||||
🐛 Report a Bug
|
||||
</a>
|
||||
<a href="https://github.com/Wikid82/CaddyProxyManagerPlus"
|
||||
<a href="https://github.com/Wikid82/cpmp"
|
||||
style="background: white; color: #1e40af; padding: 0.5rem 1rem; border-radius: 6px; text-decoration: none;">
|
||||
⭐ View on GitHub
|
||||
</a>
|
||||
|
||||
441
README.md
441
README.md
@@ -1,420 +1,75 @@
|
||||
# Caddy Proxy Manager+ (CPMP)
|
||||
<p align="center">
|
||||
<img src="frontend/public/banner.png" alt="Caddy Proxy Manager+" width="600">
|
||||
</p>
|
||||
|
||||
**Make your websites easy to reach!** 🚀
|
||||
<h1 align="center">Caddy Proxy Manager+</h1>
|
||||
|
||||
This app helps you manage multiple websites and apps from one simple dashboard. Think of it like a **traffic director** for your internet services - it makes sure people get to the right place when they visit your websites.
|
||||
<p align="center">
|
||||
<strong>The friendly way to manage your reverse proxy</strong><br>
|
||||
Point, click, done. No config files needed.
|
||||
</p>
|
||||
|
||||
**No coding required!** Just point, click, and you're done. ✨
|
||||
|
||||
[](LICENSE)
|
||||
[](https://go.dev/)
|
||||
[](https://react.dev/)
|
||||
<p align="center">
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
|
||||
<a href="https://github.com/Wikid82/cpmp/releases"><img src="https://img.shields.io/github/v/release/Wikid82/cpmp?include_prereleases" alt="Release"></a>
|
||||
<a href="https://github.com/Wikid82/cpmp/actions"><img src="https://img.shields.io/github/actions/workflow/status/Wikid82/cpmp/docker-publish.yml" alt="Build Status"></a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
## 🤔 What Does This Do?
|
||||
## ✨ Top Features
|
||||
|
||||
**Simple Explanation:**
|
||||
Imagine you have 5 different apps running on different computers in your house. Instead of remembering 5 complicated addresses, you can use one simple address like `myapps.com`, and this tool figures out where to send people based on what they're looking for.
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| 🎨 **Beautiful Dark UI** | Modern interface that's easy on the eyes, works on any device |
|
||||
| 🔐 **Automatic HTTPS** | Free SSL certificates from Let's Encrypt, auto-renewed |
|
||||
| 🛡️ **Built-in Security** | CrowdSec integration, geo-blocking, IP access lists |
|
||||
| 📊 **Uptime Monitoring** | Know when your services go down with smart notifications |
|
||||
| 🐳 **Docker Discovery** | Auto-detect containers on local and remote Docker hosts |
|
||||
| 📥 **Easy Import** | Bring your existing Caddy or NPM configs with one click |
|
||||
| 💾 **Backup & Restore** | Never lose your settings, export anytime |
|
||||
| 🔍 **Health Checks** | Test connections before saving |
|
||||
| 🌐 **WebSocket Support** | Perfect for real-time apps and chat services |
|
||||
| ⚡ **Zero Downtime** | Hot-reload configuration without restarts |
|
||||
|
||||
**Real-World Example:**
|
||||
- Someone types: `blog.mysite.com` → Goes to your blog server
|
||||
- Someone types: `shop.mysite.com` → Goes to your online shop server
|
||||
- All managed from one beautiful dashboard!
|
||||
**[See all features →](https://wikid82.github.io/cpmp/docs/features.html)**
|
||||
|
||||
---
|
||||
|
||||
## ✨ What Can It Do?
|
||||
|
||||
- **🎨 Beautiful Dark Interface** - Easy on the eyes, works on phones and computers
|
||||
- **🔄 Manage Multiple Websites** - Add, edit, or remove websites with a few clicks
|
||||
- **🖥️ Connect Different Servers** - Works with servers anywhere (your closet, the cloud, anywhere!)
|
||||
- **📥 Import Old Settings** - Already using Caddy? Bring your old setup right in
|
||||
- **🔍 Test Before You Save** - Check if servers are reachable before going live
|
||||
- **💾 Saves Everything Safely** - Your settings are stored securely
|
||||
- **🔐 Secure Your Sites** - Add that green lock icon (HTTPS) to your websites
|
||||
- **🌐 Works with Live Updates** - Perfect for chat apps and real-time features
|
||||
|
||||
---
|
||||
|
||||
## 📋 Quick Links
|
||||
|
||||
- 🏠 [**Start Here**](docs/getting-started.md) - Your first setup in 5 minutes
|
||||
- 📚 [**All Documentation**](docs/index.md) - Find everything you need
|
||||
- 📥 [**Import Guide**](docs/import-guide.md) - Bring in your existing setup
|
||||
- 🐛 [**Report Problems**](https://github.com/Wikid82/CaddyProxyManagerPlus/issues) - We'll help!
|
||||
|
||||
---
|
||||
|
||||
## 🚀 The Super Easy Way to Start
|
||||
|
||||
**Want to skip all the technical stuff?** Use Docker! (It's like a magic app installer)
|
||||
|
||||
### Step 1: Get Docker
|
||||
Don't have Docker? [Download it here](https://docs.docker.com/get-docker/) - it's free!
|
||||
|
||||
### Step 2: Run One Command
|
||||
Open your terminal and paste this:
|
||||
## 🚀 Quick Start
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://github.com/Wikid82/CaddyProxyManagerPlus.git
|
||||
cd CaddyProxyManagerPlus
|
||||
|
||||
# Start the stack
|
||||
docker-compose up -d
|
||||
# Clone and start
|
||||
git clone https://github.com/Wikid82/cpmp.git
|
||||
cd cpmp
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Step 3: Open Your Browser
|
||||
Go to: **http://localhost:8080**
|
||||
Open **http://localhost:8080** — that's it! 🎉
|
||||
|
||||
**That's it!** 🎉 You're ready to start adding your websites!
|
||||
|
||||
> 💡 **Tip:** Not sure what a terminal is? On Windows, search for "Command Prompt". On Mac, search for "Terminal".
|
||||
|
||||
For more details, check out the [Docker Deployment Guide](DOCKER.md).
|
||||
|
||||
### 🔌 Connecting to Remote Servers (Optional)
|
||||
|
||||
**Want to see containers on OTHER servers?**
|
||||
|
||||
If you have apps running on a different computer (like a Raspberry Pi or a VPS) and want CPMP to see them automatically:
|
||||
|
||||
1. **Copy** the `docker-compose.remote.yml` file to that *other* computer.
|
||||
2. **Run it** there: `docker compose -f docker-compose.remote.yml up -d`
|
||||
3. **Connect** in CPMP:
|
||||
* Go to "Add Proxy Host"
|
||||
* Click "Remote Docker?"
|
||||
* Type the address: `tcp://<IP-OF-OTHER-COMPUTER>:2375`
|
||||
|
||||
**⚠️ IMPORTANT SECURITY WARNING:**
|
||||
Think of this like leaving your front door unlocked. **ONLY** do this if your computers are connected via a secure VPN (like **Tailscale** or **WireGuard**) or are on a private home network that strangers can't access. Never do this on a public server without a VPN!
|
||||
**[Full documentation →](https://wikid82.github.io/cpmp/docs/index.html)**
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ The Developer Way (If You Like Code)
|
||||
## 💬 Community
|
||||
|
||||
Want to tinker with the app or help make it better? Here's how:
|
||||
- 🐛 **Found a bug?** [Open an issue](https://github.com/Wikid82/cpmp/issues)
|
||||
- 💡 **Have an idea?** [Start a discussion](https://github.com/Wikid82/cpmp/discussions)
|
||||
- 📋 **Roadmap** [View the project board](https://github.com/users/Wikid82/projects/7)
|
||||
|
||||
-### What You Need First:
|
||||
- **Go 1.24+** - [Get it here](https://go.dev/dl/) (the "engine" that runs the app)
|
||||
- **Node.js 20+** - [Get it here](https://nodejs.org/) (helps build the pretty interface)
|
||||
## 🤝 Contributing
|
||||
|
||||
### Getting It Running:
|
||||
|
||||
1. **Download the app**
|
||||
```bash
|
||||
git clone https://github.com/Wikid82/CaddyProxyManagerPlus.git
|
||||
cd CaddyProxyManagerPlus
|
||||
```
|
||||
|
||||
2. **Start the "brain" (backend)**
|
||||
```bash
|
||||
cd backend
|
||||
go mod download # Gets the tools it needs
|
||||
go run ./cmd/seed/main.go # Adds example data
|
||||
go run ./cmd/api/main.go # Starts the engine
|
||||
```
|
||||
|
||||
3. **Start the "face" (frontend)** - Open a NEW terminal window
|
||||
```bash
|
||||
cd frontend
|
||||
npm install # Gets the tools it needs
|
||||
npm run dev # Shows you the interface
|
||||
```
|
||||
|
||||
4. **See it work!**
|
||||
- Main app: http://localhost:3001
|
||||
- Backend: http://localhost:8080
|
||||
|
||||
### Quick Docker Way (Developers Too!)
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Opens at http://localhost:3001
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ How It's Built (For Curious Minds)
|
||||
|
||||
**Don't worry if these words sound fancy - you don't need to know them to use the app!**
|
||||
|
||||
### The "Backend" (The Smart Part)
|
||||
- **Go** - A fast programming language (like the app's brain)
|
||||
- **Gin** - Helps handle web requests quickly
|
||||
- **SQLite** - A tiny database (like a filing cabinet for your settings)
|
||||
|
||||
### The "Frontend" (The Pretty Part)
|
||||
- **React** - Makes the buttons and forms look nice
|
||||
- **TypeScript** - Keeps the code organized
|
||||
- **TailwindCSS** - Makes everything pretty with dark mode
|
||||
|
||||
### Where Things Live
|
||||
|
||||
```
|
||||
CaddyProxyManagerPlus/
|
||||
├── backend/ ← The "brain" (handles your requests)
|
||||
│ ├── cmd/ ← Starter programs
|
||||
│ ├── internal/ ← The actual code
|
||||
│ └── data/ ← Where your settings are saved
|
||||
├── frontend/ ← The "face" (what you see and click)
|
||||
│ ├── src/ ← The code for buttons and pages
|
||||
│ └── coverage/ ← Test results (proves it works!)
|
||||
└── docs/ ← Help guides (including this one!)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Making Changes to the App (For Developers)
|
||||
|
||||
Want to add your own features or fix bugs? Here's how to work on the code:
|
||||
|
||||
### Working on the Backend (The Brain)
|
||||
|
||||
1. **Get the tools it needs**
|
||||
```bash
|
||||
cd backend
|
||||
go mod download
|
||||
```
|
||||
|
||||
2. **Set up the database** (adds example data to play with)
|
||||
```bash
|
||||
go run ./cmd/seed/main.go
|
||||
```
|
||||
|
||||
3. **Make sure it works** (runs tests)
|
||||
```bash
|
||||
go test ./... -v
|
||||
```
|
||||
|
||||
4. **Start it up**
|
||||
```bash
|
||||
go run ./cmd/api/main.go
|
||||
```
|
||||
|
||||
Now the backend is running at `http://localhost:8080`
|
||||
|
||||
### Working on the Frontend (The Face)
|
||||
|
||||
1. **Get the tools it needs**
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
```
|
||||
|
||||
2. **Make sure it works** (runs tests)
|
||||
```bash
|
||||
npm test # Keeps checking as you code
|
||||
npm run test:ui # Pretty visual test results
|
||||
npm run test:coverage # Shows what's tested
|
||||
```
|
||||
|
||||
3. **Start it up**
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Now the frontend is running at `http://localhost:3001`
|
||||
|
||||
### Custom Settings (Optional)
|
||||
|
||||
Want to change ports or locations? Create these files:
|
||||
|
||||
**Backend Settings** (`backend/.env`):
|
||||
```env
|
||||
PORT=8080 # Where the backend listens
|
||||
DATABASE_PATH=./data/cpm.db # Where to save data
|
||||
LOG_LEVEL=debug # How much detail to show
|
||||
```
|
||||
|
||||
**Frontend Settings** (`frontend/.env`):
|
||||
```env
|
||||
VITE_API_URL=http://localhost:8080 # Where to find the backend
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📡 Controlling the App with Code (For Developers)
|
||||
|
||||
Want to automate things or build your own tools? The app has an API (a way for programs to talk to it).
|
||||
|
||||
**What's an API?** Think of it like a robot that can do things for you. You send it commands, and it does the work!
|
||||
|
||||
### Things the API Can Do:
|
||||
|
||||
#### Check if it's alive
|
||||
```http
|
||||
GET /api/v1/health
|
||||
```
|
||||
Like saying "Hey, are you there?"
|
||||
|
||||
#### Manage Your Websites
|
||||
```http
|
||||
GET /api/v1/proxy-hosts # Show me all websites
|
||||
POST /api/v1/proxy-hosts # Add a new website
|
||||
GET /api/v1/proxy-hosts/:uuid # Show me one website
|
||||
PUT /api/v1/proxy-hosts/:uuid # Change a website
|
||||
DELETE /api/v1/proxy-hosts/:uuid # Remove a website
|
||||
```
|
||||
|
||||
#### Manage Your Servers
|
||||
```http
|
||||
GET /api/v1/remote-servers # Show me all servers
|
||||
POST /api/v1/remote-servers # Add a new server
|
||||
GET /api/v1/remote-servers/:uuid # Show me one server
|
||||
PUT /api/v1/remote-servers/:uuid # Change a server
|
||||
DELETE /api/v1/remote-servers/:uuid # Remove a server
|
||||
POST /api/v1/remote-servers/:uuid/test # Is this server reachable?
|
||||
```
|
||||
|
||||
#### Import Old Files
|
||||
```http
|
||||
GET /api/v1/import/status # How's the import going?
|
||||
GET /api/v1/import/preview # Show me what will import
|
||||
POST /api/v1/import/upload # Start importing a file
|
||||
POST /api/v1/import/commit # Finish the import
|
||||
DELETE /api/v1/import/cancel # Cancel the import
|
||||
```
|
||||
|
||||
**Want more details and examples?** Check out the [complete API guide](docs/api.md)!
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Making Sure It Works (Testing)
|
||||
|
||||
**What's testing?** It's like double-checking your homework. We run automatic checks to make sure everything works before releasing updates!
|
||||
|
||||
### Checking the Backend
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
go test ./... -v # Check everything
|
||||
go test ./internal/api/handlers/... # Just check specific parts
|
||||
go test -cover ./... # Check and show what's covered
|
||||
```
|
||||
|
||||
**Results**: ✅ 6 tests passing (all working!)
|
||||
|
||||
### Checking the Frontend
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm test # Keep checking as you work
|
||||
npm run test:coverage # Show me what's tested
|
||||
npm run test:ui # Pretty visual results
|
||||
```
|
||||
|
||||
**Results**: ✅ 24 tests passing (~70% of code checked)
|
||||
- Layout: 100% ✅ (fully tested)
|
||||
- Import Table: 90% ✅ (almost fully tested)
|
||||
- Forms: ~60% ✅ (mostly tested)
|
||||
|
||||
**What does this mean for you?** The app is reliable! We've tested it thoroughly so you don't have to worry.
|
||||
|
||||
---
|
||||
|
||||
## 🗄️ Where Your Settings Are Saved
|
||||
|
||||
**What's a database?** Think of it as a super organized filing cabinet where the app remembers all your settings!
|
||||
|
||||
The app saves:
|
||||
|
||||
- **Your Websites** - All the sites you've set up
|
||||
- **Your Servers** - The computers you've connected
|
||||
- **Your Caddy Files** - Original configuration files (if you imported any)
|
||||
- **Security Stuff** - SSL certificates and who can access what
|
||||
- **App Settings** - Your preferences and customizations
|
||||
- **Import History** - What you've imported and when
|
||||
|
||||
**Want the technical details?** Check out the [database guide](docs/database-schema.md).
|
||||
|
||||
**Good news**: It's all saved in one tiny file, and you can back it up easily!
|
||||
|
||||
---
|
||||
|
||||
## 📥 Bringing In Your Old Caddy Files
|
||||
|
||||
Already using Caddy and have configuration files? No problem! You can import them:
|
||||
|
||||
**Super Simple Steps:**
|
||||
|
||||
1. **Click "Import"** in the app
|
||||
2. **Upload your file** (or just paste the text)
|
||||
3. **Look at what it found** - the app shows you what it understood
|
||||
4. **Fix any conflicts** - if something already exists, choose what to do
|
||||
5. **Click "Import"** - done!
|
||||
|
||||
**It's drag-and-drop easy!** The app figures out what everything means.
|
||||
|
||||
**Need help?** Read the [step-by-step import guide](docs/import-guide.md) with pictures and examples!
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Helpful Links
|
||||
|
||||
- **📋 What We're Working On**: https://github.com/users/Wikid82/projects/7
|
||||
- **🐛 Found a Problem?**: https://github.com/Wikid82/CaddyProxyManagerPlus/issues
|
||||
- **💬 Questions?**: https://github.com/Wikid82/CaddyProxyManagerPlus/discussions
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Want to Help Make This Better?
|
||||
|
||||
**We'd love your help!** Whether you can code or not, you can contribute:
|
||||
|
||||
**Ways You Can Help:**
|
||||
- 🐛 Report bugs (things that don't work)
|
||||
- 💡 Suggest new features (ideas for improvements)
|
||||
- 📝 Improve documentation (make guides clearer)
|
||||
- 🔧 Fix issues (if you know how to code)
|
||||
- ⭐ Star the project (shows you like it!)
|
||||
|
||||
**If You Want to Add Code:**
|
||||
|
||||
1. **Make your own copy** (click "Fork" on GitHub)
|
||||
2. **Make your changes** in a new branch
|
||||
3. **Test your changes** to make sure nothing breaks
|
||||
4. **Send us your changes** (create a "Pull Request")
|
||||
|
||||
**Don't worry if you're new!** We'll help you through the process. Check out our [Contributing Guide](CONTRIBUTING.md) for details.
|
||||
|
||||
---
|
||||
|
||||
## 📄 Legal Stuff (License)
|
||||
|
||||
This project is **free to use**! It's under the MIT License, which basically means:
|
||||
- ✅ You can use it for free
|
||||
- ✅ You can change it
|
||||
- ✅ You can use it for your business
|
||||
- ✅ You can share it
|
||||
|
||||
See the [LICENSE](LICENSE) file for the formal details.
|
||||
|
||||
---
|
||||
|
||||
## 🙏 Special Thanks
|
||||
|
||||
- Inspired by [Nginx Proxy Manager](https://nginxproxymanager.com/) (similar tool, different approach)
|
||||
- Built with [Caddy Server](https://caddyserver.com/) (the power behind the scenes)
|
||||
- Made beautiful with [TailwindCSS](https://tailwindcss.com/) (the styling magic)
|
||||
|
||||
---
|
||||
|
||||
## 💬 Questions?
|
||||
|
||||
**Stuck?** Don't be shy!
|
||||
- 📖 Check the [documentation](docs/index.md)
|
||||
- 💬 Ask in [Discussions](https://github.com/Wikid82/CaddyProxyManagerPlus/discussions)
|
||||
- 🐛 Open an [Issue](https://github.com/Wikid82/CaddyProxyManagerPlus/issues) if something's broken
|
||||
|
||||
**We're here to help!** Everyone was a beginner once. 🌟
|
||||
We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) to get started.
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<strong>Version 0.1.0</strong><br>
|
||||
<em>Built with ❤️ by <a href="https://github.com/Wikid82">@Wikid82</a></em><br>
|
||||
<em>Made for humans, not just techies!</em>
|
||||
<a href="LICENSE"><strong>MIT License</strong></a> ·
|
||||
<a href="https://wikid82.github.io/cpmp/docs/index.html"><strong>Documentation</strong></a> ·
|
||||
<a href="https://github.com/Wikid82/cpmp/releases"><strong>Releases</strong></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<em>Built with ❤️ by <a href="https://github.com/Wikid82">@Wikid82</a></em><br>
|
||||
<sub>Powered by <a href="https://caddyserver.com/">Caddy Server</a> · Inspired by <a href="https://nginxproxymanager.com/">Nginx Proxy Manager</a></sub>
|
||||
</p>
|
||||
|
||||
171
docs/features.md
Normal file
171
docs/features.md
Normal file
@@ -0,0 +1,171 @@
|
||||
# ✨ Features
|
||||
|
||||
Caddy Proxy Manager+ (CPMP) is packed with features to make managing your web services simple and secure. Here's everything you can do:
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Security
|
||||
|
||||
### CrowdSec Integration
|
||||
Block malicious IPs automatically using community-driven threat intelligence. CrowdSec analyzes your logs and blocks attackers before they can cause harm.
|
||||
→ [Learn more about CrowdSec](https://www.crowdsec.net/)
|
||||
|
||||
### Web Application Firewall (WAF)
|
||||
Protect your applications from common web attacks like SQL injection and cross-site scripting using Coraza WAF, an enterprise-grade firewall built into Caddy.
|
||||
→ [Learn more about Coraza WAF](https://coraza.io/)
|
||||
|
||||
### Access Control Lists (ACLs)
|
||||
Control who can access your services with IP whitelists, blacklists, and geo-blocking. Block entire countries or allow only specific networks.
|
||||
→ [ACL Documentation](security.md#access-control-lists)
|
||||
|
||||
### Rate Limiting
|
||||
Prevent abuse by limiting how many requests a single IP can make. Protect against brute force attacks and API abuse.
|
||||
→ [Rate Limiting Setup](security.md#rate-limiting)
|
||||
|
||||
### Automatic HTTPS
|
||||
Every site gets a free SSL certificate automatically. No configuration needed—just add your domain and it's secure.
|
||||
→ [SSL/TLS Configuration](security.md#ssltls-certificates)
|
||||
|
||||
---
|
||||
|
||||
## 📊 Monitoring
|
||||
|
||||
### Built-in Uptime Monitor
|
||||
Know instantly when your services go down. Get notifications via Discord, Slack, email, or webhooks when something isn't responding.
|
||||
→ [Uptime Monitoring Guide](uptime.html) *(coming soon)*
|
||||
|
||||
### Real-time Health Dashboard
|
||||
See the status of all your services at a glance. View response times, uptime history, and current availability from one dashboard.
|
||||
|
||||
### Smart Notifications
|
||||
Get notified only when it matters. Notifications are grouped by server so you don't get spammed when a whole host goes down.
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Proxy Management
|
||||
|
||||
### Visual Proxy Configuration
|
||||
Add and manage reverse proxies without touching configuration files. Point-and-click simplicity with full power under the hood.
|
||||
|
||||
### Multi-Domain Support
|
||||
Host unlimited domains from a single server. Each domain can point to a different backend service.
|
||||
|
||||
### WebSocket Support
|
||||
Real-time apps like chat, gaming, and live updates work out of the box. WebSocket connections are automatically upgraded.
|
||||
|
||||
### Load Balancing
|
||||
Distribute traffic across multiple backend servers. Keep your services fast and reliable even under heavy load.
|
||||
|
||||
### Custom Headers
|
||||
Add, modify, or remove HTTP headers as traffic passes through. Perfect for CORS, security headers, or custom routing logic.
|
||||
|
||||
---
|
||||
|
||||
## 🐳 Docker Integration
|
||||
|
||||
### Container Discovery
|
||||
See all Docker containers running on your servers. One click to create a proxy for any container.
|
||||
|
||||
### Remote Docker Support
|
||||
Manage containers on other servers through secure connections. Perfect for multi-server setups with Tailscale or WireGuard VPNs.
|
||||
→ [Remote Docker Setup](getting-started.md#remote-docker)
|
||||
|
||||
### Automatic Port Detection
|
||||
CPMP reads container labels and exposed ports automatically. Less typing, fewer mistakes.
|
||||
|
||||
---
|
||||
|
||||
## 📥 Import & Migration
|
||||
|
||||
### Caddyfile Import
|
||||
Already using Caddy? Import your existing Caddyfile and CPMP will create proxies for each site automatically.
|
||||
→ [Import Guide](import-guide.html)
|
||||
|
||||
### NPM Migration *(coming soon)*
|
||||
Migrating from Nginx Proxy Manager? We'll import your configuration so you don't start from scratch.
|
||||
|
||||
### Conflict Resolution
|
||||
When imports find existing entries, you choose what to do—keep existing, overwrite, or merge configurations.
|
||||
|
||||
---
|
||||
|
||||
## 💾 Backup & Restore
|
||||
|
||||
### Automatic Backups
|
||||
Your configuration is automatically backed up before destructive operations like deletes.
|
||||
|
||||
### One-Click Restore
|
||||
Something go wrong? Restore any previous configuration with a single click.
|
||||
|
||||
### Export Configuration
|
||||
Download your entire configuration for safekeeping or migration to another server.
|
||||
|
||||
---
|
||||
|
||||
## 🎨 User Experience
|
||||
|
||||
### Dark Mode Interface
|
||||
Easy on the eyes during late-night troubleshooting. The modern dark interface looks great on any device.
|
||||
|
||||
### Mobile Responsive
|
||||
Manage your proxies from your phone or tablet. The interface adapts to any screen size.
|
||||
|
||||
### Bulk Operations
|
||||
Select multiple items and perform actions on all of them at once. Delete, enable, or disable in bulk.
|
||||
|
||||
### Search & Filter
|
||||
Find what you're looking for quickly. Filter by status, search by name, or sort by any column.
|
||||
|
||||
---
|
||||
|
||||
## 🔌 API & Automation
|
||||
|
||||
### RESTful API
|
||||
Automate everything through a complete REST API. Create proxies, manage certificates, and monitor uptime programmatically.
|
||||
→ [API Documentation](api.html)
|
||||
|
||||
### Webhook Notifications
|
||||
Send events to any system that accepts webhooks. Integrate with your existing monitoring and automation tools.
|
||||
|
||||
---
|
||||
|
||||
## 🛡️ Enterprise Features
|
||||
|
||||
### Multi-User Support *(coming soon)*
|
||||
Add team members with different permission levels. Admins, editors, and viewers.
|
||||
|
||||
### Audit Logging *(coming soon)*
|
||||
Track who changed what and when. Full history of all configuration changes.
|
||||
|
||||
### SSO Integration *(coming soon)*
|
||||
Sign in with your existing identity provider. Support for OAuth, SAML, and OIDC.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Performance
|
||||
|
||||
### Caddy-Powered
|
||||
Built on Caddy, one of the fastest and most memory-efficient web servers available.
|
||||
|
||||
### Minimal Resource Usage
|
||||
Runs happily on a Raspberry Pi. Low CPU and memory footprint.
|
||||
|
||||
### Instant Configuration Reloads
|
||||
Changes take effect immediately without downtime. Zero-downtime configuration updates.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Need More Details?
|
||||
|
||||
Each feature has detailed documentation:
|
||||
|
||||
- [Getting Started](getting-started.html) - Your first proxy in 5 minutes
|
||||
- [Security Features](security.html) - Deep dive into security options
|
||||
- [API Reference](api.html) - Complete API documentation
|
||||
- [Import Guide](import-guide.html) - Migrating from other tools
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<em>Missing a feature? <a href="https://github.com/Wikid82/cpmp/discussions">Let us know!</a></em>
|
||||
</p>
|
||||
@@ -161,7 +161,7 @@ It's a **text file that tells Caddy how to route traffic**. If you're not sure i
|
||||
|
||||
Done! Your existing setup is now in the app.
|
||||
|
||||
> **Need more help?** Check the detailed [Import Guide](import-guide.md)
|
||||
> **Need more help?** Check the detailed [Import Guide](import-guide.html)
|
||||
|
||||
---
|
||||
|
||||
@@ -265,9 +265,9 @@ You now know the basics! Here's what to explore:
|
||||
|
||||
We're here for you!
|
||||
|
||||
- 💬 [Ask on GitHub Discussions](https://github.com/Wikid82/CaddyProxyManagerPlus/discussions)
|
||||
- 🐛 [Report a Bug](https://github.com/Wikid82/CaddyProxyManagerPlus/issues)
|
||||
- 📖 [Read the Full Documentation](index.md)
|
||||
- 💬 [Ask on GitHub Discussions](https://github.com/Wikid82/cpmp/discussions)
|
||||
- 🐛 [Report a Bug](https://github.com/Wikid82/cpmp/issues)
|
||||
- 📖 [Read the Full Documentation](index.html)
|
||||
|
||||
---
|
||||
|
||||
|
||||
120
docs/index.md
120
docs/index.md
@@ -1,117 +1,55 @@
|
||||
# 📚 Caddy Proxy Manager Plus - Documentation
|
||||
# 📚 Documentation
|
||||
|
||||
Welcome! 👋 This page will help you find exactly what you need to use Caddy Proxy Manager Plus.
|
||||
Welcome to the Caddy Proxy Manager Plus documentation!
|
||||
|
||||
---
|
||||
|
||||
## 🚀 I'm New Here - Where Do I Start?
|
||||
## 📖 Start Here
|
||||
|
||||
Start with the [**README**](../README.md) - it's like the front door of our project! It will show you:
|
||||
- What this app does (in simple terms!)
|
||||
- How to install it on your computer
|
||||
- How to get it running in 5 minutes
|
||||
|
||||
**Next Step:** Once you have it running, check out the guides below!
|
||||
| Guide | Description |
|
||||
|-------|-------------|
|
||||
| [✨ Features](features.html) | See everything CPMP can do |
|
||||
| [🚀 Getting Started](getting-started.html) | Your first proxy in 5 minutes |
|
||||
| [📥 Import Guide](import-guide.html) | Migrate from Caddy or NPM |
|
||||
|
||||
---
|
||||
|
||||
## 📖 How-To Guides
|
||||
## 🔒 Security
|
||||
|
||||
### For Everyone
|
||||
|
||||
#### [🏠 Getting Started Guide](getting-started.md)
|
||||
*Coming soon!* - A step-by-step walkthrough of your first proxy setup. We'll hold your hand through the whole process!
|
||||
|
||||
#### [📥 Import Your Caddy Files](import-guide.md)
|
||||
Already have Caddy configuration files? This guide shows you how to bring them into the app so you don't have to start from scratch.
|
||||
|
||||
**What you'll learn:**
|
||||
- How to upload your existing files (it's just drag-and-drop!)
|
||||
- What to do if the app finds conflicts
|
||||
- Tips to make importing super smooth
|
||||
| Guide | Description |
|
||||
|-------|-------------|
|
||||
| [Security Features](security.html) | CrowdSec, WAF, ACLs, and rate limiting |
|
||||
| [ACME Staging](acme-staging.html) | Test SSL certificates without rate limits |
|
||||
|
||||
---
|
||||
|
||||
### For Developers & Advanced Users
|
||||
## 🔧 Reference
|
||||
|
||||
#### [🔌 API Documentation](api.md)
|
||||
Want to talk to the app using code? This guide shows all the ways you can send and receive information from the app.
|
||||
|
||||
**What you'll learn:**
|
||||
- All the different commands you can send
|
||||
- Examples in JavaScript and Python
|
||||
- What responses to expect
|
||||
|
||||
#### [💾 Database Guide](database-schema.md)
|
||||
Curious about how the app stores your information? This guide explains the database structure.
|
||||
|
||||
**What you'll learn:**
|
||||
- What information we save
|
||||
- How everything connects together
|
||||
- Tips for backing up your data
|
||||
| Guide | Description |
|
||||
|-------|-------------|
|
||||
| [API Documentation](api.html) | REST API endpoints and examples |
|
||||
| [Database Schema](database-schema.html) | How data is stored |
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Want to Help Make This Better?
|
||||
## 🛠️ Development
|
||||
|
||||
#### [✨ Contributing Guide](../CONTRIBUTING.md)
|
||||
We'd love your help! This guide shows you how to:
|
||||
- Report bugs (things that don't work right)
|
||||
- Suggest new features
|
||||
- Submit code improvements
|
||||
- Follow our project rules
|
||||
| Guide | Description |
|
||||
|-------|-------------|
|
||||
| [Contributing](https://github.com/Wikid82/cpmp/blob/main/CONTRIBUTING.md) | How to help improve CPMP |
|
||||
| [Debugging Guide](debugging-local-container.html) | Troubleshooting containers |
|
||||
| [GitHub Setup](github-setup.html) | CI/CD and deployment |
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Need Help?
|
||||
## 🆘 Getting Help
|
||||
|
||||
### Quick Troubleshooting
|
||||
|
||||
**Can't get it to run?**
|
||||
- Check the [Installation section in README](../README.md#-installation)
|
||||
- Make sure Docker is installed and running
|
||||
- Try the quick start commands exactly as written
|
||||
|
||||
**Having import problems?**
|
||||
- See the [Import Guide troubleshooting section](import-guide.md#troubleshooting)
|
||||
- Check your Caddy file is valid
|
||||
- Look at the example files in the guide
|
||||
|
||||
**Found a bug?**
|
||||
- [Open an issue on GitHub](https://github.com/Wikid82/CaddyProxyManagerPlus/issues)
|
||||
- Tell us what you were trying to do
|
||||
- Share any error messages you see
|
||||
|
||||
---
|
||||
|
||||
## 📚 All Documentation Files
|
||||
|
||||
### User Documentation
|
||||
- [📖 README](../README.md) - Start here!
|
||||
- [📥 Import Guide](import-guide.md) - Bring in existing configs
|
||||
- [🏠 Getting Started](getting-started.md) - *Coming soon!*
|
||||
|
||||
### Developer Documentation
|
||||
- [🔌 API Reference](api.md) - REST API endpoints
|
||||
- [💾 Database Schema](database-schema.md) - How data is stored
|
||||
- [✨ Contributing](../CONTRIBUTING.md) - Help make this better
|
||||
- [🔧 GitHub Setup](github-setup.md) - Set up Docker builds & docs deployment
|
||||
|
||||
### Project Information
|
||||
- [📄 LICENSE](../LICENSE) - Legal stuff (MIT License)
|
||||
- [🔖 Changelog](../CHANGELOG.md) - *Coming soon!* - What's new in each version
|
||||
|
||||
---
|
||||
|
||||
## 💡 Quick Links
|
||||
|
||||
- [🏠 Project Home](https://github.com/Wikid82/CaddyProxyManagerPlus)
|
||||
- [🐛 Report a Bug](https://github.com/Wikid82/CaddyProxyManagerPlus/issues/new)
|
||||
- [💬 Ask a Question](https://github.com/Wikid82/CaddyProxyManagerPlus/discussions)
|
||||
- **💬 Questions?** [Start a Discussion](https://github.com/Wikid82/cpmp/discussions)
|
||||
- **🐛 Found a Bug?** [Open an Issue](https://github.com/Wikid82/cpmp/issues)
|
||||
- **📋 Roadmap** [Project Board](https://github.com/users/Wikid82/projects/7)
|
||||
|
||||
---
|
||||
|
||||
<p align="center">
|
||||
<strong>Made with ❤️ for the community</strong><br>
|
||||
<em>Questions? Open an issue - we're here to help!</em>
|
||||
<strong>Made with ❤️ for the community</strong>
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user