Documize


Complete Installation Guide: Documize Community on Ubuntu (with PostgreSQL)

This guide installs Documize Community on a fresh Ubuntu 20.04/22.04/24.04 server, sets up PostgreSQL, and runs Documize as a systemd service. It uses Documize’s official installation approach (single binary + config file). Latest release info is referenced from Documize’s site and GitHub.


0) Basics & Assumptions

  • You are on an amd64/Intel Ubuntu server with sudo.
  • We will run Documize on port 8080 and connect to a local PostgreSQL.
  • Documize ships as a single executable (no installer). :contentReference[oaicite:1]{index=1}

1) Update the system & install helper tools

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget jq ca-certificates tar

2) Install PostgreSQL and enable it

sudo apt install -y postgresql postgresql-contrib
sudo systemctl enable --now postgresql
sudo systemctl status postgresql --no-pager

3) Create the Documize database and user (UTF-8)

sudo -u postgres psql <<'SQL'
CREATE DATABASE documize TEMPLATE template0 ENCODING 'UTF8';
CREATE USER docuser WITH ENCRYPTED PASSWORD 'ChangeMe_SuperStrong_!@#';
GRANT ALL PRIVILEGES ON DATABASE documize TO docuser;
SQL

Verify PostgreSQL is reachable:

pg_isready -d "host=localhost port=5432 dbname=documize user=docuser"

pg_isready checks connectivity. It should report “accepting connections”.


4) Create a dedicated 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
sudo chown -R documize:documize /opt/documize /var/lib/documize

Inside the PostgreSQL shell, run the following (replace the password with a strong one):

CREATE DATABASE documize;
CREATE USER docuser WITH ENCRYPTED PASSWORD 'StrongPasswordHere';
GRANT ALL PRIVILEGES ON DATABASE documize TO docuser;
\q

5. Download the latest Documize Community binary (Linux amd64)

Pull the latest Linux amd64 asset from GitHub

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 "Latest binary: $DL_URL"
sudo curl -L "$DL_URL" -o /opt/documize/documize

Make it executable and owned by our system user:

sudo chmod 0755 /opt/documize/documize
sudo chown documize:documize /opt/documize/documize

6) Create a Documize configuration file (TOML)

Documize supports a simple config file for port and DB connection. Example for PostgreSQL:

sudo tee /etc/documize/config-postgresql.conf >/dev/null<<'EOF'
# Documize configuration (TOML)
port = 8080
# for SSL, you could also set:
# forcesslport = 8443
# cert = "/etc/documize/tls/cert.pem"
# key  = "/etc/documize/tls/key.pem"

[database]
type = "postgresql"
# DSN style connection; ensure UTF-8:
connection = "host=localhost port=5432 dbname=documize user=docuser password=ChangeMe_SuperStrong_!@# sslmode=disable"

# Optional storage path for uploads/exports
[storage]
path = "/var/lib/documize"
EOF

7) First manual run (smoke test)

sudo -u documize /opt/documize/documize --config=/etc/documize/config-postgresql.conf

Open your browser to: http://<server-ip>:8080 You should see the setup UI; create the admin account and proceed. Stop with Ctrl+C when you’re satisfied the app starts.


8) Run Documize as a systemd service

Create the service 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
ExecStart=/opt/documize/documize --config=/etc/documize/config-postgresql.conf
Restart=always
RestartSec=5s
AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now documize
sudo systemctl status documize --no-pager

9) (Optional) UFW firewall opening

sudo ufw allow 8080/tcp
sudo ufw reload

10) Production notes (next steps)

  • Configure mail (for notifications) and request a free activation key under Settings → Billing (the site’s “Get Started” pane explains the free tier). documize.com

  • Put Documize behind NginxLet’s Encrypt and terminate TLS there. Back up PostgreSQL regularly (pg_dump/pg_dumpall).