summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-05-23 03:54:07 +0900
committerAdam Malczewski <[email protected]>2026-05-23 03:54:07 +0900
commitb3815d221f988190503a0f414024beb579727d91 (patch)
tree2474363ca70f22908404e9f78198e7de09997de4
parentf3120565f44bdabab73bf1c83e71f9998f629efc (diff)
downloadfirecrawl-dokploy-b3815d221f988190503a0f414024beb579727d91.tar.gz
firecrawl-dokploy-b3815d221f988190503a0f414024beb579727d91.zip
bind API to 0.0.0.0:31329 for direct Tailscale access, fix prod_secrets promptsHEADmain
-rw-r--r--README.md2
-rwxr-xr-xbin/prod_secrets22
-rwxr-xr-xbin/test4
-rw-r--r--docker-compose.yml8
4 files changed, 22 insertions, 14 deletions
diff --git a/README.md b/README.md
index 9aba8cc..d6f5ce6 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@ Rather than forking both repos, this repo contains only the compose file, a Sear
```
┌──────────────────────────┐
- Internet ──► Traefik ──► Firecrawl API (:3002)
+ Internet ──► Traefik ──► Firecrawl API (:31329)
│ │ │
│ ▼ ▼
│ Playwright Redis
diff --git a/bin/prod_secrets b/bin/prod_secrets
index e409a56..5c6f34a 100755
--- a/bin/prod_secrets
+++ b/bin/prod_secrets
@@ -13,27 +13,35 @@ function get_or_gen_secret() {
local val=$(openssl rand -hex 32)
gopass insert -f "$path" <<< "$val"
else
- echo >&2 "Missing required secret: $description ($path)"
- echo >&2 "Please enter the value:"
- read -rs val
+ echo >&2 "$description"
+ echo >&2 "Enter value (leave empty to skip):"
+ read -r val
gopass insert -f "$path" <<< "$val"
fi
fi
gopass show -o "$path"
}
-FIRECRAWL_DOMAIN=$(get_or_gen_secret "projects/firecrawl-dokploy/prod/firecrawl_domain" false "Firecrawl domain (e.g. firecrawl.yourdomain.com)")
TEST_API_KEY=$(get_or_gen_secret "projects/firecrawl-dokploy/prod/api_key" true "Firecrawl API Key")
BULL_AUTH_KEY=$(get_or_gen_secret "projects/firecrawl-dokploy/prod/bull_auth_key" true "Bull Auth Key")
POSTGRES_PASSWORD=$(get_or_gen_secret "projects/firecrawl-dokploy/prod/postgres_password" true "PostgreSQL Password")
SEARXNG_SECRET_KEY=$(get_or_gen_secret "projects/firecrawl-dokploy/prod/searxng_secret_key" true "SearXNG Secret Key")
-OPENAI_API_KEY=$(get_or_gen_secret "projects/firecrawl-dokploy/prod/openai_api_key" false "OpenAI API Key (optional, press enter to skip)")
+
+# FIRECRAWL_DOMAIN is only needed if you use Traefik routing (not required for direct IP access).
+FIRECRAWL_DOMAIN=$(gopass show -o "projects/firecrawl-dokploy/prod/firecrawl_domain" 2>/dev/null || echo "")
+# OPENAI_API_KEY is only needed for /extract features. Add it directly in Dokploy if needed.
+OPENAI_API_KEY=$(gopass show -o "projects/firecrawl-dokploy/prod/openai_api_key" 2>/dev/null || echo "")
cat <<EOF
-FIRECRAWL_DOMAIN=$FIRECRAWL_DOMAIN
TEST_API_KEY=$TEST_API_KEY
BULL_AUTH_KEY=$BULL_AUTH_KEY
POSTGRES_PASSWORD=$POSTGRES_PASSWORD
SEARXNG_SECRET=$SEARXNG_SECRET_KEY
-OPENAI_API_KEY=$OPENAI_API_KEY
EOF
+
+if [ -n "$FIRECRAWL_DOMAIN" ]; then
+ echo "FIRECRAWL_DOMAIN=$FIRECRAWL_DOMAIN"
+fi
+if [ -n "$OPENAI_API_KEY" ]; then
+ echo "OPENAI_API_KEY=$OPENAI_API_KEY"
+fi
diff --git a/bin/test b/bin/test
index c7e9db8..a7ce525 100755
--- a/bin/test
+++ b/bin/test
@@ -10,14 +10,14 @@ export GPG_TTY=$(tty)
# such as an AI agent.
#
# Usage:
-# bin/test # local dev — hits http://127.0.0.1:3002
+# bin/test # local dev — hits http://127.0.0.1:31329
# bin/test https://my.host # remote — hits the given base URL
#
# The API key is read from gopass at projects/firecrawl-dokploy/dev/api_key
# (override by exporting TEST_API_KEY before running).
# ----------------------------------------------------------------------------
-BASE_URL="${1:-http://127.0.0.1:3002}"
+BASE_URL="${1:-http://127.0.0.1:31329}"
BASE_URL="${BASE_URL%/}"
if [ -z "${TEST_API_KEY:-}" ]; then
diff --git a/docker-compose.yml b/docker-compose.yml
index 2bd169e..32d6b52 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -134,8 +134,8 @@ services:
environment:
# === Server ===
HOST: 0.0.0.0
- PORT: ${INTERNAL_PORT:-3002}
- INTERNAL_PORT: ${INTERNAL_PORT:-3002}
+ PORT: ${INTERNAL_PORT:-31329}
+ INTERNAL_PORT: ${INTERNAL_PORT:-31329}
ENV: local
NUM_WORKERS_PER_QUEUE: ${NUM_WORKERS_PER_QUEUE:-8}
USE_DB_AUTHENTICATION: ${USE_DB_AUTHENTICATION:-false}
@@ -174,7 +174,7 @@ services:
PROXY_USERNAME: ${PROXY_USERNAME:-}
PROXY_PASSWORD: ${PROXY_PASSWORD:-}
ports:
- - "127.0.0.1:${INTERNAL_PORT:-3002}:${INTERNAL_PORT:-3002}"
+ - "0.0.0.0:${INTERNAL_PORT:-31329}:${INTERNAL_PORT:-31329}"
ulimits:
nofile:
soft: 65535
@@ -201,7 +201,7 @@ services:
- "traefik.http.routers.firecrawl-api.rule=Host(`${FIRECRAWL_DOMAIN}`)"
- "traefik.http.routers.firecrawl-api.entrypoints=websecure"
- "traefik.http.routers.firecrawl-api.tls.certResolver=letsencrypt"
- - "traefik.http.services.firecrawl-api.loadbalancer.server.port=${INTERNAL_PORT:-3002}"
+ - "traefik.http.services.firecrawl-api.loadbalancer.server.port=${INTERNAL_PORT:-31329}"
logging:
driver: "json-file"
options: