Projects

Projects represent one web development project.

They are loaded from riptide.yml files. Additionally, if a riptide.local.yml exists, it’s contents are merged on top of the riptide.yml.

A project consists of one app.

Schema

The Schema defines what the contents of the YAML configuration files are.

classmethod Project.schema() → schema.Schema[source]
name: str
Unique name of the project.
src: str
Relative path of the source code directory (relative to riptide.yml). Services and Commands only get access to this directory.
app: App
App that this project uses.
[links]: List[str]

Links to other projects (list of project names).

Riptide will add all service containers in this project in the TCP/IP networks of all projects specified here. This way services in your project can communicate with services from other projects and vice-versa. If a project in this list does not exist, Riptide will ignore it.

Please make sure, that service names are not re-used across projects that are linked this way, this could lead to unexpected results during service host name resolution.

[default_services]: List[str]
List of services to start when running riptide start. If not set, all services are started. You can also control which services to start using flags. See riptide start –help for more information.
[env_files]: List[str]

A list of paths to env-files, relative to the project path, that should be read-in by services and command when starting. See the read_env_file flag at Service and Command for more information.

Defaults to [“./.env”].

Example Document:

project:
  name: test-project
  src: src
  app:
    $ref: apps/reference-to-app

Helper Functions

Helper Functions (also called “Variable Helpers”) can be used in the configuration files to perform some advanced tasks.

Project.parent() → Config[source]

Variable Helper

Can be used inside configuration files.

Returns the system configuration document.

Example usage:

something: '{{ parent().proxy.url }}'

Example result:

something: 'riptide.local'