First, create a directory for the Wekan files to reside in, e.g.:
mkdir /opt/wekan
Change to that directory:
cd /opt/wekan
Now, we need to create the data directory which needs to be owned by UID 999
: in order for Wekan to store uploads:
mkdir -p wekan_data && chown -R 999:999 wekan_data
Now, create docker-compose.yml
in that directory
version: '3.4' services: wekandb: restart: always image: mongo:5 command: mongod --logpath /dev/null --oplogSize 128 --quiet healthcheck: test: ["CMD", "mongo", "--quiet", "--eval", "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'"] interval: 15s timeout: 10s retries: 3 start_period: 10s volumes: - ./wekan-db:/data/db - ./wekan-db-dump:/dump - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro wekan: image: quay.io/wekan/wekan restart: always ports: - 7972:8080 environment: - MONGO_URL=mongodb://wekandb:27017/wekan - ROOT_URL=${URL} - MAIL_URL=${EMAIL_URL} - MAIL_FROM=${EMAIL_FROM} - WITH_API=true - WRITABLE_PATH=/data volumes: - ./wekan_data:/data - /etc/localtime:/etc/localtime:ro depends_on: - wekandb
After that, create .env
in said directory containing some info about your node:
URL=https://wekan.mydomain.com EMAIL_URL=smtp://noreply%40mydomain.com:[email protected]:25/ EMAIL_FROM='My Wekan <[email protected]>'
Now we’ll use the script from Create a systemd service for your docker-compose project in 10 seconds in order to create a systemd service to automatically run the service:
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin
This script will also automatically start the service (i.e. docker-compose up
).
Now you can setup your reverse proxy to point your domain – e.g. wekan.techoverflow.net
to port 7972
(or change that port in docker-compose.yml
). Which reverse proxy you use doesn’t matter all too much, I use both nginx and traefik. I will cover the configuration for these reverse proxies in future posts.
Once you can access Wekan, you can register as a new user. The first user will be an admin and can also disable registration using the Web UI.