{"id":19832078,"url":"https://github.com/ail-project/lacus","last_synced_at":"2025-08-17T05:04:26.765Z","repository":{"id":118130635,"uuid":"533742251","full_name":"ail-project/lacus","owner":"ail-project","description":"Lacus is a capturing system using playwright, as a web service. ","archived":false,"fork":false,"pushed_at":"2025-07-23T14:58:10.000Z","size":6718,"stargazers_count":79,"open_issues_count":1,"forks_count":8,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-08-17T05:02:29.277Z","etag":null,"topics":["web","web-capture"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ail-project.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-09-07T11:49:42.000Z","updated_at":"2025-08-13T15:09:27.000Z","dependencies_parsed_at":"2023-10-01T22:11:37.131Z","dependency_job_id":"c75e896a-cff0-4d50-9899-859b369aa311","html_url":"https://github.com/ail-project/lacus","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":"Lookyloo/project_template","purl":"pkg:github/ail-project/lacus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2Flacus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2Flacus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2Flacus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2Flacus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ail-project","download_url":"https://codeload.github.com/ail-project/lacus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ail-project%2Flacus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270807935,"owners_count":24649346,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["web","web-capture"],"created_at":"2024-11-12T11:36:21.552Z","updated_at":"2025-08-17T05:04:26.695Z","avatar_url":"https://github.com/ail-project.png","language":"Python","readme":"![Lacus Logo](logos/1_horizontal/png/LACUS_horizontal-color.png?raw=true \"Logo\")\n\n# Lacus\n\nA capturing system using playwright, as a web service.\n\n# Install guide with Docker or Podman\nTo run lacus using docker or podman you need docker installed or podman and podman-compose:\n\n```\npodman-compose build # or docker compose build\npodman-compose up # or docker compose up\n# go to http://localhost:7100/\n```\n\n# Install guide\n\n## System dependencies\n\nYou need poetry installed, see the [install guide](https://python-poetry.org/docs/). The [poetry shell plugin](https://github.com/python-poetry/poetry-plugin-shell) is not strictly required, but will make your life easier. You can install it [this way](https://github.com/python-poetry/poetry-plugin-shell?tab=readme-ov-file#installation). \n\n## Prerequisites\n\n\u003e Lacus supports valkey or redis, but valkey is prefered now due to the change of license. So we will use valkey below, but as of now, redis also works.\n\n### Installing valkey\n\nSystem dependencies:\n\n```bash\nsudo apt-get update\nsudo apt install build-essential\n# To run the tests\nsudo apt install tcl\n```\n\nYou need to have valkey cloned and installed in the same directory you clone the lacus repository in:\n`lacus` and `valkey` must be in the same directory, and **not** `valkey` cloned in the `lacus` directory.\n\n```bash\ngit clone https://github.com/valkey-io/valkey.git\n```\n\nCompile valkey:\n\n```bash\ncd valkey\ngit checkout 8.0\nmake\n# Optionally, you can run the tests:\nmake test\ncd ..\n```\n\n## Installation\n\nClone this repository if you haven't done it already:\n\n```bash\ngit clone https://github.com/ail-project/lacus.git\n```\n\nThe directory tree must look like that:\n\n```\n.\n├── valkey  =\u003e cloned valkey\n└── lacus =\u003e cloned lacus\n```\n\nFrom the `lacus` directory, run:\n\n```bash\npoetry install\n```\n\nInstall the system dependencies required by playwright (will call sudo):\n\n```bash\npoetry run playwright install-deps\n# for pydub:\nsudo apt install ffmpeg libavcodec-extra\n```\n\nInitialize the `.env` file:\n\n```bash\necho LACUS_HOME=\"`pwd`\" \u003e\u003e .env\n```\n\nInitialize the config and install playwright browsers:\n\n```bash\npoetry run update --init\n```\n\nIt will launch the instance if you answer yes to the \"restart\" question.\n\n## Configuration\n\nEdit the config file `config/generic.json`, and configure it accordingly to your needs.\n\n# Usage\n\nStart the tool (as usual, from the directory):\n\n```bash\npoetry run start\n```\n\nYou can stop it with\n\n```bash\npoetry run stop\n```\n\nWith the default configuration, you can access the web interface on `http://0.0.0.0:7100`,\nwhere you will find the API and can start playing with it.\n\n# Maintenance\n\n## Annoying repetitive log entries\n\nIf you have recurring messages like the ones below you can remove the uuid from the queue as follows. Note that it is probabli simply due to an unclean stop of lacus and they will be removed automatically after a while\n\n```\n2023-11-17 08:00:59,936 LacusCore WARNING:[ef7f653d-4cfd-4e7b-9b91-58c9c2658868] Attempted to clear capture that is still being processed.\n2023-11-17 08:01:00,939 LacusCore WARNING:[ef7f653d-4cfd-4e7b-9b91-58c9c2658868] Attempted to clear capture that is still being processed.\n2023-11-17 08:01:01,941 LacusCore WARNING:[ef7f653d-4cfd-4e7b-9b91-58c9c2658868] Attempted to clear capture that is still being processed.\n2023-11-17 08:01:02,944 LacusCore WARNING:[ef7f653d-4cfd-4e7b-9b91-58c9c2658868] Attempted to clear capture that is still being processed.\n2023-11-17 08:01:03,947 LacusCore WARNING:[ef7f653d-4cfd-4e7b-9b91-58c9c2658868] Attempted to clear capture that is still being processed.\n...\n```\n\nWhile valkey is running connect to it via its socket and zrem then entry.\n\n```\nail@ail-tokyo:~$ cd lacus/\nail@ail-tokyo:~/lacus$ ../valkey/src/valkey-cli -s cache/cache.sock\nvalkey cache/cache.sock\u003e zrem lacus:ongoing ef7f653d-4cfd-4e7b-9b91-58c9c2658868\n(integer) 1\nvalkey cache/cache.sock\u003e\n```\n\n## Error mentioning missing system dependencies \n\nOn an initial install, we tell you to run `playwright install-deps`. After updating an existing lacus instance, you may have to do that again if new ones are required by playwright.\n\nIt that's the case, run the following command from the lacus directory:\n\n``` bash\npoetry run playwright install-deps\n```\n\n# Useful environment variables\n\nThere are env varibles you can pass to help making better captures, or avoir captures to fail when they shouldn't:\n\n* `PW_TEST_SCREENSHOT_NO_FONTS_READY` avoids captures to get stuck on screenshot when the fonts don't load (https://github.com/microsoft/playwright/issues/28995)\n* `PLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW` improves stealth for chromium by using the new headless mode (a little bit slower): https://github.com/Lookyloo/PlaywrightCapture/issues/55\n\nTo use them, you can run the capture manager this way:\n\n```bash\n\nPLAYWRIGHT_CHROMIUM_USE_HEADLESS_NEW=1 PW_TEST_SCREENSHOT_NO_FONTS_READY=1 capture_manager\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fail-project%2Flacus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fail-project%2Flacus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fail-project%2Flacus/lists"}