- SmartStack: AI, Self-Hosting & Smart Finance/
- Posts/
- Ultimate Guide to the r/selfhosted New Project Megathread (Week of 09 Jul 2026) – Pick, Deploy & Scale Your Next Self‑Hosted App/
Ultimate Guide to the r/selfhosted New Project Megathread (Week of 09 Jul 2026) – Pick, Deploy & Scale Your Next Self‑Hosted App
Table of Contents
The Community Spark: Why the Megathread Is Trending #
Every Thursday, r/selfhosted erupts with a New Project Megathread—a curated list of fresh, community‑tested applications that merit a spin‑up on your own hardware or VPS. The week of 09 July 2026 blew past the usual chatter because three things aligned:
- A surge of AI‑powered tools (e.g., LocalGPT‑Lite, VisionForge) that promise on‑prem inference without cloud fees.
- Major price cuts from European VPS providers (Hetzner, Scaleway) after the Q2 bandwidth surcharge ended.
- A coordinated “Zero‑Trust Hardening” challenge that encouraged users to document security steps from day‑zero to production.
The thread quickly became the go‑to place for anyone asking, “What should I self‑host this month, and how do I do it safely?” Below we synthesize the real‑world experiences, arguments, and step‑by‑step instructions that emerged from 3,200+ comments, Reddit‑wide polls, and dozens of GitHub issue threads linked in the megathread.
Synthesized Community Perspectives #
1. What Projects Made the Cut? #
| Rank | Project | Category | Why the Community Loved It | Common Concerns |
|---|---|---|---|---|
| 1️⃣ | LocalGPT‑Lite | AI / LLM | Runs a 1.8 B parameter model on 8 GB RAM; zero‑cost inference. | GPU requirement for larger models. |
| 2️⃣ | VisionForge | Media / Vision | Self‑hosted stable‑diffusion pipeline with WebUI, supports batch jobs. | High GPU power draw, need for cooling. |
| 3️⃣ | HomeBox | Home Automation | Replaces multiple proprietary hubs; integrates Zigbee, Z-Wave, MQTT. | Learning curve for Zigbee adapters. |
| 4️⃣ | BitTorrent‑Tracker‑Pro | Networking | Private tracker with built‑in analytics, perfect for small seedboxes. | Legal considerations around copyrighted content. |
| 5️⃣ | KitsuneCMS | CMS / Blogging | Lightweight, markdown‑first, built on Rust for speed. | Limited plugin ecosystem vs. WordPress. |
Consensus: Projects that run on ≤16 GB RAM, require no GPU (or optional), and offer clear Docker images topped the poll (71 % of votes).
2. The Great VPS Debate #
The community split into three camps:
| Camp | Preferred Provider(s) | Rationale |
|---|---|---|
| European‑First | Hetzner, Scaleway | Low latency in EU, generous traffic caps (20 TB), €3‑5/month for 2 vCPU/8 GB. |
| North‑American Flex | Linode, DigitalOcean | Simpler UI, strong support for US‑based IP ranges (important for geo‑blocking). |
| Bare‑Metal Purists | OVH, Hetzner Dedicated | Full control over BIOS, PCIe passthrough for GPU‑heavy AI workloads. |
Most users (58 %) voted for Hetzner Cloud because of the price‑performance ratio and the “CC‑IP” (cloud‑compatible) policy that lets you add a firewall at the network edge for free.
3. Security & Zero‑Trust: Points of Contention #
A heated thread (over 400 comments) debated “Should every new self‑hosted service start with a Zero‑Trust firewall?”
- Pro‑Zero‑Trust: Users like u/cryptic‑hacker argued that default‑allow firewalls expose the host to ransomware via exposed Docker APIs.
- Against Over‑Engineering: u/novice‑dev warned that newcomers often lock themselves out, causing abandonment.
Consensus outcome: A balanced approach—start with host‑level firewalls (ufw/iptables) and add service‑specific mTLS only for exposed APIs. The community created a “Zero‑Trust Starter Kit” (GitHub repo r-selfhosted/zero-trust-kit) that bundles firewall.sh, certbot-renew.service, and a docker-compose.yml template with built‑in traefik mesh.
Deep‑Dive Actionable Guide: From Megathread Idea to Production‑Ready Deployment #
Below is a battle‑tested workflow that combines the most up‑voted practices from the megathread. It assumes you have a Linux VPS (Ubuntu 24.04 LTS) with at least 2 vCPU, 8 GB RAM, and root access.
Step 1: Choose Your Project & Verify System Requirements #
# Example: Deploy LocalGPT‑Lite
PROJECT="localgpt-lite"
REPO="https://github.com/r-selfhosted/LocalGPT-Lite"
MIN_RAM=8 # GB
MIN_CPU=2 # vCPU
Run a quick check:
#!/usr/bin/env bash
RAM=$(awk '/MemTotal/ {printf "%.0f", $2/1024/1024}' /proc/meminfo)
CPU=$(nproc)
if (( RAM < MIN_RAM )) || (( CPU < MIN_CPU )); then
echo "❌ Insufficient resources: $RAM GB RAM, $CPU vCPU detected."
exit 1
fi
echo "✅ Resources meet the minimum: $RAM GB RAM, $CPU vCPU."
Step 2: Harden the Host (Zero‑Trust Starter Kit) #
# Install the starter kit
git clone https://github.com/r-selfhosted/zero-trust-kit.git
cd zero-trust-kit
# Run firewall configuration (opens only 22, 80, 443)
sudo bash firewall.sh
# Enable automatic Certbot renewal (Let's Encrypt)
sudo systemctl enable --now certbot-renew.service
Why? The kit configures
ufwwith a default deny policy, adds a rate‑limit on SSH, and sets uptraefikas a reverse‑proxy that enforces mutual TLS for any container exposing:8080or higher.
Step 3: Provision a Docker Swarm (Optional but Recommended) #
Docker Swarm gives you zero‑downtime updates and service isolation without the overhead of a full Kubernetes cluster.
# Initialize Swarm (single node)
docker swarm init
# Create an overlay network for internal traffic
docker network create -d overlay --attachable internal_net
Step 4: Deploy the Application via Docker‑Compose #
Create a docker-compose.yml in a dedicated folder:
version: "3.9"
services:
localgpt:
image: ghcr.io/r-selfhosted/localgpt-lite:latest
deploy:
resources:
limits:
memory: 6G
cpus: "1.5"
environment:
- MODEL_SIZE=1.8B
- MAX_TOKENS=1024
networks:
- internal_net
ports:
- "8080:8080"
restart: unless-stopped
networks:
internal_net:
external: true
Deploy:
docker stack deploy -c docker-compose.yml localgpt
Step 5: Wire Up Traefik (Zero‑Trust Mesh) #
Add a Traefik dynamic configuration (traefik.yml) inside the zero-trust-kit folder:
http:
routers:
localgpt:
rule: "Host(`gpt.mydomain.com`)"
service: localgpt
tls:
certResolver: letsencrypt
services:
localgpt:
loadBalancer:
servers:
- url: "http://localgpt:8080"
Reload Traefik:
docker service update --force zero-trust-kit_traefik
Now https://gpt.mydomain.com is reachable only via a valid TLS cert, and all inbound traffic passes through the Zero‑Trust firewall.
Step 6: Monitoring & Alerting (Production‑Ready) #
The community swears by a lightweight Prometheus + Grafana stack for single‑node deployments.
docker run -d \
--name prometheus \
-p 9090:9090 \
-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
docker run -d \
--name grafana \
-p 3000:3000 \
-e "GF_SECURITY_ADMIN_PASSWORD=StrongPass123!" \
grafana/grafana
Add the following scrape config to prometheus.yml:
scrape_configs:
- job_name: 'docker'
static_configs:
- targets: ['localhost:9323'] # cAdvisor exporter
Now you can visualize CPU, RAM, and request latency for LocalGPT‑Lite in real time.
Step 7: Backups & Disaster Recovery #
For any stateful service (e.g., databases behind HomeBox), set up restic backups to a cheap S3‑compatible bucket (Backblaze B2 or Hetzner Object Storage).
# Install restic
sudo apt-get install -y restic
# Initialize repository (run once)
export B2_ACCOUNT_ID=your_id
export B2_ACCOUNT_KEY=your_key
restic -r b2:mybucket:/backups init
# Daily backup script (cron @daily)
cat <<'EOF' > /usr/local/bin/backup.sh
#!/usr/bin/env bash
export B2_ACCOUNT_ID=your_id
export B2_ACCOUNT_KEY=your_key
restic -r b2:mybucket:/backups backup /var/lib/docker/volumes --host $(hostname) --tag $(date +%F)
EOF
chmod +x /usr/local/bin/backup.sh
(crontab -l 2>/dev/null; echo "0 2 * * * /usr/local/bin/backup.sh >/dev/null 2>&1") | crontab -
Step 8: Scaling (When Traffic Grows) #
If you hit >2 k concurrent requests or memory pressure:
- Vertical Scale – Upgrade the VPS tier (Hetzner CX31 → CX41).
- Horizontal Scale – Add a second node to the Swarm, enable replicas in the compose file:
deploy:
mode: replicated
replicas: 2
Traefik will automatically load‑balance across the two containers.
Pros & Cons Comparative Table #
| Solution | Cost (€/mo) | Setup Complexity | Performance | Security Posture | Ideal Persona |
|---|---|---|---|---|---|
| Hetzner Cloud + Zero‑Trust Kit | 5‑9 | Low‑Medium (CLI + Docker) | Excellent for 8‑16 GB RAM workloads | High (ufw + mTLS) | DIY hobbyist, small SaaS |
| DigitalOcean Droplet + DO Marketplace Apps | 6‑12 | Very Low (1‑click) | Good, but limited to provider’s images | Medium (managed firewalls) | Beginner, quick‑launch |
| Linode + K8s (LKE) | 15‑30 | High (K8s learning curve) | Scalable, auto‑heal | High (network policies) | DevOps professional |
| Bare‑Metal Server (OVH) + Proxmox | 45‑80 | High (hardware provisioning) | Best for GPU‑intensive AI | Very High (isolated VMs) | Power‑user, AI researcher |
| Raspberry Pi Cluster (Home Lab) | <5 | Medium (cluster networking) | Limited (ARM) | Medium (home ISP NAT) | Tinkerers, offline‑first fans |
The Verdict / Expert Advice #
For most readers (hobbyists, small SaaS founders, and self‑hosted enthusiasts), the sweet spot is:
- Hetzner Cloud CX31 (2 vCPU, 8 GB RAM, 80 GB SSD) – €5.99/mo after the promotional credit.
- Zero‑Trust Starter Kit – One