149 lines
4.3 KiB
YAML
149 lines
4.3 KiB
YAML
|
|
# Falah OS CE — Optional Community Extras
|
||
|
|
# Heavy open-source tools for advanced communities.
|
||
|
|
#
|
||
|
|
# Usage (add on top of the main stack):
|
||
|
|
# docker compose -f docker-compose.yml -f docker-compose.extras.yml up -d
|
||
|
|
#
|
||
|
|
# Or enable individual services:
|
||
|
|
# docker compose -f docker-compose.yml -f docker-compose.extras.yml up -d rocketchat mattermost-db mattermost
|
||
|
|
#
|
||
|
|
# Requirements: additional 4 GB RAM recommended.
|
||
|
|
|
||
|
|
services:
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# Rocket.Chat — Full-featured community messaging
|
||
|
|
# Access: http://<host>:3100
|
||
|
|
# Replaces the built-in chat service for large communities
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
rocketchat:
|
||
|
|
image: rocket.chat:6
|
||
|
|
container_name: falah-rocketchat
|
||
|
|
ports:
|
||
|
|
- "3100:3000"
|
||
|
|
environment:
|
||
|
|
- MONGO_URL=mongodb://mongo-rc:27017/rocketchat
|
||
|
|
- MONGO_OPLOG_URL=mongodb://mongo-rc:27017/local
|
||
|
|
- ROOT_URL=http://localhost:3100
|
||
|
|
- PORT=3000
|
||
|
|
- DEPLOY_PLATFORM=docker
|
||
|
|
depends_on:
|
||
|
|
- mongo-rc
|
||
|
|
networks:
|
||
|
|
- falah-network
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
mongo-rc:
|
||
|
|
image: mongo:6
|
||
|
|
container_name: falah-mongo-rc
|
||
|
|
command: mongod --oplogSize 128 --replSet rs0
|
||
|
|
volumes:
|
||
|
|
- mongo-rc-data:/data/db
|
||
|
|
networks:
|
||
|
|
- falah-network
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
mongo-rc-init:
|
||
|
|
image: mongo:6
|
||
|
|
container_name: falah-mongo-rc-init
|
||
|
|
command: >
|
||
|
|
bash -c "sleep 10 && mongosh --host mongo-rc --eval 'rs.initiate({_id: \"rs0\", members: [{_id: 0, host: \"mongo-rc:27017\"}]})'"
|
||
|
|
depends_on:
|
||
|
|
- mongo-rc
|
||
|
|
networks:
|
||
|
|
- falah-network
|
||
|
|
restart: on-failure
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# Moodle — Learning Management System
|
||
|
|
# Access: http://<host>:3200
|
||
|
|
# For madrasah, Islamic college, and structured course delivery
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
moodle:
|
||
|
|
image: bitnami/moodle:latest
|
||
|
|
container_name: falah-moodle
|
||
|
|
ports:
|
||
|
|
- "3200:8080"
|
||
|
|
environment:
|
||
|
|
- MOODLE_DATABASE_HOST=moodle-db
|
||
|
|
- MOODLE_DATABASE_PORT_NUMBER=3306
|
||
|
|
- MOODLE_DATABASE_NAME=moodle
|
||
|
|
- MOODLE_DATABASE_USER=moodle
|
||
|
|
- MOODLE_DATABASE_PASSWORD=${POSTGRES_PASSWORD}
|
||
|
|
- MOODLE_USERNAME=admin
|
||
|
|
- MOODLE_PASSWORD=${ADMIN_SECRET}
|
||
|
|
- MOODLE_EMAIL=admin@falah.os
|
||
|
|
- MOODLE_SITE_NAME=Falah OS Learning
|
||
|
|
depends_on:
|
||
|
|
- moodle-db
|
||
|
|
volumes:
|
||
|
|
- moodle-data:/bitnami/moodle
|
||
|
|
- moodle-data-dir:/bitnami/moodledata
|
||
|
|
networks:
|
||
|
|
- falah-network
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
moodle-db:
|
||
|
|
image: mariadb:10.6
|
||
|
|
container_name: falah-moodle-db
|
||
|
|
environment:
|
||
|
|
- MARIADB_ROOT_PASSWORD=${POSTGRES_PASSWORD}
|
||
|
|
- MARIADB_DATABASE=moodle
|
||
|
|
- MARIADB_USER=moodle
|
||
|
|
- MARIADB_PASSWORD=${POSTGRES_PASSWORD}
|
||
|
|
volumes:
|
||
|
|
- moodle-db-data:/var/lib/mysql
|
||
|
|
networks:
|
||
|
|
- falah-network
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# Nextcloud — File sharing, calendar, contacts, collaborative docs
|
||
|
|
# Access: http://<host>:3300
|
||
|
|
# For neighbourhood committees, college research, document sharing
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
nextcloud:
|
||
|
|
image: nextcloud:28-apache
|
||
|
|
container_name: falah-nextcloud
|
||
|
|
ports:
|
||
|
|
- "3300:80"
|
||
|
|
environment:
|
||
|
|
- POSTGRES_HOST=nextcloud-db
|
||
|
|
- POSTGRES_DB=nextcloud
|
||
|
|
- POSTGRES_USER=nextcloud
|
||
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||
|
|
- NEXTCLOUD_ADMIN_USER=admin
|
||
|
|
- NEXTCLOUD_ADMIN_PASSWORD=${ADMIN_SECRET}
|
||
|
|
- NEXTCLOUD_TRUSTED_DOMAINS=localhost 192.168.0.17
|
||
|
|
depends_on:
|
||
|
|
- nextcloud-db
|
||
|
|
volumes:
|
||
|
|
- nextcloud-data:/var/www/html
|
||
|
|
networks:
|
||
|
|
- falah-network
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
nextcloud-db:
|
||
|
|
image: postgres:16-alpine
|
||
|
|
container_name: falah-nextcloud-db
|
||
|
|
environment:
|
||
|
|
- POSTGRES_DB=nextcloud
|
||
|
|
- POSTGRES_USER=nextcloud
|
||
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||
|
|
volumes:
|
||
|
|
- nextcloud-db-data:/var/lib/postgresql/data
|
||
|
|
networks:
|
||
|
|
- falah-network
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
mongo-rc-data:
|
||
|
|
moodle-data:
|
||
|
|
moodle-data-dir:
|
||
|
|
moodle-db-data:
|
||
|
|
nextcloud-data:
|
||
|
|
nextcloud-db-data:
|