Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Tachidesk-Docker Support Thread

Featured Replies

Hi Everyone Update 02.03.2024

After getting the app from the community app library

Change the config while enabling Basic View on the top right corner

Repository: ghcr.io/suwayomi/tachidesk:preview

Extra Parameters: -u 99:100

the extra parameters to bypass the permissions issues

image.png.0e92230f4842dd405fc69bb7363e1b04.png

 

The new version support extensions repository , auto download of extensions.....

I hope my info will help someone

  • 1 month later...
  • Replies 85
  • Views 33.7k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • New Way to get Rid of the File permission error.   I Don't know if this will stick, or if it will get added in the default container. Create a Backup before adding or removing these Cha

  • I didn't think that Dockers work that way but apparently they do.   For volume mapping the unraid host uses the -v command which adds the problem discussed bellow:     Accordi

  • theangelofspace15
    theangelofspace15

    Well, i didnt see any comment lol but in case anyone eant to give ot a try this os how it looks. `Config` is your config file, `/config/download` the folder the app downloads manga, `config/local` you

Posted Images

I know it's unnecessary but I am trying to route this through my GluetunVPN. I can't seem to get the configuration to work.

Using Network mode as "None" and adding after the Extra Parameters "--network=container:gluetun" it will successfully launch but I cannot access the webUI. I have added the internal port inside of the GluetunVPN container as well, but when checking the logs in TachiDesk, it shows IP 0.0.0.0:4567 which I think it perhaps not correct. 

Any ideas? 

  • Author
On 5/1/2024 at 7:48 PM, Atreides said:

I know it's unnecessary but I am trying to route this through my GluetunVPN. I can't seem to get the configuration to work.

Using Network mode as "None" and adding after the Extra Parameters "--network=container:gluetun" it will successfully launch but I cannot access the webUI. I have added the internal port inside of the GluetunVPN container as well, but when checking the logs in TachiDesk, it shows IP 0.0.0.0:4567 which I think it perhaps not correct. 

Any ideas? 

Hi Atreides,

 

Did you replace the Variables in the WebUI field? When using another container for network access these don't work. This is my Setup:

grafik.thumb.png.2869c660ae5da44b81468383250e8b6b.png

Replace the Variables with your servers ip adress and the port you gave Tachidesk in GluetunVPN.

On 5/1/2024 at 7:48 PM, Atreides said:

IP 0.0.0.0:4567

Expected behavior.

 

If it still wont work tell me the following:

- did the WebUI work before changing to gluetun

- post docker run

 

Kind Regards

Thank you for your assistance. I ended up using the VPN manager inside of unraid itself and selecting that network. Still this is super useful as I know I will need to be able to know this going forward.

Any idea about this new error after the last update? Everything has been working very well!

image.png

  • Author
16 hours ago, Atreides said:

Thank you for your assistance. I ended up using the VPN manager inside of unraid itself and selecting that network. Still this is super useful as I know I will need to be able to know this going forward.

Any idea about this new error after the last update? Everything has been working very well!

image.png

Hi,

this seems to be an error with the Backup process. The folderpath in the Backup settings might be wrong; but i don't know the right path right know.

Thank you very much.

I think I made an incorrect directory location for the backup, used it for several days, and when it restarted it(for update) held up the entire app. Editing the server.conf file and stopping the update fixed it till I could change it in GUI. Keeping the location "" as blank worked.

Should this docker still be on the preview branch, as I think thats what was triggering the frequent updates?

  • Author
11 hours ago, Atreides said:

Thank you very much.

I think I made an incorrect directory location for the backup, used it for several days, and when it restarted it(for update) held up the entire app. Editing the server.conf file and stopping the update fixed it till I could change it in GUI. Keeping the location "" as blank worked.

Should this docker still be on the preview branch, as I think thats what was triggering the frequent updates?

Hi,

 

The preview docker is kinda a makeshift solution.

The normal release dockers are limited to a special user, which is not standard in the unraid system. Having the docker run as an extra user is a good docker security solution, but not easily integratable into the unraid system. Having everyone add the user themselves is a chore, so when the option in the preview container came to allow the usage of other users i changed the release to the preview branch.

The preview container has a script which allows it to apply the docker -u flag, which we use to run it as the 99:100 'nobody' user - the standard unraid user with generall access to your files.

 

So if you can change the user yourself you're free to change the container branch.

 

 

No that makes perfect sense and I will keep on the preview. Thanks! I hope they intergrate that into the main branch at some point though. 

  • 1 month later...

"I need help setting up Suwayomi Server."😭

Screenshot 2024-07-01 053325.png

Edited by NoobNeedHelp

  • Author
3 hours ago, NoobNeedHelp said:

"I need help setting up Suwayomi Server."😭

Screenshot 2024-07-01 053325.png

Hi NNH,

 

you took a wrong turn.

This is the Tachidesk support Thread fur running the docker container on unraid.

You seem to be using the electron Desktop App instead.

Maybe this video can help:

 

Also to provide any more help you'll need to be more specific.

Thry this video for that 🙂

 

Kind Regards,

C3004

What exactly does global update do?  The titles that I have in my library are not updating when new chapters are out.  I have to go into the title page then click the "reload data from source" icon for the new chapters to show up.   Am I doing something wrong?  Do not want to click up the update button for each title.  Otherwise everything works great.

33 minutes ago, netboy said:

What exactly does global update do?  The titles that I have in my library are not updating when new chapters are out.  I have to go into the title page then click the "reload data from source" icon for the new chapters to show up.   Am I doing something wrong?  Do not want to click up the update button for each title.  Otherwise everything works great.

I found the issue.  There is a Skip updating entries option in the library settings.  Everything works now.  

  • 2 months later...

hello, is there an updated guide in setting this up in unraid? where is hte extra paramaters that i would use, would it be a config type variable?

  • 4 weeks later...

It seems that there's an additional folder inside the container that Tachidesk will download images to temporarily.

 

Under "/tmp/Tachidesk" there's a "manga-cache" folder as well as a "thumbnails" folder. The "thumbnails" folder seems to be used (expectedly) for image thumbnails while you're browsing comics. "manga-cache" seems to be used as a temporary cache while reading/downloading comics.

 

I decided to go ahead and map "/tmp/Tachidesk" as an additional Docker volume. This has two advantages:

  1. It avoids bloating my Docker virtual image with a bunch of temp files
  2. It makes it slightly easier to inspect what's happening on-disk when Tachidesk has trouble downloading a comic

Not sure if those use-cases common enough to be worth including these paths in the default template, but I thought I'd drop a note in case it helps anyone else who's trying to figure out where these temp files are ending up.

  • 3 months later...
  • Author
On 10/7/2024 at 1:35 AM, itsananderson said:

It seems that there's an additional folder inside the container that Tachidesk will download images to temporarily.

 

Under "/tmp/Tachidesk" there's a "manga-cache" folder as well as a "thumbnails" folder. The "thumbnails" folder seems to be used (expectedly) for image thumbnails while you're browsing comics. "manga-cache" seems to be used as a temporary cache while reading/downloading comics.

 

I decided to go ahead and map "/tmp/Tachidesk" as an additional Docker volume. This has two advantages:

  1. It avoids bloating my Docker virtual image with a bunch of temp files
  2. It makes it slightly easier to inspect what's happening on-disk when Tachidesk has trouble downloading a comic

Not sure if those use-cases common enough to be worth including these paths in the default template, but I thought I'd drop a note in case it helps anyone else who's trying to figure out where these temp files are ending up.

Added to the template 👍

  • 7 months later...

I'm not sure how to get around this error.. but a lot of the webgui pages have the unable to load data with the accompanying errors.

I'm on unraid 7 and installed the version from Unraid > Apps. The only thing I did was add optional folders for the libraries and temporary download folder.

A specific example of this is from the Browse > Extensions page from the Web GUI:

Unable to load data

Exception while fetching data (/settings) : /home/suwayomi/.local/share/Tachidesk/server.conf: 95: koreaderSyncPercentageTolerance has type STRING rather than NUMBER…

com.typesafe.config.ConfigException$WrongType: /home/suwayomi/.local/share/Tachidesk/server.conf: 95: koreaderSyncPercentageTolerance has type STRING rather than NUMBER at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:164) at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:175) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:189) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:194) at com.typesafe.config.impl.SimpleConfig.getConfigNumber(SimpleConfig.java:224) at com.typesafe.config.impl.SimpleConfig.getNumber(SimpleConfig.java:230) at com.typesafe.config.impl.SimpleConfig.getDouble(SimpleConfig.java:246) at io.github.config4k.readers.DoubleReader$1.invoke(DoubleReader.kt:5) at io.github.config4k.readers.DoubleReader$1.invoke(DoubleReader.kt:5) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:15) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:14) at suwayomi.tachidesk.server.util.MutableStateFlowType.parse(MutableStateFlowType.kt:24) at io.github.config4k.readers.SelectReader$getReader$1.invoke(SelectReader.kt:34) at io.github.config4k.readers.SelectReader$getReader$1.invoke(SelectReader.kt:34) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:15) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:14) at suwayomi.tachidesk.server.ServerConfig.getKoreaderSyncPercentageTolerance(ServerConfig.kt:5828) at suwayomi.tachidesk.graphql.types.SettingsType.<init>(SettingsType.kt:405) at suwayomi.tachidesk.graphql.types.SettingsType.<init>(SettingsType.kt:321) at suwayomi.tachidesk.graphql.queries.SettingsQuery.settings(SettingsQuery.kt:13) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97) at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113) at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:207) at kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:112) at com.expediagroup.graphql.generator.execution.FunctionDataFetcher.runBlockingFunction(FunctionDataFetcher.kt:127) at com.expediagroup.graphql.generator.execution.FunctionDataFetcher.get(FunctionDataFetcher.kt:63) at graphql.execution.ExecutionStrategy.invokeDataFetcher(ExecutionStrategy.java:533) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:497) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:438) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:397) at graphql.execution.ExecutionStrategy.getAsyncFieldValueInfo(ExecutionStrategy.java:335) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:57) at graphql.execution.Execution.executeOperation(Execution.java:181) at graphql.execution.Execution.execute(Execution.java:117) at graphql.GraphQL.execute(GraphQL.java:546) at graphql.GraphQL.lambda$parseValidateAndExecute$13(GraphQL.java:476) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown Source) at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown Source) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:471) at graphql.GraphQL.lambda$executeAsync$9(GraphQL.java:429) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown Source) at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown Source) at graphql.GraphQL.executeAsync(GraphQL.java:418) at com.expediagroup.graphql.server.execution.GraphQLRequestHandler.execute(GraphQLRequestHandler.kt:103) at com.expediagroup.graphql.server.execution.GraphQLRequestHandler.executeRequest$suspendImpl(GraphQLRequestHandler.kt:82) at com.expediagroup.graphql.server.execution.GraphQLRequestHandler.executeRequest(GraphQLRequestHandler.kt) at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invokeSuspend(GraphQLServer.kt:62) at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invoke(GraphQLServer.kt) at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invoke(GraphQLServer.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:286) at com.expediagroup.graphql.server.execution.GraphQLServer.execute$suspendImpl(GraphQLServer.kt:49) at com.expediagroup.graphql.server.execution.GraphQLServer.execute(GraphQLServer.kt) at suwayomi.tachidesk.graphql.controller.GraphQLController$execute$1$1.invokeSuspend(GraphQLController.kt:26) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)

On 9/3/2025 at 4:59 AM, roobix said:

I'm not sure how to get around this error.. but a lot of the webgui pages have the unable to load data with the accompanying errors.

I'm on unraid 7 and installed the version from Unraid > Apps. The only thing I did was add optional folders for the libraries and temporary download folder.

A specific example of this is from the Browse > Extensions page from the Web GUI:

Unable to load data

Exception while fetching data (/settings) : /home/suwayomi/.local/share/Tachidesk/server.conf: 95: koreaderSyncPercentageTolerance has type STRING rather than NUMBER…

Got the same problem, but I've managed to fix it.

Apparently the docker config in apps uses repository with tag "preview" which looks like it's unstable. I've changed it to "latest" which on github is also marked as "stable", so I assumed that it will be stable in future. Before I've changed it, I removed the image and data from appdata, to make a clean install, not sure if dirty would work. You can probably also use just "stable", but I think using "latest" as stable branch is a common thing.

I think it should be a default anyway and/or add the option to choose wich branch I want to use.

  • Author
On 9/3/2025 at 4:59 AM, roobix said:

I'm not sure how to get around this error.. but a lot of the webgui pages have the unable to load data with the accompanying errors.

I'm on unraid 7 and installed the version from Unraid > Apps. The only thing I did was add optional folders for the libraries and temporary download folder.

A specific example of this is from the Browse > Extensions page from the Web GUI:

Unable to load data

Exception while fetching data (/settings) : /home/suwayomi/.local/share/Tachidesk/server.conf: 95: koreaderSyncPercentageTolerance has type STRING rather than NUMBER…

com.typesafe.config.ConfigException$WrongType: /home/suwayomi/.local/share/Tachidesk/server.conf: 95: koreaderSyncPercentageTolerance has type STRING rather than NUMBER at com.typesafe.config.impl.SimpleConfig.findKeyOrNull(SimpleConfig.java:164) at com.typesafe.config.impl.SimpleConfig.findOrNull(SimpleConfig.java:175) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:189) at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:194) at com.typesafe.config.impl.SimpleConfig.getConfigNumber(SimpleConfig.java:224) at com.typesafe.config.impl.SimpleConfig.getNumber(SimpleConfig.java:230) at com.typesafe.config.impl.SimpleConfig.getDouble(SimpleConfig.java:246) at io.github.config4k.readers.DoubleReader$1.invoke(DoubleReader.kt:5) at io.github.config4k.readers.DoubleReader$1.invoke(DoubleReader.kt:5) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:15) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:14) at suwayomi.tachidesk.server.util.MutableStateFlowType.parse(MutableStateFlowType.kt:24) at io.github.config4k.readers.SelectReader$getReader$1.invoke(SelectReader.kt:34) at io.github.config4k.readers.SelectReader$getReader$1.invoke(SelectReader.kt:34) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:15) at io.github.config4k.readers.Reader$getValue$1.invoke(Reader.kt:14) at suwayomi.tachidesk.server.ServerConfig.getKoreaderSyncPercentageTolerance(ServerConfig.kt:5828) at suwayomi.tachidesk.graphql.types.SettingsType.<init>(SettingsType.kt:405) at suwayomi.tachidesk.graphql.types.SettingsType.<init>(SettingsType.kt:321) at suwayomi.tachidesk.graphql.queries.SettingsQuery.settings(SettingsQuery.kt:13) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at kotlin.reflect.jvm.internal.calls.CallerImpl$Method.callMethod(CallerImpl.kt:97) at kotlin.reflect.jvm.internal.calls.CallerImpl$Method$Instance.call(CallerImpl.kt:113) at kotlin.reflect.jvm.internal.KCallableImpl.callDefaultMethod$kotlin_reflection(KCallableImpl.kt:207) at kotlin.reflect.jvm.internal.KCallableImpl.callBy(KCallableImpl.kt:112) at com.expediagroup.graphql.generator.execution.FunctionDataFetcher.runBlockingFunction(FunctionDataFetcher.kt:127) at com.expediagroup.graphql.generator.execution.FunctionDataFetcher.get(FunctionDataFetcher.kt:63) at graphql.execution.ExecutionStrategy.invokeDataFetcher(ExecutionStrategy.java:533) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:497) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:438) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:397) at graphql.execution.ExecutionStrategy.getAsyncFieldValueInfo(ExecutionStrategy.java:335) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:57) at graphql.execution.Execution.executeOperation(Execution.java:181) at graphql.execution.Execution.execute(Execution.java:117) at graphql.GraphQL.execute(GraphQL.java:546) at graphql.GraphQL.lambda$parseValidateAndExecute$13(GraphQL.java:476) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown Source) at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown Source) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:471) at graphql.GraphQL.lambda$executeAsync$9(GraphQL.java:429) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(Unknown Source) at java.base/java.util.concurrent.CompletableFuture.thenCompose(Unknown Source) at graphql.GraphQL.executeAsync(GraphQL.java:418) at com.expediagroup.graphql.server.execution.GraphQLRequestHandler.execute(GraphQLRequestHandler.kt:103) at com.expediagroup.graphql.server.execution.GraphQLRequestHandler.executeRequest$suspendImpl(GraphQLRequestHandler.kt:82) at com.expediagroup.graphql.server.execution.GraphQLRequestHandler.executeRequest(GraphQLRequestHandler.kt) at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invokeSuspend(GraphQLServer.kt:62) at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invoke(GraphQLServer.kt) at com.expediagroup.graphql.server.execution.GraphQLServer$execute$2.invoke(GraphQLServer.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(Undispatched.kt:66) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:43) at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:286) at com.expediagroup.graphql.server.execution.GraphQLServer.execute$suspendImpl(GraphQLServer.kt:49) at com.expediagroup.graphql.server.execution.GraphQLServer.execute(GraphQLServer.kt) at suwayomi.tachidesk.graphql.controller.GraphQLController$execute$1$1.invokeSuspend(GraphQLController.kt:26) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124) at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)

22 hours ago, Vivent said:

Got the same problem, but I've managed to fix it.

Apparently the docker config in apps uses repository with tag "preview" which looks like it's unstable. I've changed it to "latest" which on github is also marked as "stable", so I assumed that it will be stable in future. Before I've changed it, I removed the image and data from appdata, to make a clean install, not sure if dirty would work. You can probably also use just "stable", but I think using "latest" as stable branch is a common thing.

I think it should be a default anyway and/or add the option to choose wich branch I want to use.

Hi roobix and Vivent,

so i checked the current preview and couldn't replicate the Error. So i guess they already fixed that. Anyway the Error read like the programm was not processing the config file correctly. So unless you edited the config file manually it was an error on the server side.

As to why it was on the preview. Before the container had an internal user that on most unraid systems made problems. And only the preview version supported the docker user flag correctly to fix the user permission problems.

Now i checked the latest release and the docker user flag is working correctly so i'll update the Template.

One other thing directly migrating from the preview to the current latest gives me a sql error on the main page. Will look at it later but the migration should still be possible over the backup function.

Kind Regards

C3004

Edited by C3004

  • 1 month later...

I was hoping someone could help me figure out how we can always have the umask set differently? Everytime I restart my container it resets to UMASK = 0022. It's a pain to have to login everytime the container restarts to reset it to my desired value.

On 9/5/2025 at 3:58 PM, C3004 said:

Hi roobix and Vivent,

so i checked the current preview and couldn't replicate the Error. So i guess they already fixed that. Anyway the Error read like the programm was not processing the config file correctly. So unless you edited the config file manually it was an error on the server side.

As to why it was on the preview. Before the container had an internal user that on most unraid systems made problems. And only the preview version supported the docker user flag correctly to fix the user permission problems.

Now i checked the latest release and the docker user flag is working correctly so i'll update the Template.

One other thing directly migrating from the preview to the current latest gives me a sql error on the main page. Will look at it later but the migration should still be possible over the backup function.

Kind Regards

C3004

Hello! Wanted to ask if you identified the best way to migrate from preview to latest/stable. I've tried to backup, change to default and restore backup but that didn't appear to work on my end.

  • Author
14 hours ago, coresplinter said:

Hello! Wanted to ask if you identified the best way to migrate from preview to latest/stable. I've tried to backup, change to default and restore backup but that didn't appear to work on my end.

Hello Coresplinter,

I migrated fromk preview branch to stable branch with these steps:

1: Create backup in Preview. I got in the latest preview an error creating and later one in using the backup. The stable preview i used is ghcr.io/suwayomi/tachidesk:v2.1.1930

2: Make sure the backup was downloaded to your PC.

3: Shutdown Container

4: Move The Tachidesk folder out of the Appdata folder to use as a Backup! if anything goes wrong and to clean the working environment of tachidesk.

5: Change the Container in the Unraid UI to the stable branch: ghcr.io/suwayomi/tachidesk:stable

6: Start Container

7: In Tachidesk add the Keiyoushi extensions first and download your sources. (If you don't know your sources, the backup function will tell you later)

8: Load Backup in the settings. Depending on the size it could take a while. If the Backup file is correct you should get a confirmation screen if you want to use it.

grafik.png

This will also tell you if you are missing sources. Copy the sources you are missing in notepad to download them later.

Klick Restore to install the backup. Install will send you just to the extension screen.

This is how i migrated my two containers. If there are any problems please ask.

  • Author
On 10/8/2025 at 8:30 AM, iceburn2 said:

I was hoping someone could help me figure out how we can always have the umask set differently? Everytime I restart my container it resets to UMASK = 0022. It's a pain to have to login everytime the container restarts to reset it to my desired value.

Hi Iceburn,

Docker standard is Umask 0022. The umask can be changed in the dockerfile, but you would have to build the container yourself then.

Could a different unraid group/user accomplish what you need the umask for?

On 10/14/2025 at 5:27 AM, C3004 said:

Hello Coresplinter,

I migrated fromk preview branch to stable branch with these steps:

1: Create backup in Preview. I got in the latest preview an error creating and later one in using the backup. The stable preview i used is ghcr.io/suwayomi/tachidesk:v2.1.1930

2: Make sure the backup was downloaded to your PC.

3: Shutdown Container

4: Move The Tachidesk folder out of the Appdata folder to use as a Backup! if anything goes wrong and to clean the working environment of tachidesk.

5: Change the Container in the Unraid UI to the stable branch: ghcr.io/suwayomi/tachidesk:stable

6: Start Container

7: In Tachidesk add the Keiyoushi extensions first and download your sources. (If you don't know your sources, the backup function will tell you later)

8: Load Backup in the settings. Depending on the size it could take a while. If the Backup file is correct you should get a confirmation screen if you want to use it.

grafik.png

This will also tell you if you are missing sources. Copy the sources you are missing in notepad to download them later.

Klick Restore to install the backup. Install will send you just to the extension screen.

This is how i migrated my two containers. If there are any problems please ask.

I followed the steps successfully up until 7,

At 8 when I try to use the backup file generated in the preview, I run into the same error I previously had

------
"Could not validate backup

Exception while fetching data (/validateBackup) : Fields [ip, port, socksProxyUsername, socksProxyPassword, electronPath, downloadsPath, autoDownloadAheadLimit, authMode, authUsername, authPassword, g

Could not validate backup

Exception while fetching data (/validateBackup) : Fields [ip, port, socksProxyUsername, socksProxyPassword, electronPath, downloadsPath, autoDownloadAheadLimit, authMode, authUsername, authPassword, gqlDebugLogsEnabled, backupPath, localSourcePath, flareSolverrEnabled] are required for type with serial name 'suwayomi.tachidesk.manga.impl.backup.proto.models.BackupServerSettings', but they were missing kotlinx.serialization.MissingFieldException: Fields [ip, port, socksProxyUsername, socksProxyPassword, electronPath, downloadsPath, autoDownloadAheadLimit, authMode, authUsername, authPassword, gqlDebugLogsEnabled, backupPath, localSourcePath, flareSolverrEnabled] are required for type with serial name 'suwayomi.tachidesk.manga.impl.backup.proto.models.BackupServerSettings',

(Removed the rest of the error message as they were line traces I wasn't sure would be beneficial)
-----

The backup was done with everything selected.

EDIT: Maybe the backup should omit client data and server settings?

Edited by coresplinter

  • Author
3 hours ago, coresplinter said:

I followed the steps successfully up until 7,

At 8 when I try to use the backup file generated in the preview, I run into the same error I previously had

------
"Could not validate backup

Exception while fetching data (/validateBackup) : Fields [ip, port, socksProxyUsername, socksProxyPassword, electronPath, downloadsPath, autoDownloadAheadLimit, authMode, authUsername, authPassword, g

Could not validate backup

Exception while fetching data (/validateBackup) : Fields [ip, port, socksProxyUsername, socksProxyPassword, electronPath, downloadsPath, autoDownloadAheadLimit, authMode, authUsername, authPassword, gqlDebugLogsEnabled, backupPath, localSourcePath, flareSolverrEnabled] are required for type with serial name 'suwayomi.tachidesk.manga.impl.backup.proto.models.BackupServerSettings', but they were missing kotlinx.serialization.MissingFieldException: Fields [ip, port, socksProxyUsername, socksProxyPassword, electronPath, downloadsPath, autoDownloadAheadLimit, authMode, authUsername, authPassword, gqlDebugLogsEnabled, backupPath, localSourcePath, flareSolverrEnabled] are required for type with serial name 'suwayomi.tachidesk.manga.impl.backup.proto.models.BackupServerSettings',

(Removed the rest of the error message as they were line traces I wasn't sure would be beneficial)
-----

The backup was done with everything selected.

EDIT: Maybe the backup should omit client data and server settings?

Hi coresplinter,

Was the backup created by the ghcr.io/suwayomi/tachidesk:v2.1.1930 preview version?

  • 2 weeks later...

Seemingly having an issue with this where it just doesn't check for new issues automatically. Has anyone else ran into this? I'm only using the Weeb Central extension as a source. Going to a manga and clicking update manually grabs everything new, but then it just won't check automatically after that.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.