---
title: "Trilium Notes com Docker Compose e hospedagem em um clique"
description: "O Trilium Notes é uma base de conhecimento open source para muitas notas pessoais, em árvore, com sincronização e criptografia. Auto-hospede em um clique."
---

[← Todos os templates](https://pethost.dev/pt/templates/) · [Notas e wikis](https://pethost.dev/pt/templates/notes/)

# Faça deploy de Trilium Notes em um clique

Uma base de conhecimento hierárquica para grandes coleções de notas pessoais

Uma alternativa auto-hospedada para Notion, Evernote e Obsidian.

[Fazer deploy no Pethost](https://console.pethost.dev/?template=trilium)

## O que é Trilium Notes?

O Trilium Notes é um app de notas gratuito e de código aberto feito para grandes bases de conhecimento pessoais, uma alternativa ao Notion, ao Evernote e ao Obsidian para quem quer as notas no próprio servidor. As notas formam uma árvore tão profunda quanto você quiser, e uma mesma nota pode ficar em vários lugares ao mesmo tempo. Além de texto formatado com tabelas, imagens e fórmulas matemáticas, uma nota pode ser código, um canvas do Excalidraw, um mapa mental, um mapa geográfico ou um mapa de relações, e atributos e scripts transformam notas em pequenas ferramentas. Cada nota guarda as próprias revisões, e a busca por texto completo a encontra de novo.

O servidor é quase o mesmo app, no navegador, com uma visualização pensada para o toque no celular, e os apps de desktop para Windows, macOS e Linux sincronizam com ele. As notas protegidas são criptografadas com a sua senha, uma nota pode ser compartilhada publicamente por um link, e um web clipper salva páginas a partir do navegador. Este template cria uma base de conhecimento nova e vazia com a senha informada antes de o Trilium responder a qualquer pessoa. O porém: o Trilium é para uma pessoa só, com uma senha e sem contas para outras pessoas, e não tem app oficial para celular.

## Hospedagem de Trilium Notes no Pethost

1. Você entra no Pethost com uma passkey, GitHub ou Google. Ainda não tem máquina? Você escolhe um plano, e o link espera até ela ficar pronta.
2. Novo projeto abre em Trilium Notes. Você preenche o que ele pede e clica em Criar projeto: **Senha**.
3. Em um ou dois minutos Trilium Notes está no ar no próprio endereço com HTTPS. Os segredos são gerados ao acaso, e os dados vão para o backup noturno.
4. É um projeto como qualquer outro: você ou seu agente podem alterá-lo, fazer rollback ou restaurá-lo.

## Perguntas sobre Trilium Notes

**O Trilium Notes é gratuito?**

Sim. O Trilium é de código aberto sob a licença AGPL-3.0 e não tem plano pago: o servidor, os apps de desktop e a sincronização são todos gratuitos.

**O que é o TriliumNext?**

O TriliumNext é o projeto da comunidade que deu continuidade ao Trilium. O desenvolvedor original do Trilium, Zadam, entregou a ele o repositório do Trilium, e hoje o projeto publica o app de novo com o nome Trilium Notes. Um banco de dados do Trilium original abre nele sem nenhum passo especial.

**Trilium ou Obsidian: qual escolher?**

O Obsidian guarda arquivos Markdown em uma pasta em cada dispositivo, tem código fechado e vende a própria sincronização. O Trilium guarda as notas em um banco de dados no seu servidor, é de código aberto e sincroniza os apps de desktop com o seu servidor de graça. Os pontos fortes do Obsidian são os plugins e os arquivos comuns; os do Trilium são a árvore de notas, a clonagem de notas e os muitos tipos de nota.

**Existe app do Trilium para celular?**

Não existe um app oficial. O servidor do Trilium tem uma interface móvel para o navegador do celular, e há apps da comunidade: TriliumDroid e Pocket Trilium para Android e Trinote para iOS.

**Dá para importar minhas notas do Evernote ou em Markdown para o Trilium?**

Sim. O Trilium importa as exportações ENEX do Evernote e arquivos Markdown, e exporta notas em Markdown ou HTML, então suas notas saem tão facilmente quanto entraram.

**De quanta memória e disco Trilium Notes precisa?**

Trilium é leve: cerca de 100 MB de memória; o banco de dados cresce com suas notas e anexos, e os backups diários, semanais e mensais do próprio Trilium ficam ao lado dele. No Pethost, o plano Starter basta, com espaço para outros apps ao lado.

## Arquivo Docker Compose de Trilium Notes

O template é este compose.yaml e as variáveis gravadas no .env do projeto quando ele é criado. O Pethost roda o arquivo exatamente como está escrito.

**Containers:** trilium (triliumnext/trilium:v0.106.1).

**Volumes, no backup noturno:** data.

```
services:
  trilium:
    image: triliumnext/trilium:v0.106.1
    restart: unless-stopped
    environment:
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
      # Requests come through the proxy: the client's own address is the one it forwards, so that
      # a stranger's wrong passwords do not lock everyone out of signing in.
      TRILIUM_NETWORK_TRUSTEDREVERSEPROXY: uniquelocal
    # A new Trilium offers its setup to whoever opens it first, then asks them for the password.
    # So while it has no password, it runs on port 8081, which nobody reaches: a new knowledge base
    # is made there with the password given, and only then does Trilium answer on 8080.
    command:
      - sh
      - -c
      - |
        set -e
        if ! node -e '
          const { DatabaseSync } = require("node:sqlite");
          const db = new DatabaseSync(process.env.TRILIUM_DATA_DIR + "/document.db", { readOnly: true });
          const row = db.prepare("select value from options where name = ?").get("passwordVerificationHash");
          process.exit(row?.value ? 0 : 1);
        ' 2>/dev/null; then
          TRILIUM_PORT=8081 node ./main.mjs &
          setup=$$!
          node -e '
            const base = "http://127.0.0.1:8081";
            const setUp = async () => {
              const status = await fetch(base + "/api/setup/status").then((r) => r.json());
              if (!status.isInitialized) {
                const made = await fetch(base + "/api/setup/new-document?skipDemoDb", {
                  method: "POST",
                  headers: { "content-type": "application/json" },
                  body: JSON.stringify({ locale: "en" })
                });
                if (!made.ok) throw new Error("new-document: " + made.status + " " + (await made.text()));
              }
              const password = process.env.ADMIN_PASSWORD;
              const set = await fetch(base + "/set-password", {
                method: "POST",
                body: new URLSearchParams({ password1: password, password2: password }),
                redirect: "manual"
              });
              if (set.status !== 302) throw new Error("set-password: " + set.status + " " + (await set.text()));
            };
            (async () => {
              let failure;
              for (let i = 0; i < 180; i++) {
                try {
                  return await setUp();
                } catch (error) {
                  failure = error;
                  await new Promise((done) => setTimeout(done, 1000));
                }
              }
              console.error(failure);
              process.exit(1);
            })();
          '
          kill $$setup
          wait $$setup || true
        fi
        chown -R node:node /home/node
        exec su -c "node ./main.mjs" node
    volumes:
      - data:/home/node/trilium-data

volumes:
  data:
```

[compose.yaml](https://pethost.dev/templates/trilium/compose.yaml)[Ver no GitHub](https://github.com/pethost-dev/templates/tree/main/trilium)

## [Mais em Notas e wikis](https://pethost.dev/pt/templates/notes/)

- [**Memos**Notas curtas em Markdown em uma linha do tempo privada](https://pethost.dev/pt/templates/memos/)
- [**HedgeDoc**Notas em Markdown que você escreve com outras pessoas, em tempo real](https://pethost.dev/pt/templates/hedgedoc/)
- [**Obsidian LiveSync**Um servidor CouchDB que sincroniza seus cofres do Obsidian com o Self-hosted LiveSync](https://pethost.dev/pt/templates/obsidian-livesync/)
- [**BookStack**Uma wiki organizada em estantes, livros, capítulos e páginas](https://pethost.dev/pt/templates/bookstack/)
- [**Docmost**Wiki e documentação colaborativas, com espaços, edição em tempo real e diagramas](https://pethost.dev/pt/templates/docmost/)
- [**Etherpad**Documentos editados em conjunto em tempo real: cada autor com a sua cor, com chat, histórico e plugins](https://pethost.dev/pt/templates/etherpad/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/pt/templates/)
- [Sobre nós](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pt/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Termos](https://pethost.dev/terms/)
- [Privacidade](https://pethost.dev/privacy/)
- [Reembolsos](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bancos de dados

- [Postgres](https://pethost.dev/pt/postgres/)

Comparativos

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pt/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pt/blog/coolify-cloud-vs-dokploy-cloud/)
- [Preços Railway vs Render vs Fly.io](https://pethost.dev/pt/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hospedagem gerenciada de Docker Compose](https://pethost.dev/pt/blog/managed-docker-compose-hosting/)

Alternativas

- [Alternativas ao Railway](https://pethost.dev/pt/blog/railway-alternatives/)
- [Alternativas ao Heroku](https://pethost.dev/pt/blog/heroku-alternatives/)
- [Alternativas ao Dokploy](https://pethost.dev/pt/blog/dokploy-alternatives/)
- [Alternativas ao Coolify](https://pethost.dev/pt/blog/coolify-alternatives/)
- [Alternativas ao Render](https://pethost.dev/pt/blog/render-alternatives/)
- [Alternativas ao Sliplane](https://pethost.dev/pt/blog/sliplane-alternatives/)
