mirror of https://github.com/wekan/wekan
parent
a97360dcfb
commit
3978c08757
@ -0,0 +1,145 @@ |
||||
FROM ubuntu:disco |
||||
LABEL maintainer="sgr" |
||||
|
||||
ENV BUILD_DEPS="gnupg gosu bsdtar wget curl bzip2 g++ build-essential python git ca-certificates" |
||||
ENV DEBIAN_FRONTEND=noninteractive |
||||
|
||||
ENV \ |
||||
DEBUG=false \ |
||||
NODE_VERSION=8.16.0 \ |
||||
METEOR_RELEASE=1.8.1 \ |
||||
USE_EDGE=false \ |
||||
METEOR_EDGE=1.5-beta.17 \ |
||||
NPM_VERSION=latest \ |
||||
FIBERS_VERSION=4.0.1 \ |
||||
ARCHITECTURE=linux-x64 \ |
||||
SRC_PATH=./ \ |
||||
WITH_API=true \ |
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \ |
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \ |
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURE_WINDOW=15 \ |
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURES_BERORE=3 \ |
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_LOCKOUT_PERIOD=60 \ |
||||
ACCOUNTS_LOCKOUT_UNKNOWN_USERS_FAILURE_WINDOW=15 \ |
||||
RICHER_CARD_COMMENT_EDITOR=true \ |
||||
MAX_IMAGE_PIXEL="" \ |
||||
IMAGE_COMPRESS_RATIO="" \ |
||||
BIGEVENTS_PATTERN="" \ |
||||
NOTIFY_DUE_DAYS_BEFORE_AND_AFTER="" \ |
||||
NOTIFY_DUE_AT_HOUR_OF_DAY="" \ |
||||
EMAIL_NOTIFICATION_TIMEOUT=30000 \ |
||||
MATOMO_ADDRESS="" \ |
||||
MATOMO_SITE_ID="" \ |
||||
MATOMO_DO_NOT_TRACK=true \ |
||||
MATOMO_WITH_USERNAME=false \ |
||||
BROWSER_POLICY_ENABLED=true \ |
||||
TRUSTED_URL="" \ |
||||
WEBHOOKS_ATTRIBUTES="" \ |
||||
OAUTH2_ENABLED=false \ |
||||
OAUTH2_LOGIN_STYLE=redirect \ |
||||
OAUTH2_CLIENT_ID="" \ |
||||
OAUTH2_SECRET="" \ |
||||
OAUTH2_SERVER_URL="" \ |
||||
OAUTH2_AUTH_ENDPOINT="" \ |
||||
OAUTH2_USERINFO_ENDPOINT="" \ |
||||
OAUTH2_TOKEN_ENDPOINT="" \ |
||||
OAUTH2_ID_MAP="" \ |
||||
OAUTH2_USERNAME_MAP="" \ |
||||
OAUTH2_FULLNAME_MAP="" \ |
||||
OAUTH2_ID_TOKEN_WHITELIST_FIELDS="" \ |
||||
OAUTH2_REQUEST_PERMISSIONS='openid profile email' \ |
||||
OAUTH2_EMAIL_MAP="" \ |
||||
LDAP_ENABLE=false \ |
||||
LDAP_PORT=389 \ |
||||
LDAP_HOST="" \ |
||||
LDAP_BASEDN="" \ |
||||
LDAP_LOGIN_FALLBACK=false \ |
||||
LDAP_RECONNECT=true \ |
||||
LDAP_TIMEOUT=10000 \ |
||||
LDAP_IDLE_TIMEOUT=10000 \ |
||||
LDAP_CONNECT_TIMEOUT=10000 \ |
||||
LDAP_AUTHENTIFICATION=false \ |
||||
LDAP_AUTHENTIFICATION_USERDN="" \ |
||||
LDAP_AUTHENTIFICATION_PASSWORD="" \ |
||||
LDAP_LOG_ENABLED=false \ |
||||
LDAP_BACKGROUND_SYNC=false \ |
||||
LDAP_BACKGROUND_SYNC_INTERVAL="" \ |
||||
LDAP_BACKGROUND_SYNC_KEEP_EXISTANT_USERS_UPDATED=false \ |
||||
LDAP_BACKGROUND_SYNC_IMPORT_NEW_USERS=false \ |
||||
LDAP_ENCRYPTION=false \ |
||||
LDAP_CA_CERT="" \ |
||||
LDAP_REJECT_UNAUTHORIZED=false \ |
||||
LDAP_USER_AUTHENTICATION=false \ |
||||
LDAP_USER_AUTHENTICATION_FIELD=uid \ |
||||
LDAP_USER_SEARCH_FILTER="" \ |
||||
LDAP_USER_SEARCH_SCOPE="" \ |
||||
LDAP_USER_SEARCH_FIELD="" \ |
||||
LDAP_SEARCH_PAGE_SIZE=0 \ |
||||
LDAP_SEARCH_SIZE_LIMIT=0 \ |
||||
LDAP_GROUP_FILTER_ENABLE=false \ |
||||
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=true \ |
||||
LDAP_USERNAME_FIELD="" \ |
||||
LDAP_FULLNAME_FIELD="" \ |
||||
LDAP_MERGE_EXISTING_USERS=false \ |
||||
LDAP_EMAIL_FIELD="" \ |
||||
LDAP_EMAIL_MATCH_ENABLE=false \ |
||||
LDAP_EMAIL_MATCH_REQUIRE=false \ |
||||
LDAP_EMAIL_MATCH_VERIFIED=false \ |
||||
LDAP_SYNC_USER_DATA=false \ |
||||
LDAP_SYNC_USER_DATA_FIELDMAP="" \ |
||||
LDAP_SYNC_GROUP_ROLES="" \ |
||||
LDAP_DEFAULT_DOMAIN="" \ |
||||
LDAP_SYNC_ADMIN_STATUS="" \ |
||||
LDAP_SYNC_ADMIN_GROUPS="" \ |
||||
HEADER_LOGIN_ID="" \ |
||||
HEADER_LOGIN_FIRSTNAME="" \ |
||||
HEADER_LOGIN_LASTNAME="" \ |
||||
HEADER_LOGIN_EMAIL="" \ |
||||
LOGOUT_WITH_TIMER=false \ |
||||
LOGOUT_IN="" \ |
||||
LOGOUT_ON_HOURS="" \ |
||||
LOGOUT_ON_MINUTES="" \ |
||||
CORS="" \ |
||||
CORS_ALLOW_HEADERS="" \ |
||||
CORS_EXPOSE_HEADERS="" \ |
||||
DEFAULT_AUTHENTICATION_METHOD="" |
||||
|
||||
# Install OS |
||||
RUN set -o xtrace \ |
||||
&& useradd --user-group -m --system --home-dir /home/wekan wekan \ |
||||
&& apt-get update \ |
||||
&& apt-get install --assume-yes --no-install-recommends apt-utils apt-transport-https ca-certificates 2>&1 \ |
||||
&& apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS} |
||||
|
||||
# Install NodeJS |
||||
RUN set -o xtrace \ |
||||
&& cd /tmp \ |
||||
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" \ |
||||
&& curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" \ |
||||
&& grep " node-v$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt.asc | sha256sum -c - \ |
||||
&& tar -xJf "node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \ |
||||
&& rm "node-v$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt.asc \ |
||||
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \ |
||||
&& npm install -g npm@${NPM_VERSION} |
||||
|
||||
ENV DEBIAN_FRONTEND=dialog |
||||
|
||||
USER wekan |
||||
|
||||
# Install Meteor |
||||
RUN set -o xtrace \ |
||||
&& cd /home/wekan \ |
||||
&& curl https://install.meteor.com/?release=$METEOR_VERSION --output /home/wekan/install-meteor.sh \ |
||||
# Replace tar with bsdtar in the install script; https://github.com/jshimko/meteor-launchpad/issues/39 |
||||
&& sed --in-place "s/tar -xzf.*/bsdtar -xf \"\$TARBALL_FILE\" -C \"\$INSTALL_TMPDIR\"/g" /home/wekan/install-meteor.sh \ |
||||
&& sed --in-place 's/VERBOSITY="--silent"/VERBOSITY="--progress-bar"/' /home/wekan/install-meteor.sh \ |
||||
&& printf "\n[-] Installing Meteor $METEOR_VERSION...\n\n" \ |
||||
&& sh /home/wekan/install-meteor.sh |
||||
|
||||
ENV PATH=$PATH:$HOME/.meteor/ |
||||
@ -0,0 +1,12 @@ |
||||
#!/bin/bash |
||||
|
||||
cd /app |
||||
rm -rf node_modules |
||||
/home/wekan/.meteor/meteor npm install |
||||
rm -rf .build |
||||
/home/wekan/.meteor/meteor build .build --directory |
||||
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js |
||||
cd .build/bundle/programs/server |
||||
rm -rf node_modules |
||||
/home/wekan/.meteor/meteor npm install |
||||
cd /app |
||||
@ -0,0 +1,17 @@ |
||||
// See https://aka.ms/vscode-remote/devcontainer.json for format details. |
||||
{ |
||||
"dockerComposeFile": "docker-compose.yml", |
||||
"service": "wekan-dev", |
||||
"workspaceFolder": "/app", |
||||
"extensions": [ |
||||
"mutantdino.resourcemonitor", |
||||
"editorconfig.editorconfig", |
||||
"dbaeumer.vscode-eslint", |
||||
"codezombiech.gitignore", |
||||
"eamodio.gitlens", |
||||
"gruntfuggly.todo-tree", |
||||
"dotjoshjohnson.xml", |
||||
"redhat.vscode-yaml", |
||||
"vuhrmeister.vscode-meteor" |
||||
] |
||||
} |
||||
@ -0,0 +1,53 @@ |
||||
version: '3.7' |
||||
|
||||
services: |
||||
|
||||
wekandb-dev: |
||||
image: mongo:4.0.11 |
||||
container_name: wekan-dev-db |
||||
restart: unless-stopped |
||||
command: mongod --smallfiles --oplogSize 128 |
||||
networks: |
||||
- wekan-dev-tier |
||||
expose: |
||||
- 27017 |
||||
volumes: |
||||
- wekan-dev-db:/data/db |
||||
- wekan-dev-db-dump:/dump |
||||
|
||||
wekan-dev: |
||||
container_name: wekan-dev-app |
||||
restart: always |
||||
networks: |
||||
- wekan-dev-tier |
||||
build: |
||||
context: . |
||||
dockerfile: Dockerfile |
||||
ports: |
||||
- 3000:3000 |
||||
- 9229:9229 |
||||
environment: |
||||
- MONGO_URL=mongodb://wekandb-dev:27017/wekan |
||||
- ROOT_URL=http://localhost:3000 |
||||
#- MAIL_URL=smtp://user:pass@mailserver.example.com:25/ |
||||
- MAIL_URL=smtp://<mail_url>:25/?ignoreTLS=true&tls={rejectUnauthorized:false} |
||||
- MAIL_FROM=Wekan Notifications <noreply.wekan@mydomain.com> |
||||
- WITH_API=true |
||||
- RICHER_CARD_COMMENT_EDITOR=true |
||||
- BROWSER_POLICY_ENABLED=true |
||||
depends_on: |
||||
- wekandb-dev |
||||
volumes: |
||||
- ..:/app |
||||
command: |
||||
sleep infinity |
||||
|
||||
volumes: |
||||
wekan-dev-db: |
||||
driver: local |
||||
wekan-dev-db-dump: |
||||
driver: local |
||||
|
||||
networks: |
||||
wekan-dev-tier: |
||||
driver: bridge |
||||
@ -0,0 +1,3 @@ |
||||
* text=auto eol=lf |
||||
*.{cmd,[cC][mM][dD]} text eol=crlf |
||||
*.{bat,[bB][aA][tT]} text eol=crlf |
||||
Loading…
Reference in new issue