chore: sync all local changes and new files

- Update next.config.ts
- Add netlify.toml, Docker configs, e2e tests
- Add env templates, docs (README, ROADMAP, TODO)
- Add vitest/playwright test configs
- Add component and lib tests
- Add install script, portainer env template
- Update .gitignore (tsbuildinfo, deno.lock, dev.db)
This commit is contained in:
FalahMobile
2026-07-02 20:01:48 +08:00
parent 2e66def057
commit 61baf3ac5d
25 changed files with 2456 additions and 2 deletions
+148
View File
@@ -0,0 +1,148 @@
# 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: