No description
  • TypeScript 73%
  • Go 24%
  • JavaScript 1%
  • CSS 0.7%
  • PLpgSQL 0.6%
  • Other 0.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-15 15:48:44 +02:00
.pi Cleanup 2026-09-07 09:22:19 +02:00
backend Add a "Up next" sections to the tv show 2026-09-15 15:48:44 +02:00
docker Simplify production deployment 2026-09-08 22:04:36 +02:00
frontend Rework the subtitles button 2026-09-15 15:48:44 +02:00
migrations Add user ratings and watch tracking 2026-08-26 14:41:54 +02:00
.dockerignore Simplify production deployment 2026-09-08 22:04:36 +02:00
.gitignore Simplify production deployment 2026-09-08 22:04:36 +02:00
compose.yaml Simplify production deployment 2026-09-08 22:04:36 +02:00
config.yml.exemple Cleanup 2026-09-07 09:22:19 +02:00
dev.sh Simplify production deployment 2026-09-08 22:04:36 +02:00
go.mod Add whatsthis metadata to torrent results 2026-09-15 15:48:44 +02:00
go.sum Update polochon 2026-08-27 16:05:56 +02:00
INTERNAL.md Return info from DB after a refresh 2019-07-26 12:00:29 +00:00
README.md Cleanup 2026-09-07 09:22:19 +02:00

Frontend requirements

Bun 1.3.10 is the only supported frontend package manager. Install the locked dependencies from frontend/:

bun install --frozen-lockfile

Development and static checks require Bun. Production builds additionally require rsvg-convert from librsvg and ImageMagick's magick executable.

Local validation

Run the cheap, non-mutating static checks before submitting frontend changes:

cd frontend
bun run check

The complete Milestone 0 validation contract is:

bun run check
bun run format:check
bun run build

bun run format is the explicit mutating formatter command. Frontend tests use Bun's built-in runner:

bun test

Installing the web app

Canapé uses browser-native installation. Use Install app in Android Chrome, Share → Add to Home Screen on iPhone or iPad, or File/Share → Add to Dock in macOS Safari. Production must be served over HTTPS. Installed clients load frontend updates on their next launch or navigation.

Dev

Check your config.yml file

Setup your database

Install your own database or start the local Podman database:

./dev.sh podman-db up

Run the backend

./dev.sh back

In case of custom database, launch the backend with DB_USER, DB_PASS, DB_DATABASE, DB_HOST, DB_PORT, or directly the full DSN in DB_DSN_DEV

DB_DSN_DEV="postgres://test:test@127.0.0.1:5432/dev?sslmode=disable" ./dev.sh back

Run the frontend

./dev.sh front

Connect to the database

./dev.sh db-shell

Setup the dev users

Connect to the database and enter this sql queries:

INSERT INTO users (name, hash, admin, activated) VALUES ('test', '$2a$10$QHx07iyuxO1RcehgtjMgjOzv03Bx2eeSKvsxkoj9oR2NJ4cklh6ue', false, true);
INSERT INTO users (name, hash, admin, activated) VALUES ('admin', '$2a$10$qAbyDZsHtcnhXhjhQZkD2uKlX72eMHsX8Hi2Cnl1vJUqHQiey2qa6', true, true);

This users are defined with this parameters: pepper: "pepper" cost: 10

Users:

  • Admin user: admin / admin
  • Test user: test / test

Init the database

./dev.sh db-init

Run the tests

go test ./...