Menu
Home
Forums
New posts
Search forums
What's new
Featured content
New posts
New media
New media comments
New resources
Latest activity
Media
New media
New comments
Search media
Resources
Latest reviews
Search resources
Misc
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Menu
Log in
Register
Install the app
Install
Home
Forums
Labrish
Nalij
Jinaral Q and A
Any Zimbweans here who are into vibe coding and SEO?
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
[QUOTE="Borrowdale Barron, post: 90435, member: 6"] You download it and install it. Normal desktop app, Windows and Linux, running on your own machine. No website, no account on my server, no dashboard I can peek into. Self-hosted means the whole thing lives on hardware you control. The app, the database, the search index, the AI model, all of it. Your site's data never leaves your building. That matters commercially because agency clients get twitchy about handing crawl and revenue data to a third party. It matters legally because some of them genuinely aren't allowed to. There's a stronger version of the commitment baked into the design, called the walled garden. The shipped product opens no inbound network surface and has to pass an air-gapping audit, meaning it works with the network cable pulled out. That one rule has killed several otherwise sensible technical choices, and I'll come back to it because the story is a good one. It ships as four editions from a single codebase, built as separate profiles with independent version numbers. Public is the self-hosted blank slate, one-click install, and a clean uninstall, for anyone. Personal is the one running on my own hardware, which I reach over remote desktop. Agency is multi-user, a shared backend the agency itself manages for its customers. Dev and testing are command-line and headless, which exists so AI agents can drive the test suites without a screen in front of them. Under the surface, the app supervises its own infrastructure. There's a database, a search engine, a local AI runtime, metrics collection, and error tracking in there. A real server stack, and the user sees none of it. That's not laziness in the documentation; it's a written boundary. The user must never need to understand Docker Compose, IP addresses, OpenSearch shards, PostgreSQL administration, model servers, embedding batches or deployment promotion. It launches like a desktop product, and the plumbing is supervised internally. The pieces themselves, since you'll see the names again. Docker Compose runs the services, with Ansible and OpenTofu handling the host and any external infrastructure. Inside the Compose project sits the Spring core, a diagnostic broker, PostgreSQL as the canonical store with Apache AGE for graph queries, OpenSearch for text and vector search, and llama.cpp running CPU only local models. Alongside those are Prometheus for metrics, Grafana Tempo for traces, an OpenTelemetry collector for transport and GlitchTip for errors. Exactly one published application port. Product databases and named data volumes are preserved through every operation, which is a safety absolute rather than a preference. The AI parts run locally too. Qwen3 Embedding 0.6B turns text into vectors, a BGE reranker re-sorts results, and a small generative model handles phrasing and labelling. All in GGUF format through llama.cpp, CPU first, no GPU required. The important restriction is that the generative model is authoring time only and never touches the measurement loop. It proposes wording, a human approves it, and after that the prompt set is frozen data rather than something being generated fresh. Temperature zero, pinned model version, fixed seed, so any run can be replayed exactly. Paid embedding APIs are banned outright. Sending customer query data to a third party breaks the local first promise and the air gap promise in the same move. The hardware target is deliberately modest. Sixteen gigabytes of RAM, eight cores, no GPU assumed. There's a documented memory contract with a hard peak, a floor that stays resident, an envelope per workload, and exactly one heavy mode allowed to run at a time. That constraint does a lot of design work for free. It's why the architecture is one careful process family instead of a dozen hungry services. One more rule governs all of it. Nothing hardcoded, ever. No hostnames, no IP addresses, no ports as magic numbers, no file paths, no thresholds, no machine names anywhere. Everything comes from an environment variable, a config file, a database-backed setting, or a validated hardware profile. Someone else will eventually clone this onto a MacBook or a Lenovo, and it has to simply work. A hardcoded value counts as a failure to follow instructions and gets fixed on the spot, even in a file nobody asked me to touch. [/QUOTE]
Insert quotes…
Name
Post reply
Home
Forums
Labrish
Nalij
Jinaral Q and A
Any Zimbweans here who are into vibe coding and SEO?
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.
Accept
Learn more…
Top