Files
workavia-mail-front/docs/adr/0061-cozy-integration-set-up.md
2025-08-20 14:18:18 +07:00

3.2 KiB

61. Cozy integration set up

Date: 2025-04-21

Status

Accepted

Context

  • How to run Cozy locally?

Steps

Install cozy-stack CLI

  1. Install CouchDB
docker run -d \
    --name cozy-stack-couch \
    -p 5984:5984 \
    -e COUCHDB_USER=admin -e COUCHDB_PASSWORD=password \
    -v $HOME/.cozy-stack-couch:/opt/couchdb/data \
    couchdb:3.3
curl -X PUT http://admin:password@127.0.0.1:5984/{_users,_replicator}
  1. Install cozy-stack CLI
  • Install Go and add to path
  • Clone cozy-stack
git clone git@github.com:cozy/cozy-stack.git
cd cozy-stack
make
  • Create cozy configuration file
mkdir -p ~/.cozy
cp cozy.example.yaml $HOME/.cozy/cozy.yml
  • Find CouchDB config inside cozy.yml and edit as follow:
couchdb:
  url: <http://admin:password@localhost:5984/>
  1. Run cozy-stack
  • Start cozy-stack
cozy-stack serve
  • Create an instance
cozy-stack instances add tmail.localhost:8080 --passphrase cozy --apps home,store,drive,photos,settings,contacts,notes,passwords --email tmail@cozy.localhost --locale en --public-name Tmail --context-name dev

Run Cozy locally

  1. On the cozy-twakemail side
  • Clone https://github.com/cozy/cozy-twakemail
  • yarn install
  • yarn build
  • cozy-stack serve --appdir tmail:build/ --disable-csp
  • Open another terminal while cozy-stack is running
  • cozy-stack apps install dataproxy --domain tmail.localhost:8080
  • cozy-stack feature flags --domain tmail.localhost:8080 '{"cozy.search.enabled": true}'
  • cozy-stack feature flags --domain tmail.localhost:8080 '{"mail.embedded-app-url": "http://localhost:2023"}'
  1. On the tmail side
  • Apply patchs/cozy-dev-config.patch
  • Edit session url in jmap-dart-client to /jmap/session
  • isInsideCozy will be false if run on localhost, so in cozy_config_web.dart, return true on isInsideCozy
  • in env.file, COZY_INTEGRATION=true and COZY_EXTERNAL_BRIDGE_VERSION=x.x.x (where x.x.x is the version of cozy-external-bridge)
  • flutter run -d chrome --web-port 2023 --web-browser-flag "--disable-web-security" --profile
  1. Access Cozy

Run Cozy locally with modified Cozy libs

If there is a need of modifying Cozy libs

  1. On cozy-libs side
  • Clone https://github.com/cozy/cozy-libs
  • yarn install
  • yarn build For example, if you want to use locally modified cozy-external-bridge
  • cd packages/cozy-external-bridge
  • yarn link
  • yarn build
  1. On cozy-twakemail side
  • Look for rlink.sh file in /scripts, move the file to ~/Downloads
  • mv ~/Downloads/rlink.sh ~/bin/rlink
  • chmod +x ~/bin/rlink
  • Reset the terminal
  • Repeat part 1 of Run Cozy locally
  • While cozy-stack is running, open another terminal in the same directory
  • rlink {library-you-modified-and-linked} for example rlink cozy-external-bridge
  • While rlink is running, run yarn build
  1. On tmail side
  • Repeat part 2 of Run Cozy locally

Note: You can leave the cozy-stack and rlink running if you plan to further modify Cozy libs. After each modification, run yarn build in cozy-libs packages side then run yarn build in cozy-twakemail side, then refresh the browser.