Some assembly required. Not much, though.

Your own collection app. On your own terms.

KolleK is a full collection app you can run on infrastructure you choose. Start with Docker Compose, keep the moving parts understandable, and retain a clear path for upgrades and backups.

bash — kollek@server: ~/kollek

Step 1 · Clone

$ git clone https://github.com/djaiss/kollek.git kollek

Cloning into 'kollek'... done.

Step 2 · Configure

$ cd kollek && cp .env.docker.example .env

Set APP_KEY, DB_PASSWORD in .env

Step 3 · Set the app key

$ docker compose run --rm app php artisan key:generate

Application key set.

Step 4 · Bring it up

$ docker compose up -d

Started app, queue, scheduler, mysql · migrations ran on boot

4 containers healthy · app on http://localhost:8000

Four commands from an empty directory to a running instance. The last one is “docker compose up”, not a leap of faith.

A short route from nothing to running

The supported path is Docker.

Bring up the web app, queue worker, scheduler, database, and storage with a documented setup, instead of assembling a stack from forum posts and optimism.

1

Clone the repo

git clone …/kollek

Pull the source and the Compose stack that ships with it.

2

Set your .env

cp .env.docker.example .env

Copy the example env, then set your app key and database password.

3

Compose up

docker compose up -d

Four containers start together: app, queue, scheduler, and MySQL.

4

It runs

http://localhost:8000

Migrations run on boot. Open the app in your browser.

Small enough to understand

Five parts. That is the whole cast.

KolleK uses a web role, a queue role, a scheduler role, MySQL, and durable storage. Each part has a job, and each part is described in the docs.

Compose stack docker-compose.yml · 4 services

Application

Web app

Serves the app over nginx and PHP-FPM, and runs database migrations on boot.

Queue worker queue

Processes background jobs on the high, default, and low queues.

Scheduler scheduler

Runs the artisan schedule: recurring cleanup and maintenance tasks.

reads & writes

State & storage

MySQL DURABLE VOLUME

Holds your collection, items, copies, and history: the source of truth.

db-data → /var/lib/mysql

Durable storage DURABLE VOLUME

Uploaded photos, documents, and generated files. Local disk or any S3-compatible bucket.

storage-data → /var/www/html/storage

Upgrade without holding your breath

Your data volumes survive the swap.

Updates preserve the data volumes that hold the database and uploaded files. Follow the documented upgrade path, run the migrations, and keep moving.

Containers are replaced. The named volumes stay put, so the swap touches code, not your collection.
Upgrade run v3.2 → v3.3
1

Pull the new image

docker compose pull

Code
2

Back up first

docker compose exec mysql mysqldump kollek > db.sql

Safety
3

Recreate containers

docker compose up -d

Volumes kept
4

Migrations run on boot

php artisan migrate --force

Automatic

Backups are part of the deal

Three things, backed up together.

A reliable backup includes the database, uploaded files, and the application key. It is not glamorous. It is extremely worth doing.

Backup checklist 3 of 3 covered
The database db-data

Every item, collection, valuation, and history entry. A mysqldump or a volume snapshot both work.

ESSENTIAL
Uploaded files storage-data

Photos, documents, and attachments. Restoring a database without these leaves broken references.

ESSENTIAL
The application key .env → APP_KEY

KolleK encrypts data at rest, so without this key the encrypted values cannot be read back. Easy to forget, painful to lose.

DO NOT SKIP

No automated backup command ships yet. Snapshot the two named volumes, keep your APP_KEY somewhere safe, and standard Docker tooling handles the rest.

Ready to run it yourself?

One documented path covers install, upgrade, and backup. Start with Docker Compose and keep every moving part where you can see it.

Read the install guide

KolleK might not be for you (yet) if…

You want a zero-maintenance hosted service and never want to see Docker.

You need a deployment platform to make every operational decision for you.

Choose KolleK when…

You want a documented, supported route to running the full app on infrastructure you choose.

A small server, Docker Compose, and a clear operating model sound like good news.

We will update this page when the product changes. The feature status page has the boring-but-important details.