#Migrating to seer

284 messages · Page 1 of 1 (latest)

fierce mural
#

so i don't really use Docker all that much apart from for Overseerr and when i set it up i used the Docker Hub on Docker Desktop. this is running on a windows machine. i have taken a look at the migration guide and if im honest i actually have no clue where i am even supposed to start here. do i just pull the new seer setup and it will do a migration or is there something else i need to do ?

lost orbit
#

How did you deploy overseerr ? docker run command ? Docker compose file ?

fierce mural
#

i did a pull from the docker hub and then i think it would have been clicked the run button.

lost orbit
#

Mmm, you could run docker ps in a terminal ?

fierce mural
lost orbit
#

Now, can you do docker inspect overseerr ? We'll need to get as many info as we can to create a proper docker compose file

fierce mural
lost orbit
#

So first, we'll make a backup.

  1. Stop overseerr
  2. Run this from the folder you like (where the backup will be)
docker run --rm \
  -v overseerr-data:/data \
  -v $(pwd):/backup \
  alpine \
  tar czf /backup/overseerr-backup.tar.gz -C /data .
fierce mural
#

if i paste this into terminal it fails saying invalid reference format

lost orbit
#

could you share a screenshot ?

fierce mural
lost orbit
#

My bad, I forgot you were on Windows 🗿

fierce mural
#

no worries

lost orbit
#

Command should be oneline : docker run --rm -v overseerr-data:/data v $(pwd):/backup alpine tar czf /backup/overseerr-backup.tar.gz -C /data .

fierce mural
lost orbit
#

Sorry, typo again
docker run --rm -v overseerr-data:/data -v "${PWD}:/backup" alpine tar czf /backup/overseerr-backup.tar.gz -C /data .

fierce mural
#

ok that worked

lost orbit
#

Nice ! So now, we must prepare the new image using this command (it's basically to fix permissions) :
docker run --rm -v overseerr-data:/data alpine chown -R 1000:1000 /data

fierce mural
#

ok thats done 🙂

lost orbit
#

Last but not least, you'll need to create a compose.yml file, wherever you like and add this to it :

services:
  seerr:
    image: "ghcr.io/seerr-team/seerr:latest"
    container_name: seerr
    init: true
    restart: unless-stopped

    ports:
      - "5055:5055"

    environment:
      - TZ=Asia/Tokyo # Feel free to change the timezone to whatever you want
      - LOG_LEVEL=debug

    volumes:
      - overseerr-data:/app/config

volumes:
  overseerr-data:
    external: true
fierce mural
#

ok done

lost orbit
#

Moment of truth...
Run docker compose up -d in the same folder where the compose file is

#

It should pull the new image and start seerr

hardy helm
#

Hello, just dump question bit, if i migrate to seer from overseer, do i need to create new volume and seer will detect overseeer at start ? or do i need to shutdown overseer and point seer to overseet volume ?

lost orbit
#

You can create a new volume (for consistency), but that would involve copy old overseerr config files to it
So better option would be to keep your old overseerr volume yes

hardy helm
#

thx, seer auto detect that its an overseer data ?

#

will i need to do something ?

#

thx a lot for the support

lost orbit
fierce mural
#

@lost orbit that has worked perfectly. thank you so much for you help.

lost orbit
hardy helm
#

that why i was confuse if i need to to a new volume, or use same volume

lost orbit
#

Yeah, we might have forgot about docker volumes because some people don't use it
We'll clarify this in the docs

#

Implicitly when we say /path/to/appdata/config, it could also be a proper docker volume

hardy helm
#

its more cause i'm not english and my english is not that good

#

so i understand but not perfectly

#

thx for the support

#

and also, sorry to bother you

#

what is the best database to use ? and what database was i using in overseer

#

i saw we have new database that we can use

lean spade
hardy helm
#

i just want the faster one for the best experience for my user

lean spade
#

The benefits of postgres comes from like being able to do db stuff without shutting down seerr like taking backups or editting etc

#

And typically being faster for LARGER dbs

hardy helm
#

i dont really know wich one is faster

lean spade
#

On small instances it doesnt relaly matter

#

The speed is neglible

hardy helm
#

what is a small instance and what is a big instance for you ?

#

but thx for the clarification

merry estuary
#

I had to update the permissions of /app/config not /data is that expected in some deployments?

hardy helm
#

i'm on truenas and i need to use user: NUMBER:NUMBER

#

variable

merry estuary
#

Seemed to work fine

lean spade
#

So you can choose whichever. Speed will be negligible

hardy helm
#

thx a lot for the answer

#

I have really one last question, i wont boother you again after, its not about migration, its juste i'm windering if their is a way or mayber later, to custom the logo and custom the email notification send to user ?

lean spade
lean spade
hardy helm
#

ok thx a lot, its cause i like to have a branding for all the app i give access to my user

#

Like "NayzFilx" "NayzDownload" etc..

#

hype for the custom email pr

lean spade
hardy helm
#

Yes i guess its possible to do it manually

#

But its harder and can alwaus break

#

that why have it in a feature is better, but i understand

#

thx a lot for all your help brother !

pale goblet
#

I followed the instructions provided in this thread but I get The /app/config volume mount was not configured properly. All data will be cleared when the container is stopped or restarted. when visiting 5055. Any ideas on what to do?

lean spade
#

Not /config

#

And make sure the volume path is properly mounted as well like some setups has /your/config/overseerr

keen kindle
#

Just wanted to chime in to say these steps fixed my issue as well. I'm also on Windows, using Docker mostly just for Overseerr. The migration guide for Windows has you create a new volume called seerr-data but for some of us migrating, this doesn't work since it won't migrate from the existing overseerr-data volume. I modified my compose.yml as mentioned above (after doing a backup), replacing BOTH references to seerr-data with overseerr-data and then it worked. Super easy once you realize that was all that was needed.

keen ridge
#

Let me ask my question in this thread aswel. How does one migrate to seerr by Docker with Synology. Do I need to edit the existing Overseerr compose?

lean spade
# keen ridge Let me ask my question in this thread aswel. How does one migrate to seerr by Do...

You can yes. Just make sure that your config is backed up. And your config folder should have for example /volume1/docker_v1/overseerr:

db/
logs/
settings.json

If your config folder has it like inside /volume1/docker_v1/overseerr:
config/db
config/logs
config/settings.json

Then you mount /volume1/docker_v1/overseerr/config.

Also before you deploy stop overseerr ofc. Then backup config folder. Then change permissions to 1000:1000 you can do this on a host shell too by doing sudo chown -R 1000:1000 /volume1/docker_v1/overseerr for example. Then change the compose to the one in migration guide. Then deploy

keen ridge
#

Out of curiosity. I tried this with Overseerr. Not sure if this differs from Seerr. How well, is using a custom logo with Seerr compatible. Is there any configuration for that?

lean spade
keen ridge
#

Thanks 😎

keen ridge
lean spade
#

Editting and saving a compose doesnt change the container

keen ridge
#

Ah alright

#

Will look into it 😁

keen ridge
#

@lean spade I am a little bit confused on what I need to change to the compose. Is here what I have right now.

# sudo -u docker mkdir -m=00775 /volume1/docker/appdata/overseerr
#
  overseerr:
    container_name: overseerr
    image: hotio/overseerr
    restart: unless-stopped
    logging:
      driver: json-file
      options:
        max-file: ${DOCKERLOGGING_MAXFILE}
        max-size: ${DOCKERLOGGING_MAXSIZE}
    labels:
      - org.hotio.pullio.update=${PULLIO_UPDATE}
      - org.hotio.pullio.notify=${PULLIO_NOTIFY}
      - org.hotio.pullio.discord.webhook=${PULLIO_DISCORD_WEBHOOK}
    ports:
      - 5055:5055
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ${DOCKERCONFDIR}/overseerr:/config
      - ${DOCKERSTORAGEDIR}/media:/data/media```
      -
lean spade
#

a) mounting your media directory does nothing. Seerr doesnt interact with your media
b) you dont need to mount localtime too
c) do you intend to use hotio's image or official image then I can help

keen ridge
lean spade
#

but before that

#

can i see ls -alh /volume1/docker/appdata/overseerr

keen ridge
#

U want me to drop the ssh line in here from that location?

lean spade
#

just wanna see the directory structure and the perms

keen ridge
#

incomming 😉

#
drwxrwxr-x 1 docker users   38 Apr 28  2024 .
drwxrwxr-x 1 docker users  268 Mar 10  2025 ..
drwxrwxr-x 1 docker users   76 Apr 28  2024 db
drwxrwxr-x 1 docker users 1.4K Feb 15 00:00 logs
-rw-rw-r-- 1 docker users 6.1K Feb 15 14:45 settings.json```
lean spade
#

sudo chown -R 1000:1000 /volume1/docker/appdata/overseerr

#

then sudo chmod -R 755 /volume1/docker/appdata/overseerr

#

then you can use the seerr compose

#

with that config mounted

#

backup that folder before you upgrade

keen ridge
#

Do u want to see the ls -alh /volume1/docker/appdata/overseerr afterwards?

lean spade
keen ridge
#

About the backup. I just did a copy and past thing at the file station. with Synlogy. Would that be enough. Or should I do cp -a /mnt/user/appdata/overseerr /mnt/user/appdata/overseerr-backup

#

Or would the outcome be the same

lean spade
keen ridge
#

chmod: cannot access '/volume1/docker/appdata/overseerr1': No such file or direc tory

#

(1)

#

? 😛

keen ridge
#

Yeah. That is what u said 😛

#

typo?

lean spade
#

not a 1

lean spade
keen ridge
#
drwxr-xr-x 1   1000  1000   38 Apr 28  2024 .
drwxrwxr-x 1 docker users  268 Mar 10  2025 ..
drwxr-xr-x 1   1000  1000   76 Apr 28  2024 db
drwxr-xr-x 1   1000  1000 1.4K Feb 15 00:00 logs
-rwxr-xr-x 1   1000  1000 6.1K Feb 15 14:45 settings.json```
#
  Size: 38              Blocks: 0          IO Block: 4096   directory
Device: 38h/56d Inode: 8431921     Links: 1
Access: (0755/drwxr-xr-x)  Uid: ( 1000/ UNKNOWN)   Gid: ( 1000/ UNKNOWN)
Access: 2026-02-17 22:05:28.442502463 +0100
Modify: 2024-04-28 18:04:29.083546542 +0200
Change: 2026-02-17 22:05:09.439204255 +0100
 Birth: -
lean spade
#

sudo chmod -R 775 /volume1/docker/appdata/overseerr

keen ridge
#

Tried it several times now

lean spade
lean spade
#

Then rerun a stat

keen ridge
#
  Size: 38              Blocks: 0          IO Block: 4096   directory
Device: 38h/56d Inode: 8431921     Links: 1
Access: (0775/drwxrwxr-x)  Uid: ( 1000/ UNKNOWN)   Gid: ( 1000/ UNKNOWN)
Access: 2026-02-17 22:09:56.877727808 +0100
Modify: 2024-04-28 18:04:29.083546542 +0200
Change: 2026-02-17 22:09:56.877727808 +0100
 Birth: -```
keen ridge
#

huh?

#

I don't see any different between the two stats I posted

lean spade
lean spade
keen ridge
#

I am confused 😬

#

Access: (0775/drwxrwxr-x) Uid: ( 1000/ UNKNOWN)

#

Both the same stats that I posted

keen ridge
#

Oh damn sorry. Its my eyes

#

0755 - 0775. Not the best match 😛

#

alright

lean spade
#

So i can help make it seamless

keen ridge
lean spade
#

Thays overseerr compose

#

I suggest grabbing the compose from our docs

#

For seerr

keen ridge
#

I am using a compose with others in it

#

for updating and suchs

lean spade
#

Replace overseerr part

#

Or

#

Jusy take a look at the migration guide

#

It tells you what to add

#

What additional things to add

keen ridge
#

Thats the part that confuses me a bit 😅 . It this that need to be changed to? ```---
services:
seerr:
image: ghcr.io/seerr-team/seerr:latest
init: true
container_name: seerr
environment:
- LOG_LEVEL=debug
- TZ=Asia/Tashkent
ports:
- 5055:5055
volumes:
- seerr-data:/app/config
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
restart: unless-stopped

volumes:
seerr-data:
external: true```

lean spade
#

And replace the volume to the one in overseerr

keen ridge
#

To be clear

#

I am replacing it on this compose. ```Don't forget to create the directory, change chown command if needed (the user:group part)

sudo -u docker mkdir -m=00775 /volume1/docker/appdata/overseerr

overseerr:
container_name: overseerr
image: hotio/overseerr
restart: unless-stopped
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
labels:
- org.hotio.pullio.update=${PULLIO_UPDATE}
- org.hotio.pullio.notify=${PULLIO_NOTIFY}
- org.hotio.pullio.discord.webhook=${PULLIO_DISCORD_WEBHOOK}
ports:
- 5055:5055
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/overseerr:/config
- ${DOCKERSTORAGEDIR}/media:/data/media```

lean spade
keen ridge
#

So keep hotio image?

lean spade
keen ridge
#

Oh wait you counted from the top

lean spade
lean spade
keen ridge
#

right?

lean spade
keen ridge
lean spade
#

Show me after

keen ridge
#

Sure. I would guess the volume to be, Seerr by now haha

lean spade
#

Its a folder in your host so

keen ridge
#

@lean spade U want a print screen of the compose?

keen ridge
lean spade
#

And volume to

#

/volume1/docker/appdata/overseerr:/app/config

keen ridge
lean spade
keen ridge
lean spade
keen ridge
lean spade
#

Copy that

#

Into the new swerr volumes section

#

And remove the unused ones

keen ridge
#

Oke. I got it like this

lean spade
keen ridge
#

Yeah will do that

#

thanks

#

So I havent changed anything besides this compose, oke?

lean spade
keen ridge
#

Lets hope all users get merged correctly 🤞

lean spade
#

There is no merge for users

keen ridge
#

I meant from Overseerr

lean spade
#

Thats not how it works

#

Youre just using the same db

keen ridge
#

Ur saying I will lose all data then?

lean spade
#

The migration we call here is changing the schema of db to match jellyseerr (seerr)

lean spade
#

This is using the same data.

keen ridge
#

Maybe I missuse the word merge 😛

#

How about import 🥸

lean spade
# keen ridge How about import 🥸

Nope. Basically what the migration from overseerr to seerr does is just changes the database schema. In layman terms, the design of the database. The extra columns and extra tables that seerr relies on gets added

#

Your actual data stays the same 😉

#

Untouched

keen ridge
#

Ah oke. That sounds releaved 😊

#

I am looking a bit over my TZ. Other compose says TZ=${TZ}

#

Doesn't seem right to me

lean spade
#

Are you using like a .env file or

keen ridge
lean spade
#

Should be good as long as its your timezone

keen ridge
#

I would still need to change it with the Seerr compose, right?

#

I haven't touched the .env file that I can remember. Do I need to add something from Seerr into that file?

#

@lean spade Should I just putt TZ=${TZ} into the Seerr compose. Would that be enough? 🙃

#

Because I am not really sure what difference it makes. If I just put in my timezone. Or the one I dropped in the previous message

keen ridge
#

@lean spade So it should be good by now then?

keen ridge
#

@lean spade It seems after running the compose that the container hasn't been updated to Seerr

#

I still have the Overseerr container stopped. Do I need to start it first in order to get the compose working?

lean spade
keen ridge
keen ridge
lean spade
#

And recreating doesnt mess up docker containers either

#

Becayse your volume mounts persists your data

#

Literally docker was designed like this. Like for people who dont use compose, when updating they literally have to do the following

  • docker stop the container
  • docker delete the container
  • docker pull new image
  • docker recreate container
keen ridge
#

@lean spade so that pullio script doesnt work with new lines i guess?

lean spade
#

The script literally does the same thing

#

docker compose pull

#

docker compose up -d

#

It will work. You can use it too. But the script does the same thjng as well

keen ridge
#

@lean spade Well. I used the pullio script. But the container didnt do anything

lean spade
#

But like i said docker compose up -d is the same thing

keen ridge
#

Alright. Do i need to do anything with the Overseerr container? All I did, was stop it

#

I havent deleted it

lean spade
keen ridge
lean spade
proper drift
keen ridge
#

@lean spade Thanks. I got it running 😉

#

One side note WARN[0134] Found orphan containers ([overseerr]) for this project. If you removed or renamed this service in your compose file, you can run th is command with the --remove-orphans flag to clean it up.

quaint skiff
#

That’s fine, when you next stop the container, do docker compose up -d —remove-orphans

keen ridge
#

@quaint skiff Awesome. Now to get my Cloudflare tunnel working with Seerr 😬

quaint skiff
keen ridge
quaint skiff
#

Uhhh… how are you connecting your tunnel?

#

I’m doing mine through a token

keen ridge
#

Yeah me too

quaint skiff
#

Wait… did you change up your DNS that your seerr is sitting behind ?

keen ridge
#

Looking at my compose right now. showing a token

#

No haven't changed anything

#

Just not reachable outside of my netwkr

quaint skiff
#

That’s odd

keen ridge
#

Wait

#

hmmmm

#

Normally the container isn't auto starting. I double checked. And its running. So thats not the issue

quaint skiff
#

What’s your seerr compose look like?

keen ridge
quaint skiff
#

Are you running any kind of proxy?

#

Also sent you a DM, I’d kind of need to see the issue for this if you’d like some help w it

quaint skiff
#

Happy to have gotten that sorted out!

keen ridge
#

Yeah thanks for the help. All of you!

spiral yoke
#

i am running overseer in portainer will this command still work

docker run --rm -v /path/to/appdata/config:/data alpine chown -R 1000:1000 /data

lean spade
spiral yoke
#

so you use this path

#

the settings.json is in that path

#

the db is in /home/xxx/ov-data_new/db

lean spade
#

So you use that host path yes. Full path of Ov-data-new

spiral yoke
#

ok

spiral yoke
lusty pebble
#

ls

lean spade