Deployment Documentation

Deployment Documentation

Build

All binaries are built using Task:

task build           # Main server (bin/flowbot)
task build:composer  # Composer CLI (bin/composer)
task build:cli       # Admin CLI (bin/flowbot-cli)
task build:all       # All binaries

Deployment Methods

1. Binary Deployment

task build
./bin/flowbot                      # Start server
./bin/flowbot-cli -- server-url http://localhost:6060  # Admin CLI

2. Docker Deployment

docker build -f deployments/Dockerfile -t flowbot .
docker run -p 6060:6060 -v $(pwd)/flowbot.yaml:/opt/app/flowbot.yaml flowbot

3. Systemd Service (Desktop Agent)

The desktop agent is embedded in the main server. For headless setups, use the systemd service:

  1. Copy binary and service file:
sudo cp bin/flowbot /opt/app/
sudo chmod +x /opt/app/flowbot
sudo cp docs/deployment/flowbot.service /etc/systemd/system/
  1. Create environment file:
sudo cp docs/config/agent.yaml /opt/app/agent.yaml
  1. Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable flowbot
sudo systemctl start flowbot

Service Management

sudo systemctl status flowbot
sudo systemctl restart flowbot
sudo journalctl -u flowbot -f

CI/CD

GitHub Actions workflows (.github/workflows/):

Workflow Description
build.yml Lint + Build
testing.yml Run all tests
build_cli.yml Build CLI tools
docker.yml Build Docker image
release.yml Release pipeline

Health Checks

curl http://localhost:6060/livez    # Liveness
curl http://localhost:6060/readyz   # Readiness
curl http://localhost:6060/startupz # Startup

Deployment Checklist

  • [ ] Configuration file (flowbot.yaml) is set up
  • [ ] MySQL database is accessible
  • [ ] Redis server is running
  • [ ] Required ports are open (default: 6060)
  • [ ] Service starts and health checks pass