Commit Graph
38 Commits
Author SHA1 Message Date
junvandCopilot 3955e95b9e geo: replace ip-api.com with local DB-IP City Lite MMDB
- Rewrite nginxmon/geo.py to use maxminddb + DB-IP City Lite MMDB
  (https://cdn.jsdelivr.net/npm/dbip-city-lite/dbip-city-lite.mmdb.gz)
  instead of ip-api.com HTTP API — eliminates all network timeouts and
  rate-limit issues; lookups are now sub-millisecond in-process
- Keep _lookup_batch() signature unchanged so routermon receiver
  requires no changes
- MMDB downloaded on first use (lazy) and refreshed monthly via
  APScheduler; reader cached module-level (thread-safe for reads)
- Add management command: manage.py download_geo_db
- Update k8s init container to download MMDB on first deploy if absent
- Add maxminddb==3.1.1 dependency

CC BY 4.0 — DB-IP (https://db-ip.com)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-16 16:44:02 +10:00
junvandCopilot 611305b0ab fix(routermon): fix receiver startup, logging config, and JS template escaping
- Remove SO_REUSEADDR from UDP socket so only one gunicorn worker binds
  port 5514 (second worker intentionally gets EADDRINUSE and skips)
- Add print() fallback for bind confirmation/errors so startup is visible
  even when Django logging config is not fully set up
- Fix duplicate LOGGING dict in settings.py: second assignment was
  overriding the first and removing the root logger handler, silently
  swallowing all routermon/core startup logs
- Add sys.stderr fallback in core/apps.py ready() for startup exceptions
- Fix JS SyntaxError: {{ top_domains_json }} needs |safe filter since
  Django auto-escapes quotes to &quot; inside script tags

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-16 14:58:39 +10:00
junv 5b1df2ee5e Add router monitor 2026-04-16 14:01:43 +10:00
junv 049d417cc8 Remove knowledge graph feature
The knowledge graph feature (links graph) was not functioning correctly
and was slowing down the application. This commit removes it entirely:

- Delete knowledge_graph_urls.py, knowledge_graph_views.py, llm_client.py
- Delete knowledge_graph.html template
- Remove KnowledgeGraphSnapshot model and all llm_*/kg_* fields from
  SiteSettings (migration 0048)
- Remove build_knowledge_graph() and schedule_kg_build() from tasks.py
- Remove KG settings save logic and bulk delete action from views.py
- Remove knowledge_graph_urls include from links/urls.py
- Remove schedule_kg_build scheduler job from core/apps.py
- Remove KG snapshot job registry from links/apps.py
- Remove Knowledge Graph nav item from base.html
- Remove KG settings cards and llmSettingsHelper JS from settings.html
2026-04-14 12:04:44 +10:00
junv 7eb002a437 Add nginx visualization 2026-04-01 15:51:20 +11:00
junv 20c7857302 Add building graph 2026-03-30 18:06:46 +11:00
junv 3a20fcb63a Optimize frontend 2026-03-29 11:10:37 +11:00
junv c26c620f78 Add redis caching 2026-03-29 10:23:46 +11:00
copilot-swe-agent[bot]andwahyd4 768ab6c5d8 feat: add build time and version info to Docker image and page footer
Agent-Logs-Url: https://github.com/wahyd4/links/sessions/514d1f3d-d003-4f16-9a54-d221dba306f7

Co-authored-by: wahyd4 <836576+wahyd4@users.noreply.github.com>
2026-03-27 01:12:04 +00:00
junv 7a7dedab88 Update 2026-03-22 16:29:38 +11:00
junv f4d36e6953 Add image imports 2026-03-22 16:15:53 +11:00
junvandCopilot f6f115690b Fix llms.txt/ai-plugin.json URL routing
- Move routes to top of urlpatterns (before catch-all alias resolver)
- Serve directly from committed static/ dir instead of staticfiles/ (STATIC_ROOT)
  so they work without collectstatic being run
- Eliminates APPEND_SLASH redirect to alias catch-all when file not in staticfiles/

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:29:52 +11:00
junvandCopilot 9d0f1fc87c Make API docs LLM-friendly
- Add operationId to all 20 API operations
- Add tag groups (Pages, Posts, Collections, Images, Files) with descriptions
- Enrich info.description with concept table, usage patterns, and examples
- Add /llms.txt (llmstxt.org standard) with plain-text API overview
- Add /.well-known/ai-plugin.json (OpenAI plugin manifest)
- Add URL routes for llms.txt and ai-plugin.json

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:23:51 +11:00
junvandCopilot 64871ab7e0 Fix OpenAPI docs, add image import, file preview modal, keyboard nav
- Fix OpenAPI YAML: correct components/schemas indentation (was inside paths:)
- Downgrade openapi version 3.1.0 → 3.0.3 for ReDoc 2.5.2 compatibility
- Add /import/images/<path> endpoint with worker-mode background download
- Add source_url field to FileUpload model (migration 0044)
- Add file preview modal with image/video/audio/unsupported cases
- Add arrow key navigation + prev/next buttons + file counter in modal
- Add /import/images/{image_url} to OpenAPI spec with source_url field

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:11:44 +11:00
junv 8777aabdc9 Update image folder 2026-03-22 14:36:10 +11:00
junv 1ffdb5d2ba Fix static resources issue 2026-03-21 22:49:18 +11:00
junv a8ff146e95 Try to fix css broken issue 2026-03-21 22:39:00 +11:00
junv 2e47fd1046 Update settings 2026-03-21 22:08:50 +11:00
junv 45e7289755 Update debug 2026-03-21 21:14:16 +11:00
junv 332654a726 Test files API 2026-03-21 20:45:23 +11:00
junv 7f7a890ad5 Update files function! 2026-03-21 20:30:44 +11:00
junv b8c256424e Fix build error and page screenshot issue! 2026-03-21 16:55:22 +11:00
junv 551fdf5cbb Add network scan 2026-03-21 16:41:14 +11:00
junv 4d256c2e07 Add craw4ai 2025-11-04 22:22:40 +11:00
junv d5d6855834 Update 2025-11-04 21:42:54 +11:00
junv 41a8726fd3 Update worker to be apscheduler 2025-11-04 20:15:43 +11:00
junv 21ead6ab54 Make editing custom link work 2025-06-11 22:01:13 +10:00
junv 3e7d300d7f Add image thumnail 2024-11-24 10:31:26 +11:00
junv af3d1f84b3 Update music 2024-11-18 15:06:06 +11:00
junv f299874daa Update playing music logic 2024-11-18 13:56:02 +11:00
junv bbda32887e be able to upload and view images 2024-11-17 12:26:23 +11:00
junv f8abdfee75 first version images 2024-11-17 11:11:08 +11:00
junv fc15d9093c Update default time zone to au 2024-11-09 09:10:51 +11:00
junv 03573880ed Add favicon 2024-11-09 08:48:36 +11:00
junv c5cba262c8 run beats every 2 mins 2024-11-04 23:18:52 +11:00
junv b1878f9ce7 Fix api endpoints 2024-11-04 22:00:11 +11:00
junv 5eb4047028 Update 2024-11-04 16:39:15 +11:00
junv ea08f337d7 Add logic to display thumbnails 2024-11-04 15:20:18 +11:00