nextcloud-swarm-plugin/docker-compose.yml
Henry Bergström 63221db916
Release 20250307 (#114)
* Improving github and NC app store documentation (#102)

* fix(curl): upload SSL verification (#105)

- remove: verify parameters to default to curl
- add: only in dev env

* feat(upload): add filename as meta param when uploading (#103)

* Improve settings information (#104)

* Improve settings information

* feat(settings): add server host URL as default value

* style(settings): remove extra wordings

---------

Co-authored-by: Mahyar Iranibazaz <mahiarirani@pm.me>

* Feature: secure API communication upgrade (#107)

* feat(exception): throw separate exceptions

* feat(api): separate token from api link
- update: merge getLink into a single function
- add: Dto for Links results
- pass: token in authorization header
- update: upload and download to use new api links
- refactor: remove extra isVersion input

* chore: fix code style

---------

Co-authored-by: mahiarirani <10583381+mahiarirani@users.noreply.github.com>

* bugfix: exception handling to ensure the response is handled correctly (#109)

* bugfix: correct exception handling to ensure the response is handled correclty by calling test() function.
- update: do not assume an array (json) response from the api. The response is not always json which cause the json_decode() to return null;
- add: use StorageNotAvailableException to ensure a user-friendly error message to be displayed on the front.end;
- update: return value can be a string

* chore: fix code style

* feat(api): check status
- update: response based on status code
- add: specific error for invalid code

* chore: fix code style

---------

Co-authored-by: Take one <rontrevor@hotmail.com>
Co-authored-by: Mahyar Iranibazaz <mahiarirani@pm.me>
Co-authored-by: mahiarirani <10583381+mahiarirani@users.noreply.github.com>

* feat(docker): add install ocs api viewer app (#108)

* bugfix/correct-install-docker-windows (#106)

* - Correction to docker-compose for Windows installations.
- Added README for known issues

* Update README.md

bugfix(correct-install-docker-windows): add supporting images

* - add: formatting changes to README.md

---------

Co-authored-by: Take one <rontrevor@hotmail.com>

* Feature #1192 feedback form js (#111)

* Adding Feedback form

* Not working yet.
Probably need to change strategy and send request to nc first

* Feedback js working.
Something might be improved:
// TODO - Get API Url from beeswarmtrait or another place
// TODO - Improve layout with css
// TODO - Remove wiget when not is not in swarm folders

* chore: fix code style

* feat(env): upgrade get
- update: return null if key is not found

* feat(feedback): add api url
- add: app const
- add: env example

* feat(curl): add post and get methods
- update: swarm endpoints to use new methods

* feat(feedback): update feedback request

* refactor(curl): rename curl to request

* feat(curl): add accept headers to getLink
- refactor: use get for download instead of exec

* style(feedback): improve feedback from ui

* style(feedback): improve feedback from ui

* feat(feedback): use custom exception

* feat(feedback): add status code to exception

* feat(feedback): return correct status code

* feat(feedback): add feedback js as dependency
- remove: manual added js file
- add: npm package
- update: the code usage

---------

Co-authored-by: JoaoSRaposo <1598265+JoaoSRaposo@users.noreply.github.com>
Co-authored-by: Mahyar Iranibazaz <mahiarirani@pm.me>

* feat(curl): check url for protocol

* bugfix(feedback): remove the removed script load

* feat(toast): add nextcloud dialogs (#112)

- add: library package
- update: fileactions.js usage
- update: swarm logo remove xml

* Fix/#1085  adding moodle to the documentation (#100)

* Adding moodle documentation

* FIxing link formating  error

---------

Co-authored-by: JoaoSRaposo <joaosraposo@gmail.com>
Co-authored-by: Mahyar Iranibazaz <mahiarirani@pm.me>
Co-authored-by: mahiarirani <10583381+mahiarirani@users.noreply.github.com>
Co-authored-by: retrevor <75954541+retrevor@users.noreply.github.com>
Co-authored-by: Take one <rontrevor@hotmail.com>
Co-authored-by: JoaoSRaposo <1598265+JoaoSRaposo@users.noreply.github.com>
2025-03-07 16:44:03 +01:00

190 lines
4.4 KiB
YAML
Executable file

services:
web:
build: ./docker/web
restart: unless-stopped
volumes_from:
- nextcloud
depends_on:
- nextcloud
labels:
caddy: ${APP_URL:-localhost}, nextcloud.local
caddy.reverse_proxy: '{{upstreams 80}}'
networks:
- frontend
- proxy
nextcloud:
build:
context: ./docker/nextcloud
dockerfile: Dockerfile
args:
NC_VERSION: ${NC_VERSION:-29}
target: ${ENV:-development}
restart: unless-stopped
depends_on:
mariadb:
condition: service_healthy
redis:
condition: service_healthy
env_file:
- .\.env
environment:
MYSQL_HOST: mariadb:3306
REDIS_HOST: redis
networks:
- frontend
- backend
extra_hosts:
- host.docker.internal:host-gateway
- onlyoffice.local:host-gateway
- hejbit.local:host-gateway
- api.hejbit.local:host-gateway
volumes:
- nc-app:/var/www/html
- ./:/var/www/html/custom_apps/files_external_ethswarm
cron:
image: nextcloud:${NC_VERSION:-29}-fpm-alpine
restart: always
volumes:
- nc-app:/var/www/html:z
entrypoint: /cron.sh
depends_on:
nextcloud:
condition: service_started
mariadb:
condition: service_healthy
redis:
condition: service_healthy
redis:
image: redis:alpine
restart: unless-stopped
environment:
REDIS_HOST_PASSWORD: ${REDIS_HOST_PASSWORD:-secret}
command: redis-server --requirepass ${REDIS_HOST_PASSWORD:-secret}
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
start_period: 3s
timeout: 5s
interval: 30s
networks:
- backend
mariadb:
image: mariadb:latest
# set transaction isolation: https://docs.nextcloud.com/server/stable/admin_manual/configuration_database/linux_database_configuration.html
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword}
MYSQL_DATABASE: ${MYSQL_DATABASE:-nextcloud}
MYSQL_USER: ${MYSQL_USER:-nextcloud}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-secret}
volumes:
- nc-db:/var/lib/mysql
healthcheck:
test: [ "CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized" ]
start_period: 3s
timeout: 5s
interval: 30s
networks:
- backend
adminer:
image: adminer:latest
restart: unless-stopped
networks:
- backend
ports:
- '8080:8080'
depends_on:
- mariadb
environment:
ADMINER_DEFAULT_SERVER: mariadb
profiles:
- dev
rsync:
build:
context: ./docker/rsync
dockerfile: Dockerfile
restart: unless-stopped
cpu_shares: 512
mem_limit: 256m
volumes:
- nc-app:/app:ro
- ./dev-environment/nextcloud_source:/source
environment:
- RSYNC_CRONTAB=crontab
depends_on:
- nextcloud
networks:
- backend
profiles:
- dev
onlyoffice:
image: onlyoffice/documentserver
environment:
JWT_ENABLED: true
JWT_SECRET: secret
JWT_HEADER: AuthorizationJwt
JWT_IN_BODY: true
USE_UNAUTHORIZED_STORAGE: true
restart: unless-stopped
volumes:
- onlyoffice_data:/var/www/onlyoffice/Data
- onlyoffice_db:/var/lib/postgresql
- onlyoffice_lib:/var/lib/onlyoffice
- onlyoffice_logs:/var/log/onlyoffice
extra_hosts:
- nextcloud.local:host-gateway
networks:
- backend
- proxy
labels:
caddy: onlyoffice.local
caddy.reverse_proxy: '{{upstreams 80}}'
profiles:
- dev
proxy:
image: lucaslorentz/caddy-docker-proxy:alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- caddy_data:/data
- caddy_config:/config
- /var/run/docker.sock:/var/run/docker.sock
environment:
CADDY_INGRESS_NETWORKS: hejbit-network
networks:
- proxy
healthcheck:
test: [ "CMD", "curl", "--fail", "http://localhost:2019/reverse_proxy/upstreams" ]
timeout: 30s
retries: 3
start_period: 10s
profiles:
- dev
volumes:
nc-app:
nc-db:
caddy_data:
caddy_config:
onlyoffice_data:
onlyoffice_db:
onlyoffice_lib:
onlyoffice_logs:
networks:
frontend:
backend:
proxy:
name: hejbit-network