Skip to content

Installation

Terminal window
git clone https://github.com/TM9657/flow-like.git
cd flow-like/apps/backend/docker-compose

Copy the example environment file:

Terminal window
cp .env.example .env

Edit .env with your configuration. At minimum, configure:

  • Storage provider credentials (see Storage Providers)
  • Database password (change the default)

The execution JWT system enables stateless trust between the API and runtime:

Terminal window
# From the repository root
./tools/gen-execution-keys.sh

Copy the output to your .env file:

EXECUTION_KEY=<base64-encoded-private-key>
EXECUTION_PUB=<base64-encoded-public-key>
EXECUTION_KID=execution-es256-v1

Before starting, create three buckets in your storage provider:

  • flow-like-meta (or your custom name)
  • flow-like-content (or your custom name)
  • flow-like-logs (or your custom name)

Update the bucket names in .env if using custom names.

Terminal window
docker compose up -d

This will:

  1. Start PostgreSQL and wait for it to be healthy
  2. Run database migrations via db-init
  3. Start the API service
  4. Start the execution runtime

Check that all services are running:

Terminal window
docker compose ps

Expected output:

NAME STATUS
docker-compose-api-1 running (healthy)
docker-compose-postgres-1 running (healthy)
docker-compose-runtime-1 running (healthy)

Check API health:

Terminal window
curl http://localhost:8080/health

View logs:

Terminal window
# All services
docker compose logs -f
# Specific service
docker compose logs -f api

The API is available at http://localhost:8080 by default.

For production deployments, place a reverse proxy (nginx, Caddy, Traefik) in front to handle TLS termination.

To update to a newer version:

Terminal window
git pull
docker compose down
docker compose build --no-cache
docker compose up -d

Remove all containers and volumes:

Terminal window
docker compose down -v