{"id":15017222,"url":"https://github.com/thisisnttheway/headless-anki","last_synced_at":"2025-07-11T11:36:20.252Z","repository":{"id":221990544,"uuid":"755893632","full_name":"ThisIsntTheWay/headless-anki","owner":"ThisIsntTheWay","description":"Headless Anki, containerized","archived":false,"fork":false,"pushed_at":"2024-09-17T07:12:11.000Z","size":59,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-12T11:49:21.249Z","etag":null,"topics":["anki","ankiconnect"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ThisIsntTheWay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2024-02-11T12:07:27.000Z","updated_at":"2025-04-06T09:54:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c128803-5062-4f0a-8e7e-81ced45b096d","html_url":"https://github.com/ThisIsntTheWay/headless-anki","commit_stats":null,"previous_names":["thisisnttheway/headless-anki"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ThisIsntTheWay/headless-anki","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThisIsntTheWay%2Fheadless-anki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThisIsntTheWay%2Fheadless-anki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThisIsntTheWay%2Fheadless-anki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThisIsntTheWay%2Fheadless-anki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ThisIsntTheWay","download_url":"https://codeload.github.com/ThisIsntTheWay/headless-anki/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ThisIsntTheWay%2Fheadless-anki/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264795926,"owners_count":23665255,"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":["anki","ankiconnect"],"created_at":"2024-09-24T19:50:03.706Z","updated_at":"2025-07-11T11:36:20.228Z","avatar_url":"https://github.com/ThisIsntTheWay.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Headless Anki\nHeadless Anki with the AnkiConnect plugin installed.  \nUseful in automation workflows.\n\nThe default user profile is as barebones as it can get.\n\nThe following volumes are exposed and can be mounted by the user:\n- `/data`: Anki data (Profile, decks etc.).\n- `/export`: Path that can be used for exporting Anki decks, e.g. using the AnkiConnect API.\n\n## Usage\nTo run, execute:\n```bash\ndocker run -d -p 8765:8765 -v $(pwd)/export:/export thisisnttheway/headless-anki:latest\n```\n\nTo bring your own Anki profile, mount it on `/data` in the container:\n```bash\ndocker run -d -v ~/.local/share/Anki2:/data thisisnttheway/headless-anki:latest\n```\n\n\u003e [!WARNING]\n\u003e If you do bring your own profile, make sure that your AnkiConnect configuration doesn't have a listen address of `localhost`\n\n\u003e [!TIP] \n\u003e Launch the container with the environment var `ANKICONNECT_WILDCARD_ORIGIN=1` to set `webCorsOriginList` in AnkiConnects config to `[\"*\"]`.  \n\u003e **This will modify your existing config** if you bring your own profile!  Your existing config file will be backed up to `config.json_bak_ha` first, however.  \n\u003e - If this ENV var is unset/not equal to 0, this backup will be restored (if existing)\n\nYou can also use other QT platform plugins by setting the env var `QT_QPA_PLATFORM`:\n```bash\ndocker run -e QT_QPA_PLATFORM=\"offscreen\" ...\n```\n\nBy default, Anki will be launched using `QT_QPA_PLATFORM=\"vnc\"`.  \nThis will enable Anki to be accessed using a VNC viewer which might help with debugging, provided port `5900` is forwarded:  \n![](images/vnc_gui.png)\n\n## Building\nTo quickly build the image yourself, issue:\n```bash\ndocker build --progress=plain . -t headless-anki:custom\n```\n\nDifferent versions of each component (Anki, QT, AnkiConnect) can be installed.  \nSupply those versions as build flags:\n```bash\ndocker build \\\n    --build-arg ANKICONNECT_VERSION=25.2.25.0 \\\n    --build-arg ANKI_VERSION=25.02.4 \\\n    --build-arg QT_VERSION=6 \\\n    -t headless-anki:custom \\\n    .\n```\n\nFor available versions, refer to:\n- [Anki GitHub releases](https://github.com/ankitects/anki/releases)\n- [AnkiConnect releases](https://git.sr.ht/~foosoft/anki-connect/refs)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthisisnttheway%2Fheadless-anki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthisisnttheway%2Fheadless-anki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthisisnttheway%2Fheadless-anki/lists"}