67 lines
1.4 KiB
Markdown
67 lines
1.4 KiB
Markdown
---
|
|
name: caddy
|
|
description: Caddy web server with automatic HTTPS
|
|
metadata:
|
|
version: "1.0.0"
|
|
vibestack:
|
|
main: false
|
|
metrics-port: 2019
|
|
---
|
|
|
|
# Caddy Skill
|
|
|
|
Installs and configures [Caddy](https://caddyserver.com/) web server with automatic HTTPS.
|
|
|
|
## Features
|
|
|
|
- Automatic HTTPS with Let's Encrypt
|
|
- Reverse proxy support
|
|
- Static file serving
|
|
- Zero-downtime reloads
|
|
|
|
## Configuration
|
|
|
|
Create a `Caddyfile` in your skill's directory or set `CADDYFILE_PATH` environment variable.
|
|
|
|
### Environment Variables
|
|
|
|
| Variable | Description | Default |
|
|
|----------|-------------|---------|
|
|
| `CADDYFILE_PATH` | Path to Caddyfile | `/skills/caddy/Caddyfile` |
|
|
| `CADDY_DATA_DIR` | Caddy data directory | `/data/caddy` |
|
|
|
|
## Example Caddyfile
|
|
|
|
```caddyfile
|
|
:80 {
|
|
respond "Hello from Caddy!"
|
|
}
|
|
|
|
# Reverse proxy example
|
|
# api.example.com {
|
|
# reverse_proxy localhost:8080
|
|
# }
|
|
```
|
|
|
|
## Auto-Import from Skills
|
|
|
|
Other skills can drop `.caddy` snippets into `caddy/snippets.d/` and they'll be automatically merged at startup.
|
|
|
|
Example: If `ttyd` skill is present with `TTYD_DOMAIN=terminal.example.com`, it creates:
|
|
```
|
|
caddy/snippets.d/ttyd.caddy
|
|
```
|
|
|
|
Caddy's `run.sh` merges all snippets into the config before starting.
|
|
|
|
## Usage
|
|
|
|
This skill is typically used as a dependency by other skills that need a web server:
|
|
|
|
```yaml
|
|
metadata:
|
|
vibestack:
|
|
requires:
|
|
- caddy
|
|
```
|