From a969ce810a3fd49893a38b304122108a9ff7fa55 Mon Sep 17 00:00:00 2001 From: Daniere Mathieu Date: Sun, 1 Oct 2023 10:37:17 +0200 Subject: [PATCH] v1 testing koilection --- apps/koillection/config.json | 16 +++++ apps/koillection/docker-compose.yml | 78 +++++++++++++++++++++++ apps/koillection/metadata/description.md | 1 + apps/koillection/metadata/logo.jpeg | Bin 0 -> 40678 bytes 4 files changed, 95 insertions(+) create mode 100644 apps/koillection/config.json create mode 100644 apps/koillection/docker-compose.yml create mode 100644 apps/koillection/metadata/description.md create mode 100644 apps/koillection/metadata/logo.jpeg diff --git a/apps/koillection/config.json b/apps/koillection/config.json new file mode 100644 index 00000000..c5c139cf --- /dev/null +++ b/apps/koillection/config.json @@ -0,0 +1,16 @@ +{ + "name": "Koillection", + "available": true, + "port": 8050, + "exposable": true, + "id": "koillection", + "description": "Koillection is a self-hosted service allowing users to manage any kind of collections.", + "tipi_version": 1, + "version": "1.4.11", + "categories": ["utilities"], + "short_desc": "Koillection allow you to manage any kind of collections.", + "author": "https://github.com/benjaminjonard", + "source": "https://github.com/benjaminjonard/koillection", + "website": "https://koillection.github.io/", + "form_fields": [] +} \ No newline at end of file diff --git a/apps/koillection/docker-compose.yml b/apps/koillection/docker-compose.yml new file mode 100644 index 00000000..ffb90ebb --- /dev/null +++ b/apps/koillection/docker-compose.yml @@ -0,0 +1,78 @@ +version: '3' + +services: + koillection: + image: koillection/koillection:1.4.11 + container_name: koillection + restart: unless-stopped + ports: + - ${APP_PORT}:80 + env_file: + - .env + depends_on: + - db + volumes: + - ${APP_DATA_DIR}/data/volumes/koillection/uploads:/uploads + environment: + - APP_DEBUG=0 + - APP_ENV=prod + - HTTPS_ENABLED=1 + - UPLOAD_MAX_FILESIZE=20M + - PHP_MEMORY_LIMIT=512M + - PHP_TZ=${TZ} + - CORS_ALLOW_ORIGIN='^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$' + - JWT_SECRET_KEY=%kernel.project_dir%/config/jwt/private.pem + - JWT_PUBLIC_KEY=%kernel.project_dir%/config/jwt/public.pem + networks: + - koillection + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.koillection-web-redirect.redirectscheme.scheme: https + traefik.http.services.koillection.loadbalancer.server.port: 8080 + # Web + traefik.http.routers.koillection-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.koillection-insecure.entrypoints: web + traefik.http.routers.koillection-insecure.service: koillection + traefik.http.routers.koillection-insecure.middlewares: koillection-web-redirect + # Websecure + traefik.http.routers.koillection.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.koillection.entrypoints: websecure + traefik.http.routers.koillection.service: koillection + traefik.http.routers.koillection.tls.certresolver: myresolver + # Local domain + traefik.http.routers.koillection-local-insecure.rule: Host(`koillection.${LOCAL_DOMAIN}`) + traefik.http.routers.koillection-local-insecure.entrypoints: web + traefik.http.routers.koillection-local-insecure.service: koillection + traefik.http.routers.koillection-local-insecure.middlewares: koillection-web-redirect + # Local domain secure + traefik.http.routers.koillection-local.rule: Host(`koillection.${LOCAL_DOMAIN}`) + traefik.http.routers.koillection-local.entrypoints: websecure + traefik.http.routers.koillection-local.service: koillection + traefik.http.routers.koillection-local.tls: true + + db: + image: postgres:15 + container_name: db + restart: unless-stopped + env_file: + - .env + environment: + - POSTGRES_DB=${DB_NAME} + - POSTGRES_USER=${DB_USER} + - POSTGRES_PASSWORD=${DB_PASSWORD} + - DB_DRIVER=pdo_pgsql + - DB_NAME=koillection + - DB_HOST=db + - DB_PORT=5432 + - DB_USER=root + - DB_PASSWORD=root + - DB_VERSION=15 + volumes: + - ${APP_DATA_DIR}/data/volumes/postgresql:/var/lib/postgresql/data + networks: + - koillection +networks: + koillection: + driver: bridge \ No newline at end of file diff --git a/apps/koillection/metadata/description.md b/apps/koillection/metadata/description.md new file mode 100644 index 00000000..41b34b84 --- /dev/null +++ b/apps/koillection/metadata/description.md @@ -0,0 +1 @@ +Koillection is a self-hosted service allowing users to manage any kind of collections. \ No newline at end of file diff --git a/apps/koillection/metadata/logo.jpeg b/apps/koillection/metadata/logo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3a0627ed32b3c2aa2fc9eedf866cb036a6caada5 GIT binary patch literal 40678 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 yut-&4Y@@TKDf=7qJinrYZ) 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