#Migrate from Jellyseerr to Seer

30 messages · Page 1 of 1 (latest)

jagged minnow
#

I currently use docker for windows, using a docker compose yml file.. which is here

services: jellyseerr: image: fallenbagel/jellyseerr:latest container_name: jellyseerr environment: - LOG_LEVEL=debug - TZ=Europe/London - PORT=5055 - JELLYSEERR_ENABLE_JELLYFIN=true ports: - "5055:5055" volumes: - T:/Websites/Jellyseerr/appdata/config:/app/config - T:/Websites/Jellyseerr/app/public:/app/public healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:5056/api/v1/status || exit 1"] start_period: 20s timeout: 3s interval: 15s retries: 3 restart: unless-stopped

I can get it up and running using the following compose yml file..

`services:
seerr:
image: ghcr.io/seerr-team/seerr:latest
container_name: seerr
init: true
environment:
- LOG_LEVEL=debug
- TZ=Europe/London
- PORT=5055
- JELLYSEERR_ENABLE_JELLYFIN=true
ports:
- "5055:5055"
volumes:
- seerr_config:/app/config
- T:/Websites/Jellyseerr/app/public:/app/public
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:5055/api/v1/status || exit 1"]
start_period: 20s
timeout: 3s
interval: 15s
retries: 3
restart: unless-stopped

volumes:
seerr_config:`

However this displays the following message on a fresh install.

The /app/config volume mount was not configured properly. All data will be cleared when the container is stopped or restarted.

#

I chnage to:

`services:
seerr:
image: ghcr.io/seerr-team/seerr:latest
container_name: seerr
init: true
environment:
- LOG_LEVEL=debug
- TZ=Europe/London
- PORT=5055
- JELLYSEERR_ENABLE_JELLYFIN=true
ports:
- "5055:5055"
volumes:
- T:/Websites/Jellyseerr/appdata/config:/app/config
- T:/Websites/Jellyseerr/app/public:/app/public
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:5055/api/v1/status || exit 1"]
start_period: 20s
timeout: 3s
interval: 15s
retries: 3
restart: unless-stopped

volumes:
seerr_config:`

#

and get this

2026-02-15T08:35:47.063Z [info]: Commit Tag: 789bcc8eec3414da373328e374c2edb1abc3ac0d

2026-02-15T08:35:47.973Z [info]: Starting Seerr version 3.0.1

Migration "AddUniqueConstraintToPushSubscription1765233385034" failed, error: SQLITE_READONLY: attempt to write a readonly database

2026-02-15T08:35:49.325Z [error]: QueryFailedError: SQLITE_READONLY: attempt to write a readonly database

at Statement.handler (/app/node_modules/.pnpm/typeorm@0.3.28_babel-plugin-macros@3.1.0_pg@8.17.2_sqlite3@5.1.7_ts-node@10.9.2_@swc+co_0f5d9f6d6bb29b0ea81959fb5f54385f/node_modules/typeorm/driver/sqlite/SqliteQueryRunner.js:88:37)

at Statement.replacement (/app/node_modules/.pnpm/sqlite3@5.1.7/node_modules/sqlite3/lib/trace.js:25:27)

at Statement.replacement (/app/node_modules/.pnpm/sqlite3@5.1.7/node_modules/sqlite3/lib/trace.js:25:27) 

seerr@3.0.1 start

NODE_ENV=production node dist/index.js

2026-02-15T08:35:52.774Z [info]: Commit Tag: 789bcc8eec3414da373328e374c2edb1abc3ac0d

2026-02-15T08:35:53.484Z [info]: Starting Seerr version 3.0.1

Migration "AddUniqueConstraintToPushSubscription1765233385034" failed, error: SQLITE_READONLY: attempt to write a readonly database

2026-02-15T08:35:55.044Z [error]: QueryFailedError: SQLITE_READONLY: attempt to write a readonly database

at Statement.handler (/app/node_modules/.pnpm/typeorm@0.3.28_babel-plugin-macros@3.1.0_pg@8.17.2_sqlite3@5.1.7_ts-node@10.9.2_@swc+co_0f5d9f6d6bb29b0ea81959fb5f54385f/node_modules/typeorm/driver/sqlite/SqliteQueryRunner.js:88:37)

at Statement.replacement (/app/node_modules/.pnpm/sqlite3@5.1.7/node_modules/sqlite3/lib/trace.js:25:27)

at Statement.replacement (/app/node_modules/.pnpm/sqlite3@5.1.7/node_modules/sqlite3/lib/trace.js:25:27) 

seerr@3.0.1 start

NODE_ENV=production node dist/index.js

#

Update incase anyone else is reading this.

got it working via

docker run --rm -v T:/Websites/Jellyseerr/appdata/config:/data alpine chown -R 1000:1000 /data

waxen summit
#

I ran the command but still get this error
Error: EACCES: permission denied, open '/app/config/logs/seerr-2026-02-15.log'

jagged minnow
#

What do the logs say?

also try deleting the logs folder completely, that's helped a few people on here

waxen summit
#

seerr@3.0.1 start
NODE_ENV=production node dist/index.js

2026-02-15T08:44:14.166Z [info]: Commit Tag: 789bcc8eec3414da373328e374c2edb1abc3ac0d
2026-02-15T08:44:15.195Z [info]: Starting Seerr version 3.0.1
node:events:497
throw er; // Unhandled 'error' event
^

Error: EACCES: permission denied, open '/app/config/logs/seerr-2026-02-15.log'
Emitted 'error' event at:
at WriteStream.<anonymous> (/app/node_modules/.pnpm/file-stream-rotator@0.6.1/node_modules/file-stream-rotator/FileStreamRotator.js:697:15)
at WriteStream.emit (node:events:519:28)
at emitErrorNT (node:internal/streams/destroy:170:8)
at emitErrorCloseNT (node:internal/streams/destroy:129:3)
at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {
errno: -13,
code: 'EACCES',
syscall: 'open',
path: '/app/config/logs/seerr-2026-02-15.log'
}

jagged minnow
#

Try deleting the logs folder completely, run the command again, obviously changing T:/Websites/Jellyseerr/appdata/config to the path of your own config folder.

If that doesn't work, then try posting your own thread, I'm sure one of the Seer team can help you.

covert garden
waxen summit
#

this is my compose file

services:
  seerr:
    image: ghcr.io/seerr-team/seerr:v3.0.1
    init: true
    container_name: seerr
    env_file:
      - .env
    environment:
      - LOG_LEVEL=debug
      - TZ=Asia/..
      - TINI_SUBREAPER=true
      - DB_TYPE=postgres
      - DB_HOST=postgres_server
      - DB_PORT=5432
      - DB_NAME=seerr
      - DB_USER=seerr
      - DB_PASS=${DB_PASSWORD}
    networks:
      - ..
    volumes:
      - ./config:/app/config
    restart: unless-stopped
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:5055/api/v1/status || exit 1
      start_period: 20s
      timeout: 3s
      interval: 15s
      retries: 3
    dns:
      - 1.1.1.1
      - 8.8.8.8
      - 9.9.9.9

this is the command I ran
docker run --rm -v /volume1/docker/seerr/config:/data alpine chown -R 1000:1000 /data

#

sorry @jagged minnow to piggyback off your thread

covert garden
#

And send output

waxen summit
#
sh-4.4$ stat ./config
  File: ./config
  Size: 82              Blocks: 0          IO Block: 4096   directory
Device: 29h/41d Inode: 117918      Links: 1
Access: (0000/d---------)  Uid: ( 1000/ UNKNOWN)   Gid: ( 1000/ UNKNOWN)
Access: 2026-02-15 11:49:55.281428284 +0300
Modify: 2025-10-21 23:49:27.527979600 +0300
Change: 2026-02-15 11:49:55.282428297 +0300
 Birth: -
#

I am on synology btw where the user is 1026

covert garden
waxen summit
#
d---------+ 1 1000 1000   82 Oct 21 23:49 .
dr-xr-xr-x+ 1 1000 1000  116 Feb 15 11:19 ..
d---------+ 1 1000 1000   12 Mar 22  2025 cache
d---------+ 1 1000 1000   76 Mar 25  2025 db
d---------+ 1 1000 1000  880 Feb 15 00:00 logs
----------+ 1 1000 1000 8.2K Oct 21 23:49 settings.json
----------+ 1 1000 1000 8.2K Feb  1 06:22 settings.old.json```
covert garden
#

Okay so stop seerr

#

And restart. Did you run the command while seerr was running or stopped

waxen summit
#

I am pretty sure I ran it before compose up

covert garden
#

docker compose down

#

Then sudo chown -R 1000:1000 ./config

#

Then sudo chmod -R 755 ./config

#

Then compose up

waxen summit
#

ok thanks. It seems that it worked but now I am fighting with postgres haha

waxen summit
#

2026-02-15T09:25:20.836Z [error]: QueryFailedError: relation "migrations" already exists
at PostgresQueryRunner.query (/app/node_modules/.pnpm/typeorm@0.3.28_babel-plugin-macros@3.1.0_pg@8.17.2_sqlite3@5.1.7_ts-node@10.9.2_@swc+co_0f5d9f6d6bb29b0ea81959fb5f54385f/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:216:19)

waxen summit
#

sorry it's not an issue related to seerr. All good

covert garden