Skip to main content
  1. Posts/

Ultimate Guide to the r/selfhosted New Project Megathread (Week of 09 Jul 2026) – Pick, Deploy & Scale Your Next Self‑Hosted App

·6 mins

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:

  1. A surge of AI‑powered tools (e.g., LocalGPT‑Lite, VisionForge) that promise on‑prem inference without cloud fees.
  2. Major price cuts from European VPS providers (Hetzner, Scaleway) after the Q2 bandwidth surcharge ended.
  3. 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? #

RankProjectCategoryWhy the Community Loved ItCommon Concerns
1️⃣LocalGPT‑LiteAI / LLMRuns a 1.8 B parameter model on 8 GB RAM; zero‑cost inference.GPU requirement for larger models.
2️⃣VisionForgeMedia / VisionSelf‑hosted stable‑diffusion pipeline with WebUI, supports batch jobs.High GPU power draw, need for cooling.
3️⃣HomeBoxHome AutomationReplaces multiple proprietary hubs; integrates Zigbee, Z-Wave, MQTT.Learning curve for Zigbee adapters.
4️⃣BitTorrent‑Tracker‑ProNetworkingPrivate tracker with built‑in analytics, perfect for small seedboxes.Legal considerations around copyrighted content.
5️⃣KitsuneCMSCMS / BloggingLightweight, 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:

CampPreferred Provider(s)Rationale
European‑FirstHetzner, ScalewayLow latency in EU, generous traffic caps (20 TB), €3‑5/month for 2 vCPU/8 GB.
North‑American FlexLinode, DigitalOceanSimpler UI, strong support for US‑based IP ranges (important for geo‑blocking).
Bare‑Metal PuristsOVH, Hetzner DedicatedFull 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 ufw with a default deny policy, adds a rate‑limit on SSH, and sets up traefik as a reverse‑proxy that enforces mutual TLS for any container exposing :8080 or higher.

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:

  1. Vertical Scale – Upgrade the VPS tier (Hetzner CX31 → CX41).
  2. 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 #

SolutionCost (€/mo)Setup ComplexityPerformanceSecurity PostureIdeal Persona
Hetzner Cloud + Zero‑Trust Kit5‑9Low‑Medium (CLI + Docker)Excellent for 8‑16 GB RAM workloadsHigh (ufw + mTLS)DIY hobbyist, small SaaS
DigitalOcean Droplet + DO Marketplace Apps6‑12Very Low (1‑click)Good, but limited to provider’s imagesMedium (managed firewalls)Beginner, quick‑launch
Linode + K8s (LKE)15‑30High (K8s learning curve)Scalable, auto‑healHigh (network policies)DevOps professional
Bare‑Metal Server (OVH) + Proxmox45‑80High (hardware provisioning)Best for GPU‑intensive AIVery High (isolated VMs)Power‑user, AI researcher
Raspberry Pi Cluster (Home Lab)<5Medium (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:

  1. Hetzner Cloud CX31 (2 vCPU, 8 GB RAM, 80 GB SSD) – €5.99/mo after the promotional credit.
  2. Zero‑Trust Starter Kit – One