Skip to content

linkwarden manifest has no Postgres companion: DATABASE_URL points at localhost:5432 that nothing starts, so the app never boots - #2835

Open
jaylfc wants to merge 1 commit into
devfrom
exec/tsk-qnyed7
Open

linkwarden manifest has no Postgres companion: DATABASE_URL points at localhost:5432 that nothing starts, so the app never boots#2835
jaylfc wants to merge 1 commit into
devfrom
exec/tsk-qnyed7

Conversation

@jaylfc

@jaylfc jaylfc commented Sep 6, 2026

Copy link
Copy Markdown
Owner

CARD TITLE (intent, not commit subject): linkwarden manifest has no Postgres companion: DATABASE_URL points at localhost:5432 that nothing starts, so the app never boots

Autonomous build of board card tsk-qnyed7.

  • add companions field to linkwarden manifest declaring postgres:16-alpine companion
  • update DATABASE_URL to postgresql://linkwarden:{secret_key}@postgres:5432/linkwarden
  • modify _generate_compose to handle companions: generate multi-service compose with
    linkwarden + postgres services, named volumes, {secret_key}-style password
  • test: compose has database service, DATABASE_URL host resolves to postgres service name

Docs-Reviewed: manifest-internal change, no README or catalog listing modification needed

Files:
app-catalog/services/linkwarden/manifest.yaml | 11 +-
.../tsk-qnyed7-linkwarden-postgres-companion.md | 3 +
tests/test_installers.py | 170 +++++++++++++++++++++
tinyagentos/installers/docker_installer.py | 57 ++++++-
4 files changed, 238 insertions(+), 3 deletions(-)

…d generated password

- add companions field to linkwarden manifest declaring postgres:16-alpine companion
- update DATABASE_URL to postgresql://linkwarden:{secret_key}@postgres:5432/linkwarden
- modify _generate_compose to handle companions: generate multi-service compose with
  linkwarden + postgres services, named volumes, {secret_key}-style password
- test: compose has database service, DATABASE_URL host resolves to postgres service name

Docs-Reviewed: manifest-internal change, no README or catalog listing modification needed
@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing

@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 9 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: 54f05afa-bf6e-4791-b5fd-a39e0b638648

📥 Commits

Reviewing files that changed from the base of the PR and between 37ee01c and 53831d6.

📒 Files selected for processing (4)
  • app-catalog/services/linkwarden/manifest.yaml
  • changelog.d/tsk-qnyed7-linkwarden-postgres-companion.md
  • tests/test_installers.py
  • tinyagentos/installers/docker_installer.py

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gitar-bot

gitar-bot Bot commented Sep 6, 2026

Copy link
Copy Markdown

Important

You are using the Gitar free plan. Upgrade to unlock code review, CI analysis, auto-apply, custom automations, and more.

Gitar

Returns a ``(compose_dict, host_port)`` tuple. ``host_port`` is
``None`` when the manifest declares no ports.
"""
# Handle {secret_key} substitution for env vars and companion passwords

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Duplicate secret key logic

The secret key generation and persistence logic here (lines 113-123) duplicates the identical logic in _write_config_files (lines 68-79). If one implementation is updated without the other, the two code paths will diverge, potentially causing inconsistent secrets between config files and compose environment variables.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

Comment thread tests/test_installers.py
@pytest.mark.asyncio
async def test_generate_compose_linkwarden_secret_key_persisted(self, tmp_path):
"""Verify {secret_key} is replaced with a persisted 64-hex-char secret."""
installer = DockerInstaller(apps_dir=tmp_path)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Redundant assignment

installer = DockerInstaller(apps_dir=tmp_path) on line 285 is immediately overwritten by the identical assignment on line 287, making it dead code.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

@kilo-code-bot

kilo-code-bot Bot commented Sep 6, 2026

Copy link
Copy Markdown

Code Review Summary

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 1
Issue Details (click to expand)

WARNING

File Line Issue
tinyagentos/installers/docker_installer.py 113 Duplicate secret key logic already present in _write_config_files

SUGGESTION

File Line Issue
tests/test_installers.py 285 Redundant assignment immediately overwritten on line 287
Files Reviewed (4 files)
  • app-catalog/services/linkwarden/manifest.yaml
  • changelog.d/tsk-qnyed7-linkwarden-postgres-companion.md
  • tests/test_installers.py - 1 issue
  • tinyagentos/installers/docker_installer.py - 1 issue

Fix these issues in Kilo Cloud


Reviewed by step-3.7-flash:free · Input: 105.3K · Output: 17.2K · Cached: 179.6K

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant