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 ?
#Migrating to seer
284 messages · Page 1 of 1 (latest)
How did you deploy overseerr ? docker run command ? Docker compose file ?
i did a pull from the docker hub and then i think it would have been clicked the run button.
Mmm, you could run docker ps in a terminal ?
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
So first, we'll make a backup.
- Stop overseerr
- 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 .
if i paste this into terminal it fails saying invalid reference format
could you share a screenshot ?
My bad, I forgot you were on Windows 🗿
no worries
Command should be oneline : docker run --rm -v overseerr-data:/data v $(pwd):/backup alpine tar czf /backup/overseerr-backup.tar.gz -C /data .
Sorry, typo again
docker run --rm -v overseerr-data:/data -v "${PWD}:/backup" alpine tar czf /backup/overseerr-backup.tar.gz -C /data .
ok that worked
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
ok thats done 🙂
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
ok done
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
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 ?
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
thx, seer auto detect that its an overseer data ?
will i need to do something ?
thx a lot for the support
they have the same structure so you shouldn't encouter any issue.
If so, take a look at the migration guide : https://docs.seerr.dev/migration-guide
Read our release announcement to learn what Seerr means for Jellyseerr and Overseerr users.
@lost orbit that has worked perfectly. thank you so much for you help.
Glad I could help you ! Enjoy 🙂
i look but it said we have nothing to do just backup and start seer
that why i was confuse if i need to to a new volume, or use same volume
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
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
You were using sqlite. Whatever is easier for you. Its just more of a personal choice
i just want the faster one for the best experience for my user
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
i dont really know wich one is faster
what is a small instance and what is a big instance for you ?
but thx for the clarification
I had to update the permissions of /app/config not /data is that expected in some deployments?
yeas cause the container run with 1000 permission by defauylt now
i'm on truenas and i need to use user: NUMBER:NUMBER
variable
Seemed to work fine
For seerr related dbs, its always small. Big dbs are like organisation level stuff
So you can choose whichever. Speed will be negligible
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 ?
You can always bother me about seerr related questions 😉
For the custom logo. We dont have plans for it. But custom email notifications we have plans for it. I think there is an open pr
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
You can always manually mount and replace. its /app/public folder. Youll need to mount your own
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 !
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?
Your internal container path has to be /app/config
Not /config
And make sure the volume path is properly mounted as well like some setups has /your/config/overseerr
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.
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?
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
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?
Youll need to replace whole public folder with your own after grabbing from github and replacing all the logo files
Thanks 😎
I was thinking at first, I needed to run the compose again. But that isnt necessary when when I change these files? Just start it again?
No you need to redeploy
Editting and saving a compose doesnt change the container
@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```
-
Couple of issues
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
Thanks for the reply. I am not an advance user. So my apologies for the mounting part.
I don't mind which image to use. I would guess the official image is preferred?
I would remove those mounts tho since they dont do anything. and if youre going with teh official image i would recommend grabibng the latest compose from our migration guide and then youll need to mount the overseerr directory as seerr config
but before that
can i see ls -alh /volume1/docker/appdata/overseerr
U want me to drop the ssh line in here from that location?
yeah sure
just wanna see the directory structure and the perms
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```
okay so youll need to do the following
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
Do u want to see the ls -alh /volume1/docker/appdata/overseerr afterwards?
yes and also a stat /volume1/docker/appdata/overseerr
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
same
chmod: cannot access '/volume1/docker/appdata/overseerr1': No such file or direc tory
(1)
? 😛
you have a 1 at the end
ah lol that was supposed to be a `
not a 1
yes
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: -
Ah still chmod didnt run
sudo chmod -R 775 /volume1/docker/appdata/overseerr
Tried it several times now
It still shows as 755
Can you show me your command and if it outputs anything
Then rerun a stat
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: -```
Okay perfect
You see in 5th line the Access is 0755
Whereas now its 0775
I am confused 😬
Access: (0775/drwxrwxr-x) Uid: ( 1000/ UNKNOWN)
Both the same stats that I posted
Now shiw me your compose for seerr to confirm
So i can help make it seamless
Uhmmm. its this one. U want? I posted this one ealier
Copy paste the seerr one into it
Replace overseerr part
Or
Jusy take a look at the migration guide
It tells you what to add
What additional things to add
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```
From line 2 to all the way to restart. Copy, replace your overseerr part
And replace the volume to the one in overseerr
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```
You will be replacing starting from line 7 the one that says "overseerr:" all the way to the DOCKERSTORAGEDIR one
So keep hotio image?
No
Oh wait you counted from the top
We are replacing the overseerr block with this
Yes
right?
Yup
/volume1/docker/appdata/overseerr change it to this?
Yes
Show me after
Sure. I would guess the volume to be, Seerr by now haha
Not unless you renamed it
Its a folder in your host so
@lean spade U want a print screen of the compose?
You need to remove line 154 and 156
And volume to
/volume1/docker/appdata/overseerr:/app/config
U mean 168?
Yes. Youre missing the internal container path
/volume1/docker/appdata/overseerr:/app/config
I changed it into this. Like u told me to?
I said to change the host path
My bad I guess. U said to replace the volume to the one in overseerr. Didn't u meant the compose?
What i meanf was
The volumes here? Thay section?
Copy that
Into the new swerr volumes section
And remove the unused ones
But this also works
Oke. I got it like this
Yes good. You might wanna change the TZ=Asia/Tashkent to your timezone
Yyp you can compose up now
Lets hope all users get merged correctly 🤞
Merged?
There is no merge for users
I meant from Overseerr
There is no merge
Thats not how it works
Youre just using the same db
Ur saying I will lose all data then?
The migration we call here is changing the schema of db to match jellyseerr (seerr)
No. I am saying there is no merge
This is using the same data.
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
Ah oke. That sounds releaved 😊
I am looking a bit over my TZ. Other compose says TZ=${TZ}
Doesn't seem right to me
You could use that if the TZ value is coming from a variable. ${TZ} is a variable you set elsewhere. So my question is where
Are you using like a .env file or
Yeah. I am having a .env file
So the tz is described there
Should be good as long as its your timezone
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
Yes
Not sure how the .env file works with it. Sorry, I forgot
@lean spade So it should be good by now then?
@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?
Did you start or docker compose up -d
I am normally using a pullio script for updating my compose containers /usr/local/bin/pullio > /volume1/docker/appdata/pullio/pullio.log 2>&1
Would that not harm the already active containers that are in the compose? I thought that would recreate them
No. Thats not how compose works. It only recreates whatever has been changed
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
@lean spade so that pullio script doesnt work with new lines i guess?
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
@lean spade Well. I used the pullio script. But the container didnt do anything
Idk about the script. We dont maintain it
But like i said docker compose up -d is the same thing
Alright. Do i need to do anything with the Overseerr container? All I did, was stop it
I havent deleted it
Should be fine
I wil try the compose up -d in a couple of hours. Lets see if the containers starts automatically
They should. Thats what compose is for
My god you are patient. I hope Paynemaster buys you a few coffees for all your help. 😂
@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.
That’s fine, when you next stop the container, do docker compose up -d —remove-orphans
@quaint skiff Awesome. Now to get my Cloudflare tunnel working with Seerr 😬
What’s the issues you’re facing with the CF tunnel?
the dns to my seerr is not reachable. I guess this is because it changed with having me moved from Overseerr
Yeah me too
Wait… did you change up your DNS that your seerr is sitting behind ?
Looking at my compose right now. showing a token
No haven't changed anything
Just not reachable outside of my netwkr
That’s odd
Wait
hmmmm
Normally the container isn't auto starting. I double checked. And its running. So thats not the issue
What’s your seerr compose look like?
@quaint skiff This one
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
Happy to have gotten that sorted out!
Yeah thanks for the help. All of you!
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
Yes but you need to replace /path/to/appdata/config with your actual config path (whether its a volume or host path)
so you use this path
the settings.json is in that path
the db is in /home/xxx/ov-data_new/db
So you use that host path yes. Full path of Ov-data-new
ok
it worked.. thank you very much for the help
ls
🗿