Releases: fccview/degoog
[Beta] - 0.13.0
Dev note
We are definitely getting close to a stable release, things are proceeding well and the codebase is getting cleaner and easier to collaborate on. The extensions ecosystem is growing steadily and the community is actually very positive, thank you so much for all the amazing third party extensions you all have been building. They are making this project special.
I want to spend a minute welcoming @Arkmind as an official maintainer ❤️ he quickly proved to be extremely valuable and knowledgeable, he made a HUGE code contribution and he keeps finding ways to improve the codebase and make the app smoother. Working with him has been and will definitely continue be a blast.
Changelog
features
- Add i18n translations support (ships with en/fr/it), entirely made by @Arkmind
- Add a more comprehensive logger with multiple levels of logging
["fatal", "error", "warn", "info", "log", "debug"]. TheLOGGERenv variable is now deprecated in favour ofLOG_LEVEL- also brought to you by @Arkmind - Refactor codebase to be more modular around registries, I never thought this would end up being as modular as it actually is, so I made it easier to create a new registry in the moment we want new store item types
- Add no-referrer policy to avoid leaving a fingerprint #58
- Move the At a Glance and Knowledge Panel slots into their own plugins so people can disable them if they don't want it. If you use AI summary you'll now need to manually disable the at a glance plugin or you'll end up with both.
- Enable domain replacement in results. eg: repalce reddit[.]com -> troddit[.]domain[.]com. #25
- Allow blocking of search results by domain (best with regex support). eg: blocking quora[.]com , tiktok[.]com #25
- Support global, instance-wide settings so preferences persist across multiple devices. #25
- Allow POST for search and autosuggestion #36 - Thank you @Arkmind
bugfixes
[Beta] - 0.12.0
Already release?
After last release there was a fairly major bug on results streaming, so fixing it here, but also adding curl to next release made me think something pretty fun can be done.
Introducing transports
This is a new store type, it allows you to decide how a request to an engine happens. Initially I was only using the default bun fetch function, then i've started adding proxies and eventually I've added support for curl, all of this made me realise that the only way to TRULY keep up with engines changing constantly is to allow people to figure out their own way to fetch (on top of whatever I provide built in).
I have made an example transport in the official store for FlareSolverr to try getting around the pesky cloudflare pages some engines have. Plus in my unofficial store you'll find the 1337x engine which will only work with flaresolverr 9 times out of 10 anyway.
Changelogs
bugfixes
- Fix issue where refreshing the page during engine streaming would crash the server (sorry)
- Allow engine streaming on tab searches too (e.g. custom tabs now also stream results)
features
- Add support for transports (read docs here - check a transport example)
[Beta] - 0.11.0
Attention extensions developers
Theming has entirely changed (I only did this because we are still in beta, I'd never change something to this extent without being in a beta. I made everything more modular and easier to work with, and if i hasn't done it now it would never have happened.
There's no need to override full html files anymore, each section is an individual component (template) and the entire html structure of each template can be changed. This was A LOT of work and planning, I hope you like the system.
The docs will be fully updated so you can update your themes. Old themes will NOT work after this update, and new themes will NOT work with old versions. Sorry. I suggest everyone updates to the latest version of the app and the latest version of every store whilst developers update things (all developers of the repos in the readme are in discord and have been warned of this, so they'll update their themes).
Changelogs
bugfixes
- Updated nsfw settings to be a bit less pushy, it now should all feel too balanced, so sorry for the sudden more gooner-ish results you had until this new version from reddit 🤦
- Fix issue with sock5 proxies not working and http proxies leaking, after this release proxies should be quite tight
- Fix individual engine timings being all the same, I was calling the function in the wrong place, sorry, they now show accurate timing PER engine
- Allow disabling of the
speedtestplugin - Fix engines waiting for some plugins types to render, engines now ALWAYS take priority
features
- Update logo font
- Fully re-invent theming system to be extremely modular, it now uses templates for various areas of the site that can be individually replaced. EVERYTHING can be changed without the need to fully replace core html files.
- Add section for advanced settings for engines, I'll eventually make it so things can be appended to it from custom engines.
- Add individual engine scoring (advanced settings), defaults to
1adding a new number it'll append a multiplier to the scoring system. Aggregating scores will always be higher, however it'll push results from higher scored engines at the top compared to lower scored engines (i'd frankly leave it empty) - Add ability for admin to set a specific "scraping" method for engines (fetch vs curl) to get around various tls blocks
- Added ability to hide default sidebar items per device - Thank you @benjaminRoberts01375
- Add ability to stream results instead of waiting for all engines to load (also allow auto re-try)
- Slightly switch layout of the settings page to something more scalable for future ideas
- Separate client/server settings into two different sections so users know what persists and what doesn't
[Beta] 0.10.0
Little dev note
Small update on my kid's situation - transplant went well and he's recovering beautifully.
We are still in intensive care but should move to the ward soon enough. Unless something terrible happens the worst part is almost over ❤️
Changelogs
bugfixes
- Created
entrypoint.sh, application starts as root and chowns/app/datato a defined or defaultPUIDandPGID, this should make it easier to run the app rootless. - Credential exfiltration in /api/proxy/image, API key is now only forwarded if the destination hostname matches the plugin's stored url.
- Fixed potential extension store path traversal
- Fixed potential X-Forwarded-For IP spoofing, added a
DEGOOG_DISTRUST_PROXYenv var. Default behavior is unchanged. Set it to stop trusting the header when running without a reverse proxy. - extension settings modal now correctly sends x-settings-token on save. Previously all saves returned 401 silently when settings auth was configured.
- Fix issue with store not working when installing degoog via proxmox VE #33 #12
- Fix settings back button to go back to previous screen ONLY if the previous screen was degoog, otherwise default to homepage
- Fix images resolution due to proxy mistake #39
- Fix various styling inconsistencies
- Fix PWA icon and sort out cors issues around webmanifest to make the install button consistent across majority of homemade reverse proxies.
features
- Add language dropdown to search results (fully customisable from settings) #19
- If you are developing/have developed custom engines make sure to add the new lang context (check the official store ones for my implementations), it's not mandatory but it'll be nice for users to get custom languages for custom engines too, so I made it scalable.
- Add a
DEGOOG_DEFAULT_SEARCH_LANGUAGEenv variable for default search language - Add custom daterange option (doesn't work all the times, it really depends on the engines, but it DOES help filter out some results, we can keep working on it)
- Add ability to open search results in a new tab (thank you @tacheraSasi - #31)
- Change docker image to use alpine version (thank you @otomaid - #32)
- Add lightbox zoom to image search results #34
- Add engines breakdown to image/video results with retry button
- Removed safe mode on engines for all the gooners in the chat and added a configurable option per engine to re-enable it. Custom engines will now support that too
official store updates
- Most engines will require an update after this release, so all new features will work (it's minor stuff)
- Added the ddg image engine which adds a ton of new images to image search
- Added the brave search via api - I kinda worked blind on this one as I don't have an api key (requested, still awaiting for it), their documentation is very clear and I fed the output to a few llms telling them to fight each other for my soul and tell me if it works and they all said it should be working and only suggested changes that frankly added a ton of unnecessary bloat, so we should be good. If you have an api key for brave can you test and report in the issues tab if you find any problem?
[Beta] 0.9.0
Little dev note
Hi all,
Things are proceeding very well with the project and in normal circumstances I'd start the process to go to a stable version and out of beta (we need to come up with a good name for the project!!)
However as many of you know my kid just had his SECOND liver transplant (he's 3yo). This means I'm way way slower than I'd like to be <3
Changelogs
bugfixes
- Fix positioning on time filter so on mobile it doesn't go outside the viewport
- Remove ugly scrollbar on search result tabs when it needs scrolling, it looks better without
- Plugins/themes/engines were not understanding default values and were always falsly showing as configured. They now show an orange dot if they have required fields not being configured and a green dot if nothing is needed for the plugin to work by default.
- Make sure plugin assets are only loaded if a plugin is enabled
- Change google user agents, we're starting to play cat and mouse with google lol
features
- Improve system to pull extensions into the store, repos automatically pull on refresh but individual plugins will need to be manually updated (or you can update them all with the handy "update all" button). Developers will need to remember to update the
package.jsonof extension repositories so the store knows new versions are available. This way users can make conscious decisions based on changelog rather than blindly update everything. - Allow plugin developers to let user choose positioning of slot plugin via settings.
- Allow POST request from engines that use graphql
[Beta] 0.8.0
Note
There is a bug around the store that makes it so if a plugin has default settings it needs to be configured and saved before they apply, I'll fix it but I didn't want to stop a release for that, it seems to be an old bug and not caused by this release as I have it on my prod instance too.
Changelogs
features
- Add browser-like headers to engines to further improve block prevention
bugfixes
__THEME_CSS____THEME_ATTRS__and__PLUGIN_ASSETS__were not applied to the themes that contained overrides- Uninstall button was not working on the store items
clean up
- Code diff may seem huge but actually quite a small release. I am treating it as a major version bump due to having touched most of the codebase, so it's technically major. It's mostly files being moved around and imports being automatically updated by vscode, I wanted to do a bit of a clean up and reorganising before going out of beta (sometimes soon-ish).
[Beta] 0.7.1
Changelog
bugfixes
- Fix encoding issue in autosuggest when using special characters
- Fix AI summary follow ups, it now uses the full search context for follow ups too and allows you to converse about the search results themselves.
features
- Add rate limit settings that should prevent potential ddos attack and query spam on your public instances
store updates
- Fix issues where plugins couldn't be disabled
- Make math plugin replacing at a glance instead of showing up above the search results
[Beta] 0.7.0
Changelogs
features
- Add customisable prompt to the built in AI summary plugin, users can now decide what the AI receives together with the search context in order to give a proper response.
- Add optional conversational input to AI summary, to dive deeper on the search result context
- Settings now use full on urls for tabs, so you can navigate directly to a specific setting - thank you @Supernova3339
- Added ability to create new tabs in the search results page which can trigger anything you want (search type included)
- Engine types now automatically generate tabs in the search results, so if you make an engine of type "maps" for example it'll create a "maps" tab in the search result
- Added ability to search for type with
images:ornews:orfile:before the query (e.g.images:adam sandler) - Add new env variable
DEGOOG_PUBLIC_INSTANCEthat can be set totrueto make your instance safely public and gate all settings/server side actions/api calls. This way the only settings available will be the browser specific ones (e.g. dark/light mode and engines being turned on/off) - Revamped store to filter items better as there's way more plugins now that I was envisioning initially, so added a little UI change there
- Revamped
!helpcommand to be more modular for the same reason as above
store changes
- New engine created:
internet-archivewhich also adds the tabfileto the search results.
[Beta] 0.6.1
Changelogs
bugfixes
- Fix rss feeds to aggregrate rather than only use the top result
- Fix store to actually pull the latest version of plugins into the data folder and not just in the store folder, this way if you refresh a custom store you'll automatically update all plugins that you have installed (without needing to uninstall and re-install).
[Beta] 0.6.0
Changelogs
features
- Refactor codebase to be easier to work with, make sure everything is typed and in the right folders, things should make more sense in case you want to contribute now
- Add a message on store repository if the repos have new updates
official store changes
Some built in functionality is now a third party plugin, please make sure to refresh the store and install them from there if you were using them previously. This also means you'll have to update the settings, sorry about this, trying to make sure the core app is as bare as possible
- Moved the rss built in engine to be its own
!rsscommand (same functionality) and allow desktop feed via settings. - Moved the Jellyfin and Meilisearch plugins out of the builtins and made them third party, to keep the default search even more minimal
- in
./data/plugin-settings.jsonyou'll need to addplugin-in front of thejellyfinandmeilisearchkeys in the json object for the settings to be applied (or you can delete all your melisearch/jellyfin settings and re-apply the from the UI).
- in