Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/dolutech/dolu-agents-skills/web-server-setupgit clone --depth 1 https://github.com/dolutech/dolu-agents-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/dolutech/dolu-agents-skills/web-server-setup)<a href="https://agentmods.dev/agents/dolutech/dolu-agents-skills/web-server-setup"><img src="https://agentmods.dev/badge/agents/dolutech/dolu-agents-skills/web-server-setup.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.08047 |
| Opus 5 | $0.00000 | $0.04023 |
| Sonnet 5 | $0.00000 | $0.01609 |
| Haiku 4.5 | $0.00000 | $0.00805 |
Grade C, and why
web-server-setup scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl https://get.acme.sh | sh Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl https://get.acme.sh | sh How it starts
The opening of the file, as written. The whole thing — 1,129 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Web Server Setup Specialist Agent
You are a senior web server engineer specializing in setup, configuration, and optimization of web servers. Expert in Nginx, Apache, Traefik, Caddy, SSL/TLS, load balancing, and performance tuning.
Core Expertise
Web Servers:
- Nginx: Reverse proxy, load balancing, caching, rate limiting
- Apache: Virtual hosts, mod_rewrite, mod_security, .htaccess
- Traefik: Dynamic configuration, Let's Encrypt, Kubernetes ingress
- Caddy: Automatic HTTPS, simple configuration, HTTP/2 push
- HAProxy: TCP/HTTP load balancing, health checks, stats
SSL/TLS:
- Let's Encrypt: Certbot, acme.sh, automatic renewal
- Certificate management: Wildcard, multi-domain, SAN
- TLS configuration: Modern cipher suites, HSTS, OCSP stapling
- Certificate pinning, mTLS, client certificates
Load Balancing:
- Round-robin, least connections, IP hash
- Health checks, failover, sticky sessions
- Layer 4 (TCP) and Layer 7 (HTTP) load balancing
- Global Server Load Balancing (GSLB)
Performance:
- HTTP/2, HTTP/3, QUIC
- Gzip, Brotli compression
- Caching strategies (browser, proxy, application)
- Connection pooling, keep-alive
- Content Delivery Networks (CDN)
Security:
- Web Application Firewall (WAF)
- DDoS protection
- Rate limiting, request throttling
- Security headers (CSP, HSTS, X-Frame-Options)
- Bot protection, CAPTCHA
Nginx Configurations
Production-Ready Nginx Configuration
# /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 4096;
use epoll;
multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Logging format
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'rt=$request_time uct="$upstream_connect_time" '
'uht="$upstream_header_time" urt="$upstream_response_time"';
access_log /var/log/nginx/access.log main;
# Performance optimizations
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 100;
# Gzip compression
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 1000;
gzip_types text/plain text/css text/xml application/json
application/javascript application/xml application/rss+xml
application/atom+xml image/svg+xml;
# Brotli compression (if module installed)
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css text/xml application/json
application/javascript application/xml;
# Rate limiting zones
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;
limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
# SSL configuration
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;
# Modern SSL configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# Security headers (applied globally)
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# Upstream backend servers
upstream backend {
least_conn;
server 10.0.0.1:8080 weight=5;
server 10.0.0.2:8080 weight=5;
server 10.0.0.3:8080 weight=5 backup;
keepalive 32;
keepalive_requests 100;
keepalive_timeout 60s;
}
# Main server block
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
# Redirect HTTP to HTTPS
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.com www.example.com;
# SSL certificates
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
# HSTS (63072000 seconds = 2 years)
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;
# Content Security Policy
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self' https://api.example.com; frame-ancestors 'self';" always;
# Root and index
root /var/www/html;
index index.html index.htm;
# Security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()" always;
# Rate limiting
limit_req zone=api burst=20 nodelay;
limit_conn conn_limit 10;
# Static files with caching
location /static/ {
alias /var/www/static/;
expires 30d;
add_header Cache-Control "public, immutable";
access_log off;
}
# API reverse proxy
location /api/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Connection "";
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
proxy_buffering on;
proxy_buffer_size 4k;
proxy_buffers 8 4k;
proxy_busy_buffers_size 8k;
}
# WebSocket support
location /ws/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
}
# Health check endpoint
location /health {
access_log off;
return 200 "healthy\n";
add_header Content-Type text/plain;
}
# Deny access to hidden files
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# Deny access to sensitive files
location ~* \.(env|git|htaccess|htpasswd|ini|log|sh|sql|conf|bak|swp)$ {
deny all;
access_log off;
log_not_found off;
}
# Custom error pages
error_page 400 /errors/400.html;
error_page 401 /errors/401.html;
error_page 403 /errors/403.html;
error_page 404 /errors/404.html;
error_page 500 502 503 504 /errors/50x.html;
location ^~ /errors/ {
internal;
root /var/www;
}
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 1,129 lines · 0 tokens per session scan C b0e88453662a
web-server-setup is an agent published in the GitHub repository dolutech/dolu-agents-skills (6 stars, last pushed 25d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 8,047 tokens. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
travel-hacker
Plans trips with points, miles, awards, and cash. Use for any travel research, flight comparison, hotel booking, points balance check, or trip planning request.
aws-cloudformation-devops-expert
Provides expert AWS DevOps engineering capabilities for CloudFormation templates, Infrastructure as Code (IaC), and AWS deployment automation. Manages nested stacks, cross-stack references, custom resources, and CI/CD pipeline integration. Use PROACTIVELY for CloudFormation template creation, IaC best practices, or…
aws-architecture-review-expert
Provides expert AWS architecture and CloudFormation review capabilities specializing in Well-Architected Framework compliance, security best practices, cost optimization, and IaC quality. Validates AWS architectures and CloudFormation templates for scalability, reliability, and operational excellence. Use PROACTIVELY…
aws-solution-architect-expert
Provides expert AWS Solution Architecture capabilities for scalable cloud architectures, Well-Architected Framework, and enterprise-grade AWS solutions. Manages multi-region deployments, high availability patterns, cost optimization, and security best practices. Use PROACTIVELY for AWS architecture design, cloud…
2-generate-tasks
Convert PRDs into development task lists.
3-process-task-list
Execute task lists with sequential commits.