🐳 Ombi

Want a Movie or TV Show on Plex/Emby/Jellyfin? Use Ombi!

Docker Ready Ports: 5000 4,074 stars
1. Pull Image docker pull Ombi-app/Ombi:latest
2. 1-Click Launch Command docker run -d --name Ombi -p 5000:5000 --restart always Ombi-app/Ombi:latest
src/dockerfile
# Stage 1: Build Angular frontend
FROM node:20-bookworm-slim AS ui-build
WORKDIR /source
COPY Ombi/ClientApp/package.json Ombi/ClientApp/yarn.lock Ombi/ClientApp/
RUN yarn --cwd Ombi/ClientApp install --frozen-lockfile
COPY Ombi/ClientApp Ombi/ClientApp
RUN yarn --cwd Ombi/ClientApp run build

# Stage 2: Build and publish .NET backend
FROM mcr.microsoft.com/dotnet/sdk:8.0-jammy AS build
ARG VERSION=1.0.0
WORKDIR /source

COPY ["Ombi.sln", "."]
COPY ["Ombi/Ombi.csproj", "Ombi/"]
COPY ["Ombi.Api/Ombi.Api.csproj", "Ombi.Api/"]
COPY ["Ombi.Api.External/Ombi.Api.External.csproj", "Ombi.Api.External/"]
COPY ["Ombi.Core/Ombi.Core.csproj", "Ombi.Core/"]
COPY ["Ombi.DependencyInjection/Ombi.DependencyInjection.csproj", "Ombi.DependencyInjection/"]
COPY ["Ombi.HealthChecks/Ombi.HealthChecks.csproj", "Ombi.HealthChecks/"]
COPY ["Ombi.Helpers/Ombi.Helpers.csproj", "Ombi.Helpers/"]
COPY ["Ombi.Hubs/Ombi.Hubs.csproj", "Ombi.Hubs/"]
COPY ["Ombi.I18n/Ombi.I18n.csproj", "Ombi.I18n/"]
COPY ["Ombi.Mapping/Ombi.Mapping.csproj", "Ombi.Mapping/"]
COPY ["Ombi.Notifications/Ombi.Notifications.csproj", "Ombi.Notifications/"]
COPY ["Ombi.Notifications.Templates/Ombi.Notifications.Templates.csproj", "Ombi.Notifications.Templates/"]
COPY ["Ombi.Schedule/Ombi.Schedule.csproj", "Ombi.Schedule/"]
COPY ["Ombi.Settings/Ombi.Settings.csproj", "Ombi.Settings/"]
COPY ["Ombi.Store/Ombi.Store.csproj", "Ombi.Store/"]
RUN dotnet restore Ombi/Ombi.csproj

COPY . .
RUN dotnet publish Ombi/Ombi.csproj -c Release --no-restore -o /app/publish

# Stage 3: Final runtime image
FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy
WORKDIR /opt/ombi
EXPOSE 5000

COPY --from=build /app/publish .
COPY --from=ui-build /source/Ombi/ClientApp/dist ./ClientApp/dist/

ENTRYPOINT ["dotnet", "Ombi.dll"]