OpenBSD Web Server - Beginner Guide

Contents
OpenBSD Web Server - Beginner Guide
Step 1: Install the Web Server
Step 2: Start the Web Server
Step 3: Place Your Website Files
Step 4: Configure for Your Network
Step 5: Test from Another Computer

OpenBSD Web Server - Beginner Guide

OpenBSD comes with a built-in web server called httpd. Here's how to set it up for beginners.

Step 1: Install the Web Server

OpenBSD uses the pkg_add command to install software.
pkg_add apache24 - installs Apache 2.4
pkg_add nginx - installs nginx (popular alternative)
pkg_add httpd - installs OpenBSD's own httpd (simplest for beginners)

Step 2: Start the Web Server

After installing, start the service:
rcctl enable apache24 - starts Apache on boot
rcctl start apache24 - starts Apache immediately
rcctl status apache24 - check if it's running

Test it: Open your web browser and go to: http://localhost
You should see: "OpenBSD httpd default page

Step 3: Place Your Website Files

By default, Apache/httpd looks for files in:
/var/www/htdocs

Create your first page:
echo "Hello OpenBSD!" > /var/www/htdocs/index.html

Or use a text editor:
vi /var/www/htdocs/index.html
Press i to insert text, type your message, press Esc, then type :wq and press Enter to save

Step 4: Configure for Your Network

By default, httpd listens on port 80 (HTTP) and optionally 443 (HTTPS).

To change the port:
vi /etc/apache2/httpd.conf
Find the line with Listen 80 and change to your preferred port

Important: If you change the port, you must also allow it through the firewall:
pfctl -e (if not already enabled)
pfctl -f /etc/pf.conf
# Allow HTTP
pass in on egress proto tcp from any to any port 80
# Allow HTTPS
pass in on egress proto tcp from any to any port 443

Step 5: Test from Another Computer

Find your OpenBSD's IP address:
ifconfig - shows IP address (look for inet)

From another computer on the same network, go to:
http://192.168.1.100 (replace with your IP)

First time: You may see a security warning - this is normal!
Click "Advanced" then "Proceed" to see your page.

Want to set up PHP with your web server? Proceed to Lesson 17: Install PHP.

Next: OpenBSD PostgreSQL Database - Beginner Guide

Article author: Arthur Isaev

Related articles
UNIX
OpenBSD
OpenBSD course
Architecture Compatibility
Prepare Installation Media
BIOS Installation
UEFI Installation
Disk Partitioning
Base System Installation
Configure Network
Disable Firewall Temporarily
OpenSSH Server
Update System
Security Basics
Frequently Asked Questions
Virtualization Overview
Docker Containers
Kubernetes
PF NAT Configuration
PF Suppression
IPsec VPN
WireGuard VPN
Advanced Cron
Systemd Compatibility
PF Firewall Introduction
Shells
Environment Variables
Sudoers Configuration
/etc/fstab
Group Management
Password Security
Issue and Banner
PAM Configuration
TCP Wrappers
Intrusion Detection
PF Advanced Rules
Log Analysis
Advanced Backup
Kernel Update
Certificate Management
Access Control Lists (ACLs)
User Security Settings
Vulnerability Management
Security Audit Tools
Security Parameter Tuning
SSH Key Authentication
sudo vs doas
Users and Groups
PostgreSQL Introduction
Services Management
Web Server Overview
Install Apache Web Server
Install Nginx Web Server
Database Setup
Install PHP
Firewall Configuration
SSL/TLS Certificate
Firewall Configuration
Install PHP
Install PHP
Advanced SSL/TLS Configuration
User Management Advanced
PF Logging and Monitoring
Custom Kernel compilation
Advanced doas Configuration
Resource Limits
DHCP Server
Mail Server
SSH Hardening
System Logging
Disk Encryption
Window Managers
Text Editors
Package Management
Cron Jobs
System Monitoring
PF Firewall Advanced
SSH Configuration
Services Management
PHP and Web Stack
Advanced User Management
Swap and Memory
Kernel Parameters
Boot Process
Mounting Filesystems
UFS Filesystem
Softraid
Disk Management
DNS Configuration
Hosts File
Network Statistics
Routing
Network Bridging
System Upgrade
Backup Strategies
Log Rotation
GCC Compiler
Make Build System
Debugging
System Call Tracing
FIPS 140-2
Audit System
Security Compliance
Virtual Machines
LXC Containers
HTTP API
Advanced Monitoring
SELinux (Ported)
Course Conclusion
OpenBSD Architecture - Beginner Guide
OpenBSD Installation Media - Beginner Guide
OpenBSD Disk Partitioning - Beginner Guide
OpenBSD System Updates - Beginner Guide
OpenBSD PF Firewall - Beginner Guide
OpenBSD SSH Configuration - Beginner Guide
OpenBSD User Management - Beginner Guide
OpenBSD Web Server - Beginner Guide
OpenBSD PostgreSQL Database - Beginner Guide
OpenBSD PF Logging and Monitoring - Beginner Guide
OpenBSD SSH Hardening - Beginner Guide
OpenBSD Package Management - Beginner Guide
OpenBSD Firewall Configuration - Beginner Guide
OpenBSD Backup Strategies - Beginner Guide
OpenBSD GCC Compiler - Beginner Guide
OpenBSD Virtual Machines - Beginner Guide
OpenBSD Course Conclusion - Beginner Guide

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.com
Write to info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: