Trilium

Cross-platform, open-source note-taking for building powerful personal knowledge bases.

Accessing Trilium

  1. Open your browser and visit: https://<SERVER-IP>
  2. Accept SSL warning (self-signed certificate).
  3. Follow the initial setup.

Important Files & Directories

  • Deployment directory: /opt/trilium
  • Trilium data (persistent): /opt/trilium/trilium-data
  • Docker Compose file: /opt/trilium/docker-compose.yml
  • Nginx site config: /etc/nginx/sites-available/trilium

Service Management

Trilium (Docker):

cd /opt/trilium
docker compose ps
docker compose logs -f
docker compose restart

Nginx:

systemctl status nginx
systemctl restart nginx

Enabling SSL with a Domain

1. Point your domain to the server IP.

2. Edit Nginx config and replace both server_name <IP>; with your domain (<your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:

vim /etc/nginx/sites-available/trilium

3. Install Certbot:

apt install -y certbot python3-certbot-nginx

4. Run the following command to generate a valid Let’s Encrypt certificate:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

5. Replace SSL paths in Nginx config:

vim /etc/apache2/sites-available/trilium
# Before:
    # ssl_certificate /etc/nginx/ssl/fullchain.pem;
    # ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
    # ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

6. Restart Nginx to apply the changes:

systemctl restart nginx

7. Open your browser and visit: https://yourdomain.com

Application Details