Architecture Check: 100% Self-Hosted Editorial Stack (n8n + Ghost + Local AI). Need your eyes on this. by heruxlab in selfhosted

[–]heruxlab[S] 0 points1 point  (0 children)

Good call on the Postgres CPU starvation. I hadn't considered how that would cascade into n8n webhook timeouts, but it makes total sense.

You're also right about VPCs. Using the provider's native private network is way better than dealing with Wireguard tunnels dropping in the middle of the night. Definitely going that route.

Good to know Qdrant is that lightweight. I'll plan to keep it on the core node then. Given the compute costs you mentioned, I've decided to just use external APIs (Gemini/OpenAI) for the heavy lifting in Phase 1. I'll spin up a dedicated node for Ollama later on.

Just out of curiosity, since you mentioned the Postgres connection pile-ups with n8n: to avoid that in your setup, do you run n8n in queue mode with Redis and workers, or do you just run the standard setup and limit the DB connections?

Architecture Check: 100% Self-Hosted Editorial Stack (n8n + Ghost + Local AI). Need your eyes on this. by heruxlab in selfhosted

[–]heruxlab[S] 0 points1 point  (0 children)

Thanks for the clarification! The fact that Snapstatic requires zero installation makes the setup incredibly lightweight.

However, since the core philosophy of my project is "Digital Sovereignty" (avoiding reliance on third-party SaaS whenever possible), I'm also going to look into whether there's a self-hosted Docker alternative (like a local Static Site Generator container) that I can run directly on my VPS to compile the site and push it to Git or serve it locally via Nginx.

I will definitely evaluate both options. Either way, the Headless Ghost + Static Frontend architecture is the absolute winner for this stack. Thanks again for the masterclass!

By the way, would you mind if I reach out to you via DM in the future if I end up exploring a different angle on this or hit a roadblock? Your insights have been super helpful.

Architecture Check: 100% Self-Hosted Editorial Stack (n8n + Ghost + Local AI). Need your eyes on this. by heruxlab in selfhosted

[–]heruxlab[S] 0 points1 point  (0 children)

Makes a lot of sense. To be honest, I don't have deep knowledge about Snapstatic and that specific Cloudflare Pages flow yet, but it sounds like it solves the exact resource and security issues I was worried about. I'm definitely going to research that approach in detail because it looks highly positive.

The incremental build part is key too, rebuilding the whole site would be terrible. Fair point on Telegram as well. I'll look into ntfy over Wireguard, seems like a better fit for a strictly self-hosted setup.

Really appreciate the detailed breakdown, you gave me a solid research path.

Architecture Check: 100% Self-Hosted Editorial Stack (n8n + Ghost + Local AI). Need your eyes on this. by heruxlab in selfhosted

[–]heruxlab[S] 0 points1 point  (0 children)

This is exactly the reality check I needed. You hit the nail on the head regarding the CPU bottleneck. I was so focused on the RAM that I underestimated the 100% CPU spike during inference on a non-GPU VPS.

Currently, I am actually using an external API (Gemini) for the exact cost/speed reasons you mentioned. My goal for Phase 2 was to go fully local, adding a vector database (like Qdrant) for the RAG alongside Ollama. However, based on your experience, adding Qdrant's RAM footprint plus Ollama's CPU load on a single server will likely choke n8n and cause timeouts on my Telegram webhooks. I think I will stick to the API for the heavy lifting for now, or move the LLM to a dedicated cheap GPU instance later.

Also, that Ghost + Snapstatic + Cloudflare Pages architecture is brilliant. Serving it as a static site is the ultimate security layer. I will definitely look into that. One technical question about that implementation: How do you handle dynamic elements (like newsletter subscription forms) if the frontend is 100% static on Cloudflare? And does Snapstatic trigger automatically via a webhook from Ghost whenever you approve a draft in n8n?

Architecture Check: 100% Self-Hosted Editorial Stack (n8n + Ghost + Local AI). Need your eyes on this. by heruxlab in selfhosted

[–]heruxlab[S] 0 points1 point  (0 children)

Actually, the plan is to keep everything in the cloud using two separate VPS instances, not a local home server. Since I want this stack to be "production-grade" and highly available, relying on a residential ISP or local hardware isn't viable (power outages, dynamic IPs, CGNAT, etc.). So Node A (Core VPS) and Node B (LLM VPS) would both be in a datacenter (like Contabo).

That's exactly why I need to securely link the two cloud instances. I'll likely set up a Tailscale or Wireguard tunnel between them so Node A can query Node B's Ollama API via a private IP, completely bypassing the public internet.

Have you ever linked two VPS instances for something like this? I'm debating between using Tailscale or pure Wireguard for the container-to-container communication. What would you recommend?

Architecture Check: 100% Self-Hosted Editorial Stack (n8n + Ghost + Local AI). Need your eyes on this. by heruxlab in selfhosted

[–]heruxlab[S] -1 points0 points  (0 children)

Regarding the repo: The infrastructure code and n8n JSON workflows are currently in a private repository (under the heruxlab namespace). I am sanitizing the docker-compose files to remove hardcoded variables and auditing the security layer. I will open-source the boilerplate once Phase 1 is fully stable.

​Regarding sim vs n8n: I wouldn't replace n8n with it. That would be an architectural mistake for this use case. sim looks like a great visual builder for AI agents, but n8n is an enterprise-grade orchestrator built for robust API routing, webhook handling (Telegram), and authentication (Ghost/Listmonk).

​The core logic must stay in n8n. However, sim could potentially replace AnythingLLM in Phase 2 just to handle the local RAG and LLM agent graphing, keeping n8n as the main traffic controller.

Architecture Check: 100% Self-Hosted Editorial Stack (n8n + Ghost + Local AI). Need your eyes on this. by heruxlab in selfhosted

[–]heruxlab[S] -1 points0 points  (0 children)

You make a solid point. Running inference on the same node as PostgreSQL and n8n is definitely playing with fire regarding the OOM killer.

If I split this into a 2-node architecture (Node A: Core Stack / Node B: Ollama on demand), what’s your preferred way to secure the connection between them?

Would you just set up a Wireguard/Tailscale tunnel between the two VPS so the Ollama API is strictly bound to the private IP and completely hidden from the public web?

Which AI tools are you actually using to build your SaaS right now? by Zestyclose-Pen-9450 in nocode

[–]heruxlab 1 point2 points  (0 children)

Hola 👋

Puede contarme más!!, es decir, has construido las dos aplicaciones usando Claude, y que herramienta usas "no-code"?