From 7e85ccbdadd2c37f96a58260000861f66e91c231 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Tue, 4 Mar 2025 14:30:42 +0000 Subject: [PATCH] feat: add zipline --- .env | 24 ++++++++++++++++++++++++ compose.yaml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/.env b/.env index e00bf56..c0add36 100644 --- a/.env +++ b/.env @@ -551,6 +551,30 @@ PLAUSIBLE_SECRET_KEY_BASE= # --------------------------------------------------------- +# --------------------------------------------------------- +# ZIPLINE +# --------------------------------------------------------- +# Profiles: zipline, all +# +# Zipline is a ShareX / File upload server +# +# To generate a POSTGRES password, run the following command in your terminal: +# openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n'; echo +# +# To generate the CORE_SECRET, run the following command: +# openssl rand -base64 42 | tr -dc A-Za-z0-9 | cut -c -32 | tr -d '\n'; echo +# +# Once you fill these values in and start the container, head to the dashboard and create an admin user +# Most of the configuration for Zipline is done through the web interface. +# +# Within the server settings +# Set the 'Default domain' under 'Core' to the value you set for ZIPLINE_HOSTNAME +# Also enable Return HTTPS URLs +# --------------------------------------------------------- +ZIPLINE_CORE_SECRET= +ZIPLINE_POSTGRES_PASSWORD= +ZIPLINE_HOSTNAME= + # ========================================================= # DEBRID MEDIA SERVER PROFILE # ========================================================= diff --git a/compose.yaml b/compose.yaml index aa0f346..73ee366 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1135,6 +1135,50 @@ services: - plausible - all + zipline: + image: ghcr.io/diced/zipline:latest + container_name: zipline + restart: unless-stopped + expose: + - 3000 + environment: + - DATABASE_URL=postgres://${ZIPLINE_POSTGRES_USER:-zipline}:${ZIPLINE_POSTGRES_PASSWORD}@zipline-db:5432/${ZIPLINE_POSTGRES_DB:-zipline} + - CORE_SECRET=${ZIPLINE_CORE_SECRET?} + depends_on: + zipline-db: + condition: service_healthy + volumes: + - './data/zipline/uploads:/zipline/uploads' + - './data/zipline/public:/zipline/public' + - './data/zipline/themes:/zipline/themes' + labels: + - "traefik.enable=true" + - "traefik.http.routers.zipline.rule=Host(`${ZIPLINE_HOSTNAME?}`)" + - "traefik.http.routers.zipline.entrypoints=websecure" + - "traefik.http.routers.zipline.tls.certresolver=myresolver" + - "flame.type=app" + - "flame.name=Zipline" + - "flame.url=https://${ZIPLINE_HOSTNAME}" + profiles: + - zipline + - all + + zipline-db: + image: postgres:16 + restart: unless-stopped + container_name: zipline-db + volumes: + - zipline-db:/var/lib/postgresql/data + environment: + POSTGRES_USER: ${ZIPLINE_POSTGRES_USER:-zipline} + POSTGRES_PASSWORD: ${ZIPLINE_POSTGRES_PASSWORD:-zipline} + POSTGRES_DB: ${ZIPLINE_POSTGRES_DB:-zipline} + healthcheck: + test: ["CMD-SHELL", "pg_isready -U zipline"] + start_period: 1m + profiles: + - zipline + - all # ================================================================================================== # DEBRID MEDIA SERVER # ================================================================================================== @@ -1560,6 +1604,7 @@ volumes: plausible-event-db: plausible-event-logs: garnet-data: + zipline-db: