Files
FTStore/web/docker-compose.yml
T
Felitendo 7948150d10 chore: de-personalize the credits and repoint every reference at the monorepo
The project is credited as a project from here on — no maintainer handle in the
About screen, the READMEs, the brand constants or `app-repo.json`, which already
shipped `developerName: "FTStore"`. `apply-rebrand.sh` lost the step that re-added
the About-screen entry on every run, so it can't come back.

The upstream Feather attribution is untouched: the LICENSE, the copyright
headers, the "Feather Developer" credits and the "Built on Feather" news entry
all stay exactly as they were. This is a GPL-3.0 obligation, not a style choice.

Location, second half:

- The compose images moved to the organisation's registry namespace in the
  compose file and the README. The workflows publish via
  `github.repository_owner`, so images have been going to the new namespace
  since the repo moved — a compose file on the old owner keeps running its last
  pulled image and silently stops seeing updates. Called out in the migration
  section; its "Was" column keeps the old owner, because that is what those
  deployments actually have.
- Both `app-repo.json` manifests pointed at the Manager's old standalone
  repository, which stopped existing when the Manager became `manager/`. Icons
  and screenshots now resolve under this repository's `main/manager/…`, and the
  download URLs use the `manager-v*` tag namespace this repo actually publishes.
2026-08-03 15:24:20 +02:00

66 lines
2.0 KiB
YAML

# Pinned so the volume prefix stays `ftstore_` no matter what the checkout
# directory is called. Without it Compose would name the project after the
# folder — `web` in this monorepo — and a `docker compose up` from a fresh
# clone would silently start against empty volumes.
name: ftstore
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: ftstore
POSTGRES_PASSWORD: ftstore
POSTGRES_DB: ftstore
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ftstore"]
interval: 5s
timeout: 5s
retries: 5
app:
image: ghcr.io/ftstuff/ftstore-admin-app:latest
restart: unless-stopped
stop_grace_period: 30s
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://ftstore:ftstore@db:5432/ftstore?schema=public
volumes:
- tdlib-data:/app/tdlib-data
# IPA files and tweak icons. Must be the SAME volume as the worker's:
# the worker writes what the scraper downloads, the app serves it and
# writes what the dashboard uploads.
- ipa-storage:/app/storage
# Dashboard IPA uploads are staged here before ingest — keep multi-hundred-MB
# files off the container's writable layer.
- upload-staging:/tmp/ftstore
depends_on:
db:
condition: service_healthy
worker:
image: ghcr.io/ftstuff/ftstore-admin-worker:latest
restart: unless-stopped
stop_grace_period: 30s
environment:
DATABASE_URL: postgresql://ftstore:ftstore@db:5432/ftstore?schema=public
volumes:
- tdlib-data:/app/tdlib-data
- ipa-storage:/app/storage
- temp-downloads:/tmp/ftstore
depends_on:
db:
condition: service_healthy
volumes:
pgdata:
tdlib-data:
ipa-storage:
# Per-container scratch, deliberately not shared: the app's upload sweeper
# would otherwise race the worker's in-flight downloads.
temp-downloads:
upload-staging: