Skip to main content

FAQ

User

How can I reset the admin password?

The admin password can be reset by running the reset-admin-password command on the wizarr-server.

How can I see a list of all users in Wizarr?

You can see the list of all users by running list-users Command on the wizarr-server.

How can I backup data from Wizarr?

See Backup and Restore.

Performance

Why is Wizarr slow on low-memory systems like the Raspberry Pi?

Wizarr can be too heavy to run on a Raspberry Pi sometimes.

Can I limit CPU and RAM usage?

By default, a container has no resource constraints and can use as much of a given resource as the host's kernel scheduler allows. To limit this, you can add the following to the docker-compose.yml block of any containers that you want to have limited resources.

docker-compose.yml
deploy:
resources:
limits:
# Number of CPU threads
cpus: "1.00"
# Gigabytes of memory
memory: "1G"

For more details, you can look at the original docker docs or use this guide.

Note that memory constraints work by terminating the container, so this can introduce instability if set too low.

My server shows Server Status Offline | Version Unknown. What can I do?

You need to enable WebSockets on your reverse proxy.


Docker

How can I see Wizarr logs?

Wizarr components are typically deployed using docker. To see logs for deployed docker containers, you can use the Docker CLI, specifically the docker logs command. For examples, see Docker Help.

How can I reduce the log verbosity of Redis?

To decrease Redis logs, you can add the following line to the redis: section of the docker-compose.yml:

command: redis-server --loglevel warning

How can I run Wizarr as a non-root user?

You can change the user in the container by setting the user argument in docker-compose.yml for each service. The non-root user/group needs read/write access to the volume mounts, including STORAGE_LOCATION

Docker Compose Volumes

The Docker Compose top level volume element does not support non-root access, all of the above volumes must be local volume mounts.

For a further hardened system, you can add the following block to every container.

docker-compose.yml
security_opt:
# Prevent escalation of privileges after the container is started
- no-new-privileges:true
cap_drop:
# Prevent access to raw network traffic
- NET_RAW

How can I purge data from Wizarr?

Data for Wizarr comes in two forms:

  1. Metadata stored in a Postgres database, stored in the DB_DIR folder (previously pg_data Docker volume).
  2. Files stored in the STORAGE_LOCATION folder, more info.
warning

This will destroy your database and reset your instance, meaning that you start from scratch.

Remove Wizarr (containers and volumes)
docker compose down -v

After removing the containers and volumes, there are a few directories that need to be deleted to reset Wizarr to a new installation. Once they are deleted, Wizarr can be started back up and will be a fresh installation.

  • DB_DIR contains the database, media info, and settings.
  • STORAGE_LOCATION contains all the files uploaded to Wizarr.
Portainer

If you use portainer, bring down the stack in portainer. Go into the volumes section
and remove all the volumes related to wizarr then restart the stack.

Database

Why am I getting database ownership errors?

If you get database errors such as FATAL: data directory "/var/lib/postgresql/data" has wrong ownership upon database startup, this is likely due to an issue with your filesystem. NTFS and ex/FAT/32 filesystems are not supported. See here for more details.

How can I verify the integrity of my database?

Database checksums are enabled by default for new installations. You can check if they are enabled by running the following command. A result of on means that checksums are enabled.

Check if checksums are enabled
docker exec -it wizarr_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="show data_checksums"
data_checksums
----------------
on
(1 row)

If checksums are enabled, you can check the status of the database with the following command. A normal result is all 0s.

Check for database corruption
docker exec -it wizarr_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="SELECT datname, checksum_failures, checksum_last_failure FROM pg_stat_database WHERE datname IS NOT NULL"
datname | checksum_failures | checksum_last_failure
-----------+-------------------+-----------------------
postgres | 0 |
wizarr | 0 |
template1 | 0 |
template0 | 0 |
(4 rows)

You can also scan the Postgres database file structure for errors:

Scan for file structure errors
docker exec -it wizarr_postgres pg_amcheck --username=postgres --heapallindexed --parent-check --rootdescend --progress --all --install-missing

A normal result will end something like this and return with an exit code of 0:

7470/8832 relations (84%), 730829/734735 pages (99%)
8425/8832 relations (95%), 734367/734735 pages (99%)
8832/8832 relations (100%), 734735/734735 pages (100%)

If corruption is detected, you should immediately make a backup before performing any other work in the database. To do so, you may need to set the zero_damaged_pages=on flag for the database server to allow pg_dumpall to succeed. After taking a backup, the recommended next step is to restore the database from a healthy backup before corruption was detected. The damaged database dump can be used to manually recover any changes made since the last backup, if needed.

The causes of possible corruption are many, but can include unexpected poweroffs or unmounts, use of a network share for Postgres data, or a poor storage medium such an SD card or failing HDD/SSD.