commit e3d3e4a4f5198af776fcbc1b2183b5f9c46dfae7 Author: radinpirouz Date: Sat Jan 17 17:03:44 2026 +0330 Init Commit diff --git a/Gitea/docker-compose.yml b/Gitea/docker-compose.yml new file mode 100644 index 0000000..4156daf --- /dev/null +++ b/Gitea/docker-compose.yml @@ -0,0 +1,32 @@ +services: + gitea: + image: gitea/gitea:latest + container_name: gitea + restart: always + ports: + - "127.0.0.1:3000:3000" # HTTP/HTTPS access + - "33:22" # SSH access (Note: Change 33 if port 22 is open on host) + volumes: + - ./gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + environment: + # Adjust these database connection settings to match the postgres service below + - DB_TYPE=postgres + - DB_HOST=db:5432 + - DB_NAME=gitea + - DB_USER=gitea_user + - DB_PASSWD=password + depends_on: + - db + + db: + image: postgres:15-alpine + container_name: gitea_db + restart: always + environment: + POSTGRES_USER: gitea_user + POSTGRES_PASSWORD: password + POSTGRES_DB: gitea + volumes: + - ./postgresql:/var/lib/postgresql/data diff --git a/Mattermost/.env b/Mattermost/.env new file mode 100644 index 0000000..1359453 --- /dev/null +++ b/Mattermost/.env @@ -0,0 +1,60 @@ +# Domain of service +DOMAIN= + +TZ=UTC +RESTART_POLICY=unless-stopped + + +POSTGRES_IMAGE_TAG=13-alpine +POSTGRES_DATA_PATH=./volumes/db/var/lib/postgresql/data + +POSTGRES_USER=mmuser +POSTGRES_PASSWORD=mmuser_password +POSTGRES_DB=mattermost + + +NGINX_IMAGE_TAG=alpine +NGINX_CONFIG_PATH=./nginx/conf.d +NGINX_DHPARAMS_FILE=./nginx/dhparams4096.pem +HTTPS_PORT=443 +HTTP_PORT=80 + +CERT_PATH=./volumes/web/cert/cert.pem +KEY_PATH=./volumes/web/cert/key-no-password.pem +#GITLAB_PKI_CHAIN_PATH=/pki_chain.pem +#CERT_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/fullchain.pem +#KEY_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/privkey.pem + + +CALLS_PORT=8445 +APP_PORT=8065 + +# Mattermost settings +## Inside the container the uid and gid is 2000. The folder owner can be set with +## `sudo chown -R 2000:2000 ./volumes/app/mattermost`. + +MATTERMOST_CONFIG_PATH=./volumes/app/mattermost/config +MATTERMOST_DATA_PATH=./volumes/app/mattermost/data +MATTERMOST_LOGS_PATH=./volumes/app/mattermost/logs +MATTERMOST_PLUGINS_PATH=./volumes/app/mattermost/plugins +MATTERMOST_CLIENT_PLUGINS_PATH=./volumes/app/mattermost/client/plugins +MATTERMOST_BLEVE_INDEXES_PATH=./volumes/app/mattermost/bleve-indexes + +## Bleve index (inside the container) +MM_BLEVESETTINGS_INDEXDIR=/mattermost/bleve-indexes + +## This will be 'mattermost-enterprise-edition' or 'mattermost-team-edition' based on the version of Mattermost you're installing. +MATTERMOST_IMAGE=mattermost-enterprise-edition +## Update the image tag if you want to upgrade your Mattermost version. You may also upgrade to the latest one. The example is based on the latest Mattermost ESR version. +MATTERMOST_IMAGE_TAG=10.5.2 + +## Make Mattermost container readonly. This interferes with the regeneration of root.html inside the container. Only use +## it if you know what you're doing. +## See https://github.com/mattermost/docker/issues/18 +MATTERMOST_CONTAINER_READONLY=false + + +MM_SQLSETTINGS_DRIVERNAME=postgres +MM_SQLSETTINGS_DATASOURCE=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable&connect_timeout=10 + +MM_SERVICESETTINGS_SITEURL=https://${DOMAIN} diff --git a/Mattermost/docker-compose.yml b/Mattermost/docker-compose.yml new file mode 100644 index 0000000..395b7a3 --- /dev/null +++ b/Mattermost/docker-compose.yml @@ -0,0 +1,61 @@ +services: + postgres: + image: postgres:${POSTGRES_IMAGE_TAG} + restart: ${RESTART_POLICY} + security_opt: + - no-new-privileges:true + pids_limit: 100 + read_only: true + tmpfs: + - /tmp + - /var/run/postgresql + volumes: + - ${POSTGRES_DATA_PATH}:/var/lib/postgresql/data + environment: + # timezone inside container + - TZ + + # necessary Postgres options/variables + - POSTGRES_USER + - POSTGRES_PASSWORD + - POSTGRES_DB + + mattermost: + depends_on: + - postgres + image: mattermost/${MATTERMOST_IMAGE}:${MATTERMOST_IMAGE_TAG} + restart: ${RESTART_POLICY} + security_opt: + - no-new-privileges:true + pids_limit: 200 + read_only: ${MATTERMOST_CONTAINER_READONLY} + tmpfs: + - /tmp + volumes: + - ${MATTERMOST_CONFIG_PATH}:/mattermost/config:rw + - ${MATTERMOST_DATA_PATH}:/mattermost/data:rw + - ${MATTERMOST_LOGS_PATH}:/mattermost/logs:rw + - ${MATTERMOST_PLUGINS_PATH}:/mattermost/plugins:rw + - ${MATTERMOST_CLIENT_PLUGINS_PATH}:/mattermost/client/plugins:rw + - ${MATTERMOST_BLEVE_INDEXES_PATH}:/mattermost/bleve-indexes:rw + # When you want to use SSO with GitLab, you have to add the cert pki chain of GitLab inside Alpine + # to avoid Token request failed: certificate signed by unknown authority + # (link: https://github.com/mattermost/mattermost-server/issues/13059 and https://github.com/mattermost/docker/issues/34) + # - ${GITLAB_PKI_CHAIN_PATH}:/etc/ssl/certs/pki_chain.pem:ro + environment: + # timezone inside container + - TZ + + # necessary Mattermost options/variables (see env.example) + - MM_SQLSETTINGS_DRIVERNAME + - MM_SQLSETTINGS_DATASOURCE + + # necessary for bleve + - MM_BLEVESETTINGS_INDEXDIR + + # additional settings + - MM_SERVICESETTINGS_SITEURL + ports: + - 127.0.0.1:${APP_PORT}:8065 + - ${CALLS_PORT}:${CALLS_PORT}/udp + - ${CALLS_PORT}:${CALLS_PORT}/tcp \ No newline at end of file diff --git a/Minio/docker-compose.yml b/Minio/docker-compose.yml new file mode 100644 index 0000000..9e6edba --- /dev/null +++ b/Minio/docker-compose.yml @@ -0,0 +1,18 @@ +services: + minio: + image: quay.io/minio/minio:latest + container_name: minio + restart: unless-stopped + ports: + - "9000:9000" # MinIO S3 API + - "9001:9001" # MinIO Console UI + environment: + MINIO_ROOT_USER: radin + MINIO_ROOT_PASSWORD: 1qaz2qaz + command: server /data --console-address ":9001" + volumes: + - minio_data:/data + +volumes: + minio_data: + driver: local