feat(deploy): add Coolify-ready compose file and deployment guide#5373
Open
Bumpfi wants to merge 1 commit into
Open
feat(deploy): add Coolify-ready compose file and deployment guide#5373Bumpfi wants to merge 1 commit into
Bumpfi wants to merge 1 commit into
Conversation
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Deploying Odysseus on Coolify currently fails in three independent ways: Coolify's compose parser mangles the
${APP_DATA_DIR:-./data}/ssh-style bind-mount sources indocker-compose.ymlinto empty strings (invalid spec: :/app/.ssh:z: empty section between colons); the image is built from source on the server, which takes 10+ minutes and can OOM small VPSes even though CI already publishes a multi-arch image to GHCR; and the127.0.0.1host-port bindings are unreachable behind Coolify's Traefik proxy while SearXNG's host port 8080 collides with other stacks. This PR adds a separate, opt-indocker-compose.coolify.ymlthat fixes all three — pre-builtghcr.io/pewdiepie-archdaemon/odysseus:latestimage, named volumes only, no host port bindings, and Coolify magic variables for domain routing (SERVICE_FQDN_ODYSSEUS_7000), a generated admin password, and the CORS origin — plus a step-by-step guide indocs/deploy/coolify.md.docker-compose.ymlhas a zero-line diff, so nothing changes for existing users.Related: #3835 addresses some of the same symptoms but does so by changing the existing compose defaults (bind mounts → named volumes, SearXNG port remap), which would affect current deployments. This PR is purely additive and does not conflict with it.
Target branch
dev, notmain.Linked Issue
Fixes #5384
Type of Change
Checklist
devHow to Test
docker compose -f docker-compose.yml config -qanddocker compose -f docker-compose.coolify.yml config -q(the second prints warnings about unsetSERVICE_*variables — those are Coolify magic variables, filled in by Coolify at deploy time).git diff dev -- docker-compose.ymlis empty.SERVICE_PASSWORD_ADMIN=testpass123 SERVICE_URL_ODYSSEUS=http://localhost docker compose -f docker-compose.coolify.yml -p coolifytest up -ddocker compose -p coolifytest psto showodysseusandsearxngas healthy, then verify from inside the network (no host ports are published by design):docker exec coolifytest-odysseus-1 curl -s -o /dev/null -w "%{http_code}" http://localhost:7000/→302(redirect to login)docker exec coolifytest-odysseus-1 curl -s -o /dev/null -w "%{http_code}" "http://searxng:8080/search?q=test&format=json"→200admin/testpass123viaPOST /api/auth/login→200docker compose -p coolifytest down -v/docker-compose.coolify.yml, deploy — followsdocs/deploy/coolify.md.Visual / UI changes — REQUIRED if you touched anything that renders
N/A — no UI or rendering changes; compose file and docs only.