Recommended Free Tools
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
Yes—you can run Discourse and WordPress on one VPS reliably, but they must not compete for the same public ports. Run each application in its own Docker stack, keep their databases and files on persistent volumes, and place a host-level Nginx reverse proxy on ports 80 and 443. Nginx terminates HTTPS and routes forum.example.com to Discourse and www.example.com to WordPress.
The practical constraints are memory, storage, backups and the shared failure domain. Discourse’s current cloud guide lists 1 GB RAM with swap and 10 GB disk as a minimum, while recommending at least 2 GB RAM and 20 GB disk for Discourse alone. WordPress media, its database, backups, plugins and visitor traffic require additional capacity, so treat those numbers as a floor rather than a complete VPS specification.
Free tools Windows power users keep installed
One-click scans. No signup required.
What the architecture looks like
A single VPS can host both properties when the public entry point and application ports are separated:
- Nginx on the host: listens publicly on TCP 80 and 443, handles HTTP-to-HTTPS redirects, terminates TLS and selects a destination by hostname.
- Discourse container stack: runs the forum and its database internally. Move its web listener away from the public ports, for example by mapping host port 8080 to container port 80.
- WordPress stack: runs the official WordPress image, a separate database service and persistent volumes. Give its web container a different internal host port, such as 8081.
- DNS: separate A records point
forum.example.comandwww.example.comto the VPS public IPv4 address. Add equivalent IPv6 records only when IPv6 is configured and firewalled correctly.
The applications do not need separate public IP addresses. Nginx can distinguish requests because the browser sends the hostname in the HTTP Host header and sends both sites through the same TLS endpoint.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
Why the default Discourse installation causes a conflict
A supported standalone Discourse installation normally claims ports 80 and 443. WordPress or a second web server cannot bind those same host ports at the same time. The same-host Discourse guidance therefore requires reconfiguring Discourse to listen on an internal port and using host-level Nginx as the reverse proxy for traffic and SSL certificates.
What is isolated and what is shared
Separate containers isolate application processes, dependencies and restart operations. They do not create a separate failure domain: both stacks still depend on the same kernel, disks, network interface, VPS provider and available RAM. A full disk, kernel failure, provider outage or memory exhaustion can take down both sites.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Repair Windows errors before they cause bigger problems3Fix the driver behind crashes, sound loss and screen glitchesHow much VPS capacity do you need?
There is no universal concurrent-user number for a WordPress-plus-Discourse server. Plugins, themes, uploads, caching, email, traffic patterns, database size and provider performance change the result. Size from the Discourse baseline, then add headroom for WordPress and operational work.
| Resource | Discourse cloud baseline | Planning implication for both applications |
|---|---|---|
| RAM | 1 GB minimum with swap; 2 GB or more recommended | Those figures cover Discourse guidance, not a guarantee for WordPress. Start above the recommendation when both sites are active, and watch peak usage before adding plugins or traffic. |
| Disk | 10 GB minimum; 20 GB or more recommended | Reserve additional space for WordPress uploads, Discourse uploads, databases, logs, backups and temporary update files. A backup stored on the same full disk is not a safe backup. |
| CPU | No universal combined figure stated | Monitor sustained load, request latency and database activity. Image processing, search indexing, PHP workers and Discourse jobs can peak at different times. |
| Swap | Required in the 1 GB minimum configuration | Swap can prevent an immediate out-of-memory kill, but it is slower than RAM and does not replace adequate memory. |
Choose a 64-bit Linux VPS with root SSH access and Docker support. Common providers documented for Discourse include DigitalOcean, AWS EC2, Google Cloud, Linode/Akamai, Vultr and Hetzner; documentation does not promise identical performance between them. Select a region close to your audience and check that the provider permits outbound mail or use a separate transactional mail service.
When one VPS is the wrong choice
- Use separate hosts when either property needs independent scaling, a different maintenance window or stronger availability isolation.
- Separate the workloads when one application regularly consumes all available memory or disk.
- Consider a managed database or object-storage backup when local disk growth and recovery requirements exceed what one VPS can safely handle.
- Keep one VPS when traffic is modest, a short shared outage is acceptable, and you can monitor and restore both stacks yourself.
Prepare DNS, access and the operating system
- Provision the server. Install a supported 64-bit Linux distribution, create a non-root administrative account with sudo, and retain root SSH access for the installation steps that require it. Use SSH keys and disable password authentication after confirming key login.
- Set hostnames. Create A records for
forum.example.comandwww.example.compointing to the VPS public IP. Wait for DNS propagation, then verify each name resolves to the intended address. - Update the OS. Apply security updates, set the correct timezone, and install Docker and the Docker Compose plugin using the distribution’s supported instructions.
- Plan directories and volumes. Keep Discourse configuration, WordPress files, database data and backup staging in clearly separated paths. Do not place databases in disposable container layers.
Do not publish database or cache ports while testing. Bind internal services to the loopback interface or an isolated Docker network so they are reachable only by their application containers and the reverse proxy.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Install Discourse with its supported Docker path
Discourse states that its officially supported production installations are Docker based. Follow the official installer, then complete the requested hostname, administrator account and mail settings. Initially, the installer may expect to manage ports 80 and 443 itself; that is the configuration you must change before putting both sites behind one host proxy.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Move Discourse off ports 80 and 443
Open the Discourse container configuration and change its published web port. A typical arrangement is host port 8080 to Discourse’s container port 80. The exact configuration keys depend on the current Discourse template, so edit the generated configuration rather than replacing it with an unrelated compose file.
# Conceptual port mapping: host 127.0.0.1:8080 to container port 80
127.0.0.1:8080:80
Binding to 127.0.0.1 keeps the Discourse listener off the public network; Nginx on the host can still reach it. If your Docker setup requires a different interface, use a firewall rule that permits only local proxy traffic. Rebuild or restart the Discourse container using its documented command, then confirm that a local request to port 8080 returns Discourse before configuring DNS at the proxy.
Deploy WordPress as a separate stack
Use the official WordPress image with a separate database service. Supply persistent volumes for both the WordPress web root and database data. The official image copies initial WordPress files into the web root on first startup; without a persistent volume, those files and uploads can disappear when the container is recreated.
Example Compose structure
The following is a layout example, not a substitute for selecting current image tags, passwords and database settings. Keep the WordPress and database services on a private Compose network and publish only the web service to a host port consumed by Nginx.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
services:
wordpress:
image: wordpress:latest
depends_on:
- db
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: change-this-long-secret
volumes:
- ./wordpress:/var/www/html
ports:
- "127.0.0.1:8081:80"
db:
image: mariadb:latest
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: change-this-long-secret
MYSQL_ROOT_PASSWORD: use-a-separate-long-secret
volumes:
- ./db:/var/lib/mysql
Pin tested image versions instead of relying indefinitely on latest, store secrets outside a publicly readable compose file where practical, and confirm that the database directory is on persistent storage before the first production login. Keep WordPress’s generated configuration and uploaded media inside the persistent web volume.
Configure Nginx as the shared reverse proxy
Install Nginx on the host, not inside either application stack. Create one server block for each hostname. The proxy listens on 80 and 443, redirects HTTP to HTTPS, and forwards requests to the appropriate local port.
Required proxy headers
Forward the original host, client address chain and protocol:
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;
X-Forwarded-Proto is particularly important for Discourse. It allows the application to detect that the browser used HTTPS even though Nginx speaks plain HTTP to the internal container. Without it, redirects, secure cookies and generated links can behave incorrectly.
Forum virtual host
server {
listen 80;
server_name forum.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name forum.example.com;
ssl_certificate /etc/letsencrypt/live/forum.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/forum.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8080;
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 300;
}
}
WordPress virtual host
server {
listen 80;
server_name www.example.com example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com example.com;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8081;
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;
}
}
Adjust certificate paths, canonical hostnames and upstream ports to your layout. Test the configuration with nginx -t before reloading Nginx. Verify that each hostname reaches the intended application and that a request to the wrong hostname is not accidentally served by the wrong default server.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Issue and renew SSL certificates
Use Nginx’s ACME/Let’s Encrypt integration to obtain certificates for both hostnames. In a normal single-site Discourse installation, the supported cloud flow can provision Let’s Encrypt automatically. On a shared host, certificate ownership and renewal belong to the host-level proxy instead, because Nginx is the component accepting public TLS connections.
- Point DNS records to the VPS before requesting certificates.
- Allow inbound TCP 80 and 443 through the VPS firewall so HTTP-01 validation can reach Nginx.
- Request certificates for
forum.example.comand the WordPress canonical hostname, including any redirect alias only when needed. - Install the certificates in the corresponding server blocks and reload Nginx.
- Run or schedule the ACME client’s renewal timer, then test renewal in a non-destructive mode.
Renewal failure can leave both properties inaccessible over HTTPS if the proxy certificate expires. Monitor certificate expiry and keep port 80 available for validation or use a DNS-01 method supported by your DNS provider.
Firewall and exposure rules
Expose only the services users must reach:
- SSH, ideally restricted to known source addresses and key authentication.
- TCP 80 for redirects and ACME HTTP validation.
- TCP 443 for application traffic.
Do not expose PostgreSQL, MariaDB/MySQL, Redis, Discourse internal ports, Docker’s management socket or WordPress’s database port to the internet. Discourse’s Docker documentation specifically warns that database and Redis ports in multi-container arrangements need firewall protection. Review Docker’s published-port output after every stack change; a careless 0.0.0.0:3306 or 0.0.0.0:6379 binding can bypass assumptions made in the host firewall.
Backups, upgrades and recovery
Back up Discourse data, WordPress files and media, and both databases. A VPS snapshot alone may capture inconsistent application state unless the provider documents an application-consistent method. Keep at least one backup copy off the VPS and test restoration on a separate location.
What to back up
- Discourse uploads, configuration and its database.
- The complete WordPress web volume, including
wp-content, themes, plugins and uploads. - The WordPress database dump and database credentials or secret-management records needed to restore it.
- Nginx server blocks, ACME account or certificate-renewal configuration, firewall rules and deployment files.
- Backup timestamps, retention settings and restoration notes.
Safe maintenance sequence
- Confirm the latest backup completed and is readable before an upgrade.
- Record current image tags, container names, volume paths and Nginx configuration.
- Upgrade one stack at a time, starting with a maintenance notice if either site will be unavailable.
- Check application logs, HTTP status codes, login, uploads, email and database connectivity.
- Only then remove obsolete images or containers.
Do not run destructive docker compose down -v operations or rebuild a stack until you have verified that the database is stored in a persistent volume and that the backup can restore it. The same-host Discourse guidance emphasizes checking persistent database storage before bringing stacks down or rebuilding.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Monitoring and capacity management
Track RAM usage, swap activity, CPU load, disk utilization, inode consumption, database size, backup age, certificate expiry and HTTP error rates. Alert before disk reaches 100 percent; databases and container logs can fail unpredictably when no space remains.
Symptoms and likely causes
| Symptom | Checks | Likely corrective action |
|---|---|---|
| Both sites become slow or stop together | RAM, swap, load average, kernel out-of-memory messages and disk space | Reduce memory pressure, stop nonessential jobs, add RAM or move one workload to another VPS. |
| Only the forum returns 502 | Discourse container status, local port 8080 and Discourse logs | Restart or repair Discourse, then verify Nginx’s upstream port and proxy timeout. |
| Only WordPress returns 502 | WordPress container status, PHP errors, local port 8081 and database connectivity | Restore the WordPress stack or database connection; do not change the forum proxy block. |
| Redirect loop or mixed secure links | X-Forwarded-Proto, application URL settings and canonical hostname |
Forward the HTTPS header and set each application’s URL to its public HTTPS address. |
| Uploads fail despite available application space | Host disk, inode count, volume ownership and proxy request limits | Free or expand disk, correct permissions and raise request limits only when required. |
| Certificate renewal fails | DNS, port 80 reachability, ACME logs and Nginx configuration | Restore validation access, fix the relevant server block and renew before expiry. |
Common setup mistakes
Publishing both applications on port 80
The first container starts and the second fails with an address-in-use error. Keep only Nginx on public ports and bind each application to a distinct local port.
Using the wrong public URL inside an application
Discourse or WordPress may generate links to an internal hostname or HTTP URL. Set the application hostname to its public HTTPS name and ensure Nginx forwards the original host and protocol.
Exposing databases for convenience
Remote database access is rarely necessary for this layout. Use an SSH tunnel or a private network for administration rather than publishing database ports, and restrict any temporary rule immediately after use.
Assuming containers equal backups
Containers are replaceable; persistent volumes are where production data lives. A successful image pull does not restore uploads, settings or database rows. Back up and test the volumes and database dumps separately.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Running at the minimum indefinitely
The 1 GB Discourse minimum with swap is not a combined performance target. If swap is constantly active, PHP workers are being killed, or database latency rises during backups, add resources before traffic grows or separate the workloads.
A practical validation checklist
- Both DNS names resolve to the VPS and no stale address remains.
- Nginx is the only process bound to host ports 80 and 443.
- Discourse responds on its internal port and WordPress responds on its own internal port.
- Each HTTPS hostname reaches the correct application and redirects from HTTP.
- Discourse recognizes HTTPS, sets secure cookies and sends mail successfully.
- WordPress can log in, upload media and connect to its database.
- Database, Redis and application ports are not internet-accessible.
- Backups include both databases, application files, media and proxy configuration.
- A restoration test has been completed and the next backup and certificate-renewal times are monitored.
When to split the servers
Move Discourse or WordPress to a second VPS when resource contention becomes regular, when either site needs a separate maintenance window, or when a shared outage is unacceptable. Splitting hosts also lets you scale CPU, RAM, storage and geographic placement independently. The trade-off is another reverse-proxy and firewall configuration, additional backups, more monitoring and potentially higher cost.
Keeping both stacks together is reasonable for a small community and a modest content site when you have tested restores and enough headroom above Discourse’s baseline. The decisive question is not whether Docker can start both applications; it is whether your capacity, recovery process and availability expectations can tolerate one shared machine.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

