forked from coop-cloud/wekan
Compare commits
34 Commits
0.1.0+v5.9
...
2.0.0+v7.1
Author | SHA1 | Date | |
---|---|---|---|
85c09e0fab | |||
53a08095f2 | |||
a9181c180e | |||
bc3b7a4dba | |||
d7a3f874c9 | |||
9b84875ea0 | |||
16753c808a | |||
16b48136e7 | |||
083310a964 | |||
d3e1340e03 | |||
28c8f7539a | |||
97a348ce29 | |||
3d94108785 | |||
a77f2c1ed9 | |||
a07ac5f0df | |||
f5b210f028 | |||
2d361c154a | |||
7782fd4d56 | |||
beac62e1c9 | |||
75bfa3f489 | |||
79a695c90a | |||
e46525e512 | |||
246a9229cb | |||
9224bb6238 | |||
9f89d5d475 | |||
d97a48af0e | |||
9b49dad813 | |||
3c88052a67 | |||
ccf2c7e223 | |||
a6ce73bb5b | |||
4275535838 | |||
688429c257 | |||
d71099a9dc | |||
5ce2801951 |
41
.drone.yml
Normal file
41
.drone.yml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: deploy to swarm-test.autonomic.zone
|
||||||
|
steps:
|
||||||
|
- name: deployment
|
||||||
|
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
|
||||||
|
settings:
|
||||||
|
host: swarm-test.autonomic.zone
|
||||||
|
stack: wekan
|
||||||
|
generate_secrets: true
|
||||||
|
purge: true
|
||||||
|
deploy_key:
|
||||||
|
from_secret: drone_ssh_swarm_test
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
environment:
|
||||||
|
DOMAIN: wekan.swarm-test.autonomic.zone
|
||||||
|
STACK_NAME: wekan
|
||||||
|
LETS_ENCRYPT_ENV: production
|
||||||
|
SECRET_OAUTH2_SECRET_VERSION: v1
|
||||||
|
ENTRYPOINT_VERSION: v1
|
||||||
|
SECRET_OAUTH2_SECRET_VERSION: v1
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: generate recipe catalogue
|
||||||
|
steps:
|
||||||
|
- name: release a new version
|
||||||
|
image: plugins/downstream
|
||||||
|
settings:
|
||||||
|
server: https://build.coopcloud.tech
|
||||||
|
token:
|
||||||
|
from_secret: drone_abra-bot_token
|
||||||
|
fork: true
|
||||||
|
repositories:
|
||||||
|
- coop-cloud/auto-recipes-catalogue-json
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event: tag
|
109
.env.sample
109
.env.sample
@ -1,31 +1,102 @@
|
|||||||
TYPE=wekan
|
TYPE=wekan
|
||||||
|
TIMEOUT=300
|
||||||
|
ENABLE_AUTO_UPDATE=true
|
||||||
LETS_ENCRYPT_ENV=production
|
LETS_ENCRYPT_ENV=production
|
||||||
SECRET_OAUTH2_SECRET_VERSION=v1
|
SECRET_OAUTH2_SECRET_VERSION=v1
|
||||||
|
|
||||||
MONGO_URL=mongodb://db:27017/wekan
|
COMPOSE_FILE="compose.yml"
|
||||||
|
|
||||||
DOMAIN=board.example.com
|
# Set this to run mongodb in replicaset mode (needs initialisation!)
|
||||||
ROOT_URL=https://board.example.com
|
# COMPOSE_FILE="${COMPOSE_FILE}:compose.rs.yml"
|
||||||
|
|
||||||
|
DOMAIN=wekan.example.com
|
||||||
|
ROOT_URL=https://wekan.example.com
|
||||||
|
|
||||||
DEBUG=false
|
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_URL=smtp://smtp:25/?ignoreTLS=true&tls={rejectUnauthorized:false}
|
||||||
MAIL_FROM="[WeKan] Wekan Notifications <noreply@example.org>"
|
MAIL_FROM="[WeKan] Wekan Notifications <noreply@example.org>"
|
||||||
|
|
||||||
WITH_API=true
|
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://authentik.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
|
||||||
|
# PROPAGATE_OIDC_DATA=true
|
||||||
|
# OIDC_REDIRECTION_ENABLED=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
|
||||||
|
12
README.md
12
README.md
@ -27,3 +27,15 @@ See original [docker-compose.yml](https://github.com/wekan/wekan/blob/master/doc
|
|||||||
|
|
||||||
|
|
||||||
For more, see [`docs.coopcloud.tech`](https://docs.coopcloud.tech).
|
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 run wekan.example.org db mongo
|
||||||
|
> rs.initiate()
|
||||||
|
```
|
3
abra.sh
3
abra.sh
@ -1,2 +1 @@
|
|||||||
export SECRET_OAUTH2_SECRET_VERSION=v1
|
export ENTRYPOINT_VERSION=v2
|
||||||
export ENTRYPOINT_VERSION=v1
|
|
||||||
|
54
compose.ldap.yml
Normal file
54
compose.ldap.yml
Normal 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
|
10
compose.rs.yml
Normal file
10
compose.rs.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
command: mongod --oplogSize 128 --replSet rs0
|
||||||
|
|
||||||
|
app:
|
||||||
|
environment:
|
||||||
|
- MONGO_URL=mongodb://db:27017/wekan?replicaSet=rs01
|
||||||
|
- MONGO_OPLOG_URL=mongodb://db:27017/local?replicaSet=rsWekan=value
|
39
compose.yml
39
compose.yml
@ -1,8 +1,8 @@
|
|||||||
version: '3.8'
|
version: '3.8'
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: mongo:4.4
|
image: mongo:5.0
|
||||||
command: mongod --logpath /dev/null --oplogSize 128 --quiet
|
command: mongod --oplogSize 128 --quiet
|
||||||
volumes:
|
volumes:
|
||||||
- wekan-db:/data/db
|
- wekan-db:/data/db
|
||||||
networks:
|
networks:
|
||||||
@ -16,17 +16,25 @@ services:
|
|||||||
deploy:
|
deploy:
|
||||||
labels:
|
labels:
|
||||||
backupbot.backup: "true"
|
backupbot.backup: "true"
|
||||||
backupbot.backup.pre-hook: "mkdir /tmp/backup/ && mongodump --archive=/tmp/backup/wekan.db"
|
backupbot.backup.pre-hook: "mongodump --archive=/data/db/wekan.db"
|
||||||
backupbot.backup.post-hook: "rm -rf /tmp/backup"
|
backupbot.backup.post-hook: "rm -rf /data/db/wekan.db"
|
||||||
backupbot.backup.path: "/tmp/backup/"
|
backupbot.backup.path: "/data/db/wekan.db"
|
||||||
|
|
||||||
app:
|
app:
|
||||||
image: quay.io/wekan/wekan:v5.99
|
image: quay.io/wekan/wekan:v7.10
|
||||||
environment:
|
environment:
|
||||||
- MONGO_URL
|
- MONGO_URL=mongodb://db:27017/wekan
|
||||||
- DOMAIN
|
- DOMAIN
|
||||||
- ROOT_URL
|
- ROOT_URL
|
||||||
- DEBUG
|
- DEBUG
|
||||||
|
- MAIL_URL
|
||||||
|
- MAIL_FROM
|
||||||
|
- WITH_API
|
||||||
|
- RICHER_CARD_COMMENT_EDITOR
|
||||||
|
- CORS
|
||||||
|
- CORS_ALLOW_HEADERS
|
||||||
|
- CORS_EXPOSE_HEADERS
|
||||||
|
- PASSWORD_LOGIN_ENABLED
|
||||||
- OAUTH2_ENABLED
|
- OAUTH2_ENABLED
|
||||||
- OAUTH2_LOGIN_STYLE
|
- OAUTH2_LOGIN_STYLE
|
||||||
- OAUTH2_CLIENT_ID
|
- OAUTH2_CLIENT_ID
|
||||||
@ -40,14 +48,12 @@ services:
|
|||||||
- OAUTH2_USERNAME_MAP
|
- OAUTH2_USERNAME_MAP
|
||||||
- OAUTH2_FULLNAME_MAP
|
- OAUTH2_FULLNAME_MAP
|
||||||
- OAUTH2_EMAIL_MAP
|
- OAUTH2_EMAIL_MAP
|
||||||
- PASSWORD_LOGIN_ENABLED
|
- DEFAULT_AUTHENTICATION_METHOD
|
||||||
- MAIL_URL
|
- PROPAGATE_OIDC_DATA
|
||||||
- MAIL_FROM
|
- OIDC_REDIRECTION_ENABLED
|
||||||
- WITH_API
|
|
||||||
- RICHER_CARD_COMMENT_EDITOR
|
|
||||||
networks:
|
networks:
|
||||||
- internal
|
- internal
|
||||||
- proxy
|
- proxy
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@ -77,11 +83,12 @@ services:
|
|||||||
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
|
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
|
||||||
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
|
||||||
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
|
- "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=2.0.0+v7.10"
|
||||||
|
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
wekan-db:
|
wekan-db:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
proxy:
|
proxy:
|
||||||
external: true
|
external: true
|
||||||
|
@ -25,4 +25,4 @@ file_env() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
file_env "OAUTH2_SECRET"
|
file_env "OAUTH2_SECRET"
|
||||||
node /build/main.js
|
bash -c "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"
|
||||||
|
Reference in New Issue
Block a user