Cause: You are most likely using a reverse proxy such as nginx or apache.
Resolution: Increase your reverse proxy configuration for file uploads.
Cause: CloudFlare performs some "optimizations" to some files during delivery. This breaks the integrity signatures of the files which are then blocked by the browser.
Resolution: In the Cloudflare dashboard for your site, create a new Page Rule. Enter the root path, in the following format:
wiki.yourdomain.com/* and add the following settings:
Save and Deploy.
Cause: Wiki.js cannot be used / installed in a subfolder.
Resolution: Use a sub-domain instead (e.g.
Cause: Some Linux installations prevent Node.js from binding to ports in the lower range (e.g. < 1024). This occurs if you set a port such as 80 in config.yml.
Solution A: Allow the node process to safely access the port requested:
# Ubuntu / Debian sudo apt-get install libcap2-bin sudo setcap cap_net_bind_service=+ep `readlink -f \`which node\``
Solution B: Create a port redirection rule: (In the example below, you must set the port to 3000 in config.yml)
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
Solution C: Use a web server in front of Wiki.js. For example, use nginx to listen to port 80 / 443 and proxy all requests to Wiki.js running on a higher port (e.g. 3000).
Cause: Another program is already listening to this port.
Resolution: Use another port for Wiki.js or look for applications that could be using this port (web servers, http applications, etc.) and stop them.
Cause: You did not set the
Site URL in the Administration Area.
Resolution: In the Administrator Area, under General, set the Site Url.
Cause: The user used by Wiki.js to connect to the DB must use
mysql_native_password. The newer
caching_sha2_password method introduced in MySQL 8.0 is not yet supported in Node.js. Support will be added when the functionnality is made available in Node.js drivers.
Resolution: You can change an existing user to use a
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';