{"id":47474929,"url":"https://github.com/equinor/acidwatch","last_synced_at":"2026-04-09T00:01:34.353Z","repository":{"id":272569044,"uuid":"880868622","full_name":"equinor/acidwatch","owner":"equinor","description":"AcidWatch is a platform for modeling chemical reactions in CO2 streams, designed for researchers in CCS.","archived":false,"fork":false,"pushed_at":"2026-03-12T14:43:27.000Z","size":2695,"stargazers_count":11,"open_issues_count":37,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-21T02:46:42.912Z","etag":null,"topics":["carbon-capture-and-storage","ccs","computational-chemistry","hacktoberfest","hacktoberfestivus","impurities"],"latest_commit_sha":null,"homepage":"https://acidwatch.radix.equinor.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equinor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-30T14:07:33.000Z","updated_at":"2026-03-12T14:43:29.000Z","dependencies_parsed_at":"2026-03-20T12:01:25.430Z","dependency_job_id":null,"html_url":"https://github.com/equinor/acidwatch","commit_stats":null,"previous_names":["equinor/acidwatch"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/equinor/acidwatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Facidwatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Facidwatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Facidwatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Facidwatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equinor","download_url":"https://codeload.github.com/equinor/acidwatch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Facidwatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30827489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-22T05:45:47.827Z","status":"ssl_error","status_checked_at":"2026-03-22T05:45:39.030Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["carbon-capture-and-storage","ccs","computational-chemistry","hacktoberfest","hacktoberfestivus","impurities"],"created_at":"2026-03-25T13:00:32.984Z","updated_at":"2026-04-09T00:01:34.340Z","avatar_url":"https://github.com/equinor.png","language":"TypeScript","funding_links":[],"categories":["Emissions"],"sub_categories":["Carbon Capture"],"readme":"![Build and deploy to Radix](https://api.radix.equinor.com/api/v1/applications/acidwatch/environments/dev/buildstatus)\n![Promote prod environment](https://api.radix.equinor.com/api/v1/applications/acidwatch/environments/prod/buildstatus?pipeline=promote)\n\n# AcidWatch\n\nAcidWatch is a portal for tools that calculate and predict chemical reactions in\nCO\u003csub\u003e2\u003c/sub\u003e streams. It is essential for advancing and scaling carbon capture\nand storage (CCS) technologies. The goal of AcidWatch is to democratize and open\nup the discussion around CO\u003csub\u003e2\u003c/sub\u003e impurities and provide a reliable\nresource for researchers, chemists, and industry professionals in the CCS\ndomain.\n\n## Using\n\nThe production version of AcidWatch is found at https://acidwatch.radix.equinor.com/ . Some features require an Equinor account with appropriate accesses.\n\n## Developing\n\nAcidWatch uses Python in the backend and Javascript in the frontend.\nAdditionally, some features require a reasonably up-to-data Java version. Ensure that you have Python 3.11 or later, [Poetry](https://python-poetry.org/), NodeJS and Java (eg. OpenJDK 21).\n\n### Backend\n\nThe backend is written using FastAPI and SQLAlchemy.\n\nUsing Poetry, install AcidWatch's backend using the following command:\n\n```sh\npoetry -C backend install\n```\n\n\u003e [!NOTE]\n\u003e Here, `-C backend` instructs `poetry` to enter the `backend/` directory before\n\u003e doing anything. If you enter the `backend` directory (eg. via `cd backend`), you\n\u003e can drop writing `-C backend` for each command.\n\nThen, run the backend in development mode using the following command:\n\n```sh\npoetry -C backend run acidwatch-api\n```\n\nTo change the settings, first copy `backend/.env.example` to `backend/.env` and\nthen modify it to suit your needs.\n\nTo install and run a production build of the backend, refer to [the backend\nDockerfile](./backend/Dockerfile).\n\nExplore the auto-generated REST API at http://localhost:8001/docs\n\n#### SQLite\n\nBy default, AcidWatch uses an in-memory SQLite database. It requires no\nadditional installation or setup, but will reset whenever the backend is\nrestarted.\n\nTo enable a persistent SQLite database, set `ACIDWATCH_DATABASE` in\n`backend/.env` file. For example, adding the following will create a `test.db`\nfile in the directory from which `acidwatch-api` is ran:\n\n```sh\nACIDWATCH_DATABASE=sqlite:///test.db\n```\n\n\u003e [!TIP]\n\u003e Database migration aren't applied to SQLite. If mysterious database errors\n\u003e occur, delete your database file and restart.\n\n#### PostgreSQL\n\nAcidWatch uses a PostgreSQL database in production. Once you have access\n\nFirst, ensure that the backend is installed with the `pg` (PostgreSQL) optional\ndependency group. This installs the recommended SQLAlchemy driver:\n\n```sh\npoetry -C backend install -E pg\n```\n\nThen, set the `ACIDWATCH_DATABASE` as described in the [SQLite section](#SQLite) to the following:\n\n```sh\n# Over TCP/IP\nACIDWATCH_DATABASE=postgresql://[username]:[password]@[hostname]:[port]/[database]\n\n# Over UNIX sockets\nACIDWATCH_DATABASE=postgresql:///[database]?host=[path]\n\n# For example:\nACIDWATCH_DATABASE=postgresql://postgres:password@localhost:5432/acidwatch\n```\n\nAcidWatch uses SQLAlchemy's Alembic to handle migrations. Run `poetry -C backend\nrun alembic upgrade head` to migrate the database to the current schema.\n\nDon't have a postgres running? Here's a simple docker setup, that will create the necessary\ndatabase to work with the example above:\n\n``` sh\ndocker run -e POSTGRES_PASSWORD=password -e POSTGRES_DB=acidwatch -p 5432:5432 postgres\n\n````\n#### Other databases \u0026 related material\n\nFor other databases, refer to SQLAlchemy documentation on how to create\n\n### Frontend\n\nThe frontend uses Vite and React. Components are provided by the official\n[Equinor Design System](https://eds.equinor.com) React library.\n\n```sh\n# Copy the .env file\ncp frontend/.env.example frontend/.env\n\n# then install\nnpm -C frontend install\n```\n\nTo run, ensure that the backend is running on port 8001 and then:\n\n```sh\nnpm -C run dev\n```\n\nThe application is now available at http://localhost:5173\n\n## Considerations\n\n### Debugging in Visual Studio Code\n\nIf using VS Code it is recommended to run backend in a different instances of VS Code. This will avoid a lot of hazzle configuring and running correct python virtual environment etc.\n\n### Deployment\n\nGitHub Actions Workflows are used for building, testing and deploying AcidWatch to Radix.\n\nTests are run on every push, and deployment to dev environment are done on merge to main branch.\n\nDeployment to test and prod environment are for now done manually in Radix console.\n\n### GitHub Codespaces\n\nIf someone fancies using codespaces and wants to break out of the tedious local setup then following steps can be followed.\n\n#### 1. Setup frontend\n\nOpen a terminal and write following commands to run frontend.\n\n```sh\ncd /frontend\nnpm run dev\n```\n\n#### 2. Setup backend\n\nOpen another terminal and write following commands to enable virtual environment and then to run backend.\n\n```sh\nsource venv/bin/activate .\npython3 backend/src/acidwatch_api/__main__.py\n```\n\n#### 3. Toggle port visibility\n\nKudos! Now frontend is running on port 5173, and backend is on 8001. Toggle the port for backend only to be public so its accessible by frontend.\n\n#### 4. Point to a different deployment environment\n\nNow open source models can be run and tested. To point to a different instance of deployment (dev, prod or local) install-dependencies.sh can be updated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Facidwatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequinor%2Facidwatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Facidwatch/lists"}