-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
87 lines (83 loc) · 3.16 KB
/
Copy pathdocker-compose.yml
File metadata and controls
87 lines (83 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Local development stack for Keepiq.
#
# Brings up PostgreSQL + Nextcloud 32 on http://localhost:8080 (admin/admin),
# with this repo bind-mounted as the `keepiq` custom app and the sibling
# `../openregister` checkout mounted alongside it — Keepiq builds on
# OpenRegister's AppHost engine, so both apps are enabled automatically on
# every start by the before-starting hook (docker/nextcloud/enable-apps.sh):
#
# docker compose up -d
#
# Mirrors openregister/docker-compose.yml (same port, same container name for
# the `docker exec nextcloud php occ ...` habit) — run only ONE of these app
# stacks at a time; they all claim port 8080 and the `nextcloud` name.
#
# SPDX-License-Identifier: EUPL-1.2
# SPDX-FileCopyrightText: 2026 Conduction B.V. <info@conduction.nl>
volumes:
nextcloud:
db:
networks:
default:
name: keepiq-network
services:
db:
# pgvector image: the mounted OpenRegister backend uses the vector and
# pg_trgm extensions (enabled by the init script below).
image: pgvector/pgvector:pg16
restart: always
container_name: keepiq-postgres
volumes:
- db:/var/lib/postgresql/data
- ./docker/postgres/init-extensions.sql:/docker-entrypoint-initdb.d/01-init-extensions.sql:ro
environment:
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_PASSWORD=!ChangeMe!
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U nextcloud -d nextcloud"]
interval: 10s
timeout: 5s
retries: 5
nextcloud:
# NC 32 — within Keepiq's info.xml min/max-version window (32–34) and
# matches the openregister reference stack.
image: nextcloud:32
user: root
container_name: nextcloud
restart: always
ports:
- "8080:80"
depends_on:
db:
condition: service_healthy
volumes:
- nextcloud:/var/www/html:rw
# Mount the whole custom_apps dir from the host BEFORE the subdir
# mounts. Without it, Docker creates the intermediate custom_apps
# directory inside the named volume as root:root, www-data cannot
# write into it, and /settings/apps 500s with "Cannot write into
# 'apps' directory" (custom_apps is the image's only writable
# apps_paths entry). Host mounts are world-writable, so this also
# gives App Store installs a place to land.
- ./custom_apps:/var/www/html/custom_apps
- .:/var/www/html/custom_apps/keepiq
- ../openregister:/var/www/html/custom_apps/openregister
# before-starting hooks run as www-data on every start, after
# install/upgrade — this one enables openregister + keepiq. Do NOT
# replace the image's entrypoint for this (that broke startup before).
- ./docker/nextcloud/enable-apps.sh:/docker-entrypoint-hooks.d/before-starting/enable-apps.sh:ro
environment:
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
- POSTGRES_PASSWORD=!ChangeMe!
- POSTGRES_HOST=db
- NEXTCLOUD_ADMIN_USER=admin
- NEXTCLOUD_ADMIN_PASSWORD=admin
- NEXTCLOUD_TRUSTED_DOMAINS=localhost nextcloud
- TZ=Europe/Amsterdam
- PHP_MEMORY_LIMIT=4G
- PHP_UPLOAD_LIMIT=2G
- PHP_POST_MAX_SIZE=2G