Compare commits

...

13 Commits

Author SHA1 Message Date
12b2248b74 wip replicasets 2022-07-21 13:11:54 +02:00
246a9229cb add mongodb replicaset mode 2022-06-22 15:04:19 +02:00
9224bb6238 chore: publish 0.6.0+v6.28 release 2022-06-22 13:54:25 +02:00
9f89d5d475 chore: publish 0.5.0+v6.20 release 2022-05-05 15:56:28 +02:00
d97a48af0e v6.20 2022-05-05 15:49:08 +02:00
9b49dad813 v6.12 2022-03-16 13:00:00 +01:00
3c88052a67 v6.12 2022-03-16 11:49:15 +01:00
ccf2c7e223 bump to v6.11 2022-03-07 14:31:35 +01:00
a6ce73bb5b add ldap 2022-03-02 14:31:26 +01:00
4275535838 update entrypoint 2022-03-02 14:28:17 +01:00
688429c257 update entrypoint 2022-02-17 10:22:28 +01:00
d71099a9dc chore: publish 0.2.0+v6.05 release 2022-02-08 09:38:57 +01:00
5ce2801951 chore: publish 0.1.1+v5.98 release 2022-02-04 13:43:45 +01:00
8 changed files with 193 additions and 31 deletions

View File

@ -2,30 +2,95 @@ TYPE=wekan
LETS_ENCRYPT_ENV=production
SECRET_OAUTH2_SECRET_VERSION=v1
MONGO_URL=mongodb://db:27017/wekan
COMPOSE_FILE="compose.yml"
DOMAIN=board.example.com
ROOT_URL=https://board.example.com
DOMAIN=board.example.org
ROOT_URL=https://board.example.org
DEBUG=false
OAUTH2_ENABLED=true
OAUTH2_LOGIN_STYLE=redirect
OAUTH2_CLIENT_ID=wekan
OAUTH2_SERVER_URL=https://sso.example.com
OAUTH2_AUTH_ENDPOINT=/application/o/authorize/
OAUTH2_USERINFO_ENDPOINT=/application/o/userinfo/
OAUTH2_TOKEN_ENDPOINT=/application/o/token/
OAUTH2_REQUEST_PERMISSIONS="openid profile email wekan"
OAUTH2_ID_MAP=preferred_username
OAUTH2_USERNAME_MAP=preferred_username
OAUTH2_FULLNAME_MAP=given_name
OAUTH2_EMAIL_MAP=email
PASSWORD_LOGIN_ENABLED=false
MAIL_URL=smtp://smtp:25/?ignoreTLS=true&tls={rejectUnauthorized:false}
MAIL_FROM="[WeKan] Wekan Notifications <noreply@example.org>"
WITH_API=true
RICHER_CARD_COMMENT_EDITOR=false
RICHER_CARD_COMMENT_EDITOR=false
# CORS=*
# CORS_ALLOW_HEADERS=Authorization,Content-Type
# CORS_EXPOSE_HEADERS=*
# PASSWORD_LOGIN_ENABLED=false
### OAUTH2 ###
OAUTH2_ENABLED=false
# OAUTH2_LOGIN_STYLE=redirect
# OAUTH2_CLIENT_ID=wekan
# OAUTH2_SERVER_URL=https://sso.${DOMAIN}
# OAUTH2_AUTH_ENDPOINT=/application/o/authorize/
# OAUTH2_USERINFO_ENDPOINT=/application/o/userinfo/
# OAUTH2_TOKEN_ENDPOINT=/application/o/token/
# OAUTH2_REQUEST_PERMISSIONS="openid profile email wekan"
# OAUTH2_ID_MAP=preferred_username
# OAUTH2_USERNAME_MAP=preferred_username
# OAUTH2_FULLNAME_MAP=given_name
# OAUTH2_EMAIL_MAP=email
# PROPAGATE_OIDC_DATA=true
### LDAP ###
#COMPOSE_FILE="$COMPOSE_FILE:compose.ldap.yml"
# DEFAULT_AUTHENTICATION_METHOD=ldap
# LDAP_ENABLE=true
# LDAP_PORT=389
# LDAP_HOST=ldap.example.org
# LDAP_AD_SIMPLE_AUTH=false
# LDAP_USER_AUTHENTICATION=true
# LDAP_USER_AUTHENTICATION_FIELD=cn
# LDAP_DEFAULT_DOMAIN=mydomain.com
# LDAP_BASEDN=dc=ldap,dc=goauthentik,dc=io
# LDAP_LOGIN_FALLBACK=false
# LDAP_RECONNECT=true
# LDAP_TIMEOUT=10000
# LDAP_IDLE_TIMEOUT=10000
# LDAP_CONNECT_TIMEOUT=10000
# LDAP_AUTHENTIFICATION=true
# LDAP_AUTHENTIFICATION_USERDN=cn=admin,dc=ldap,dc=goauthentik,dc=io"
# LDAP_AUTHENTIFICATION_PASSWORD=secret
# LDAP_LOG_ENABLED=true
# LDAP_BACKGROUND_SYNC=true
# LDAP_BACKGROUND_SYNC_INTERVAL='every 1 hour'
# LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=true
# LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=true
# LDAP_ENCRYPTION=false
# LDAP_CA_CERT=-----BEGIN CERTIFICATE-----MIIE+G2FIdAgIC...-----END CERTIFICATE-----
# LDAP_REJECT_UNAUTHORIZED=false
# LDAP_USER_SEARCH_FILTER=
# LDAP_USER_SEARCH_SCOPE=ou=users,dc=ldap,dc=goauthentik,dc=io
# LDAP_USER_SEARCH_FIELD=cn
# LDAP_SEARCH_PAGE_SIZE=0
# LDAP_SEARCH_SIZE_LIMIT=0
# Enable group filtering. Note the authenticated ldap user must be able to query all relevant group data with own login data from ldap.
# LDAP_GROUP_FILTER_ENABLE=true
# LDAP_GROUP_FILTER_OBJECTCLASS=group
# LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE=cn
# LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE=member
# LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT=dn
# LDAP_GROUP_FILTER_GROUP_NAME=
# LDAP_UNIQUE_IDENTIFIER_FIELD=guid
# LDAP_UTF8_NAMES_SLUGIFY=true
# LDAP_USERNAME_FIELD=cn
# LDAP_FULLNAME_FIELD=name
# LDAP_MERGE_EXISTING_USERS=true
# LDAP_EMAIL_MATCH_ENABLE=true
# LDAP_EMAIL_MATCH_REQUIRE=true
# LDAP_EMAIL_MATCH_VERIFIED=true
# LDAP_EMAIL_FIELD=mail
# LDAP_SYNC_USER_DATA=true
# LDAP_SYNC_USER_DATA_FIELDMAP={"cn":"name", "mail":"email"}
# LDAP_SYNC_GROUP_ROLES=
# LDAP_SYNC_ADMIN_STATUS=true
# LDAP_SYNC_ADMIN_GROUPS=admin

View File

@ -27,3 +27,12 @@ See original [docker-compose.yml](https://github.com/wekan/wekan/blob/master/doc
For more, see [`docs.coopcloud.tech`](https://docs.coopcloud.tech).
## use mongodb with replicaset
needed to enable oplog setting in wekan, which isneeded to run bigger instances?
after mongo conaintainer came up the first time run:
abra app command wekan.example.org db init_db

View File

@ -1,2 +1,3 @@
export SECRET_OAUTH2_SECRET_VERSION=v1
export ENTRYPOINT_VERSION=v1
export ENTRYPOINT_VERSION=v2
export INIT_REPLICA_VERSION=v2

BIN
backup.db Normal file

Binary file not shown.

54
compose.ldap.yml Normal file
View File

@ -0,0 +1,54 @@
version: "3.8"
services:
app:
environment:
- LDAP_ENABLE
- LDAP_PORT
- LDAP_HOST
- LDAP_AD_SIMPLE_AUTH
- LDAP_USER_AUTHENTICATION
- LDAP_USER_AUTHENTICATION_FIELD
- LDAP_DEFAULT_DOMAIN
- LDAP_BASEDN
- LDAP_LOGIN_FALLBACK
- LDAP_RECONNECT
- LDAP_TIMEOUT
- LDAP_IDLE_TIMEOUT
- LDAP_CONNECT_TIMEOUT
- LDAP_AUTHENTIFICATION
- LDAP_AUTHENTIFICATION_USERDN
- LDAP_AUTHENTIFICATION_PASSWORD
- LDAP_LOG_ENABLED
- LDAP_BACKGROUND_SYNC
- LDAP_BACKGROUND_SYNC_INTERVAL
- LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED
- LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS
- LDAP_ENCRYPTION
- LDAP_CA_CERT
- LDAP_REJECT_UNAUTHORIZED
- LDAP_USER_SEARCH_FILTER
- LDAP_USER_SEARCH_SCOPE
- LDAP_USER_SEARCH_FIELD
- LDAP_SEARCH_PAGE_SIZE
- LDAP_SEARCH_SIZE_LIMIT
- LDAP_GROUP_FILTER_ENABLE
- LDAP_GROUP_FILTER_OBJECTCLASS
- LDAP_GROUP_FILTER_GROUP_ID_ATTRIBUTE
- LDAP_GROUP_FILTER_GROUP_MEMBER_ATTRIBUTE
- LDAP_GROUP_FILTER_GROUP_MEMBER_FORMAT
- LDAP_GROUP_FILTER_GROUP_NAME
- LDAP_UNIQUE_IDENTIFIER_FIELD
- LDAP_UTF8_NAMES_SLUGIFY
- LDAP_USERNAME_FIELD
- LDAP_FULLNAME_FIELD
- LDAP_MERGE_EXISTING_USERS
- LDAP_EMAIL_MATCH_ENABLE
- LDAP_EMAIL_MATCH_REQUIRE
- LDAP_EMAIL_MATCH_VERIFIED
- LDAP_EMAIL_FIELD
- LDAP_SYNC_USER_DATA
- LDAP_SYNC_USER_DATA_FIELDMAP
- LDAP_SYNC_GROUP_ROLES
- LDAP_SYNC_ADMIN_STATUS
- LDAP_SYNC_ADMIN_GROUPS

View File

@ -2,11 +2,15 @@ version: '3.8'
services:
db:
image: mongo:4.4
command: mongod --logpath /dev/null --oplogSize 128 --quiet
command: mongod --bind_ip_all --oplogSize 128 --replSet rs0
volumes:
- wekan-db:/data/db
networks:
- internal
configs:
- source: init-replica
target: /docker-entrypoint-initdb.d/init-replica.sh
mode: 0555
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
interval: 30s
@ -21,12 +25,21 @@ services:
backupbot.backup.path: "/tmp/backup/"
app:
image: quay.io/wekan/wekan:v5.99
image: quay.io/wekan/wekan:v6.28
environment:
- MONGO_URL
- MONGO_URL=mongodb://db:27017/wekan?replicaSet=rs0
- MONGO_OPLOG_URL=mongodb://db:27017/local?replicaSet=rs0
- DOMAIN
- ROOT_URL
- DEBUG
- MAIL_URL
- MAIL_FROM
- WITH_API
- RICHER_CARD_COMMENT_EDITOR
- CORS
- CORS_ALLOW_HEADERS
- CORS_EXPOSE_HEADERS
- PASSWORD_LOGIN_ENABLED
- OAUTH2_ENABLED
- OAUTH2_LOGIN_STYLE
- OAUTH2_CLIENT_ID
@ -40,11 +53,8 @@ services:
- OAUTH2_USERNAME_MAP
- OAUTH2_FULLNAME_MAP
- OAUTH2_EMAIL_MAP
- PASSWORD_LOGIN_ENABLED
- MAIL_URL
- MAIL_FROM
- WITH_API
- RICHER_CARD_COMMENT_EDITOR
- DEFAULT_AUTHENTICATION_METHOD
- PROPAGATE_OIDC_DATA
networks:
- internal
- proxy
@ -77,7 +87,7 @@ services:
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "coop-cloud.${STACK_NAME}.version=0.1.0+v5.99"
- "coop-cloud.${STACK_NAME}.version=0.6.0+v6.28"
volumes:
wekan-db:
@ -94,7 +104,9 @@ configs:
entrypoint:
name: ${STACK_NAME}_entrypoint_${ENTRYPOINT_VERSION}
file: entrypoint.sh.tmpl
template_driver: golang
init-replica:
name: ${STACK_NAME}_init-replica_${INIT_REPLICA_VERSION}
file: init-replica.sh
secrets:
oauth2_secret:

View File

@ -25,4 +25,4 @@ file_env() {
}
file_env "OAUTH2_SECRET"
node /build/main.js
bash -c "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"

21
init-replica.sh Normal file
View File

@ -0,0 +1,21 @@
#!/bin/sh
set -e
#host=${HOSTNAME:-$(hostname -f)}
# shut down again
#mongod --pidfilepath /tmp/docker-entrypoint-temp-mongod.pid --shutdown
# # restart again binding to 0.0.0.0 to allow a replset with 10.7.7.6
# mongod --oplogSize 8 --replSet rs0 --noauth \
# --config /tmp/docker-entrypoint-temp-config.json \
# --bind_ip 0.0.0.0 --port 27017 \
# --tlsMode disabled \
# --logpath /proc/1/fd/1 --logappend \
# --pidfilepath /tmp/docker-entrypoint-temp-mongod.pid --fork
# init replset with defaults
mongo 0.0.0.0 --eval "rs.initiate()"
echo "Waiting to become a master"
echo 'while (!db.isMaster().ismaster) { sleep(100); }' | mongo
echo "I'm the master!"