Skip to content

KartoffelChipss/pelagica

Repository files navigation

Pelagica

Pelagica is an alternative web frontend for Jellyfin built using React. It aims to provide a fast, modern, and customizable user experience for browsing and watching your media library.

Home

Features

  • Customizable Sections: Tailor your homepage with sections like "Continue Watching", "Recently Added", or completely custom queries.
  • Media Bars: Add custom media bars to feature specific content.
  • Search: Quickly find media across your library from anywhere using Cmd+K / Ctrl+K.
  • Video Player: Integrated video player for movies and TV shows.
  • Music Player: A music player that allows you to listen to your music albums or playlists while browsing your library.
  • Responsive Design: Works seamlessly on both desktop and mobile devices.
  • Theming: Light and dark mode support as well as custom themes
  • Localization: Supports multiple languages through community contributions.

You can find a roadmap of planned features and improvements in the GitHub Projects.

If you want to suggest new features or report bugs, please use the GitHub Issues section.

Integrated Services

  • Streamystats: Get your streamystats recommendations directly on your home page.
  • kefintweaks Watchlist: View and manage your kefintweaks watchlist within Pelagica.

Screenshots

Screenshots may include media artwork used for demonstration purposes only.

Demo

You can find a live demo of Pelagica at:

https://demo.pelagica.app/

You can use the demo.jellyfin.org/stable server with the demo user to test, or use your own Jellyfin server if it is publicly accessible. If you are experiencing issues with the Jellyfin demo server, this is because of cors restrictions on that server.

For production use, it is highly recommended to self-host Pelagica using Docker or another method.

Docker Installation

The easiest way to run Pelagica is using Docker. This provides a production-ready setup with nginx web server.

Quick Start

  1. Create a directory for Pelagica:

    mkdir -p pelagica && cd pelagica
  2. Run the container:

    docker run -d \
      --name pelagica \
      -p 8080:80 \
      -v "$(pwd)/config:/config" \
      --restart unless-stopped \
      kartoffelchipss/pelagica:latest

    Make sure to replace $(pwd)/config with the actual path where your config files should be located (e.g. /mnt/user/appdata/pelagica)

  3. Access Pelagica:

    Open your browser to http://localhost:8080

Container Management

# View logs
docker logs -f pelagica

# Stop the container
docker stop pelagica

# Start the container
docker start pelagica

# Update to latest version
docker pull kartoffelchipss/pelagica:latest
docker stop pelagica
docker rm pelagica
# Then run the docker run command again from Quick Start

Using Docker Compose

If you prefer using docker-compose, create a docker-compose.yml file:

services:
    pelagica:
        image: kartoffelchipss/pelagica:latest
        container_name: pelagica
        ports:
            - '8080:80'
        volumes:
            - /path/to/your/config:/config
        restart: unless-stopped

Replace /path/to/your/config with the actual path where your config files should be located (e.g. /mnt/user/appdata/pelagica)

Then run: docker-compose up -d

Building from Source

If you want to build the Docker image from source instead of using prebuilt images:

# Clone the repository
git clone https://github.com/KartoffelChipss/pelagica.git
cd pelagica

# Build and start
docker-compose up -d --build

Custom Themes

You can find instructions on how to build and/or publish custom themes here.

Community Discord

Join the Pelagica community on Discord for support, discussions, and updates: https://discord.gg/yCe4unuVGQ

Localization

Pelagica supports multiple languages and depends on community contributions for translations. If you'd like to help translate Pelagica into your language, you can contribute via GitLocalize.

Development Setup

Frontend

  1. Switch to the frontend directory:

    cd frontend
    
  2. Install dependencies:

    pnpm install
  3. Start development server:

    pnpm dev
  4. Access at: http://localhost:3000

Backend

  1. Switch to the backend directory:

    cd backend
    
  2. Start the server:

    CONFIG_PATH="./config.json" go run main.go

You can also use the dev.sh script to start both frontend and backend with hot reloading.

Contributing

Issues and pull requests are welcome. Please open an issue to discuss larger changes before submitting a PR.

What does that name mean?

You might be wondering about the name "Pelagica". Since I didn't want to call it the usual "*fin" or "jelly*" names, I looked for synonyms related to the sea. "Pelagic" refers to living in the deep ocean, which felt fitting for a Jellyfin frontend.

Acknowledgements

Pelagica’s design was inspired by the finetic Jellyfin frontend.
No code was used; this project is an independent implementation.

Disclaimer

This project is a third-party frontend for Jellyfin and is not affiliated with the Jellyfin project.

Jellyfin is a media server designed to organize and stream legally obtained media. This project does not provide, host, or encourage access to pirated content.

The movie posters and images shown in the examples are not owned by me and are only used for demonstration purposes. All rights belong to their respective owners.

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.