Documize
Documize Community on Ubuntu with PostgreSQL (Clean, Proven Setup)
This guide installs Documize Community on a fresh Ubuntu 20.04/22.04/24.04 server, sets up PostgreSQL correctly, and runs Documize as a systemd service.
It uses the current Documize distribution method (single Linux binary), avoids the buggy config-file path, and relies on flags/environment variables.
0) Assumptions
- Ubuntu (amd64) with
sudoaccess and Internet. - Documize will listen on port 8080 (you can later put it behind Traefik/Nginx).
- Database user:
docuser, Database name:documize. - Replace the placeholders:
YourPasswordHere→ a strong DB password you choose.YourSaltHere→ a random 32–64 hex chars string (see Step 7).
1) Update system & install helpers
sudo apt update && sudo apt upgrade -y sudo apt install -y curl wget jq ca-certificates postgresql postgresql-contrib
Enable PostgreSQL:
sudo systemctl enable --now postgresql sudo systemctl status postgresql --no-pager
Create PostgreSQL role, database
sudo -u postgres psql <<'SQL' -- Create app user (set your own strong password) DO $$ BEGIN IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'docuser') THEN CREATE USER docuser WITH ENCRYPTED PASSWORD 'YourPasswordHere'; END IF; END $$; -- (Re)create database with UTF-8 and owned by docuser DROP DATABASE IF EXISTS documize; CREATE DATABASE documize OWNER docuser TEMPLATE template0 ENCODING 'UTF8'; -- Ensure the public schema is correctly owned and writable ALTER SCHEMA public OWNER TO docuser; GRANT ALL ON SCHEMA public TO docuser; GRANT CREATE, USAGE ON SCHEMA public TO docuser; SQL
Quick connectivity check:
pg_isready -d "host=localhost port=5432 dbname=documize user=docuser"
3) Create a system user and folders for Documize
sudo useradd -r -s /usr/sbin/nologin -d /opt/documize documize || true sudo mkdir -p /opt/documize /var/lib/documize /etc/documize sudo chown -R documize:documize /opt/documize /var/lib/documize
4) Download the latest Documize Community binary (Linux amd64)
Use GitHub “latest” (auto-picks the newest Linux binary):
DL_URL="$(curl -s https://api.github.com/repos/documize/community/releases/latest \ | jq -r '.assets[] | select(.name | test("linux-amd64$")) | .browser_download_url')" echo "Downloading: $DL_URL" sudo curl -L "$DL_URL" -o /opt/documize/documize sudo chmod 0755 /opt/documize/documize sudo chown documize:documize /opt/documize/documize
5) (Optional) Open the firewall for 8080 (UFW)
sudo ufw allow 8080/tcp sudo ufw reload
6) One-off smoke test (no config file; flags + env)
First, generate a salt (or use your own):
openssl rand -hex 32
Then run Documize just once in the foreground:
sudo -u documize env \ DOCUMIZEDBTYPE=postgresql \ DOCUMIZEDB='host=localhost port=5432 dbname=documize user=docuser password=YourPasswordHere sslmode=disable' \ DOCUMIZESALT='YourSaltHere' \ /opt/documize/documize -port 8080
Open: http://server-ip:8080/setup Confirm the page loads. Ctrl+C to stop when you’re done checking.
7) Persist with systemd (recommended)
Create an env file for the service:
sudo tee /etc/documize/env >/dev/null <<'EOF' DOCUMIZEDBTYPE=postgresql DOCUMIZEDB=host=localhost port=5432 dbname=documize user=docuser password=YourPasswordHere sslmode=disable DOCUMIZESALT=YourSaltHere EOF sudo chmod 0640 /etc/documize/env sudo chown root:documize /etc/documize/env
Create the systemd unit:
sudo tee /etc/systemd/system/documize.service >/dev/null <<'EOF' [Unit] Description=Documize Community After=network.target postgresql.service Wants=postgresql.service [Service] User=documize Group=documize WorkingDirectory=/opt/documize EnvironmentFile=/etc/documize/env ExecStart=/opt/documize/documize -port 8080 Restart=always RestartSec=5s [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now documize sudo systemctl status documize --no-pager
8) Complete the setup wizard
Open:
http://<server-ip>:8080/setup
Fill in organization/admin details → Complete setup.
From now on you’ll use the normal login URL (the setup route is one-time).
Installation completed!
Documost is now installed.
9) Useful operations
# service control sudo systemctl stop documize sudo systemctl start documize sudo systemctl restart documize sudo systemctl status documize --no-pager journalctl -u documize -f # live logs