Files
generic-video-dl/docker-compose.yml
Giancarmine SalucciandClaude Opus 4.8 630c6f36c5
Build and publish docker image / Build and push image to Gitea's registry (push) Successful in 41s
chore: fix lint — upgrade prettier plugins, format, resolve eslint errors
`npm run lint` was broken and noisy:

- prettier-plugin-svelte 3.5.2 / prettier-plugin-tailwindcss 0.6.14 crashed
  on prettier 3.8 with "getVisitorKeys is not a function". Bumped to ^4.1.1
  and ^0.8.0 (compatible with the new embed API).
- Added .prettierignore (build output, .svelte-kit, generated drizzle
  migration meta, lockfile/data) and ran prettier --write across the repo.
- Typed layout `children` as Snippet (was `any`).
- Added keys to the EXTRACTORS {#each} blocks in settings.
- Disabled svelte/no-navigation-without-resolve: the app serves from the
  domain root (no base path) and links to external URLs + raw API endpoints,
  where resolve() is unnecessary or wrong.

No runtime behaviour change.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 14:54:52 +02:00

38 lines
1.3 KiB
YAML

services:
generic-video-dl:
image: ${IMAGE:-git.sal.giize.com/mozempk/generic-video-dl:latest}
restart: unless-stopped
networks:
- proxy
volumes:
- ./data/db:/app/db
- ./data/downloads:/app/downloads
# shared Instagram session (cookies + Chrome fingerprint), owned by ig-keeper
- /home/moze/Server/stacks/ig-session/data:/app/ig-session:ro
environment:
DATABASE_URL: /app/db/jobs.db
DOWNLOADS_DIR: /app/downloads
JWT_SECRET: ${JWT_SECRET}
APP_ENCRYPTION_KEY: ${APP_ENCRYPTION_KEY}
VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY}
VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY}
VAPID_SUBJECT: ${VAPID_SUBJECT:-mailto:admin@localhost}
DEFAULT_ADMIN_PASSWORD: ${DEFAULT_ADMIN_PASSWORD:-}
MAX_CONCURRENT: ${MAX_CONCURRENT:-2}
FILE_RETENTION_DAYS: ${FILE_RETENTION_DAYS:-2}
RETENTION_DAYS: ${RETENTION_DAYS:-14}
PUBLIC_BASE_URL: ${PUBLIC_BASE_URL:-https://vidl.sal.giize.com}
# shared IG session store (read-only mount above)
IG_SESSION_DIR: /app/ig-session
IG_SESSION_KEY: ${IG_SESSION_KEY}
healthcheck:
test: ['CMD', 'wget', '-qO-', 'http://127.0.0.1:3000/api/health']
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
networks:
proxy:
external: true