diff --git a/.env b/.env index b1e5d45..3d3e74e 100644 --- a/.env +++ b/.env @@ -182,6 +182,7 @@ STREMIO_SERVER_HOSTNAME=stremio-server.${DOMAIN} STREMIO_STREAMING_CATALOGS_HOSTNAME=streaming-catalogs.${DOMAIN} STREMIO_TRAKT_ADDON_HOSTNAME=stremio-trakt.${DOMAIN} STREMTHRU_HOSTNAME=stremthru.${DOMAIN} +SYNCRIBULLET_HOSTNAME=syncribullet.${DOMAIN} TAUTULLI_HOSTNAME=tautulli.${DOMAIN} THE_LOUNGE_HOSTNAME=thelounge.${DOMAIN} TMDB_ADDON_HOSTNAME=tmdb.${DOMAIN} diff --git a/apps/authelia/compose.yaml b/apps/authelia/compose.yaml index 00cd7ea..e3eed35 100644 --- a/apps/authelia/compose.yaml +++ b/apps/authelia/compose.yaml @@ -36,6 +36,7 @@ services: ${STREMIO_CATALOG_PROVIDERS_HOSTNAME}, ${STREMIO_TRAKT_ADDON_HOSTNAME}, ${STREMIO_STREAMING_CATALOGS_HOSTNAME}, + ${SYNCRIBULLET_HOSTNAME}, ${TMDB_ADDON_HOSTNAME}, ${TMDB_COLLECTIONS_HOSTNAME}, ${WEBSTREAMR_HOSTNAME} diff --git a/apps/cloudflare-ddns/compose.yaml b/apps/cloudflare-ddns/compose.yaml index ebd891b..40fa495 100644 --- a/apps/cloudflare-ddns/compose.yaml +++ b/apps/cloudflare-ddns/compose.yaml @@ -81,6 +81,7 @@ services: ${STREMIO_STREAMING_CATALOGS_HOSTNAME}, ${STREMIO_TRAKT_ADDON_HOSTNAME}, ${STREMTHRU_HOSTNAME}, + ${SYNCRIBULLET_HOSTNAME}, ${TAUTULLI_HOSTNAME}, ${THE_LOUNGE_HOSTNAME}, ${TMDB_ADDON_HOSTNAME}, diff --git a/apps/syncribullet/.env b/apps/syncribullet/.env new file mode 100644 index 0000000..b00d00f --- /dev/null +++ b/apps/syncribullet/.env @@ -0,0 +1,11 @@ +ORIGIN=https://${SYNCRIBULLET_HOSTNAME} +# A 64 character hexadecimal string used to encrypt sensitive data +# Generate using `openssl rand -hex 32` +PRIVATE_ENCRYPTION_KEY= + +# Simkl application details. +# Set your Simkl client ID and secret to enable private Simkl features +# You can create a Simkl application at https://simkl.com/settings/developer/new/ +# Set the redirect URI to `https://${SYNCRIBULLET_HOSTNAME}/oauth/simkl +PRIVATE_SIMKL_CLIENT_ID= +PRIVATE_SIMKL_CLIENT_SECRET= \ No newline at end of file diff --git a/apps/syncribullet/compose.yaml b/apps/syncribullet/compose.yaml new file mode 100644 index 0000000..e1d3866 --- /dev/null +++ b/apps/syncribullet/compose.yaml @@ -0,0 +1,65 @@ +services: + syncribullet: + image: syncribullet + container_name: syncribullet + restart: unless-stopped + build: + context: https://github.com/aliyss/syncribullet.git + dockerfile_inline: | + FROM node:20.19-alpine AS builder + WORKDIR /build + + COPY package*.json . + RUN npm ci + + COPY adapters ./adapters + COPY public ./public + COPY src ./src + COPY .eslintrc.cjs tsconfig.json vite.config.ts . + + RUN npm run build + + FROM node:20.19-alpine AS runtime + + WORKDIR /app + COPY --from=builder /build/package*.json ./ + RUN npm ci --ignore-scripts --only=production && npm cache clean --force + + # Copy built files from the builder stage + COPY --from=builder /build/public ./public + COPY --from=builder /build/adapters ./adapters + COPY --from=builder /build/server ./server + + COPY --from=builder /build/node_modules ./node_modules + + ENV NODE_ENV=production + + CMD ["node", "server/entry.express"] + expose: + - 3000 + env_file: + - .env + labels: + - "traefik.enable=true" + - "traefik.http.routers.syncribullet.rule=Host(`${SYNCRIBULLET_HOSTNAME?}`)" + - "traefik.http.routers.syncribullet.entrypoints=websecure" + - "traefik.http.routers.syncribullet.tls.certresolver=letsencrypt" + - "traefik.http.services.syncribullet.loadbalancer.server.port=3000" + - "traefik.http.routers.syncribullet.middlewares=authelia@docker" + healthcheck: + test: + [ + "CMD", + "wget", + "--quiet", + "--tries=1", + "--spider", + "http://localhost:3000/manifest.json", + ] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + profiles: + - syncribullet + - all \ No newline at end of file diff --git a/compose.yaml b/compose.yaml index a4a083d..abd11af 100644 --- a/compose.yaml +++ b/compose.yaml @@ -72,6 +72,7 @@ include: - apps/stremio-streaming-catalogs/compose.yaml - apps/stremio-trakt-addon/compose.yaml - apps/stremthru/compose.yaml + - apps/syncribullet/compose.yaml - apps/tautulli/compose.yaml - apps/thelounge/compose.yaml - apps/tmdb-addon/compose.yaml