{"id":26256374,"url":"https://github.com/d7sd6u/obsidian-git-annex-autofetch","last_synced_at":"2025-04-28T14:43:02.165Z","repository":{"id":280460301,"uuid":"937942199","full_name":"d7sd6u/obsidian-git-annex-autofetch","owner":"d7sd6u","description":"Seamlessly use files that are not present in the current git annex repository in Obsidian","archived":false,"fork":false,"pushed_at":"2025-03-15T01:33:03.000Z","size":57,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T10:33:46.579Z","etag":null,"topics":["git-annex","obsidian","obsidian-plugin"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d7sd6u.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-24T06:57:45.000Z","updated_at":"2025-03-15T01:33:04.000Z","dependencies_parsed_at":"2025-03-03T15:37:47.445Z","dependency_job_id":"087f69ed-df56-407c-bdf7-e0664b48dfff","html_url":"https://github.com/d7sd6u/obsidian-git-annex-autofetch","commit_stats":null,"previous_names":["d7sd6u/obsidian-git-annex-autofetch"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d7sd6u%2Fobsidian-git-annex-autofetch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d7sd6u%2Fobsidian-git-annex-autofetch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d7sd6u%2Fobsidian-git-annex-autofetch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d7sd6u%2Fobsidian-git-annex-autofetch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d7sd6u","download_url":"https://codeload.github.com/d7sd6u/obsidian-git-annex-autofetch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251332024,"owners_count":21572543,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git-annex","obsidian","obsidian-plugin"],"created_at":"2025-03-13T20:17:43.860Z","updated_at":"2025-04-28T14:43:02.155Z","avatar_url":"https://github.com/d7sd6u.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# git-annex autofetch\n\n_Do you know what git-annex is? If not, you should definitely check [this](https://github.com/d7sd6u/obsidian-lazy-cached-vault-load?tab=readme-ov-file#wait-a-minute-what-are-folderindex-notes-what-are-ftags-what-do-you-mean-annexed) out._\n\nSeamlessly view, preview, embed (in notes and in Canvas), download and share files (images, videos, PDFs, archives and any other filetypes) that are not present in the current git-annex repository. Works on mobile and on desktop.\n\n## Patches\n\n### View\n\nhttps://github.com/user-attachments/assets/45fa88e6-d3a2-4f40-a03e-1f9b5503dfd9\n\n### Preview\n\nhttps://github.com/user-attachments/assets/8bdb4bdb-b3bb-4558-8af8-92aa9b5bb8d0\n\n### Embed\n\nhttps://github.com/user-attachments/assets/5194ef8b-56fb-4545-b632-8179d7616a44\n\n### Download\n\nhttps://github.com/user-attachments/assets/5dc53184-0631-42ea-b2c6-dafe46f4b97d\n\n### Share\n\nhttps://github.com/user-attachments/assets/1a4867ca-7005-4dad-8e4e-496ba37254fb\n\n## Setup\n\nFor this plugin to work you have to have a web server serving your `.git/annex/objects` folder. This server has to serve your repository that has all the annexed files that you want to be available from Obsidian - so most of the time it is the repository that has every file.\n\nAdditionally, you can setup an image optimizer service that would compress and re-scale images before serving them.\n\nAlso you have to enter the template for blob urls, one specifically for compressed (or uncompressed) images and one for intact blobs.\n\nOn Linux with bind-fs, Docker and Traefik this is how it could be hosted:\n\n`/etc/fstab`:\n\n```\n/home/user/Vault /home/user/server/vault-mirror fuse.bindfs nofail,perms=a+r:a-w,resolve-symlinks 0 2\n```\n\n`~/server/docker-compose.yml`:\n\n```yaml\nversion: \"3.8\"\nservices:\n    vault-static:\n        image: flashspys/nginx-static\n        restart: always\n        networks:\n            - proxy\n            - default\n        volumes:\n            - ./vault-mirror/.git/annex/objects:/static/\n        labels:\n            - \"traefik.enable=true\"\n            - \"traefik.http.services.vault-static.loadbalancer.server.port=80\"\n            - \"traefik.http.routers.vaultstatic.rule=Host(`vaultstatic.your.host`) \u0026\u0026 PathPrefix(`/raw/secret/`)\"\n            - \"traefik.http.routers.vaultstatic.middlewares=stripauth-static,allowcorsall\"\n            - \"traefik.http.middlewares.stripauth-static.stripprefix.prefixes=/raw/secret\"\n            - \"traefik.http.middlewares.allowcorsall.headers.accesscontrolalloworiginlist=*\"\n    vault-optimiser:\n        image: h2non/imaginary\n        restart: always\n        networks:\n            - proxy\n            - default\n        command: -enable-url-source -allowed-origins http://vault-static -http-cache-ttl 31556926\n        labels:\n            - \"traefik.enable=true\"\n            - \"traefik.http.services.vault-optimiser.loadbalancer.server.port=9000\"\n            - \"traefik.http.routers.vault-optimiser.rule=Host(`vaultstatic.your.host`) \u0026\u0026 PathPrefix(`/secret/`)\"\n            - \"traefik.http.routers.vault-optimiser.middlewares=stripauth-optimiser,allowcorsall\"\n            - \"traefik.http.middlewares.stripauth-optimiser.stripprefix.prefixes=/secret\"\nnetworks:\n    default:\n        external: false\n    proxy:\n        external: true\n```\n\nThen the templates would be:\n\n```\nhttps://vaultstatic.your.host/secret/resize?width=300\u0026url=http://vault-static/{{{objectpath}}}\nhttps://vaultstatic.your.host/raw/secret/{{{objectpath}}}\n```\n\n## Limitations\n\nCurrently it has to download PDF files on mobile for them to work. Sharing also requires downloading the shared file.\n\n## Workflows\n\nAs git-annex is cumbersome on Android phones, instead of Termux+git-annex I use the following setup:\n\n(Desktop) main git-annex repo \u003c-\u003e (Desktop) mobile-mirror git-annex repo \u003c-\u003e (Mobile) Syncthing sync folder\n\nSyncthing syncs git-annex pointers just fine, so everything works out of the box. There are a few downsides however, downloaded files are synced from your phone to the mirror (so, double the bandwidth usage) and present files are duplicated on your desktop (so, double the storage usage for files that are present on your phone).\n\n## Network use\n\nThis plugin only makes HTTP(S) requests using the templates provided in the settings tab of the plugin. No default templates are provided, thus no network requests are made before the user sets the settings.\n\n## Other plugins\n\n- [auto-folder-note-paste](https://github.com/d7sd6u/obsidian-auto-folder-note-paste) - makes sure your attachments are \"inside\" your note on paste and drag'n'drop by making your note a folder note\n- [folders-graph](https://github.com/d7sd6u/obsidian-folders-graph) - adds folders as nodes to graph views\n- [reveal-folded](https://github.com/d7sd6u/obsidian-reveal-folded) - reveal current file in file explorer while collapsing everything else\n- [hide-index-files](https://github.com/d7sd6u/obsidian-hide-index-files) - hide folder notes (index files) from file explorer\n- [crosslink-advanced](https://github.com/d7sd6u/obsidian-crosslink-advanced) - adds commands to deal with [ftags](https://github.com/d7sd6u/obsidian-lazy-cached-vault-load?tab=readme-ov-file#wait-a-minute-what-are-folderindex-notes-what-are-ftags-what-do-you-mean-annexed)-oriented vaults: add ftags, create child note, open random unftagged file, etc.\n- [virtual-dirs](https://github.com/d7sd6u/obsidian-virtual-dirs) - adds \"virtual\" folder files / folder indexes. You can open them, you can search for them, but they do not take space and \"materialise\" whenever you want a _real_ folder note\n- [viewer-ftags](https://github.com/d7sd6u/obsidian-viewer-ftags) - add ftags as chips on top of markdown/file editors/previews. And children as differently styled chips too!\n\n## Contributing\n\nIssues and patches are welcome. This plugin is intended to be used with other plugins and I would try to do my best to support this use case, but I retain the right to refuse supporting any given plugin for arbitrary reasons.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd7sd6u%2Fobsidian-git-annex-autofetch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd7sd6u%2Fobsidian-git-annex-autofetch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd7sd6u%2Fobsidian-git-annex-autofetch/lists"}