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. wiki.yourcompany.com
).
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: This error is shown when attempting to load the site before the server is done initializing.
Resolution: Simply reload the page again. If the error still occurs after a while, check your server logs for an error preventing Wiki.js from fully initializing.
You may have noticed that running javascript code on the standard page load or dom ready event don't work because the page content isn't rendered yet.
You need to register a callback via window.boot.register(evt, clb)
instead, where the triggering event is page-ready
, e.g.:
window.boot.register('page-ready', () => {
// code to execute
})
Your code will now execute once the page is loaded and the Vue instance is ready.
Seriously? This software is provided to you completely free. Volunteers have put thousands of hours of their time into this project. We believe a small mention in the footer is a very small thing to ask in return...
If you are unable to load the site because of a SSL certificate error, you can manually disable SSL Redirection.
In the database, under the settings
table, you must set the sslRedir
property to false for the server
key.
Restart Wiki.js to load the new setting.
When running PostgreSQL inside a docker container (e.g. DigitalOcean / AWS official image), you can run the following commands:
docker exec db psql -U wiki -d wiki -c "DELETE FROM settings WHERE key = 'server';"
docker restart wiki
The only way to change a password, without access to the web UI, is via the database. Use a tool like pgAdmin (postgres), DBeaver (mysql, mariadb), SQL Management Studio (mssql) or DB Browser for SQLite.
Connect to your DB, browse to the users
table and locate your user.
Edit the password column and insert a new bcrypt-formatted value. You can use a tool like https://bcrypt-generator.com/ to generate one. The number of rounds must be 12.
It is NOT possible to read the current password value. Passwords are stored using a one-way bcrypt hashing process, which is not reversible. You can only overwrite it with a new value.
When running PostgreSQL inside a docker container (e.g. DigitalOcean / AWS official image), follow these steps:
HASH-PASSWORD
with the hash generated in step 1 and YOUR-EMAIL
with the email address of the account you want to reset:docker exec db psql -U wiki -d wiki -c "UPDATE users SET password = 'HASH-PASSWORD' WHERE email = 'YOUR-EMAIL';"
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 mysql_native_password
using:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Starting in version 2.1, a new HTML sanitization step is added by default to the rendering pipeline. This feature prevents potentially unsafe HTML tags / properties from being present in the final render. Any HTML tag or property that isn't whitelisted will be rendered as plain text.
If you are the sole editor / trust your editors, you can disable this feature in the Administration Area, under Rendering > HTML > Security > Sanitize HTML.
If clicking the Perform Upgrade button doesn't actually upgrade the wiki instance, you need to upgrade the wiki-update-companion container to the latest version. A bug was present in an earlier version that failed to properly fetch the latest image.
Assuming you're running the DigitalOcean Wiki.js droplet or you followed the Ubuntu Install Guide, connect to your server via SSH and run the following commands:
docker stop wiki-update-companion
docker rm wiki-update-companion
docker pull ghcr.io/requarks/wiki-update-companion:latest
docker create --name=wiki-update-companion -v /var/run/docker.sock:/var/run/docker.sock:ro --restart=unless-stopped -h wiki-update-companion --network=wikinet ghcr.io/requarks/wiki-update-companion:latest
docker start wiki-update-companion
The Perform Upgrade button should now work correctly.