From 6fc20045e4c15d6fc7b1186fbaffb740be540d8d Mon Sep 17 00:00:00 2001 From: L4RM4ND <21357789+l4rm4nd@users.noreply.github.com> Date: Fri, 24 May 2024 15:02:01 +0200 Subject: [PATCH] add koillection --- README.md | 2 + examples/koillection/.env | 45 ++++++++++++++++ examples/koillection/README.md | 3 ++ examples/koillection/docker-compose.yml | 68 +++++++++++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 examples/koillection/.env create mode 100644 examples/koillection/README.md create mode 100644 examples/koillection/docker-compose.yml diff --git a/README.md b/README.md index b68b663..c8fb03e 100644 --- a/README.md +++ b/README.md @@ -255,6 +255,7 @@ A [document management system](https://en.wikipedia.org/wiki/Document_management - [Paperless NGX](examples/paperless-ngx) - A community-supported supercharged version of paperless: scan, index and archive all your physical documents. - [Papermerge](examples/papermerge) - Free and open source document management system with OCR designed for scanned documents, digital archives, pdf, tiff, jpeg. - [DocuSeal](examples/docuseal) - Create, fill, and sign digital documents (alternative to DocuSign). +- [Koillection](examples/koillection) - Koillection is a self-hosted service allowing users to manage any kind of collections. ### Pastebins @@ -411,6 +412,7 @@ A [wiki](https://en.wikipedia.org/wiki/Wiki) is a publication collaboratively ed - [Domainmod](examples/domainmod) - DomainMOD is an open source application used to manage your domains and other internet assets in a central location. - [Snipe-IT](examples/snipe-it) - Snipe-IT is a free, open source IT asset management system written in PHP. +- [Koillection](examples/koillection) - Koillection is a self-hosted service allowing users to manage any kind of collections. ### Request Bins diff --git a/examples/koillection/.env b/examples/koillection/.env new file mode 100644 index 0000000..aa9adf0 --- /dev/null +++ b/examples/koillection/.env @@ -0,0 +1,45 @@ +######################################################################################################## +# WEB +# +# APP_DEBUG=1 displays detailed error message +# +# APP_SECRET is a random string used for security, you can use for example openssl rand -base64 21 +# APP_SECRET is automatically generated when using Docker +# +# PHP_TZ, see possible values here https://www.w3schools.com/php/php_ref_timezones.asp +######################################################################################################## + +APP_DEBUG=0 +APP_ENV=prod +#APP_SECRET= + +HTTPS_ENABLED=1 +UPLOAD_MAX_FILESIZE=20M +PHP_MEMORY_LIMIT=512M +PHP_TZ=Europe/Paris + + +######################################################################################################## +# API +# +# +# JWT_PASSPHRASE is a random string used for security, you can use for example openssl rand -base64 21 +# JWT_PASSPHRASE is automatically generated when using Docker +######################################################################################################## + +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 +#JWT_PASSPHRASE= + +######################################################################################################## +# DATABASE +######################################################################################################## + +DB_DRIVER=pdo_pgsql +DB_NAME=koillection +DB_HOST=db +DB_PORT=5432 +DB_USER=koillection +DB_PASSWORD=change_me! +DB_VERSION=16 diff --git a/examples/koillection/README.md b/examples/koillection/README.md new file mode 100644 index 0000000..b0d93a1 --- /dev/null +++ b/examples/koillection/README.md @@ -0,0 +1,3 @@ +# References + +- https://github.com/benjaminjonard/koillection diff --git a/examples/koillection/docker-compose.yml b/examples/koillection/docker-compose.yml new file mode 100644 index 0000000..dab69b1 --- /dev/null +++ b/examples/koillection/docker-compose.yml @@ -0,0 +1,68 @@ +version: '3.3' + +services: + + db: + image: postgres:16-alpine + container_name: koillection-db + hostname: koillection-db + restart: unless-stopped + expose: + - 5432 + volumes: + - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/koillection/database:/var/lib/postgresql/data + environment: + - POSTGRES_DB=${DB_NAME:-koillection} + - POSTGRES_USER=${DB_USER:-koillection} + - POSTGRES_PASSWORD=${DB_PASSWORD:-koillection} + #networks: + # - proxy + + koillection: + image: koillection/koillection:latest + container_name: koillection + hostname: koillection + depends_on: + - db + restart: unless-stopped + ports: + - 8888:80/tcp + expose: + - 80 + environment: + - APP_DEBUG=${APP_DEBUG:-0} + - APP_ENV=${APP_ENV:-prod} + - HTTPS_ENABLED=${HTTPS_ENABLED:-0} + - UPLOAD_MAX_FILESIZE=${UPLOAD_MAX_FILESIZE:-20M} + - PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT:-512M} + - PHP_TZ=${PHP_TZ:-Europe/Berlin} + - 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 + - DB_DRIVER=${DB_DRIVER:-pdo_pgsql} + - DB_HOST=${DB_HOST:-db} + - DB_NAME=${DB_NAME:-koillection} + - DB_USER=${DB_USER:-koillection} + - DB_PASSWORD=${DB_PASSWORD:-koillection} + - DB_PORT=${DB_PORT:-5432} + - DB_VERSION=${DB_VERSION:-16} + volumes: + - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/koillection/uploads:/uploads + #networks: + # - proxy + #labels: + # - traefik.enable=true + # - traefik.docker.network=proxy + # - traefik.http.routers.koillection.rule=Host(`collection.example.com`) + # - traefik.http.services.koillection.loadbalancer.server.port=80 + # # Optional part for file upload max sizes + # - traefik.http.middlewares.limit.buffering.maxRequestBodyBytes=50000000 + # - traefik.http.middlewares.limit.buffering.maxResponseBodyBytes=50000000 + # - traefik.http.middlewares.limit.buffering.memRequestBodyBytes=50000000 + # - traefik.http.middlewares.limit.buffering.memResponseBodyBytes=50000000 + # # Optional part for traefik middlewares + # - traefik.http.routers.koillection.middlewares=local-ipwhitelist@file,authelia@docker + +#networks: +# proxy: +# external: true \ No newline at end of file