SuspiciousCarrot78

@SuspiciousCarrot78@aussie.zone · Joined ⁨May⁩ ⁨2026⁩

Replying to @⁨Mondez@lemdro.id⁩

Using a sledgehammer to crack a wallnut can be satisfying :)

Besides, the kids are always finding fun and inventive ways to break the TV, so I figured set it up once and then let the bot handle it.

Twelfth Doctor: This is Clara, not my assistant. She’s a… Some other word.

Clara: I’m his carer.

Twelfth Doctor: Yeah, my carer. She cares so I don’t have to.

Replying to @⁨scarabic@lemmy.world⁩

What would you like to know about it?

I glossed over it the other day here -

aussie.zone/comment/24336560

From go to woah (including the compute), total project cost is about $1400 USD / ~$2K AUD. I realise I have the privilege of claiming that’s not a lot, but for a hobby spend that makes me happy / does useful stuff (see TV example above), it’s not a lot.

Replying to @⁨echodot@feddit.uk⁩

OK, here’s a real life use case, small time as it is, that has nothing to do with anything rarefied.

I have a TCL Android TV that, after some “unapproved measures”, runs without a Google account - FLauncher as the front end, telemetry blocked, home media streaming, YouTube ad-free. The yar har har works.

Two days ago the kids come in. TV’s not working.

Jellyfin: fine. Nova Player: fine. Stremio, YouTube, anything hitting the net: dead.

We’d had a brownout that day, so I figured the router was scrambled. Reset it, re-added the network… and Smarttube now launches, plays for 30 seconds, then hard-locks. Just weird JSON vomit and then dead.

At that point I’m thinking the TV is fucked. Options:

  1. factory reset and reinstall the workarounds - 2-3hrs of pain-in-the-ass fuckery, but it wouldn’t be the first time.

  2. crawl the net decoding cryptic error codes.

  3. take it in for repair (good luck with that).

  4. fall down a TV diagnostics rabbit hole.

Instead, I chose option 5)

I told my local LLM: “This TV is on this IP. This laptop has ADB access. I’ve given you MCP tools with ADB libraries. Here’s the issue, here’s what I tried. Check prior history of what I did for this project, figure out what’s wrong now and fix it, or tell me it’s broken.

If it looks like the brownout caused corruption, factory reset, stream-install the backup APKs directly, sign in my accounts, get it back up and running.

Failing that, if it’s looking like a hardware issue, push a diagnostic tool, test the TV and tell me which parts I might need, as well as likely costs using eBay or Amazon. I’m happy to spend $50 on this shitbox and not one cent more. If the fix looks like it’s more than $50, find me a TV of this size under $200. Prefer local shop X or Y.

Present everything as markdown in the usual folder, using house style. Ping me on my phone if you need me to authorise anything or when you’re done with the TL;DR.”

The agent ADBs in, pokes around, tests, checks the WiFi, and figures out the brownout had corrupted the date and time.

Turns out this p.o.s doesn’t have a RTC back up battery.

Wrong clock = certs flagged as invalid = no net.

It syncs the date and time with my location. Boom, everything comes back.

Now, could I have twigged it myself?

Yes - eventually. But the agent already had the tools, knew the TV’s prior state, and had a record of what I’d already tried.

It could’ve reset the TV, sideloaded all my apps, re-signed into my accounts - the whole lot - if needed.

This is not the only time I’ve had real world use of my local, and it had very little to do with “writing functions”.

I had a project - jailbreak my tcl. Over time, I’d stored enough context of what I had done in the LLM and its tools, so that it could do what I’d do (and more), faster, based on the constraints I had put in place.

People that call these things “spicy autocorrect” are demonstrating either a skill issue or a lack of imagination.

Replying to @⁨TheLegendaryAssholeOfJushinLiger@sh.itjust.works⁩

Just in defence of your point:

I prefer to self host, and am in the process of setting up my entire system to run off solar (tiny 2x250 watt solar array, 3 deep cycle 100Ah marine batteries and sundry equipment).

End to end, my AI rig - a BC-250 (a cut down PS5, basically) consumes 50w standby / 200w on inference and can run Qwen 3.6-27b (Ternary Bonsai specifically, about par with Sonnet 4.6 on the AAII) at good speeds (~30 tok/s)

With a smart power plug and Raspberry pi (uses about 5w) as the pilot fish, I can run my entire system “off grid”, to say nothing of the excess solar that accumulates (several days battery back up to run home router, pi server, hard drive array and 2-3hrs daily of inference).

For $1500 AUD, “Poor man’s Sonnet 4.6 at home” ain’t nothing to sneeze at.

Outside of folks such as myself, this blog post may be of interest -

blog.andymasley.com/…/individual-ai-use-is-not-ba…

blog.andymasley.comUsing ChatGPT is not bad for the environmentAnd a plea to think seriously about climate change without getting distracted

Replying to @⁨ReluctantMuskrat@lemmy.world⁩

This is my final reply in this thread. The developer has said their piece, and I have said mine. Now you’ve waded in - so let me set the record straight.

I am a developer. I had genuine interest in this project. I read the Hister documentation and inspected parts of the repository because the documentation did not clearly answer several basic questions I had:

  • How SQLite, Bleve, and stored HTML relate.

  • Whether TTL or storage quotas exist.

  • How browser-history deletion affects stored data.

  • How previews differ from a real web archive.

  • What multi-user isolation actually covers.

Yes, I used AI to assemble a plain-language summary and labelled it accordingly. Not everyone keeps the Hister codebase in their head, not everyone talks in code review and if I had these questions, I’m willing to bet others did too. The AI wrote for a lay audience because I didn’t ask it to do QA, I asked it to ELI-5.

The summary contained errors. Fine. That’s AI for you. However, if neither I nor the AI could find clear answers after cloning the repo, that supports my point about opacity.

At no point did I request a line-by-line audit. “Points 2 and 5 are wrong” would have answered the question.

Declining would also have been reasonable. Hell, side stepping it would have been fine too. Instead the dev decided to note the inaccuracies and rudely brush them off.

Both you and the dev seem to be under the impression !selfhosted is a one way distribution channel.

The developer came here, invited questions, then turned the raw prawn when questions arrived.

I didn’t go to their their Github. I didn’t abuse them. I genuinely wanted to know more about their project and share it, perhaps even work to help improve it.

They - and now you, ostensibly a happy clapper for Hister - came here.

Your claims about my effort and intent are assumptions followed by personal abuse.

Try and walk a mile in someone else’s shoes before calling them low effort and shitty next time.

Replying to @⁨asciimoo@lemmy.ml⁩

That is not what happened.

I fed your GitHub repository to a clanker because the documentation did not answer my questions. I then shared its summary here.

You replied afterwards and said the summary was wrong. Fair enough. I then asked which specific points were wrong.

You could have answered, declined, or ignored the post.

Instead, you deigned only to dismiss the effort, then blamed me for objecting.

You also asked which parts were confusing, although my previous reply had already listed those issues.

You did not address them then, either.

A prospective user should not need ChatGPT, a cloned repository, and several follow-up questions to understand key functions.

You invited feedback. Your documentation remains unclear on several points, including issues beyond those I listed.

Your responses show that further feedback is not worth my time.

Replying to @⁨asciimoo@lemmy.ml⁩

I am happy to narrow it further.

I took the time to read the documentation, ask ChatGPT to summarise what I found, and then reduced my follow-up to a simple request:

«Which of points 1–7 are materially wrong?»

That is not the same as asking you to audit “multiple screens” of AI output.

If the answer is “2 and 5 are incorrect”, or even “I do not have time to review it”, that is perfectly fine.

However, dismissing it as “a multiple screens long AI prompt” does not only not answer the question, it comes off as abrasive.

As for the documentation, the confusing parts are exactly those I listed: retention, lifecycle management, browser ingestion, storage limits, deletion, multi-user behaviour, and, most importantly, what Hister actually is and who it is for.

What’s disappointing is not that you disagreed with the AI summary. AIs are idiots.

It that after inviting questions and feedback, your response to a genuine attempt to understand the project is curt dismissal.

The inner workings of Hister may be obvious to you; they are not obvious to others.

The point is that you came here specifically to invite questions and feedback.

“TL;DR” does not encourage the sort of community engagement you ostensibly came here to seek.

Replying to @⁨asciimoo@lemmy.ml⁩

Excellent - thanks for clearing that up.

Is there a TTL / max database size per user setting? Say I have 4 users using the server; can I allocate a hard limit of 10GB per user, with 180 day retention rules?

Additionally, is the other parenthetical information materially correct? If not, which points [1 thru to 7] are wrong?

I would like to further recommend Hister but your documentation is somewhat confusing at first blush.

Replying to @⁨asciimoo@lemmy.ml⁩

If anyone else is confused what this does, I pointed the clankers at it and asked. Way to bury the lede OP.

See [6] for some missing features (?) that would be nice to clear up.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

[3]

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

[4] What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.

[5]

Yes. By default, Hister stores its data in SQLite:

Search index and metadata: db.sqlite3

Stored HTML previews: separate files on disk

Configuration: YAML

It can also use PostgreSQL instead of SQLite if you want.

Regarding browser history, there are two separate things:

  1. Your browser’s history database (Chrome, Firefox, etc.).

  2. Hister’s own index.

They are independent after import.

For example:

Monday: You visit example.com.

The extension sends the page to Hister.

Hister stores the text, title, URL, metadata, and optionally the HTML preview.

Tuesday: You clear Chrome’s history.

The Hister copy remains. Clearing your browser history does not delete Hister’s copy. Hister is designed to be a long-term knowledge store, not a mirror of your browser history.

If you want Hister to forget something, you must delete it from Hister itself. The web UI and terminal both support deleting indexed entries.

I actually like that design. If it deleted documents every time you cleared browser history, it would defeat one of its main purposes. It treats browser history as an ingestion source, not as the source of truth.

[6]

From the current documentation:

Are sources timestamped?

Yes.

Each indexed document records at least:

Added timestamp.

Updated timestamp.

For browser pages, the visit timestamp.

URL, title, and metadata.

Is there a TTL (auto-expiry)?

No.

I could not find any TTL, age-based expiry, or retention policy.

Documents remain until you delete them or overwrite them with newer content.

Can I set a maximum database size?

Not that I can find.

There is no option such as:

10 GB maximum.

Delete oldest first.

Keep only the last 365 days.

Limit to 1 million documents.

You can reduce storage by:

Disabling HTML previews.

Limiting indexed file size.

Restricting indexed file types.

Excluding paths or domains.

Can I cleanly delete by topic?

Partly.

You can:

Delete individual documents.

Delete crawl jobs (but not the indexed documents).

Label imported content.

Query by labels and metadata.

Configure rules to stop future indexing.

I did not find built-in support for bulk deletion such as:

“Delete everything about Tesla.”

“Delete all Reddit pages.”

“Delete every page tagged AI.”

The API may allow scripted deletion, but I did not see a first-class “delete by query” feature in the documentation.

Is browser ingestion automatic?

Yes.

That is one of its main features.

Once the browser extension is installed and pointed at your server:

Every page you visit is captured automatically.

The extension extracts the rendered page.

It sends it to Hister.

If the page later changes, the extension periodically checks it and updates the stored copy.

Duplicate visits update the existing document rather than creating a new one.

You do not need to press a button.

My only concern

This project feels like it is missing a lifecycle policy.

For a personal knowledge base, I would want options such as:

Keep browser pages for 90 days.

Keep GitHub forever.

Keep PDFs forever.

Delete pages that nobody has opened for two years.

Maximum database size: 20 GB.

Delete by label or query.

I could not find those features in the current documentation.

The project is very good at collecting information. It appears less mature at managing its lifetime. That would probably become the first thing I wanted if I intended to leave it running for years.

[7]

Yes, on both counts.

Can I exclude particular sites?

Yes, and it is quite flexible.

Hister has skip rules that apply before a page enters the index. You can exclude:

Entire domains.

Subdomains.

URL patterns.

Login pages.

Admin pages.

Cookie consent pages.

Anything that matches a regular expression.

For example:

^reddit//.com/ ^mail//.google/.com/ ^https://.*.bank.com/

Those pages never enter the index.

The nice part is that the rules apply both to new browser captures and to re-index operations, so they stay excluded.

How does multi-tenancy work?

It is better than I expected.

Each user has:

Their own login.

Their own search index.

Their own browser history.

Their own skip rules.

Their own search aliases.

Their own API token.

If you and your wife both use the same Hister server:

You ├── browser history ├── indexed pages ├── rules └── API token

Wife ├── browser history ├── indexed pages ├── rules └── API token

Neither user can search the other’s documents.

There is also a global area.

You can configure directories such as:

/shared/docs

Those appear in everyone’s searches, while personal folders remain private.

One feature I really like

Directory indexing also supports user ownership.

For example:

alice -> /nextcloud/alice bob -> /nextcloud/bob global -> /shared/docs

The server enforces that visibility automatically. Even administrators do not automatically see other users’ indexed files.

Overall, I came into this expecting “browser history search”. After reading the documentation, it is closer to a lightweight, self-hosted personal search appliance with sensible multi-user support. The remaining gaps are lifecycle management features such as retention policies, TTL, storage quotas, and richer bulk deletion. Those do not appear to be built in.

posted in Selfhosted

What's your favourite thing to self host and why?

Topic per title, basically.

For me: after setting up all the integrations and fall overs using the arr stack and Jellyfin (inc Sabnzdb etc)… I keep circling back to Nova video player.

github.com/nova-video-player/aos-AVP/releases

It’s arguably not even self hosting…but there something undeniably cool about sticking a USB stick into a router, installing a single app on your TV and boom, done. EDIT: of course, it can consume the *arr stack, integrate with Ombi etc

IOW, I really like stuff that simple to set up and punches above its weight class.

NOVA opeN sOurce Video plAyer: main repository to build them all - nova-video-player/aos-AVPGitHubReleases · nova-video-player/aos-AVPNOVA opeN sOurce Video plAyer: main repository to build them all - nova-video-player/aos-AVP

Replying to @⁨irmadlad@lemmy.world⁩

I think I’m going to put a declarations.md that says something like “I made this for me, but I’m sharing it with the world. If you find it useful, use it and let me know! If you find issues, submit request and I’ll look but no promises. And if you want feature X … fork it and build it. The code’s yours, with my blessings. PS: I don’t accept PRs, sorry”.

I code for fun; I’m not looking for a third unpaid job. That’s what parenting is for.

Replying to @⁨Lumisal@lemmy.world⁩

Interesting question. If you are asking for an LLM (that is self-hosted and can do that?), you’re going to need to provide some significant tooling, like rag / documentation, troubleshooting, sort out concurrency, front end etc. Honestly…it just easier to point them at a YouTube (network chuck has good stuff).

It absolutely can be done and it absolutely can be valuable - for you personally. But if they’re having trouble doing basic things like installing jelly fin, they have zero chance of doing something like that themselves.

Honestly, I think your easiest option for your non-technical friends is just to point them at one of the cloud providers, like chatGPT or Claude.

OTOH, how much work are you willing to put into this and what’s your GPU / LLM set up like? There

Your basic foot in door starting point is going to be installing and provisioning OpenWebui, getting a good local model up and running (Qwen3.6-35B or Qwen3.6-27B) and creating a “Knowledge Base” in OWUI with requisite documentation. You’ll need to set up tailscale / headscale so they can access your OWUI instance from their homes, too.

If you’re serious about this, write back and I’ll thumbnail sketch it out for you. It’s a good project and I’ve done similar. There are real complexities to something like this beyond just “install ollama, lol done”.