Skip to content

ShokoΒ #2135

Description

@MickLesk

Name of the Script

Shoko

Script Type

CT (LXC Container)

Does this script support arm64?

arm64 not supported

πŸ“‹ Script Details

Shoko Server organizes anime collections β€” identifies files by hash against AniDB, pulls metadata from TvDB/TMDB/Trakt, exposes the result to Plex, Jellyfin and Kodi via plugins. Requested in discussion #7635.

No .NET SDK and no source build needed. The release assets look Windows-only at first glance (Shoko.Setup.exe, Shoko.TrayService_win-x64.zip), but Shoko.CLI_Framework_any-x64.zip is framework-dependent and cross-platform:

  • publish/Shoko.CLI is a Linux ELF launcher next to Shoko.CLI.dll
  • Shoko.CLI.runtimeconfig.json asks only for Microsoft.NETCore.App 8.0.0 + Microsoft.AspNetCore.App 8.0.0

So apt install aspnetcore-runtime-8.0 β€” available in Debian trixie itself, no Microsoft repository required β€” plus prebuild deployment of that zip. Upstream's documented dotnet build -c=Release -r linux-x64 path is not used; it would pull in the full SDK for no benefit.

  • HOME=/opt/shoko_data so the database and settings land outside the app directory and survive CLEAN_INSTALL updates.
  • mediainfo and librhash0 are installed for file analysis and hashing.
  • Note: AniDB is mandatory and rate-limits aggressively. Flagged as a warning to leave the default throttling alone during a large import, otherwise the account gets banned.
  • has_arm: false β€” the asset is x64 only.

Source: https://github.com/ShokoAnime/ShokoServer

Activity

  1. github-actions commented on Aug 4, 2026

    @github-actions
    Contributor

    The Shoko script is ready for testing:

    bash -c "$(curl -fsSL https://github.com/community-scripts/ProxmoxVED/raw/main/ct/shoko.sh)"
    

    Complete the first-run wizard at http://:8111. An AniDB account is required - Shoko identifies files against AniDB and without it the whole point is lost.
    AniDB enforces strict rate limits and bans clients that hammer the API. Leave the default throttling alone when importing a large collection, or the account gets temporarily banned.
    Your anime files are not stored in the container - mount the library into the LXC and add it as an import folder. Shoko's own database and settings live in /opt/shoko_data.
    Runs on the framework-dependent release build with the ASP.NET Core 8 runtime from Debian, so no .NET SDK and no compilation is needed. Upstream also documents a source build, which this script does not use.

    Note: This is not in the official repo yetβ€”it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.

    Discord testing thread: https://discord.com/channels/1302816934508630047/1534106619393347594

  2. gwimbly03 commented on Aug 29, 2026

    @gwimbly03

    When I tried to rename and move files through shoko, I kept on getting permission errors. The lxc is running unprivileged and the library is mounted in the lxc. I tried manually creating a test directory and I am getting a permission denied. Below is the perms on the directory inside the shoko lxc.

    root@shoko:/media# ls -al anime/
    total 66
    drwxrwsr-x  4 nobody nogroup  4 Sep  7  2025 .
    drwxr-xr-x  9 nobody nogroup 10 Aug  4 23:39 ..
    drwxrwsr-x 59 nobody nogroup 59 Aug 27 19:36 drop
    drwxrwsr-x  6 nobody nogroup 11 Aug 27 19:36 source
    
  3. colinrjrobbins commented on Sep 9, 2026

    @colinrjrobbins

    Aside from some base permission issues it does have capabilities to read/write. Shoko is functioning as I would expect it to. Passing an LXC mount point in and assigning full permissions does seem to work.

    Seems the root account specifically doesnt have root permissions though, dmesg resulted in unauthorized access, and despite enabling CIFS as an option in the initial configuration mount -a with a configuration in fstab still results as an access denied under a root account. Not a show stopper. I use Shoko mostly with Shokofin to create collections and organize metadata with Jellyfin so realistically it just needs read permissions on my anime folder so I can organize it. Otherwise working as expected.

  4. ByQuartz commented on Sep 22, 2026

    @ByQuartz

    @colinrjrobbins @gwimbly03 I think what you both are experiencing is a classic LXC CIFS mount permission problem, the root user in LXC containers has the user ID 100000 so when the LXC root user wants to acces the CIFS Mount point from the host machine it tries accesing it with uid 100000, when you use the defaults in your CIFS mount it maps the permissions from your CIFS credentials to the root of the host with uid 0.
    What you have to to is pass some arguments in the CIFS mount uid=100000 and forceuid should do the trick.
    you can read more on that here: https://pve.proxmox.com/wiki/Unprivileged_LXC_containers
    and also here https://pve.proxmox.com/wiki/Storage:_CIFS

    Feedback to the script: Commit 0ed5c55 (newest version on the helperscripts website) works fine for me, LXC Creation without any issues and for now it seems like shoko is doing its job well, i will update if any problems occur in the future

  5. github-actions commented on Sep 30, 2026

    @github-actions
    Contributor

    A PR has been created for shoko: community-scripts/ProxmoxVE#17617

  6. MickLesk commented on Sep 30, 2026

    @MickLesk
    MemberAuthor

    Merged with #17617 in ProxmoxVE

  7. github-actions commented on Sep 30, 2026

    @github-actions
    Contributor

    Files deleted with PR #2341

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions