Shoko Server: The Complete Guide for New Users

How to Install and Configure Shoko Server Step‑by‑StepShoko Server is an open-source anime media manager that automatically organizes, renames, and matches your anime files with metadata from AniDB. This guide walks you through installation, initial configuration, and common post‑setup tasks so you can get a reliable, searchable anime library running on Windows, Linux, or Docker.


Overview — What Shoko Server does

Shoko Server:

  • Automatically imports and scans your anime files.
  • Matches episodes to AniDB metadata, including episode titles, series, and release groups.
  • Provides a web UI and clients (like Shoko WebUI, Shoko Desktop, and 3rd‑party apps) to browse, stream, and manage your collection.
  • Supports user accounts, multiple library folders, post‑processing, and plugins for advanced automation.

Requirements

Before installing, make sure you have:

  • A machine with enough storage for your anime files and database.
  • Java (for some components) and .NET components for certain clients (Windows).
  • Docker (optional) for containerized deployment.
  • Ports open for remote access if you plan to use WebUI or remote clients (default web port is configurable).

Installation Options

You can run Shoko Server on:

  • Windows (native installer or manual)
  • Linux (native or Docker)
  • Docker (recommended for portability)

Choose one path below.


Option A — Install on Windows (native)

  1. Download:
    • Obtain the latest server build from the Shoko project releases page (official GitHub or project site).
  2. Run Installer:
    • Execute the installer and follow prompts. Choose install directory and whether to create shortcuts.
  3. First Launch:
    • Launch Shoko Server; the service will create a SQLite or MySQL/MariaDB database depending on choices. For small personal libraries, SQLite is simplest; for large libraries, use MySQL/MariaDB.
  4. Allow firewall:
    • When prompted, allow Shoko Server through Windows Firewall for network clients and WebUI access.

Tip: Run the server under a dedicated Windows user account if you want tighter security and file permission separation.


Option B — Install on Linux (native)

  1. Dependencies:
    • Install required packages (mono, ffmpeg, curl, unzip) depending on your distro.
  2. Download:
    • Download latest Linux build archive from releases.
  3. Extract and Configure:
    • Extract to /opt/shoko or similar. Make the main executable runnable.
  4. Service:
    • Create a systemd service file to run Shoko as a background service, enabling start on boot.
  5. Database:
    • Choose SQLite for simplicity or MySQL/MariaDB for performance. Configure database settings in the server config file.
  6. Start server:
    • Start and enable the systemd service. Check logs for errors (usually in logs/ or via journalctl).

Example systemd snippet (adjust paths):

[Unit] Description=Shoko Server After=network.target [Service] Type=simple User=shoko WorkingDirectory=/opt/shoko ExecStart=/usr/bin/mono /opt/shoko/Shoko.Server.exe Restart=on-failure [Install] WantedBy=multi-user.target 

Docker isolates Shoko and simplifies updates.

  1. Install Docker and Docker Compose on your host.
  2. Create a docker-compose.yml with Shoko image, volumes for config, database, and media, and ports for the WebUI and API.

Example docker-compose.yml:

version: "3" services:   shoko:     image: shokoanime/shoko:latest     container_name: shoko     restart: unless-stopped     ports:       - "8111:8111"    # WebUI/API port (adjust if needed)     volumes:       - ./config:/app/config       - ./database:/app/database       - ./anime:/media/anime 
  1. Start:
    • Run docker-compose up -d. Monitor logs with docker-compose logs -f shoko.
  2. Migrate/restore:
    • If migrating, copy your database and config into the volumes before starting.

Initial Configuration (WebUI)

  1. Access WebUI:
  2. Create admin account:
    • Register the first admin user or use default credentials if provided (change immediately).
  3. General settings:
    • Set server language, paths, and preferences.
  4. Database setup:
    • If you chose MySQL/MariaDB, enter credentials and test connection.
  5. Add media folders:
    • In the Folder settings, add each root folder where your anime files reside (e.g., /media/anime/Series).
    • Set import type (monitored, external, etc.). Monitored folders are actively scanned and can trigger post‑processing.
  6. Configure file extensions:
    • Ensure video file extensions (.mkv, .mp4, .avi, .m2ts) are included.
  7. Metadata sources:
    • Shoko uses AniDB by default. Configure AniDB credentials in the settings (you need an AniDB account and API key if required).
  8. Download posters and fanart:
    • Enable automatic artwork download if you want server to fetch covers and thumbnails.

Importing and Scanning Your Library

  1. Initial scan:
    • Trigger a full import/scan from the WebUI. Large libraries can take hours to days depending on size and matching complexity.
  2. File matching:
    • Shoko matches episodes using filenames, hashes, and AniDB releases. Monitor the “Unmatched” or “Manual Match” queue for files that need manual intervention.
  3. Manual matching:
    • For unmatched files, use the Manual Match UI to find the correct series/episode and link them.
  4. Rename & Move:
    • Configure rename rules in the settings if you want Shoko to rename files into a standardized folder structure. Test rules on a small set before mass renaming.
  5. Post-processing:
    • Enable post-processing scripts (e.g., mover/renamer) that run after new files are added. Provide proper permissions for the server to move/rename files.

Clients & Remote Access

  • Shoko WebUI: Main browser interface available by default.
  • Shoko Desktop: Windows client for a richer local experience.
  • Shoko Server API: Third‑party apps (like Jellyfin/Emby plugins, Mobile apps) can connect to serve metadata and streams.
  • Reverse proxy: For secure remote access, deploy a reverse proxy (Nginx) with TLS. Don’t expose the server directly to the internet without authentication or HTTPS.

Example simple Nginx proxy config:

server {   listen 443 ssl;   server_name shoko.example.com;   ssl_certificate /etc/letsencrypt/live/shoko.example.com/fullchain.pem;   ssl_certificate_key /etc/letsencrypt/live/shoko.example.com/privkey.pem;   location / {     proxy_pass http://127.0.0.1:8111;     proxy_set_header Host $host;     proxy_set_header X-Real-IP $remote_addr;   } } 

Performance & Scaling Tips

  • Database: Use MySQL/MariaDB for large libraries; SQLite can be fine for small collections.
  • Hardware: CPU matters for file hashing and metadata processing; SSDs speed up database and metadata read/write.
  • Backups: Regularly back up your database and /config directory. With Docker, back up the mapped volumes.
  • Logs: Monitor server logs for errors and long‑running tasks; set log rotation to prevent disk fill.

Troubleshooting Common Issues

  • WebUI won’t load:
    • Verify server process is running; check logs; confirm port and firewall settings.
  • Many unmatched files:
    • Ensure file naming includes group/episode info; use manual match and consider using Nfo or subtitle matches.
  • Permissions errors:
    • Ensure the service user has read/write on media and config folders.
  • Slow scans:
    • Try limiting concurrent hash operations or move the database to faster storage.

Maintenance Routine

  • Weekly: Check for updates, review queue for unmatched files, and clear old logs.
  • Monthly: Backup database and config, prune caches/artwork if needed.
  • After updates: Rebuild thumbnails or re-scan if recommended by release notes.

Useful Examples (Rename Template)

Example rename pattern for consistent folders and filenames:

  • Folder: {Series Title}/Season {Season}/{Series Title} – S{Season}E{Episode} – {Episode Title} [{Release Group}]
  • Filename: {Series Title} – S{Season}E{Episode} – {Episode Title} [{Source}-{Resolution}].mkv

Further Resources

  • Shoko official docs and community forums for latest troubleshooting and advanced workflows.
  • AniDB for metadata usage and API details.
  • Docker and systemd documentation for service management.

If you want, I can provide:

  • A ready-to-run docker-compose.yml tuned for large libraries.
  • Sample rename templates tailored to your filename patterns.
  • Step-by-step commands for a specific OS (Ubuntu 22.04, Debian, Windows 11).

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *