Fix local Garage dev setup #98
Labels
No labels
activitypub
admin
api
articles
auth
bug
cleanup
cli
comments
compatibility
config
contacts
database
deployment
design
dev-env
docs
documentation
email
enhancement
feature
federation
feed
homepage
implementation
integration
media
openapi
priority:high
priority:low
priority:medium
proof
public-routes
public-ui
release
safety
social
sources
status:active
status:canceled
status:done
status:inprogress
status:waiting
syndication
tailwind
template
test
web
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/slugkit#98
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Slugkit local dev media storage is broken:
make devreports agarageprocess as running, butscripts/dev-garage.shfalls back to an infinite sleep loop when the localgaragebinary is missing. This hides the failure and causes CLI media uploads to fail.Steps to reproduce
make dev.make dev-statusorovermind psand observe agarageprocess listed as running.slug media uploadagainst the local dev API.Expected behavior
~/Private/code/github/evcraddock/erikcraddock.me..envvalues.make devshould fail visibly instead of reporting a fake running process.Actual behavior
scripts/dev-garage.shenters an infinite sleep loop whengarageis not installed.garageas running even though no local Garage service exists..envfiles are missing, so media S3 config is not loaded by the app.slug media uploadfails in local dev.Acceptance criteria
erikcraddock.meor an equivalent reliable local approach..envdocumentation and examples use the variable names expected by Slugkit (S3_ACCESS_KEY_ID,S3_SECRET_ACCESS_KEY, etc.).make devplus the documented Garage setup path supportsslug media uploadagainst the local dev API.Dependencies
Synced from todu comment by @todu on 2026-06-04T15:12:53.490Z
PR Review
PR #99 reviewed against acceptance criteria.
Result: approved
Verification:
./scripts/pre-pr.shpassed locally.Blocking issues: 0
Warnings: 0
Acceptance criteria: 6/6 met
Stopped at human merge approval gate.
Synced from todu comment by @todu on 2026-06-04T16:09:49.650Z
PR Review Update
PR #99 was amended and re-reviewed after correcting the design to match the
erikcraddock.mepattern:docker: docker compose up --remove-orphans.garage.toml.make garage-setupexplicitly configures layout, key, bucket, permissions, and.envmedia values after Garage is running.3910-3913to avoid collisions with other local Garage projects.Result: approved
Verification:
make checkpassed locally../scripts/pre-pr.shpassed locally.Blocking issues: 0
Warnings: 0
Acceptance criteria: 6/6 met
Stopped at human merge approval gate.
Synced from todu comment by @todu on 2026-06-04T16:18:21.476Z
PR Review Update
Lifecycle cleanup was amended after dev restart testing showed
.overmind.sockcould disappear while stale Overmind tmux sessions and the Compose container remained.Additional changes:
make dev-stopnow cleans the normal Overmind socket path, stale/tmp/tmux-*/overmind-slugkit-*tmux sessions, and the local Slugkit Compose project.make dev-statusnow reports stale Overmind tmux sessions when.overmind.sockis unavailable instead of incorrectly saying onlystopped.Verification:
make checkpassed locally.Result: approved
Stopped at human merge approval gate.
Synced from todu comment by @todu on 2026-06-04T19:12:37.533Z
PR Review
PR #99 reviewed after the latest local Garage setup fixes.
Result: approved
Verification:
make checkpassed../scripts/pre-pr.shpassed.slug doctorauth passed;slug media uploadreturned a reachable Garage web URL; fetching the uploaded image returned200 image/png; image markdown was added totest-post-20260604083912.Blocking issues: 0
Warnings: 0
Acceptance criteria: 6/6 met
Stopped at human merge approval gate.
Synced from todu comment by @todu on 2026-06-04T19:11:36.771Z
Update
Procfile.devso the app runs fromtemplate/sitewith the correct template DB path while still using Overmind only to start configured services.test-post-20260604083912.make check,./scripts/pre-pr.sh, Forgejo Actions run 125 green.Synced from todu comment by @todu on 2026-06-04T19:30:28.063Z
PR Review Update
PR #99 was amended after validating the public test post image path from the app host.
Result: approved
What changed:
/media/...instead of Garage virtual-host URLs./media/*route that streams objects from configured storage.Verification:
<img src="/media/uploads/test/slugkit-cli-test-image-2.png" alt="Slugkit test image" />.200 image/pngfromhttp://10.10.1.197:3000/media/uploads/test/slugkit-cli-test-image-2.png.make checkpassed../scripts/pre-pr.shpassed.Blocking issues: 0
Warnings: 0
Acceptance criteria: 6/6 met
Stopped at human merge approval gate.
Synced from todu comment by @todu on 2026-06-04T19:35:27.842Z
Completed
Acceptance criteria verified:
scripts/dev-garage.shinfinite-loop fallback was removed.make garage-setupconfigures local Garage layout, bucket, deterministic dev key, permissions, and.envvalues.make devplus setup supports CLI media upload; live post image and/media/...image fetch were verified.PR #99 was merged into
main. Verification passed:make check,./scripts/pre-pr.sh, and Forgejo Actions run 127.