Releases: Aster1630/Noctis
v0.4.1
This is a small maintenance release. No new features, development on Noctis is currently paused while I focus on other obligations. The project remains fully functional and open-source.
What's Changed
- feat:
deploy/uninstall.shcleanly removes the systemd service and install directory, with an option to preserve your.env, database, and Tantivy index - docs: README updated to reflect that active development is halted
- chore: version bump to v0.4.1
Self-host it:
bash <(curl -fsSL https://astersworld.xyz/install.sh)To uninstall:
bash ~/noctis/deploy/uninstall.shSupport the project
Noctis is free and open-source. If it's been useful to you, I accept Bitcoin:
bc1qwtluwd698qys3mw7m84tumgxk7dtju448nk3ak
Sharing it with someone who might find it useful means just as much. Thanks for checking it out.
Full Changelog: v0.4.0...v0.4.1
Noctis by Aster - v0.4.0
This update delivers full local search, Noctis can now build and query its own full-text index from crawled pages, no external service required. Also includes a live admin dashboard, BM25 ranking with freshness and authority boosts, query expansion, and fixes for two cache bugs. Addresses security vulnerability in pytest (DoS / privilege escalation, fixed in 9.0.3).
What's Changed
- feat: Tantivy-backed local full-text index BM25 ranking with freshness + domain authority boosts
- feat: priority-queue URL frontier (
crawl_frontiertable) crawl priority based on inbound links and depth - feat: APScheduler daily crawl scheduling configurable cron, starts with the app
- feat: query expansion via Porter stemming + optional synonym map (
config/synonyms.json) - feat: pluggable
localbackend transparently skipped when index is empty, activates automatically after first crawl - feat: admin dashboard at
/admin/indexlive-polling stats, crawl history, stop/trigger crawl, rebuild index - feat:
seed_index.pyscript bootstrap the local index from a curated list of mainstream sites (Wikipedia, MDN, Stack Overflow, Reddit, and more) - fix: safesearch level now included in cache key, distinct cache entries per safe search setting
- fix: image search now isolates SearXNG and DDG errors independently DDG fallback when SearXNG is unavailable
- chore: refactor
app/search.py→app/search/package (engine,ranking,query_expansion) - feat: 7 new test files full suite at 72 tests green
- docs: new
docs/admin.md,docs/local-index.md,docs/performance.md - chore(deps): bump pytest from 8.3.4 to 9.0.3 (DoS / privilege escalation fix)
Self-host it:
bash <(curl -fsSL https://astersworld.xyz/install.sh)Run it again on an existing install to update to this release. The installer will prompt for ADMIN_TOKEN on fresh installs — set this to enable the admin dashboard.
Seed your local index after upgrading:
cd ~/noctis && source .venv/bin/activate
python scripts/seed_index.py --crawl --pages 500Support the project
Noctis is free and open-source and I plan to keep it that way. If it's been useful to you and you want to help keep it going, I accept Bitcoin:
bc1qwtluwd698qys3mw7m84tumgxk7dtju448nk3ak
Sharing it with someone who might find it useful means just as much. Thanks for checking it out.
Full Changelog: v0.3.0...v0.4.0
Noctis By Aster - v0.3.0
This update is a major step toward standalone search, introducing a pluggable backend architecture, a SQLite-backed result cache, a metadata web crawler, and a dedicated filter/sort UI. Also addresses CVE-2026-24486 for the python-multipart dependency.
What's Changed
- feat: introduce pluggable
BackendRegistrywith graceful fallback chain in #13 - feat: SQLite-backed result cache with configurable TTL — zero-latency repeat queries in #13
- feat: async metadata web crawler with
robots.txtsupport — foundation for local search index in #13 - feat: dedicated
/filterspage — domain/keyword filter, sort order, date range, safe search override in #13 - feat: pytest suite covering registry, fallback, cache, and crawler (33 tests) in #13
- feat: CI improvements — parallel test job, pip caching,
GITHUB_TOKENleast-privilege permissions in #13 - docs: added Privacy Policy and Terms of Service pages
- chore(deps): bump python-multipart from 0.0.26 to 0.0.27 by @dependabot in #7
Self-host it:
bash <(curl -fsSL https://astersworld.xyz/install.sh)Run it again on an existing install to update to this release.
Support the project
Noctis is free and open-source and I plan to keep it that way. If it's been useful to you and you want to help keep it going, I accept Bitcoin:
bc1qwtluwd698qys3mw7m84tumgxk7dtju448nk3ak
Sharing it with someone who might find it useful means just as much. Thanks for checking it out.
Full Changelog: v0.2.2...v0.3.0
Noctis by Aster — v0.2.2
This Update addresses CVE-2026-24486 for the python-multipart dependency and some small documentation changes!
What's Changed
- chore(deps): bump python-multipart from 0.0.26 to 0.0.27 by @dependabot[bot] in #7
- ci: Added release-draft Workflow (Thanks @olliemochi for the help!)
Self-host it:
bash <(curl -fsSL https://astersworld.xyz/install.sh)Run it again on an existing install to update to this release.
Support the project
Noctis is free and open-source and I plan to keep it that way. If it's been useful to you and you want to help keep it going, I accept Bitcoin:
bc1qwtluwd698qys3mw7m84tumgxk7dtju448nk3ak
Sharing it with someone who might find it useful means just as much. Thanks for checking it out.
Full Changelog: v0.2.1...v0.2.2
Noctis by Aster — v0.2.1
This update fixes image search for publicly hosted instances of Noctis. If you were getting no results or errors on the Images tab after deploying, this should sort it out.
Image search now runs exclusively through your SearXNG instance — the DuckDuckGo fallback has been removed. If SEARXNG_URL isn't set, you'll get a clear error instead of a silent failure. Thumbnails also had a hotlink protection issue that's now fixed.
What's new:
- Image search no longer silently fails — returns a proper error if
SEARXNG_URLis not configured - Removed DuckDuckGo image fallback — SearXNG is now the sole image search backend
- Fixed thumbnail loading on public/cloud deployments via
referrerpolicy="no-referrer" - Active tab (Web / Images) now has a subtle background highlight so it's clearer which one you're on
Self-host it:
bash <(curl -fsSL https://astersworld.xyz/install.sh)Run it again on an existing install to update to this release.
Support the project
Noctis is free and open-source and I plan to keep it that way. If it's been useful to you and you want to help keep it going, I accept Bitcoin:
bc1qwtluwd698qys3mw7m84tumgxk7dtju448nk3ak
Sharing it with someone who might find it useful means just as much. Thanks for checking it out.
Noctis by Aster — v0.2.0
This update adds image search, a much improved installer, and proper hosting documentation so it's easier to get Noctis running the way you want.
The image search pulls from your SearXNG instance if you have one set up, and falls back to DuckDuckGo if not. Results show up in a grid on the same page just switch between the Web and Images tabs after any search.
What's new:
- Image search with a responsive thumbnail grid → uses SearXNG if configured, DuckDuckGo otherwise
- Web / Images tab switcher on the results page
- Installer now pulls from GitHub releases instead of raw git → so you always get code that's been intentionally tagged, not just whatever was last committed
- Running the installer on an existing install now automatically restarts the service so the update actually takes effect
- New deploy guide covering both Cloudflare Tunnel (public, your own domain) and Tailscale (private, your own devices) → see
deploy/README.md
Self-host it:
bash <(curl -fsSL https://astersworld.xyz/install.sh)Run it again on an existing install to update to this release.
Support the project
Noctis is free and open-source and I plan to keep it that way. If it's been useful to you and you want to help keep it going, I accept Bitcoin:
bc1qwtluwd698qys3mw7m84tumgxk7dtju448nk3ak
Sharing it with someone who might find it useful means just as much. Thanks for checking it out.
Noctis by Aster — v0.1.0
Hey! This is the first real release of Noctis, my self-hosted search frontend that pulls results from SearXNG and DuckDuckGo and combines them into one clean interface.
I built this because I wanted a search page that was actually mine. No tracking, no ads, no logs. Searches are never written to disk, not even in the system journal. The live version runs here if you want to try it before setting up your own.
Note: Noctis was developed on CachyOS and tested on Debian-based systems (i.e. Debian v12+, Ubuntu 24.04 LTS+, RPi OS v12+) It should work on most Linux distros but those are the ones I can vouch for.
What's included:
- Dark and light theme
- Multi-backend search with SearXNG + DuckDuckGo running in parallel → results that appear in both get ranked higher
- Per-user settings saved as cookies: safe search, language, link behavior, theme, and which sources to use
- Graceful error handling → if one backend goes down, the other keeps working
- One-line installer for self-hosting on a Pi or Ubuntu server
- Cloudflare Tunnel config included so you can expose it publicly without opening any ports
- No search logs → queries are never written anywhere
Self-host it:
bash <(curl -fsSL https://astersworld.xyz/install.sh)The installer handles everything — clones the repo, sets up a venv, asks for your SearXNG URL (optional), and installs a systemd service. Run it again later to pull updates.
Don't want to expose it publicly? Use Tailscale.
Not everyone wants their instance on the open internet, which is fair. If you just want it accessible from your own devices, Tailscale is the easiest option — no port forwarding, no firewall rules, nothing exposed.
- Install Tailscale on the machine running Noctis and on whatever you want to access it from → Tailscale
- Sign in with the same account on both, they'll find each other automatically
- Get your host's Tailscale IP:
tailscale ip -4 - Open Noctis from any device on your Tailnet:
http://100.x.x.x:8000
That's it. If you enable MagicDNS in the Tailscale admin panel you can use a hostname instead of the IP, like http://mypi:8000.
Support the project
Noctis is free and open-source and I plan to keep it that way. If it's useful to you and you want to help keep the server running, I accept Bitcoin:
bc1qwtluwd698qys3mw7m84tumgxk7dtju448nk3ak
Sharing it with someone who might find it useful means just as much. Thanks for checking it out.