From 47a3a8468cf82943d51061c3fcb2671d776a18c2 Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Mon, 27 Feb 2023 23:02:59 -0500 Subject: [PATCH 1/3] Add Zipline --- apps/zipline/config.json | 30 +++++++++++++++++ apps/zipline/docker-compose.yml | 47 +++++++++++++++++++++++++++ apps/zipline/metadata/description.md | 34 +++++++++++++++++++ apps/zipline/metadata/logo.jpg | Bin 0 -> 40390 bytes 4 files changed, 111 insertions(+) create mode 100644 apps/zipline/config.json create mode 100644 apps/zipline/docker-compose.yml create mode 100644 apps/zipline/metadata/description.md create mode 100644 apps/zipline/metadata/logo.jpg diff --git a/apps/zipline/config.json b/apps/zipline/config.json new file mode 100644 index 00000000..c4f129f9 --- /dev/null +++ b/apps/zipline/config.json @@ -0,0 +1,30 @@ +{ + "$schema": "../schema.json", + "name": "Zipline", + "port": 8139, + "available": true, + "exposable": true, + "id": "zipline", + "tipi_version": 1, + "version": "3.6.4", + "categories": ["media"], + "description": "A ShareX/file upload server that is easy to use, packed with features, and with an easy setup! ", + "short_desc": "A ShareX/file upload server that is easy to use, packed with features, and with an easy setup! ", + "author": "https://github.com/diced", + "source": "https://github.com/diced/zipline", + "website": "https://zipline.diced.tech/docs/config/", + "form_fields": [ + { + "type": "random", + "label": "DB_PASSWORD", + "min": 32, + "env_variable": "DB_PASSWORD" + }, + { + "type": "random", + "label": "CORE_SECRET", + "min": 32, + "env_variable": "CORE_SECRET" + } + ] +} diff --git a/apps/zipline/docker-compose.yml b/apps/zipline/docker-compose.yml new file mode 100644 index 00000000..7c2c32f2 --- /dev/null +++ b/apps/zipline/docker-compose.yml @@ -0,0 +1,47 @@ +version: "3.7" + +services: + zipline: + image: ghcr.io/diced/zipline:3.6.4 + ports: + - '${APP_PORT}:3000' + restart: unless-stopped + environment: + - CORE_RETURN_HTTPS=false + - CORE_SECRET=${CORE_SECRET} + - CORE_HOST=0.0.0.0 + - CORE_PORT=3000 + - CORE_DATABASE_URL=postgres://tipi:${DB_PASSWORD}@zipline-db/zipline + - CORE_LOGGER=true + volumes: + - '${APP_DATA_DIR}/data/uploads:/zipline/uploads' + - '${APP_DATA_DIR}/data/public:/zipline/public' + depends_on: + - 'zipline-db' + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.zipline.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.zipline.entrypoints: websecure + traefik.http.routers.zipline.service: zipline + traefik.http.routers.zipline.tls.certresolver: myresolver + traefik.http.services.zipline.loadbalancer.server.port: 3000 + networks: + - tipi_main_network + + zipline-db: + container_name: zipline-db + image: postgres:14 + restart: unless-stopped + environment: + - POSTGRES_USER=tipi + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=zipline + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + networks: + - tipi_main_network + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U postgres'] + interval: 10s + timeout: 5s + retries: 5 diff --git a/apps/zipline/metadata/description.md b/apps/zipline/metadata/description.md new file mode 100644 index 00000000..a74a27c7 --- /dev/null +++ b/apps/zipline/metadata/description.md @@ -0,0 +1,34 @@ +A ShareX/file upload server that is easy to use, packed with features, and with an easy setup! + +![Stars](https://img.shields.io/github/stars/diced/zipline?logo=github&style=flat) +![Version](https://img.shields.io/github/package-json/v/diced/zipline?logo=git&logoColor=white&style=flat) +![GitHub last commit (branch)](https://img.shields.io/github/last-commit/diced/zipline/trunk?logo=git&logoColor=white&style=flat) +[![Discord](https://img.shields.io/discord/729771078196527176?color=%23777ed3&label=discord&logo=discord&logoColor=white&style=flat)](https://discord.gg/EAhCRfGxCF) + +![Build](https://img.shields.io/github/actions/workflow/status/diced/zipline/build.yml?logo=github&style=flat&branch=trunk) +[![Docker Image (trunk)](https://img.shields.io/github/actions/workflow/status/diced/zipline/docker.yml?label=Docker%20%28trunk%29&logo=github&style=flat&branch=trunk)](https://github.com/diced/zipline/pkgs/container/zipline/?tag=trunk) +[![Docker Image (release)](https://img.shields.io/github/actions/workflow/status/diced/zipline/docker-release.yml?label=Docker%20%28release%29&logo=github&style=flat&branch=trunk)](https://github.com/diced/zipline/pkgs/container/zipline/?tag=latest) + + +## Features + +- Configurable +- Fast +- Built with Next.js & React +- Token protected uploading +- Image uploading +- Image compression +- Password Protected Uploads +- URL shortening +- Text uploading +- URL Formats (uuid, dates, random alphanumeric, original name, zws) +- Discord embeds (OG metadata) +- Gallery viewer, and multiple file format support +- Code highlighting +- Fully customizable Discord webhook notifications +- OAuth2 registration (Discord and GitHub) +- Two-Factor authentication with Google Authenticator, Authy, etc (totp services). +- User invites +- File Chunking (for large files) +- File deletion once it reaches a certain amount of views +- Easy setup instructions on [docs](https://zipl.vercel.app/) (One command install `docker-compose up -d`) diff --git a/apps/zipline/metadata/logo.jpg b/apps/zipline/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..caab882699660a23826a3fd9108533980cfec60e GIT binary patch literal 40390 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 B@5=xH literal 0 HcmV?d00001 From 25f01f907a4df5b4d79387caab1c13dc61a7e8a1 Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Tue, 28 Feb 2023 00:07:20 -0500 Subject: [PATCH 2/3] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 91f89f1d..c1745477 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Wireguard Easy](https://github.com/WeeJeWel/wg-easy) - WireGuard VPN + Web-based Admin UI - [Your Spotify](https://github.com/Yooooomi/your_spotify) - Self hosted Spotify tracking dashboard - [ZeroTier](https://github.com/zerotier/ZeroTierOne) - Easy to use zero configuration VPN. +- [Zipline](https://github.com/diced/zipline) - A ShareX/file upload server that is easy to use, packed with features, and with an easy setup! ## How to sumbit an app From 70d80650b87a33d2815cbaa0ca53c9b2430bc2dd Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Wed, 1 Mar 2023 20:20:38 +0100 Subject: [PATCH 3/3] chore(zipline): refactor config --- apps/zipline/config.json | 8 ++++---- apps/zipline/docker-compose.yml | 9 +++++---- apps/zipline/metadata/description.md | 11 +++-------- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/apps/zipline/config.json b/apps/zipline/config.json index c4f129f9..f061ec6f 100644 --- a/apps/zipline/config.json +++ b/apps/zipline/config.json @@ -16,15 +16,15 @@ "form_fields": [ { "type": "random", - "label": "DB_PASSWORD", + "label": "ZIPLINE_DB_PASSWORD", "min": 32, - "env_variable": "DB_PASSWORD" + "env_variable": "ZIPLINE_DB_PASSWORD" }, { "type": "random", - "label": "CORE_SECRET", + "label": "ZIPLINE_CORE_SECRET", "min": 32, - "env_variable": "CORE_SECRET" + "env_variable": "ZIPLINE_CORE_SECRET" } ] } diff --git a/apps/zipline/docker-compose.yml b/apps/zipline/docker-compose.yml index 7c2c32f2..b3f43ba2 100644 --- a/apps/zipline/docker-compose.yml +++ b/apps/zipline/docker-compose.yml @@ -1,17 +1,18 @@ -version: "3.7" +version: '3.7' services: zipline: + container_name: zipline image: ghcr.io/diced/zipline:3.6.4 ports: - '${APP_PORT}:3000' restart: unless-stopped environment: - CORE_RETURN_HTTPS=false - - CORE_SECRET=${CORE_SECRET} + - CORE_SECRET=${ZIPLINE_CORE_SECRET} - CORE_HOST=0.0.0.0 - CORE_PORT=3000 - - CORE_DATABASE_URL=postgres://tipi:${DB_PASSWORD}@zipline-db/zipline + - CORE_DATABASE_URL=postgres://tipi:${ZIPLINE_DB_PASSWORD}@zipline-db/zipline - CORE_LOGGER=true volumes: - '${APP_DATA_DIR}/data/uploads:/zipline/uploads' @@ -34,7 +35,7 @@ services: restart: unless-stopped environment: - POSTGRES_USER=tipi - - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_PASSWORD=${ZIPLINE_DB_PASSWORD} - POSTGRES_DB=zipline volumes: - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data diff --git a/apps/zipline/metadata/description.md b/apps/zipline/metadata/description.md index a74a27c7..dcf04f84 100644 --- a/apps/zipline/metadata/description.md +++ b/apps/zipline/metadata/description.md @@ -1,14 +1,9 @@ A ShareX/file upload server that is easy to use, packed with features, and with an easy setup! -![Stars](https://img.shields.io/github/stars/diced/zipline?logo=github&style=flat) -![Version](https://img.shields.io/github/package-json/v/diced/zipline?logo=git&logoColor=white&style=flat) -![GitHub last commit (branch)](https://img.shields.io/github/last-commit/diced/zipline/trunk?logo=git&logoColor=white&style=flat) -[![Discord](https://img.shields.io/discord/729771078196527176?color=%23777ed3&label=discord&logo=discord&logoColor=white&style=flat)](https://discord.gg/EAhCRfGxCF) - -![Build](https://img.shields.io/github/actions/workflow/status/diced/zipline/build.yml?logo=github&style=flat&branch=trunk) -[![Docker Image (trunk)](https://img.shields.io/github/actions/workflow/status/diced/zipline/docker.yml?label=Docker%20%28trunk%29&logo=github&style=flat&branch=trunk)](https://github.com/diced/zipline/pkgs/container/zipline/?tag=trunk) -[![Docker Image (release)](https://img.shields.io/github/actions/workflow/status/diced/zipline/docker-release.yml?label=Docker%20%28release%29&logo=github&style=flat&branch=trunk)](https://github.com/diced/zipline/pkgs/container/zipline/?tag=latest) +## Default credentials +Username: administrator +Password: password ## Features