Skip to content

Table of contents

Working with the stack assets

The cozy-stack has some assets: templates, CSS, JS, fonts, etc. For the deployment in production, they are bundler in the go code and compiled to the binary. But, it’s also nice for developers to have them in a readable format with a git history: they are also put in the assets directory, and some of them are downloaded from other repositories and listed in assets/.externals.

How to work on them on local?

In short:

$ scripts/build.sh debug-assets
$ go run . serve --assets debug-assets/

The first command creates a debug-assets directory, with symlinks for local assets. It also downloads the external assets. The second command starts the cozy-stack with those assets. If you modify one of the assets (local or externals) and reload the page in your browser, you will see the new version.

Tip: if you are debugging an external asset, you may find it practical to replace the file in debug-assets by a symlink from where you build this asset. For example:

$ rm debug-assets/css/cozy-ui.min.css
$ ln -s path/to/cozy-ui/dist/cozy-ui.min.css debug/assets/css/cozy-ui.min.css

/dev route

In development mode, a /dev route is available to render a template or a mail with given parameter. For example:

http://cozy.tools:8080/dev/templates/error.html?Error=oops
http://cozy.tools:8080/dev/mails/two_factor?TwoFactorPasscode=123456

In production

The script scripts/build.sh assets download the externals assets, and transform all the assets (local and externals) to go code. This command is used by the maintainers of cozy-stack, so you should not have to worry about that ;-)

Locales

The locales are managed on transifex. The .po files are put in assets/locales. The master branch is synchronized with transifex via their github integration.

Contexts

It’s possible to overload some assets on a context with the cozy-stack config insert-asset command. See its manpage and Customizing a context for more details.