Servers
Web servers, VPNs, schedulers and background services.
These generators write the files that run on a server: web server sites, a reverse proxy, a VPN, scheduled jobs and background services. Each one fills in the file from your values and then shows where to save it, the command that checks it, and the command that reloads the service.
Which one should I pick?
- Putting a site or app online
- Start with the nginx or Apache pages. Use a reverse proxy when your app listens on its own port (such as 3000) and you want visitors to reach it on port 80 or 443. Use a plain server block for static files or PHP.
- Running something on a timer or at boot
- Use cron for a task that repeats on a schedule. Use a systemd service when a program must start at boot, restart if it crashes and write to the system log.
- Limiting traffic or sharing load
- The rate limit and load balancer pages cover protecting a login page from guessing and sharing requests across several app servers.
- Secure access
- The WireGuard pages build a private VPN tunnel, and the fail2ban page blocks addresses that keep guessing passwords. Keep a second session open while you test a change, so a mistake cannot lock you out.
All servers generators
- nginx reverse proxy configSend visitors from port 80 to an app running on port 3000.
- nginx PHP-FPM configRun a PHP site (WordPress, Laravel or plain PHP) on nginx with PHP-FPM.
- Caddyfile reverse proxySend visitors to an app on port 3000 and get HTTPS certificates automatically.
- crontab examplesRun a script every minute, hour, day or week.
- systemd service fileRun your app in the background and start it automatically at boot.
- Apache virtual hostHost a website from a folder with Apache, with or without .htaccess.
- logrotate configKeep log files from filling your disk: rotate, compress and delete old logs on a schedule.
- fail2ban jail.localBan addresses that keep failing to log in. Choose ban time, retries and which services to protect.
- PM2 ecosystem.config.jsRun a Node.js app with PM2: restarts on crash, memory limit, cluster mode and start at boot.
- WireGuard server config (wg0.conf)Set up a WireGuard VPN server on Linux with one peer, NAT and the right commands.
- WireGuard client configCreate the client file that connects to your WireGuard server, with DNS, allowed IPs and keepalive.
- nginx HTTPS server blockServe your site over HTTPS with nginx: certificate paths, HTTP to HTTPS redirect, HSTS and a proxy or static site.
- .htaccess fileBuild an Apache .htaccess file with an HTTPS redirect, www rules, compression, caching and a front controller.
- robots.txt fileCreate a robots.txt that tells search engines what to crawl, with a sitemap line and optional AI crawler blocks.
- nginx redirect www to non-wwwSend www.example.com to example.com (or the reverse) with one permanent redirect.
- nginx load balancer configSplit traffic across two or three copies of your app with an nginx upstream block.
- nginx rate limit configSlow down abusive visitors with limit_req: a request rate per IP, a burst, and a 429 answer.
- php.ini settingsSet the PHP values most sites need: upload size, memory, run time, errors, time zone and OPcache.
- MySQL my.cnf settingsA small MySQL or MariaDB override file for connections, memory, character set and the slow query log.
Before you use any config
- Back up the existing file before you replace it. A copy named with today’s date is enough.
- Run the test command shown on the page (for example nginx -t) before you reload. A failed test leaves the running service untouched.
- Paths and service names differ between systems. Read the notes on each page for where the file goes on yours.
The values you type stay in your browser. Nothing is sent to this site. Missing a file? Ask for it.