Skip to main content

Changing the Deployment Domain

When deploying RepoFlow, the default configuration runs on localhost. For production deployments, you must configure your desired custom domain in the server’s environment variables.

This guide outlines the required changes in the server Helm configurations.

Changes in the Server Environment Variables

In the server Helm configuration, update the following environment variables:

1. FRONTEND_URL

  • Description: This should be set to the full URL of the frontend as seen by users.
  • Example:
    • https://my-repoflow.com

2. SERVER_URL

  • Description: This should be set to the full URL of the server's API, accessible from the user's perspective.
  • Example:
    • https://my-repoflow.com/api
  • Description: This should be set to the shared domain of the server and frontend.
  • Example:
    • my-repoflow.com
  • Description: This determines whether cookies should only be sent over secure HTTPS connections. Set this to true if your domain uses HTTPS.
  • Example:
    • false for http://my-repoflow.com
    • true for https://my-repoflow.com

Updating the Helm Chart

To customize your deployment, first, download the default values.yaml file. This file contains all the configurable options for the Helm chart and allows you to override the default values used during installation.

Step 1: Get a Copy of values.yaml

Download the values.yaml file from the RepoFlow Helm Chart Repository:

helm show values repoflow-helm-public/repoflow > values.yaml

This will save the default configuration to a file named values.yaml in your current directory.

Step 2: Modify the values.yaml File

Open the values.yaml file and update the server configurations as needed.

Server Configuration Example

Update only the environment variables you need to change:

server:
environment:
# Change only those in the server env
FRONTEND_URL: "https://my-repoflow.com"
SERVER_URL: "https://my-repoflow.com/api"
COOKIE_DOMAIN: "my-repoflow.com"
COOKIE_SECURE: "true"

# Don't delete the rest of the environment variables

Step 3: Add an ingress (Optional)

Update the ingress section in your values.yaml file by setting enabled to true and configuring the host with your domain name, as shown below:

ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/proxy-body-size: "5g"
# Disable request buffering to stream request body to the backend
nginx.ingress.kubernetes.io/proxy-request-buffering: "off"
# Optionally, disable response buffering as well (although this applies to responses from the server)
nginx.ingress.kubernetes.io/proxy-buffering: "off"
className:
useIngressClassName: false
ingressClassName: ""
tls:
isTlsEnabled: false
hosts:
- secretName: your-domain.com-tls
hosts:
- your-domain.com
hosts:
- host: your-domain.com
paths:
- path: /
pathType: Prefix
backend:
service:
name: repoflow-nginx-service
port:
number: 8080

Step 4: Apply the Changes

Once you’ve updated values.yaml, use the following command to apply your changes:

helm upgrade repoflow repoflow-helm-public/repoflow -f values.yaml

With these updates, your RepoFlow instance will now use your custom domain and the appropriate secure settings.