Install
You can download RapidForge binaries from the Releases page. If you need binaries for other platforms, feel free to contact us.
RapidForge is free to use and requires no external dependencies. You can either run the binary directly or use a Docker image. For internal purposes, we use the following Docker image, but you’re free to use any image that includes the tools you need.
FROM debian:latest
# sqlite3 is required if you want Key-Value store to work
RUN apt-get update && apt-get install -y \
ca-certificates \
curl \
jq \
sqlite3 \
tar \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Fetch the latest version dynamically from GitHub
ARG ARCH="x86_64"
ARG PLATFORM="Linux"
ARG BINARY_NAME="rapidforge"
RUN VERSION=$(curl -s https://api.github.com/repos/rapidforge-io/release/releases/latest | jq -r '.tag_name') && \
TARBALL="${BINARY_NAME}_${PLATFORM}_${ARCH}.tar.gz" && \
curl -L "https://github.com/rapidforge-io/release/releases/download/${VERSION}/${TARBALL}" -o ${TARBALL} && \
tar -xzvf ${TARBALL} && \
chmod +x ${BINARY_NAME} && \
rm ${TARBALL}
ARG PORT=8080
ENV RF_PORT=$PORT
EXPOSE ${PORT}
CMD ["./rapidforge"]
Configuration
RapidForge is minimally configured software. When RapidForge is ran for the first time it will create username and password for admin user. This will be printed out in logs only for the first time. After that its high recommended to change the password. RapidForge allows user to retrying login only for 5 times. After that user will be forced out of the system. In order to gain access user needs to contact with another admin to restart retries vai user panel.
| Environment Variable | Default Value | Description |
|---|---|---|
RF_DATABASE_URL |
rapidforge.sqlite3 |
Database URL |
RF_KV_URL |
None | Key-Value store URL |
RF_DOMAIN |
localhost |
Domain name |
RF_PORT |
:4000 |
Port number |
TLS_CERT |
None | PEM-encoded certificate data |
RF_TERM |
None | Enable web terminal for admin |
OpenTelemetry Configuration
RapidForge supports OpenTelemetry for distributed tracing and metrics collection. All configuration is done through environment variables with the RF_OTEL_ prefix.
Core Settings
| Variable | Description | Default | Required |
|---|---|---|---|
RF_OTEL_ENABLED |
Enable/disable OpenTelemetry | false |
Yes |
RF_OTEL_ENDPOINT |
OTLP collector endpoint (without protocol prefix) | localhost:4317 |
No |
RF_OTEL_SERVICE_NAME |
Service identifier in traces/metrics | rapidforge |
No |
RF_OTEL_SERVICE_VERSION |
Service version | (auto-detected) | No |
RF_OTEL_ENVIRONMENT |
Deployment environment | RF_ENV or production |
No |
Exporter Configuration
| Variable | Description | Default | Options |
|---|---|---|---|
RF_OTEL_EXPORTER_TYPE |
Type of exporter | otlp (or stdout in dev) |
otlp, stdout, none |
RF_OTEL_EXPORTER_PROTOCOL |
OTLP protocol | http |
grpc, http |
RF_OTEL_INSECURE |
Disable TLS verification | false |
true, false |
RF_OTEL_HEADERS |
Additional headers (comma-separated key=value pairs) | - | e.g., api-key=secret,auth=token |
Trace Configuration
| Variable | Description | Default | Options |
|---|---|---|---|
RF_OTEL_TRACES_SAMPLER |
Sampling strategy | parentbased_always_on |
|
RF_OTEL_TRACES_SAMPLER_ARG |
Sampling ratio (0.0 to 1.0) | 1.0 |
Float between 0 and 1 |
Metrics Configuration
| Variable | Description | Default |
|---|---|---|
RF_OTEL_METRICS_ENABLED |
Enable metrics collection | true |
Honeycomb example
export RF_OTEL_ENABLED=true
export RF_OTEL_ENDPOINT=api.honeycomb.io
export RF_OTEL_EXPORTER_PROTOCOL=http
export RF_OTEL_HEADERS="x-honeycomb-team=<your-api-key>"
export RF_OTEL_SERVICE_NAME=rapidforge
export RF_OTEL_ENABLED=true
export RF_OTEL_ENDPOINT=otel-collector:4317
export RF_OTEL_TRACES_SAMPLER=parentbased_traceidratio
Update
You can use the ./rapidforge binary to manage and update RapidForge.
Run ./rapidforge --help to view all available commands.
To update RapidForge to the latest version, use:
./rapidforge update
This command will automatically download the latest version and back up your existing installation.
Note that the update process does not start the new version automatically, since your system configuration may vary. It’s up to your operations team to decide how to start the new version.